Sadržaj:

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

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

Video: Monitor svemirskog puzanja (poznat i kao: Nema više smrznutih cijevi !!): 12 koraka (sa slikama)
Video: ТРИ БЛЮДА НА НОВЫЙ ГОД 2024. Салат из капусты. Салат с Печенью! ЗАКУСКА С КАРТОШКОЙ И СЕЛЕДКОЙ 2024, Novembar
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 neogrevan prostor za puzanje. Ovim prostorom prolazi i sav vodovod u kuhinji i kupaonici. (Unutrašnji vodoinstalaterski radovi su sredinom 70-ih u ovoj kući bili zamišljeni kao pljuska!) Koristio sam toplinske lampe na termostatskim utikačima "rezervoar za skladištenje" za održavanje temperature iznad smrzavanja. Bilo je nekoliko značajnih problema sa ovim aranžmanom: 1 - Bez vidljivosti. Prvi znak izgorelih sijalica su smrznute cijevi! 2 - Ponekad se utikači ne bi mogli isključiti. Računi za struju doveli su do gadnih iznenađenja.3 - Nema detaljnosti. Držao sam 3 sijalice "na mreži" (ukupno 750 vata) i to je bilo rješenje za sve ili ništa. (2 sijalice 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 prepisao gotovo 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 da ga "progutam" - pa - nešto je kratko spojilo i dobio sam dašak čarobnog plavog dima. Sve je isprženo … Nemajući još jedan proboj CC3000 WiFi -a, ovaj put sam postupio drugačije. Napravio sam ga za interaktivno nadgledanje putem serijskog sučelja, a zatim dodao EZ-Link Bluetooth FTDI sučelje. (Nema više povlačenja laptopa ispod kuće radi ažuriranja softvera !!!) Takođe sam izgradio Python interfejs koji se povezuje sa jedinicom putem Bluetootha, redovno ga postavlja i prikazuje informacije o statusu na mom Macu. (Postoji i "ljudsko sučelje" kojem 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đe 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.2016. Ažuriranje/napomena: U pokušaju da se dobije odgovarajuće oblikovanje nekog koda (posebno uvlačenje Python koda), stvari su postale ružne do neupotrebljive. Siguran sam da je tu negdje moj problem i nastojat ću to riješiti. Do tada sam dodavao veze do datoteka koda putem DropBox -a. Oni bi trebali biti dostupni svima. U suprotnom, obavijestite me kako bih vam ih mogao dostaviti na drugi način!

Korak 1: Problemi za rješavanje

Sistem je za mene trebao učiniti sljedeće: 1 - nadzirati temperaturu u prostoru za puzanje. 2 - uključivati žarulje za grijanje po potrebi za održavanje temperature iznad smrzavanja. 3 - kad ne rade, povremeno testirati žarulje i omogućiti mi vidljivost njihovog statusa.4 - dajte mi prikaz temperature i statusa sistema, uključujući: - radi li sistem? - koja je temperatura SADA? - koja je najhladnija temperatura? - koliko sijalica je ispalo? - koliko sijalica je 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 uvlačim ispod kuće !!! Odlučio sam da je najlakši način za testiranje rada žarulje sa senzor svjetla. Neki drugi problemi koje sam htio riješiti je vrijeme ciklusa na svjetlima. Presporo, a sagorijevam nepotrebnu električnu energiju. Prebrzo i riskiram da ih izgorim pri svakom uključivanju i isključivanju s odgovarajućim zagrijavanjem i hlađenjem.

Korak 2: Hardver

Hardver
Hardver

2 toplotne lampe od 250 vati 1 radna lampa od 500 vati (jedna od mojih toplotnih svjetiljki je nestala, tako da je ovo stand-in) Arduino UnoDHT22 osjetnik temperature/vlageGA1A12S202 senzor svjetlaPreklopnik 110V releji Bluefruit EZ-Link serijsko sučelje i programatorVisokotehnična kada (gumena kada u sendviču)) Kablovska žica 1/2 "Oglasna ploča" Akrilna ploča za matičnu ploču i ArduinoAssorted kratkospojne žice. Colemanova "traka za radionicu" sa 5 utičnica Također sam koristio Adafruit Trinket kao hardverskog čuvara, ali se pokazao nepotrebnim (jinx, naravno!) I ja napisao zasebnu instrukciju o tome pa to neću ovdje ponavljati. Coleman pigtail je bio lijep nalaz, jer mi je dao 4 izlaza za moje toplinske lampe PLUS izlaz za Arduino napajanje bez ikakvih dodatnih razdjelnika ili razvodnika. 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 sistem aplikacija napravljena da sjedi i čeka, te da neke stvari radi relativno sporo, ono što nisam htio učiniti je izgraditi sistem u kojem je kontroler sjedio u ciklusima delay () koji ne reagiraju. Takođe sam želeo da mogu da promenim konfiguracijske parametre što je moguće brže u hodu-svakako ne na način koji je zahtevao ponovno pisanje koda ili masovno pretraživanje i zamenu operacija na izvoru. pronašao je izvrsne članke Billa Earla o "Multitasking Arduino" (počnite ovdje: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) i zaposlio se. Kreiranjem klasa "mjerač vremena" i "grijač" uspio sam obaviti sve funkcije mjerenja vremena koje sam htio bez korištenja kašnjenja () (sa samo nekoliko iznimaka) 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 uzemljenje sabirnice 10K otpornik između DHT22 pinova 1 i 2GA1A12S202 VCC pin na 5V sabirnicuGA1A12S202 busGA1A12S202 OUT pin na Arduino A0Arduino 3V pin na Arduino AREF pinRelay Uzemljenje vodi na uzemljenje busRelay 1 napojni vod na Arduino A1Relay 2 napojni vod na Arduino A2Relay 3 napojni kabel na Arduino A3Relay 4 naponski kabel na Arduino A4Možete li bilo koje od ovih veza stražnje strane želite. Jedini koji je kritičan je da OUT izlaz na svjetlosnom senzoru mora ići na analogni pin. Ovaj pin-out će raditi s mojim kodom kako je napisan. Ako koristite hardverski nadzornik, vidjet ćete da moj kod stavlja srce na Arduino pin 2.

Korak 5: Arduino kôd, glavna skica

CrawlSpace_monitor.ino

Korak 6: Napomene o Kodeksu

Sljedeći redovi koda stvaraju instance grijača i definiraju radne parametre: // Grijač (relejPin, onTemp (f), offTemp (f), minMinute, 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. Još bih trebao nabaviti još jedan relej, ali tada bi dodavanje četvrtog grijača Budite jednostavni poput uključivanja.) 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 kada sam ovo počeo zajedno kaliti je 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 stepeni, kao i minimalno vrijeme gorenja od 20 minuta. Postavio sam interval testiranja na 24 sata i postavio 5 luksa kao minimalno očitanje svjetla koje mi je bilo potrebno da utvrdim da li žarulja još radi. Gotovo sve što je potrebno konfigurirati nalazi se upravo ovdje u ove 4 linije koda.

Korak 7: Arduino kôd, klase

Napravio sam 3 klase za ovaj projekat. Bili su to "mjerač vremena", "grijač" i "akumulator". Uz malo više razmišljanja, mogao bih preklopiti akumulator u tajmer, ali još nisam. Evo ih u cijelosti: heater.h

timer.h

akumulator.h

Korak 8: Nadgledanje sistema

Nadgledanje sistema
Nadgledanje sistema

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 sistemu bez provlačenja ispod kuće ili pokušaja provlačenja USB kabela između podnih greda! Dodatna prednost EZ-Linka je to š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. Kada se prvo povežete, nema odgovora, ali tipka pritiska "u" (za "ažuriranje") i "t" (za "test") i dobit ćete izlaz prikazan na snimku ekrana. "m" ("monitor") i "s" ("sys check") dobivaju iste podatke, ali u mnogo manje čitljivom formatu. Namjerava se da ih "izgrebe" drugi program za automatski prikaz. Sastavio sam Python skriptu koja radi upravo to. Bilo koji drugi ključ prikuplja prikazanu poruku o grešci. Vidjet ćete vrijednost za "vrijeme sagorijevanja" - zamislite ovo kao "minute sijalice" - 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: Predstoji vam još…

Možda nije lijepo ili savršeno, ali je učinkovito i pokazalo se pouzdano. I, još ove zime nisam imao problema sa smrznutim cijevima !!! Imam hit-listu stvari koje trebam obaviti. Naravno, sad kad to 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 interfejs. 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 pojedinačne sijalice. Kako 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 bih se dobro odmorio po hladnom vremenu, uzeo sam jedinicu i premjestio je na manji kontroler (namjeravao sam koristiti Trinket Pro, ali sam imao Adafruit Metro Mini koji je sjedio okolo bez ikakvog drugog projekta), lemio ga je na ploča Perma-Proto i sve to stavite u bolji slučaj. Na osnovu toga koliko je pouzdan, nisam mu vratio nadzornika hardvera. Još uvijek koristim samo 3 lampe/releja gdje će sistem rukovati sa 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 kompajliranje i učitavanje pokrenuli su me za 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

Sistem je kod nas radio besprekorno. Nakon dvije prilično oštre zime, NEMA smrznutih cijevi. U stvari, sistem je mogao održavati cijevi bez da je sagorio više od 2 sijalice. Imati treću sijalicu na mreži bilo je lijepo osiguranje, ali do sada nam to nikada nije trebalo.

Ulaskom u 3. godinu sistema, Bluetooth modul nije uspio. Izgradili smo i novu kuću, tako da je sistem za nadzor izvan Bluetooth dometa. (Stara kuća ostaje budna neko vrijeme, ali ne zauvijek.) U međuvremenu sam dosta radio sa procesorom sa 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 bi se i dalje mogla koristiti s Bluetooth modulom ili direktnom USB serijskom vezom i prethodnom python skriptom, međutim, nova verzija ima sučelje web stranice. Kako je napisano, ona uključuje sljedeću značajku:

Upravitelj WiFi mreže za uklanjanje vjerodajnica WiFi za šifriranje koje se 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 da bi OTA ažuriranja funkcionirala). MOLIMO vas da promijenite OTA lozinku na liniji 6 kako bi bila jedinstvena za vas !!

Web stranica koja prikazuje iste podatke kao i python skripta, sa 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čuje se: