Sadržaj:

Crawl Space Monitor (poznat i kao: Nema više smrznutih cijevi !!): 12 koraka (sa slikama)
Crawl Space Monitor (poznat i kao: Nema više smrznutih cijevi !!): 12 koraka (sa slikama)

Video: Crawl Space Monitor (poznat i kao: Nema više smrznutih cijevi !!): 12 koraka (sa slikama)

Video: Crawl Space Monitor (poznat i kao: Nema više smrznutih cijevi !!): 12 koraka (sa slikama)
Video: Radim u Privatnom muzeju za bogate i slavne. Horor priče. Užas. 2024, Prosinac
Anonim
Crawl Space Monitor (poznat i kao: Nema više smrznutih cijevi !!)
Crawl Space Monitor (poznat i kao: Nema više smrznutih cijevi !!)

Voda u moju kuću dolazi iz mog bunara kroz neogrevani prostor za puzanje. Kroz ovaj prostor prolazi i sav vodovod u kuhinji i kupaonici. (Unutarnji vodovod je nakon 70-ih godina kasnije u ovoj kući zamišljen kao pljuska!) Koristio sam toplinske svjetiljke na termostatskim utikačima "spremnik" za održavanje temperature iznad smrzavanja. Bilo je nekoliko značajnih problema s ovim rasporedom: 1 - Nema vidljivosti. Prvi pokazatelj izgorjelih žarulja su smrznute cijevi! 2 - Ponekad se utikači ne bi zatvorili. To je donijelo gadna iznenađenja, a došao je račun za električnu energiju.3 - Nema detaljnosti. Držao sam 3 žarulje "na mreži" (ukupno 750 vata) i to je bilo rješenje za sve ili ništa. (2 žarulje ne bi uvijek to podnijele.) Nakon što sam se upoznao s Arduinom i vidio neke stvari koje drugi ljudi rade s njim, odlučio sam da ću ga zavrtjeti. Odmah ću priznati da sam besramno ugrabio i dotjerao uzorak koda iz projekata drugih ljudi kako bi ovo uspjelo, iako sam na kraju većinu napisao sve. U početku sam izgradio ovu "WiFi vremensku stanicu" koju sam pronašao na Adafruit.com i izmijenili ga. Umjesto ažuriranja web stranice, koristio sam Amazon Web Services za slanje ažuriranja statusa SMS -a. Dodao sam i kontrolu nekih 110V releja (https://www.adafruit.com/products/268). Tada sam postao "pametan" i odlučio sam ga "grubo" - pa - nešto je kratko spojilo i dobio sam dio čarobnog plavog dima. Sve prženo … Nemajući još jedan proboj CC3000 WiFi -a, ovaj put sam postupio drugačije. Napravio sam ga za interaktivno praćenje putem serijskog sučelja, a zatim dodao EZ-Link Bluetooth FTDI sučelje. (Nema više povlačenja prijenosnog računala ispod kuće radi ažuriranja softvera !!!) Također sam izgradio Python sučelje koje se povezuje s jedinicom putem Bluetootha, redovito ga postavlja i prikazuje informacije o statusu na mom Macu. (Postoji i "ljudsko sučelje" kojemu se može pristupiti bilo kojim softverom za emulaciju terminala.) Kao rezultat ponovnog pisanja i uklanjanja svih WiFi i RTC koda, projekt se smanjio s preko 29K na jedva 10K. Također je poboljšala pouzdanost do te mjere da se nadzornik hardvera uopće nije aktivirao u nekoliko tjedana koliko je radio, a ja sam ga dotjerao.

17.2.16. Ažuriranje/napomena: U pokušaju da se pravilno formatira dio koda (posebno uvlačenje Python koda), stvari su postale ružne do neupotrebljive. Siguran sam da je tu negdje moj problem i pokušat ću to riješiti. Do tada sam dodavao veze do datoteka koda putem DropBox -a. Oni bi trebali biti dostupni svima. Ako ne, javite mi kako bih vam ih mogao donijeti na drugi način!

Korak 1: Problemi za rješavanje

Sustav je za mene trebao učiniti sljedeće: 1 - nadzirati temperaturu u prostoru za puzanje. 2 - uključivati žarulje za grijanje prema potrebi kako bi se održala temperatura iznad smrzavanja. 3 - kad ne rade, povremeno testirajte žarulje i dajte mi vidljivost njihovog statusa.4 - dajte mi prikaz temperature i statusa sustava, uključujući: - radi li sustav? - koja je temperatura SADA? - koja je najhladnija temperatura? - koliko je žarulja prešlo? - koliko je žarulja dobro testirano? - koje je moje ukupno vrijeme u "svjetlosnim minutama" (poznato i kao "vrijeme gorenja")? 5 - učinite sve gore navedeno bez potrebe da se zavlačim pod kuću !!! Odlučio sam da je najlakši način testiranja rada žarulje sa senzor svjetla. Neki drugi problemi koje sam htio riješiti je vrijeme ciklusa na svjetlima. Presporo, a ja trošim nepotrebnu električnu energiju. Prebrzo i riskiram da ih izgorim od svih uključivanja i isključivanja s odgovarajućim zagrijavanjem i hlađenjem.

Korak 2: Hardver

Hardver
Hardver

2 toplinske svjetiljke od 250 vata 1 radna svjetiljka od 500 vati (jedna od mojih toplinskih lampi je nestala, tako da je ovo stand-in) Arduino UnoDHT22 osjetnik temperature/vlageGA1A12S202 osjetnik svjetlaPowerSwitch 110V relejiBluefruit EZ-Link serijsko sučelje i programatorVisokotehnološko kućište (kada od gume u sendviču) Kabelska uvodnica 1/2 "ploča za kruh" Akrilna ploča za matičnu ploču i ArduinoAssorted kratkospojne žice. Coleman "traka za radionicu" s 5 utičnica "Također sam koristio Adafruit Trinket kao psa za nadzor hardvera, ali se pokazao nepotrebnim (jinx, naravno!) I ja napisao zasebne upute o tome pa to neću ovdje ponavljati. Coleman pigtail bio je lijep nalaz, jer mi je dao 4 utičnice za moje toplinske lampe PLUS izlaz za Arduino napajanje bez ikakvih dodatnih razdjelnika ili razdjelnika. Procijenjen na punih 15 ampera s prekidačem i unutarnjim prekidačem, mogao je podnijeti sve što sam mogao izvući kroz jednu utičnicu.

Korak 3: Pristup

Dok je sustav aplikacija napravljena da sjedi i čeka, te da neke stvari radi relativno sporo, ono što nisam htio učiniti je izgraditi sustav u kojem je kontroler sjedio u ciklusima delay () koji ne reagiraju. Također sam želio biti u mogućnosti promijeniti konfiguracijske parametre što je moguće bliže u hodu-svakako ne na način koji je zahtijevao ponovno pisanje koda ili masovno pretraživanje i zamjenu operacija na izvoru. pronašao je izvrsne članke Billa Earla o "Multitaskingu Arduinu" (počnite ovdje: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) i zaposlio se. Stvaranjem klasa "mjerač vremena" i "grijač" uspio sam izvršiti sve funkcije mjerenja vremena koje sam htio bez korištenja kašnjenja () (sa samo nekoliko iznimki) i konfigurirati žarulje ("grijači") s jednim retkom koda za svaki jedan.

Korak 4: Ožičite ga

Ožičenje
Ožičenje
Ožičenje
Ožičenje

Dijagram Fritzinga ne uključuje Bluefruit EZ-LinkArduino 5V i uzemljenje na sabirnicu matične pločeDHT22 pin 1 do 5V sabirnicuDHT22 pin 2 na Arduino pin 7DHT22 pin 4 na uzemljenu sabirnicu 10K otpornik između DHT22 pinova 1 i 2GA1A12S202 VCC pin na 5V sabirnicuGA1A12S202 sabirnicaGA1A12S202 OUT pin na Arduino A0Arduino 3V pin na Arduino AREF pinRelay Uzemljenje vodi na uzemljenje busRelay 1 napojni kabel na Arduino A1Relay 2 napojni kabel na Arduino A2Relay 3 napojni kabel na Arduino A3Relay 4 naponski kabel na Arduino A4. Jedini koji je kritičan je OUT izlaz na svjetlosnom senzoru koji mora otići na analogni pin. Ovaj pin-out će raditi s mojim kodom kako je napisan. Ako koristite hardverski nadzornik, vidjet ćete da moj kôd stavlja otkucaje srca na Arduino pin 2.

Korak 5: Arduino kod, glavna skica

CrawlSpace_monitor.ino

Korak 6: Bilješke o Kodeksu

Sljedeći redovi koda stvaraju instance grijača i definiraju radne parametre: // Grijač (relejPin, onTemp (f), offTemp (f), minMinutes, testInterval (minute), luxDelta) Grijač grijača1 = grijač (A1, 38, 43, 20, 1440, 5); grijač grijača2 = grijač (A2, 36, 41, 20, 1440, 5); grijač grijača3 = grijač (A3, 34, 39, 20, 1440, 5); grijač grijača4 = grijač (A4, 32, 37, 20, 1440, 5); (I da, definirao sam sva 4 grijača iako trenutno koristim samo 3. Morao bih još nabaviti drugi relej, ali tada bih dodavanjem četvrtog grijača biti jednostavan kao i uključivanje.) Zapanjujem njihove temperature okidača, počevši od 38 stupnjeva za prvi i završavajući na 32 za nepostojeći 4.. Jedna od stvari koje sam otkrio kad sam ovo počeo zajedno savijati je ta da sam trebao dati raspon temperature, kao i definirati minimalno "vrijeme gorenja", ili sam palio i gasio svjetla kao lud. Ovdje svakom od njih dajem raspon od 5 stupnjeva, kao i minimalno vrijeme gorenja od 20 minuta. Postavio sam interval ispitivanja na 24 sata i postavio 5 luksa kao minimalno očitanje svjetla koje mi je bilo potrebno kako bih utvrdio da žarulja još uvijek radi. Gotovo sve što je potrebno konfigurirati nalazi se upravo ovdje u ova 4 retka koda.

Korak 7: Arduino kod, klase

Napravio sam 3 klase za ovaj projekt. Bili su "mjerač vremena", "grijač" i "akumulator". S malo više razmišljanja trebao bih moći sklopiti akumulator u mjerač vremena, ali još nisam. Evo ih u cijelosti: grijač.h

mjerač vremena.h

akumulator.h

Korak 8: Nadgledanje sustava

Praćenje sustava
Praćenje sustava

Napravio sam jedno sučelje za dva odvojena monitora. To je interaktivna sesija preko serijske konzole. U mom slučaju koristim Bluefruit EZ-Link kako bih mogao pristupiti sustavu bez puzanja ispod kuće ili pokušaja provlačenja USB kabela između podnih greda! Dodatna prednost EZ-Linka je što mogu prenijeti novi programski kod na Arduino i putem Bluetootha. "Ljudskom" sučelju se može pristupiti (Bluetooth ili fizički kabel) sa bilo kojim softverom za emulaciju terminala, uključujući serijski Arduino IDE monitor. Kad se prvo povežete, nema odgovora, ali tipka pritisne "u" (za "ažuriranje") i "t" (za "test") i dobit ćete izlaz prikazan na snimci zaslona. "m" ("monitor") i "s" ("sys check") dobivaju iste podatke, ali u mnogo manje čitljivom formatu. Namjerava ih "ostrugati" drugi program za automatski prikaz. Sastavio sam Python skriptu koja radi upravo to. Bilo koji drugi ključ prikazuje prikazanu poruku o pogrešci. Vidjet ćete vrijednost za "vrijeme gorenja" - zamislite ovo kao "minute žarulje" - 1 žarulja 10 minuta = 10 minuta, 3 žarulje 10 minuta = 30 minuta.

Korak 9: Python skripta

Python skripta
Python skripta

crawlspace_gui.py

Korak 10: Još je potrebno učiniti…

Možda nije lijep ili savršen, ali učinkovit je i dokazuje se kao pouzdan. I, još ove zime nisam imao problema sa smrznutim cijevima !!! Imam hit-listu stvari koje trebam obaviti. Naravno, sada kad radi, možda ću i neću uspjeti postići većinu ovih stavki: Pokrenite Bluetooth na jednom od svojih Raspberry Pi -ja kako bih mogao stvoriti namjenski monitor. Naučite još Python -a zatim očistite Python sučelje. To razdvajanje elemenata nije namjerno i ne razumijem zašto je tu. Dodajte sučelje nečemu poput Adafruit -ove IO usluge kako bih ga mogao pratiti s bilo kojeg mjesta. Dodajte upozorenje tekstualnom porukom. Premjestite na manji kontroler (moguće Metro Mini ili Trinket Pro?), Jeftiniji releji i bolje pakiranje. Sklonite ga s matične ploče i na ploču "Perma Proto". Konfiguracijski parametri u EEPROM -u. Detaljnije sučelje koje će ukazivati na to - koje su žarulje dobre i možda čak i vrijeme sagorijevanja za pojedine žarulje. Kad ih završim, vratit ću se i ažurirati ovaj Instructable.

Korak 11: Ažurirajte 3/16, "stalnu" verziju

Ažuriranje 3/16,
Ažuriranje 3/16,
Ažuriranje 3/16,
Ažuriranje 3/16,
Ažuriranje 3/16,
Ažuriranje 3/16,

Kako sam se dobro odmorio po hladnom vremenu, dohvatio sam jedinicu i premjestio je na manji kontroler (namjeravao sam koristiti Trinket Pro, ali Adafruit Metro Mini je sjedio okolo bez ikakvog drugog projekta), lemio ga je na ploču Perma-Proto i sve to stavite u bolji slučaj. Na temelju toga koliko je pouzdan, nisam mu vratio nadzornika hardvera. Još uvijek koristim samo 3 svjetiljke/releja gdje će sustav rukovati 4. Bluetooth modul je na lemljenom zaglavlju pa se može ukloniti ako mi zatreba negdje drugdje. Nisu bile potrebne promjene koda za prelazak na novi kontroler - jednostavno ponovno sastavljanje i učitavanje pokrenulo me u nekoliko minuta. (Metro Mini ima identičan ispis kao Arduino Uno, a također je i ATMega328 procesor.)

Korak 12: Ažurirajte 1. 12. 2018 - dobrodošli u IoT

Sustav je za nas radio besprijekorno. Nakon dvije prilično oštre zime, NEMA smrznutih cijevi. Zapravo, sustav je mogao održavati cijevi bez da je ikada spalio više od 2 žarulje. Imati treću žarulju na mreži bilo je lijepo osiguranje, ali do sada nam to nikada nije trebalo.

Ulaskom u treću godinu za sustav, Bluetooth modul nije uspio. Izgradili smo i novu kuću, pa je sustav nadzora izvan dometa Bluetootha. (Stara kuća ostaje neko vrijeme budna, ali ne zauvijek.) U međuvremenu sam dosta radio s procesorom s omogućenim WiFi -om ESP8266; i u formatu Adafruit Feather i u formatu otvorenog koda "NodeMCU". NodeMCU se općenito može pronaći na Amazonu za oko 5 USD - mnogo manje ako kupujete na veliko i/ili od nekoga poput AliExpressa.

Ova nova verzija održava serijsko sučelje, pa se još uvijek može koristiti s Bluetooth modulom ili izravnom USB serijskom vezom i prethodnom python skriptom, međutim, nova verzija ima sučelje web-stranice. Kako je napisano, uključuje sljedeće značajke:

Upravitelj WiFi mreže za uklanjanje vjerodajnica za WiFi koje se teško kodiraju.

Mogućnost ažuriranja firmvera bežičnim putem pomoću Arduino IDE-a (sve dok ste na istoj WiFi mreži-imajte na umu da je nakon postavljanja USB-a na uređaj potrebno resetiranje prije nego što OTA ažuriranja rade). MOLIMO vas da promijenite OTA lozinku na retku 6 kako bi bila jedinstvena za vas !!

Web stranica koja prikazuje iste podatke kao i python skripta, s automatskim osvježavanjem svake minute. Nisam stavio nikakvu sigurnost na stranicu jer je samo za prikaz.

Novi kôd možete pronaći ovdje. Imajte na umu da se nazivi pinova mijenjaju pri prelasku na NodeMCU.

Preporučeni: