Sisukord:

Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 sammu (koos piltidega)
Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 sammu (koos piltidega)

Video: Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 sammu (koos piltidega)

Video: Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 sammu (koos piltidega)
Video: Тест каравана в -25° . Ночёвка зимой. Как не замёрзнуть? 2024, November
Anonim
Crawl Space Monitor (aka: No More Frozen Pipes !!)
Crawl Space Monitor (aka: No More Frozen Pipes !!)

Vesi mu majja tuleb minu kaevust läbi soojendamata roomamisruumi. Sellest köögist läbib ka kogu köögi ja vannitoa torustik. (Siseveetorustik oli selle maja 70-ndate aastate keskel järelemõtlemine!) Olen kasutanud soojuslampe "varumahuti" termostaatpistikutel, et hoida temperatuuri üle külmumise. Selle paigutusega oli paar olulist probleemi: 1 - nähtavus puudub. Põlenud pirnide esimene märk on külmunud torud! 2 - Mõnikord ei lülitu pistikud välja. See tekitas vastikuks üllatuseks elektriarve. 3 - Üksikasjalikkus puudub. Ma hoidsin 3 pirni "võrgus" (kokku 750 vatti) ja see oli kõik või mitte midagi lahendust. (2 pirni ei saaks sellega alati hakkama.) Pärast Arduinoga tutvumist ja nähes mõningaid asju, mida teised inimesed sellega tegid, otsustasin, et annan sellele keerise. Tunnistan otse korstnast välja, et olen selle töö tegemiseks häbematult teiste projektide näidiskoodi näpistanud ja kohendanud, kuigi lõpuks olen enamiku kõik ümber kirjutanud. Esialgu ehitasin selle "WiFi ilmajaama", mille leidsin Adafruit.com ja muutis seda. Veebisaidi värskendamise asemel kasutasin SMS -i olekuvärskenduste saatmiseks Amazoni veebiteenuseid. Lisasin ka mõne 110V relee juhtimise (https://www.adafruit.com/products/268). Sain siis "targaks" ja otsustasin selle "karmiks muuta" - noh - miski lühendas midagi ja sain maagilise sinise suitsu. Kõik praetud … Kuna mul ei olnud teist CC3000 WiFi -katkestust, tegin seekord asju teisiti. Ehitasin selle interaktiivseks jälgimiseks jadaliidese kaudu ja lisasin seejärel EZ-Link Bluetooth FTDI liidese. (Enam ei tohi sülearvutit tarkvarauuenduste jaoks maja alla tirida !!!) Ehitasin ka Pythoni liidese, mis ühendub seadmega Bluetoothi kaudu, esitab selle kohta regulaarselt päringuid ja kuvab olekuteavet minu Macis. (Samuti on olemas "inimliides", millele pääseb juurde iga terminali emuleerimise tarkvaraga.) Kogu WiFi ja RTC-koodi ümberkirjutamise ja eemaldamise tulemusena on projekti maht kahanenud üle 29K-lt vaevalt 10K-ni. See on parandanud ka töökindlust sel määral, et riistvara valvekoer pole paari nädala jooksul üldse käivitunud ja ma olen kohendanud.

17.02.16 Värskendus/märkus: Püüdes saada mõningatele koodidele (eriti Pythoni koodi taandele) korralikku vormingut, muutusid asjad koledast kasutuskõlbmatuks. Olen kindel, et probleem on kusagil minu otsas ja püüan selle välja mõelda. Seni olen lisanud DropBoxi kaudu linke koodifailidele. Need peaksid olema kõigile kättesaadavad. Kui ei, siis palun andke mulle sellest teada, et saaksin need teile muul viisil kätte!

Samm: lahendatavad probleemid

Süsteemil oli minu jaoks vaja teha järgmisi asju: 1 - jälgida roomamisruumi temperatuuri. 2 - lülitada soojuslambid sisse vastavalt vajadusele, et hoida temperatuuri üle külmumise. 3 - kui see ei tööta, katsetage perioodiliselt pirne ja andke mulle nähtavus 4 - andke mulle nähtavus temperatuuri ja süsteemi oleku kohta, sealhulgas: - kas süsteem töötab? - mis temperatuur on praegu? - mis on kõige külmem temperatuur? - mitu pirni jooksis? - mitu pirni on hea? - mis on minu koguaeg "valgusminutites" (teise nimega "põlemisaeg")? 5 - tehke kõik ülaltoodud, ilma et oleksin pidanud maja alla roomama !!! Otsustasin, et lihtsaim viis pirnide töö testimiseks oli valgusandur. Mõned muud probleemid, mida tahtsin käsitleda, olid tulede tsükliaeg. Liiga aeglane ja põletan tarbetut elektrit. Liiga kiiresti ja mul on oht neid kogu sisselülitamisel ja väljalülitamisel põletada koos sellega seotud kuumutamise ja jahtumisega.

Samm: riistvara

Riistvara
Riistvara

2 250 vatti soojuslampi 1 500 vatti töölampi (üks minu soojuslampidest kadus, nii et see on stand-in) Arduino UnoDHT22 Temperatuuri/niiskuse andurGA1A12S202 valgusandur PowerSwitch 110V releed Bluefruit EZ-Link jadaliides ja programmeerija Kõrgtehnoloogiline ümbris (võileivamõõduga Rubbermaid vann)) Kaablitihend 1/2 suurune leivaplaatAkrüülplaat leivaplaadi ja Arduino jaoksSorteeritud hüppajajuhtmed. Colemani 5-väljalaskega "töökoja riba" Kasutasin ka riistvara valvurina Adafruit Trinket, kuid see on osutunud mittevajalikuks (jinx, muidugi!) Ja mina kirjutas selle kohta eraldi juhendi, nii et ma ei hakka seda siin kordama. Colemani pats oli tore leid, sest see andis mulle 4 soojuslampide pistikupesa ja lisaks Arduino toiteallika pistikupesa ilma täiendavate jaoturite või toiteplokkideta. Lüliti ja sisemise kaitselülitiga täisvõimsusel 15 amprit suudab see hakkama saada ühe pistikupesaga.

3. samm: lähenemine

Kuigi süsteem on loodud rakenduseks, et istuda ootamise ajal ja teha mõnda asja suhteliselt aeglaselt, ei tahtnud ma luua süsteemi, kus kontroller istus viivitatud () tsüklitega, mis ei reageerinud. Samuti soovisin, et saaksin muuta konfiguratsiooniparameetreid nii lennult kui võimalik-kindlasti mitte viisil, mis nõuaks koodi ümberkirjutamist või allika massotsingu- ja asendustoimingute tegemist. I leidis Bill Earli suurepärasemad artiklid teemal "Multitasking the Arduino" (alusta siit: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) ja asus tööle. "Taimeri" ja "kütteseadme" klasside loomisega suutsin teha kõik soovitud ajastamisfunktsioonid ilma viivituseta () (ainult paari erandiga) ja konfigureerida pirnid ("kütteseadmed") iga koodirea jaoks üks.

Samm: ühendage see kokku

Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik

Fritzing diagramm ei sisalda Bluefruit EZ-LinkArduino 5V & Ground leivaplaadi külge DHT22 pin 1 kuni 5V bussi DHT22 pin 2 to Arduino pin 7DHT22 pin 4 to Ground bus10K takisti DHT22 tihvtide 1 ja 2GA1A12S202 VCC pin kuni 5V bussiGA1A12S202 GN BusGA1A12S202 OUT pin kuni Arduino A0Arduino 3V pin to Arduino AREF pin. Ainus, mis on kriitiline, on valgusanduri OUT -juhe, mis peab minema analoogpinnile. See pin-out töötab minu koodiga nii, nagu see on kirjutatud. Kui kasutate riistvara valvekoera, näete, et minu kood paneb Arduino pin 2 südamelöögi välja.

Samm: Arduino kood, põhiskeem

CrawlSpace_monitor.ino

6. samm: märkused koodeksi kohta

Järgmised koodirid loovad küttekeha eksemplarid ja määravad tööparameetrid: // Heater (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (minutes), luxDelta) Kütteseade1 = Heater (A1, 38, 43, 20, 1440, 5); Küttekeha2 = kütteseade (A2, 36, 41, 20, 1440, 5); Küttekeha (A4, 32, 37, 20, 1440, 5); (Ja jah, ma määratlesin kõik 4 kütteseadet, kuigi ma töötan praegu ainult 3. Ma peaksin ikkagi teise relee hankima, kuid siis lisaks 4. kütteseade olla sama lihtne kui selle ühendamine.) Ma jahmatan nende vallandustemperatuure, alustades esimesest 38 kraadi juures ja lõpetades olematu 4. puhul 32 juures. Üks asi, mille leidsin, kui esimest korda seda koos müttama hakkasin, oli see, et mul oli vaja anda temperatuuri vahemik ja määratleda minimaalne põlemisaeg, või rattasin tuled hullult sisse ja välja. Siin annan igaühele neist 5 -kraadise leviku ja 20 -minutilise minimaalse põlemisaja. Seadsin testimisintervalli 24 tunniks ja seadsin 5 luksi minimaalseks valgusnäiduks, mida vajan, et teha kindlaks, kas pirn töötab. Peaaegu kõik, mis vajab konfigureerimist, on siin nendes neljas koodireas.

Samm: Arduino kood, klassid

Selle projekti jaoks lõin 3 klassi. Need olid "taimer", "kütteseade" ja "aku". Pisut rohkem mõeldes peaksin suutma akumulaatori taimeriks voltida, kuid ma pole seda veel teinud. Siin on need täies ulatuses: küttekeha.h

taimer.h

akumulaator.h

8. samm: süsteemi jälgimine

Süsteemi jälgimine
Süsteemi jälgimine

Lõin ühe liidese kahele eraldi monitorile. See on interaktiivne seanss jadakonsooli kaudu. Minu puhul kasutan Bluefruit EZ-Linki, et saaksin süsteemile juurde pääseda ilma maja alla roomamata või proovimata põranda talade vahele USB-kaablit lüüa! EZ-Linki täiendav eelis on see, et saan uue programmikoodi Arduinole ka Bluetoothi kaudu üles laadida. Inimese liidesele pääseb juurde (Bluetooth või füüsiline kaabel) mis tahes terminali emuleerimistarkvaraga, sealhulgas Arduino IDE jadaga monitor. Esialgsel ühenduse loomisel ei reageerita, kuid klahvivajutus "u" ("värskendamiseks") ja "t" ("test") annab teile ekraanipildil näidatud väljundi. "m" ("monitor") ja "s" ("sys check") annavad teile samad andmed, kuid palju vähem loetavas vormingus. Need on mõeldud automaatseks kuvamiseks mõne muu programmiga "kraapima". Panin kokku Pythoni skripti, mis just seda teeb. Mis tahes muu klahv kogub kuvatud veateate. Näete väärtust "põlemisaeg" - mõelge sellele nagu "pirniminutid" - 1 pirn 10 minutit = 10 minutit, 3 pirni 10 minutit = 30 minutit.

Samm: Pythoni skript

Pythoni skript
Pythoni skript

crawlspace_gui.py

Samm: veel teha…

See ei pruugi olla ilus ega täiuslik, kuid see on tõhus ja osutub usaldusväärseks. JA, mul pole sel talvel veel külmunud torudega probleeme olnud !!! Mul on tegemiste nimekiri. Muidugi, nüüd, kui see töötab, ei pruugi ma enamikku neist üksustest täita või mitte kunagi: hankige Bluetooth minu ühel Raspberry Pi -l, et saaksin luua spetsiaalse monitori. Lugege veel mõnda Pythoni - seejärel puhastage Python liides. See elementide eraldamine ei ole tahtlik ja ma ei saa aru, miks see nii on. Lisage liides Adafruit'i IO -teenusele, et saaksin seda igal pool jälgida. Lisage tekstisõnumi hoiatus. Liikuge väiksemale kontrollerile (võib -olla metroole) Mini või Trinket Pro?), Odavamad releed ja parem pakend. Võtke see leivaplaadilt ja "Perma Proto" tahvlile. EEPROM -i konfiguratsiooniparameetrid. Teravam liides, mis näitab, millised pirnid on head ja võib -olla isegi üksikute pirnide põlemisaeg. Kui ma need valmis saan, tulen tagasi ja värskendan seda juhendit.

11. toiming: värskendage 3/16, "püsivat" ehitust

Värskendus 3/16,
Värskendus 3/16,
Värskendus 3/16,
Värskendus 3/16,
Värskendus 3/16,
Värskendus 3/16,

Külma ilmaga korralikku puhkust tehes olen seadme kätte saanud ja selle väiksemale kontrollerile viinud (kavatsesin kasutada Trinket Pro -d, kuid Adafruit Metro Mini istus ümberringi, kui ükski teine projekt seda ei nõudnud), joodin selle üles Perma-Proto plaat ja pange see kõik paremasse ümbrisesse. Selle põhjal, kui usaldusväärne see on olnud, ei pannud ma riistvara valvekoera tagasi. Ma kasutan endiselt ainult kolme lampi/releed, kus süsteem saab hakkama 4. Bluetooth -moodul on joodetud päises, nii et kui vaja seda kuskil mujal, saab selle eemaldada. Uuele kontrollerile üleminekuks ei olnud vaja koodimuudatusi - lihtne ümberkompileerimine ja laadimine pani mind mõne minutiga tööle. (Metro Minil on identne pistikupesa nagu Arduino Unol ja see on ka ATMega328 protsessor.)

12. samm: värskendage 01.02.2018 - Tere tulemast asjade internetti

Süsteem on meie jaoks laitmatult töötanud. Pärast kahte üsna karmi talve EI külmunud torusid. Tegelikult suutis süsteem torusid hooldada, ilma et oleks kunagi põletanud rohkem kui 2 pirni. Kolmanda pirni võrgus leidmine oli tore kindlustus, kuid me pole seda siiani vajanud.

Süsteemi kolmandal aastal jõudis Bluetooth -moodul ebaõnnestuda. Ehitasime ka uue maja, nii et seiresüsteem jääb Bluetoothi levialast kaugele välja. (Vana maja püsib mõnda aega üleval, kuid mitte igavesti.) Vahepealsel ajal olen teinud palju tööd ESP8266 WiFi -toega protsessoriga; nii Adafruit Featheri vormingus kui ka avatud lähtekoodiga "NodeMCU" vormingus. NodeMCU -d võib Amazonist üldiselt leida umbes 5 dollari eest - palju vähem, kui ostate hulgi ja/või kelleltki AliExpressilt.

See uus versioon säilitab jadaliidese, nii et seda saab siiski kasutada koos Bluetooth-mooduli või otsese USB-jadaühenduse ja eelmise pythoni skriptiga, kuid uuel versioonil on veebilehe liides. Nagu kirjutatud, sisaldab see järgmist funktsiooni:

WiFi-võrguhaldur, et kõrvaldada raskelt kodeeritud WiFi-mandaadid.

Võimalus värskendada püsivara õhu kaudu, kasutades Arduino IDE-d (kui olete samas WiFi-võrgus-pange tähele, et pärast seadmesse USB-üleslaadimist tuleb enne OTA värskenduste toimimist lähtestada). PALUN muutke OTA parool 6. real, et see oleks teile ainulaadne !!

Veebileht, mis kuvab samu andmeid, mida pythoni skript, värskendades automaatselt iga minut. Ma ei pannud lehele mingit turvalisust, sest see on ainult kuva.

Uue koodi leiate siit. Pange tähele, et tihvtide nimed muutuvad NodeMCU -sse liikumisel.

Soovitan: