INHOUDSOPGAWE:

Crawl Space Monitor (ook bekend as: No More Frozen Pipes !!): 12 stappe (met foto's)
Crawl Space Monitor (ook bekend as: No More Frozen Pipes !!): 12 stappe (met foto's)

Video: Crawl Space Monitor (ook bekend as: No More Frozen Pipes !!): 12 stappe (met foto's)

Video: Crawl Space Monitor (ook bekend as: No More Frozen Pipes !!): 12 stappe (met foto's)
Video: 3-часовой марафон паранормальных и необъяснимых историй - 3 2024, Desember
Anonim
Crawl Space Monitor (ook bekend as: No More Frozen Pipes !!)
Crawl Space Monitor (ook bekend as: No More Frozen Pipes !!)

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

Die hardeware
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

Bedraad dit
Bedraad dit
Bedraad dit
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

Monitor die stelsel
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

Die Python Script
Die 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

Opdateer 3/16,
Opdateer 3/16,
Opgedateer 3/16,
Opgedateer 3/16,
Opgedateer 3/16,
Opgedateer 3/16,

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: