INHOUDSOPGAWE:
- Stap 1: Probleme om op te los
- Stap 2: Die hardeware
- Stap 3: Die benadering
- Stap 4: Bedraad dit
- Stap 5: Die Arduino -kode, hoofskets
- Stap 6: Notas oor die kode
- Stap 7: Die Arduino -kode, klasse
- Stap 8: Monitor die stelsel
- Stap 9: The Python Script
- Stap 10: nog te doen …
- Stap 11: Werk 3/16 op, 'permanente' gebou
- Stap 12: Werk 12/1/2018 op - Welkom by die IoT
Video: Crawl Space Monitor (ook bekend as: No More Frozen Pipes !!): 12 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Water na my huis kom uit my put deur 'n onverhitte kruipruimte. Al die loodgieterswerk in die kombuis en badkamer loop ook deur hierdie ruimte. (Binne-loodgieterswerk was in die middel van die sewentigerjare 'n klap-nagedagte in hierdie huis!) Ek gebruik hitte-lampe op termostaatproppe met 'voorraadtenk' om 'n temperatuur bo die vriespunt te handhaaf. Daar was 'n paar beduidende probleme met hierdie reëling: 1 - Geen sigbaarheid nie. Die eerste aanduiding van uitgebrande gloeilampe is bevrore pype! 2 - Soms stop die proppe nie. Dit sorg vir nare verrassings deur die elektriese rekening.3 - Geen detail nie. Ek het 3 gloeilampe "aanlyn" gehou (totaal 750 watt) en dit was 'n alles -of -niks -oplossing. (2 gloeilampe sal dit nie altyd hanteer nie.) Nadat ek kennis gemaak het met Arduino en 'n paar dinge gesien het wat ander mense daarmee doen, het ek besluit ek sal dit 'n draai maak. Ek sal dadelik erken dat ek steekproefkode van ander mense se projekte skaamteloos gegryp en aangepas het om dit te laat werk, maar ek het uiteindelik alles oorgeskryf. Aanvanklik het ek hierdie 'WiFi Weerstasie' gebou waarop ek gevind het Adafruit.com en dit aangepas. In plaas daarvan om 'n webwerf op te dateer, het ek Amazon Web Services gebruik om SMS -statusopdaterings vir my te stuur. Ek het ook die beheer van sommige 110V -relais (https://www.adafruit.com/products/268) bygevoeg. Ek het toe 'slim' geword en besluit om dit te 'ruggedize' - wel - iets kort iets en ek kry 'n blaas van die magiese blou rook. Alles gebraai … Omdat ek geen CC3000 WiFi -uitbraak meer gehad het nie, het ek hierdie keer dinge anders gedoen. Ek het dit gebou om interaktief gemonitor te word via seriële koppelvlak en het daarna 'n EZ-Link Bluetooth FTDI-koppelvlak bygevoeg. (U hoef nie meer die skootrekenaar onder die huis te sleep vir sagteware -opdaterings nie!) (Daar is ook 'n 'menslike koppelvlak' wat deur enige terminale emulasiesagteware verkry kan word.) As gevolg van die herskryf en verwydering van al die WiFi- en RTC-kode, het die projek in grootte gekrimp van meer as 29K tot skaars 10K. Dit het ook die betroubaarheid verbeter in die mate dat die hardeware -waghond die afgelope paar weke glad nie veroorsaak het nie en ek het aangepas.
2/17/16 Opdatering/nota: in 'n poging om die korrekte opmaak van sommige van die kode te kry (veral die inspringing van die Python -kode), het dinge van lelik tot onbruikbaar gegaan. Ek is seker dat die probleem iewers aan my kant is, en ek sal probeer om dit uit te vind. Tot dan het ek via DropBox skakels na die kode lêers bygevoeg. Hulle moet vir almal toeganklik wees. Indien nie, laat weet my asseblief sodat ek dit op 'n ander manier by u kan uitbring!
Stap 1: Probleme om op te los
Die stelsel moes die volgende dinge vir my doen: 1 - monitor die temperatuur in die kruipruimte. van hul status.4 - gee my die temperatuur en stelselstatus sigbaar, insluitend: - werk die stelsel? - wat is die temperatuur NOU? - wat is die koudste temperatuur? - hoeveel gloeilampe het geloop? - hoeveel gloeilampe toets goed? - wat is my totale tyd in 'ligte minute' (ook bekend as 'brandtyd')? 5 - doen al die bogenoemde sonder dat ek onder die huis hoef in te kruip !!! 'n Paar ander probleme wat ek wou aanspreek, was die siklustyd op die ligte. Te stadig, en ek brand onnodige elektrisiteit. Te vinnig, en ek loop die risiko om dit te verbrand as ek aan- en afskakel, met verwante verhitting en afkoeling.
Stap 2: Die hardeware
2 250 watt hitte lampe 1 500 watt werk lamp (een van my hitte lampe het verdwyn, so dit is 'n stand-in) Arduino UnoDHT22 Temperatuur/Humitidy sensor GA1A12S202 ligsensor PowerSwitch 110V relais Bluefruit EZ-Link Serial Interface & Programmeerder Hoë-tegnologie tas (toebroodjie-grootte Rubbermaid-bad) Kabelklier 1/2 groot broodbord Akrielplaat vir broodbord en Arduino Geassorteerde springdrade. Coleman 5-uitlaat "werkswinkelstrook" Ek het ook 'n Adafruit Trinket as 'n hardeware waghond gebruik, maar dit was onnodig (jinx natuurlik!) En ek het 'n aparte instruksie daaroor geskryf, so ek sal dit nie hier herhaal nie. Die Coleman -varkstaart was 'n goeie vonds, want dit het my 4 afsetpunte vir my warmlampe gegee, plus 'n uitlaat vir die Arduino -kragtoevoer sonder dat daar ekstra splitsers of kragstroke betrokke was. Met 'n volle 15 ampère met 'n skakelaar en 'n interne breker, kan dit alles hanteer wat ek deur 'n enkele uitlaat kon trek.
Stap 3: Die benadering
Terwyl die stelsel 'n toepassing gebou is om te wag en 'n paar dinge relatief stadig te doen, wou ek nie 'n stelsel bou waar die kontroleerder in vertragings () siklusse sit nie. Ek wou ook die konfigurasieparameters so vinnig as moontlik kon verander-beslis nie op 'n manier wat kode moes herskryf of massa-soek-en-vervang operasies op die bron moes doen nie. Ek vind die mees uitstekende artikels van Bill Earl oor 'Multitasking the Arduino' (begin hier: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) en raak besig. Deur die "timer" en "verwarmer" klasse te skep, kon ek al die tydsberekening funksies doen wat ek wou sonder om vertraging () te gebruik (met slegs enkele uitsonderings) en die gloeilampe ("verwarmers") met 'n enkele reël kode vir elke een.
Stap 4: Bedraad dit
Die Fritzing-diagram bevat nie die Bluefruit EZ-LinkArduino 5V en grond op die broodbordbusDHT22-pen 1 tot 5V-busDHT22-pen 2 tot Arduino-pen 7DHT22-pen 4 tot grondbus10K-weerstand tussen DHT22-penne 1 en 2GA1A12S202 VCC-pen na 5V-busGA1A12S202 GND-pen na grond busGA1A12S202 OUT -pen na Arduino A0Arduino 3V -pen na Arduino AREF -pinRelais Grond lei na grondbusRelais 1 -kragleiding na Arduino A1Relais 2 -kragleiding na Arduino A2Relais 3 -kragleiding na Arduino A3Relay 4 -kragleiding na Arduino A4 Die meeste van hierdie verbindings kan herrangskik word. Die enigste kritieke faktor is dat die OUT -aansluiting op die ligsensor na 'n analoog pen moet gaan. Hierdie pin-out werk met my kode soos geskrywe. As u die hardeware waghond gebruik, sal u sien dat my kode die hartklop op Arduino pin 2 laat uitkom.
Stap 5: Die Arduino -kode, hoofskets
CrawlSpace_monitor.ino
Stap 6: Notas oor die kode
Die volgende kode reëls skep die gevalle van die verwarmer en definieer die werkparameters: // Heater (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (minutes), luxDelta) Heater heater1 = Heater (A1, 38, 43, 20, 1440, 5); Verwarmer verwarmer2 = Verwarmer (A2, 36, 41, 20, 1440, 5); Verwarmer verwarmer3 = Verwarmer (A3, 34, 39, 20, 1440, 5); Verwarmer verwarmer4 = verwarmer) wees so eenvoudig as om dit in te skakel.) Ek steier hul sneller temperature, begin by 38 grade vir die eerste en eindig by 32 vir die nie-bestaande 4de. Een van die dinge wat ek agtergekom het toe ek dit eers saamgevoeg het, was dat ek 'n afstand moet gee oor die temperatuur, sowel as 'n minimum 'brandtyd' moet definieer, of ek het die ligte soos 'n gek aan en afgeskakel. Hier gee ek elkeen 'n 5 grade smeer sowel as 'n minimum brandtyd van 20 minute. Ek stel die toetsinterval op 24 uur en stel 5 lux as die minimum liglesing wat ek nodig het om vas te stel dat 'n gloeilamp nog werk. Omtrent alles wat nodig is om op te stel, is hier in hierdie 4 reëls kode.
Stap 7: Die Arduino -kode, klasse
Ek het 3 klasse vir hierdie projek geskep. Dit was 'timer', 'verwarmer' en 'akkumulator'. Met 'n bietjie meer gedink, moet ek die akkumulator in 'n timer kan vou, maar ek het nog nie. Hier is hulle volledig: heater.h
timer.h
akkumulator.h
Stap 8: Monitor die stelsel
Ek het 'n enkele koppelvlak vir twee aparte monitors geskep. Dit is 'n interaktiewe sessie oor die reekskonsole. In my geval gebruik ek die Bluefruit EZ-Link sodat ek toegang tot die stelsel kan kry sonder om onder die huis in te kruip of 'n USB-kabel tussen die balke te probeer insluip! 'N Bykomende voordeel van die EZ-Link is dat ek ook via die Bluetooth nuwe programkode na die Arduino kan oplaai. Die "menslike" koppelvlak kan verkry word (Bluetooth of fisiese kabel) met enige terminale emulasie sagteware, insluitend die Arduino IDE se reeks monitor. As u aanvanklik aansluit, is daar geen reaksie nie, maar as u op die toets "u" (vir "opdatering") en "t" (vir "toets") druk, kry u die uitset wat in die skermopname verskyn. "m" ("monitor") en "s" ("sys check") gee u dieselfde data, maar in 'n baie minder leesbare formaat. Hierdie is bedoel om deur 'n ander program vir 'outomatiese vertoning' geskrap 'te word. Ek het 'n Python -script saamgestel wat presies dit doen. Enige ander sleutel kry die foutboodskap wat vertoon word. U sal 'n waarde vir "brandtyd" sien - dink hieraan soos "gloeilamp minute" - 1 gloeilamp vir 10 minute = 10 minute, 3 gloeilampe vir 10 minute = 30 minute.
Stap 9: The Python Script
crawlspace_gui.py
Stap 10: nog te doen …
Dit is miskien nie mooi of perfek nie, maar dit is effektief en bewys dat dit betroubaar is. EN ek het nog nie hierdie winter probleme met bevrore pype gehad nie !!! Ek het 'n trefferlys van dinge om te doen. Natuurlik, noudat dit werk, kan ek die meeste van hierdie items al dan nie regkry: Bluetooth gebruik op een van my Raspberry Pi's, sodat ek 'n spesiale monitor kan skep. Leer nog 'n Python - maak dan die Python skoon koppelvlak. Die skeiding van elemente is nie doelbewus nie en ek verstaan nie hoekom dit daar is nie. Voeg 'n koppelvlak by soos die IO -diens van Adafruit, sodat ek dit van oral kan monitor. Voeg 'n sms -waarskuwing by. Mini of 'n Trinket Pro?), Goedkoper aflos, en beter verpakking. Haal dit van 'n broodbord af en op 'n "Perma Proto" bord. moontlik selfs brandtyd vir die individuele gloeilampe. Terwyl ek dit klaar kry, sal ek terugkom en hierdie instruksies bywerk.
Stap 11: Werk 3/16 op, 'permanente' gebou
Nadat ek 'n goeie blaaskans gekry het, het ek die eenheid teruggekry en na 'n kleiner kontroleerder oorgeplaas (ek was van plan om 'n Trinket Pro te gebruik, maar het 'n Adafruit Metro Mini laat opeis wat deur geen ander projek opgeëis is nie), maar dit gesoldeer 'n Perma-Proto-bord, en plaas dit alles in 'n beter geval. Op grond van hoe betroubaar dit was, het ek nie die hardeware -waghond daarop teruggesit nie. Ek gebruik nog steeds 3 lampe/aflosse waar die stelsel dit kan hanteer. 4. Die Bluetooth -module is op 'n soldeerblad, sodat ek dit kan verwyder as ek dit elders nodig het. Daar was geen kodeveranderings nodig om na die nuwe beheerder te gaan nie - 'n eenvoudige herkompilering en laai het my binne enkele minute aan die gang gesit. (Die Metro Mini het 'n identiese pinout as die Arduino Uno en is ook 'n ATMega328 -verwerker.)
Stap 12: Werk 12/1/2018 op - Welkom by die IoT
Die stelsel het foutloos vir ons gewerk. Na twee taai winters, GEEN bevrore pype nie. Trouens, die stelsel kon die pype onderhou sonder om ooit meer as 2 gloeilampe te verbrand. Die derde gloeilamp aanlyn was 'n goeie versekering, maar ons het dit nog nooit nodig gehad nie.
In die derde jaar vir die stelsel het die Bluetooth -module misluk. Ons het ook 'n nuwe huis gebou, sodat die moniteringstelsel ver buite die Bluetooth -reeks is. (Die ou huis bly 'n rukkie, maar nie vir altyd nie.) In die tussenliggende tyd het ek baie gedoen met die ESP8266 WiFi -verwerker; beide in Adafruit Feather-formaat en in die open-source "NodeMCU" -formaat. Die NodeMCU kan gewoonlik op ongeveer $ 5 op Amazon gevind word - baie minder as u in grootmaat en/of by iemand soos AliExpress koop.
Hierdie nuwe weergawe behou die seriële koppelvlak, sodat dit steeds gebruik kan word met 'n Bluetooth-module of 'n direkte USB-seriële verbinding en die vorige python-script, maar die nuwe weergawe het 'n webbladsy-koppelvlak. Soos geskryf, bevat dit die volgende funksie:
'N WiFi-netwerkbestuurder om hardgekodeerde WiFi-geloofsbriewe uit te skakel.
Die moontlikheid om die firmware op die lug te werk met behulp van die Arduino IDE (solank u op dieselfde WiFi-netwerk is-let op dat na 'n USB-oplaai na die toestel 'n herstel nodig is voordat OTA-opdaterings werk). Verander asseblief die OTA -wagwoord op reël 6 om uniek vir u te wees !!
'N Webbladsy wat dieselfde data vertoon as die python -script, met 'n outomatiese opdatering elke minuut. Ek het geen sekuriteit op die bladsy geplaas nie, want dit is slegs vertoon.
U kan die nuwe kode hier vind. Let daarop dat die penname verander wanneer u na die NodeMCU skuif.
Aanbeveel:
Sputnik 1, ook bekend as die eerste satelliet wat deur die Sowjetunie in 'n wentelbaan geplaas is, in 1957: 5 stappe (met foto's)
Sputnik 1, ook bekend as die 1ste satelliet wat deur die Sowjetunie in 'n wentelbaan gesit is, in 1957: Ek was nog altyd gefassineer oor die verhaal van die Sputnik 1, want dit het die ruimtewedloop veroorsaak. Op 4 Oktober 2017 het ons die 60ste bestaansjaar gevier van die bekendstelling van hierdie Russiese satelliet, wat geskiedenis gemaak het, want dit was die sipres
Die spiraal lamp (ook bekend as die Loxodrome lessenaar lamp): 12 stappe (met foto's)
The Spiral Lamp (ook bekend as die Loxodrome lessenaarlamp): The Spiral Lamp (ook bekend as die Loxodrome lessenaarlamp) is 'n projek wat ek in 2015 begin het. Dit is geïnspireer deur Paul Nylander se Loxodrome Sconce. My oorspronklike idee was vir 'n gemotoriseerde tafellamp wat vloeiende wervels van lig teen die muur sou uitsteek. Ek het ontwerp en
RGB LED Fiber Optic Tree (ook bekend as Project Sparkle): 6 stappe
RGB LED Fiber Optic Tree (oftewel Project Sparkle): vind u u kamer 'n bietjie te dof? Wil u 'n bietjie sprankel daarby voeg? Lees hier hoe u 'n RGB -LED kan neem, 'n bietjie veseloptiese draad byvoeg en dit laat skyn! Die basiese doel van Project Sparkle is om 'n super helder LED en 'n paar optiese veseloptiese kabel te neem
Begin 'n guerrilla-inrywing (ook bekend as MobMov): 6 stappe (met foto's)
Begin 'n guerrilla-inrywing (ook bekend as MobMov): wou u al ooit 'n buitelug-teater doen, ala MobMov.org of die Santa Cruz Guerrilla Drive-in? Hierdie instruksies sal jou vertel watter toerusting jy nodig het en hoe om dit op te stel. Cyberpunk stedelike teater, hier kom ons
Toon lessenaar in Mac Osx (ook bekend as Verberg alles): 3 stappe
Wys lessenaar in Mac Osx (ook bekend as Hide All): Sedert ek 'n Mac gekry het, het ek die funksies van 'show desktop' wat Windows het, gemis, met die kortpad: Windows -sleutel+D. F11 sny dit eenvoudig nie, wat rommelige rande aan die rand van die skerm skep. Dit is my doel: om alle vensters te verberg met