Kazalo:

Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 korakov (s slikami)
Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 korakov (s slikami)

Video: Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 korakov (s slikami)

Video: Crawl Space Monitor (aka: No More Frozen Pipes !!): 12 korakov (s slikami)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, November
Anonim
Crawl Space Monitor (aka: No More Frozen Pipes !!)
Crawl Space Monitor (aka: No More Frozen Pipes !!)

Voda v hišo prihaja iz mojega vodnjaka skozi neogrevan prostor za plazenje. Skozi ta prostor poteka tudi vsa vodovodna napeljava v kuhinji in kopalnici. (Vodovodne napeljave v zaprtih prostorih so bile sredi 70. let pozno v hiši!) Za vzdrževanje temperature nad lediščem sem uporabljal toplotne svetilke na termostatskih čepih "rezervoar". Pri tej ureditvi je bilo nekaj pomembnih težav: 1 - Ni vidljivosti. Prvi znak izgorelih žarnic so zamrznjene cevi! 2 - Včasih se čepi ne bi zaprli. To je povzročilo neprijetna presenečenja, prišel je račun za elektriko.3 - Brez podrobnosti. 3 žarnice sem hranil "na spletu" (skupaj 750 vatov) in to je bila rešitev na vse ali nič. (2 žarnici ne bi vedno zmogli.) Ko sem se seznanil z Arduinom in videl nekaj stvari, ki jih drugi počnejo z njim, sem se odločil, da ga vrtim. Priznam takoj, da sem brez sramu potegnil in predelal vzorčno kodo iz projektov drugih ljudi, da bi to uspelo, čeprav sem na koncu napisal skoraj vse. Sprva sem zgradil to "vremensko postajo WiFi", ki sem jo našel na Adafruit.com in ga spremenil. Namesto posodobitve spletnega mesta sem s spletnimi storitvami Amazon poslal posodobitve stanja SMS. Dodal sem tudi nadzor nekaterih 110V relejev (https://www.adafruit.com/products/268). Nato sem postal "pameten" in se odločil, da ga "razgibam" - no - nekaj je nekaj skrajšalo in dobil sem si zavitek čarobnega modrega dima. Vse ocvrto … Ker nisem imel več prekinitve CC3000 WiFi, sem tokrat naredil stvari drugače. Zgradil sem ga za interaktivno spremljanje prek serijskega vmesnika in nato dodal vmesnik EZ-Link Bluetooth FTDI. (Nič več vlečenja prenosnika pod hišo za posodobitve programske opreme !!!) Zgradil sem tudi vmesnik Python, ki se poveže z enoto prek Bluetootha, jo redno poizveduje in prikazuje informacije o stanju na mojem Macu. (Obstaja tudi "človeški vmesnik", do katerega lahko dostopate s katero koli programsko opremo za emulacijo terminala.) Zaradi ponovnega pisanja in odstranitve vse kode WiFi in RTC se je projekt zmanjšal z več kot 29K na komaj 10K. Izboljšala je tudi zanesljivost do te mere, da se nadzornik strojne opreme v nekaj tednih, ko je deloval, sploh ni sprožil in sem ga spreminjal.

17.2.16 Posodobitev/opomba: pri poskusu pravilnega oblikovanja nekaterih kod (zlasti zamika kode Python) so se stvari iz grdega spremenile v neuporabne. Prepričan sem, da je problem nekje na mojem koncu, in poskušal ga bom rešiti. Do takrat sem prek DropBox -a dodal povezave do kodnih datotek. Dostopni bi morali biti vsem. Če ne, mi to sporočite, da vam jih posredujem na drug način!

1. korak: Težave, ki jih je treba rešiti

Sistem je zame moral narediti naslednje: 1 - spremljati temperaturo v prostoru za plazenje. 2 - po potrebi prižgati žarnice za vzdrževanje temperature nad lediščem. njihovega statusa.4 - dajte mi vpogled v temperaturo in stanje sistema, vključno z: - ali sistem deluje? - kakšna je temperatura ZDAJ? - kaj je najhladnejša temperatura? - koliko žarnic je teklo? - koliko žarnic je dobro testiranih? - kolikšen je moj skupni čas v "svetlobnih minutah" (znan tudi kot "čas gorenja")? 5 - naredite vse zgoraj našteto, ne da bi mi bilo treba plaziti pod hišo !!! Odločil sem se, da bom najlažje preizkusil delovanje žarnice z svetlobni senzor. Nekatera druga vprašanja, ki sem jih želel rešiti, je bil čas cikla na lučkah. Prepočasen in kurim nepotrebno elektriko. Prehitro in tvegam, da jih požgem pri vseh vklopih in izklopih s pripadajočim segrevanjem in hlajenjem.

2. korak: Strojna oprema

Strojna oprema
Strojna oprema

2 250-vatne toplotne sijalke 1 500-vatna delovna svetilka (ena od mojih toplotnih svetilk je izginila, zato je to stojalo) Arduino UnoDHT22 senzor temperature/vlažnosti svetlobni senzor GA1A12S202 napajalni stikalo 110V releji Bluefruit EZ-Link serijski vmesnik in programer visokotehnološka omarica (kad iz gume v velikosti sendviča)) Kabelska žica 1/2 "Omarica velikosti 1/2" Akrilna plošča za ploščo in Arduino Amortirane žice mostov. "Delavniški trak" s petimi izhodi Coleman "Uporabil sem tudi Adafruit Trinket kot nadzornika strojne opreme, vendar se je izkazal za nepotrebnega (jinx, seveda!) In jaz o tem napisal ločeno navodilo, zato tega ne bom ponavljal tukaj. Colemanov pigtail je bil lepo najdba, saj mi je dal 4 vtičnice za moje toplotne svetilke PLUS in vtičnico za napajanje Arduino brez dodatnih cepilcev ali razdelilnikov. Nazivno pri polnih 15 amperih s stikalom in notranjim odklopnikom je zmogel vse, kar sem lahko potegnil skozi eno vtičnico.

3. korak: pristop

Medtem ko je sistem aplikacija, zgrajena za čakanje in nekatere stvari relativno počasi, nisem hotel zgraditi sistema, v katerem je krmilnik sedel v ciklih delay (), ki se niso odzivali. Želel sem tudi, da bi lahko čim bolj spremenil konfiguracijske parametre med letenjem-zagotovo ne na način, ki bi zahteval ponovno pisanje kode ali množično iskanje in zamenjavo virov. našel najbolj odlične članke Billa Earla o "večopravilnosti na Arduinu" (začnite tukaj: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) in se zaposlil. Z ustvarjanjem razredov "timer" in "grelec" sem lahko izvedel vse želene funkcije merjenja časa brez uporabe delay () (le nekaj izjem) in konfiguriral žarnice ("grelnike") z eno vrstico kode za vsako ena.

4. korak: Ožičenje

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

Diagram Fritzing ne vključuje Bluefruit EZ-LinkArduino 5V in ozemljitve na vodilo za matično ploščo DHT22 pin 1 do 5V vodilo DHT22 pin 2 na Arduino pin 7DHT22 pin 4 na ozemljitveno vodilo 10K upor 10K med DHT22 zatiči 1 in 2GA1A12S202 VCC pin za 5V vodiloGA1A12S202 busGA1A12S202 OUT pin na Arduino A0Arduino 3V pin na Arduino AREF pinRelay Ozemljitev vodi na ozemljitveno vodilo Napajalni kabel rele 1 na Arduino A1Relay 2 napajalni vodnik na Arduino A2Reley 3 napajalni kabel na Arduino A3Relay 4 napajalni kabel na Arduino A4. Edino, kar je kritično, je, da mora izhod OUT na svetlobnem senzorju iti na analogni pin. Ta pin-out bo deloval z mojo kodo, kot je napisana. Če uporabljate nadzornika strojne opreme, boste videli, da moja koda utripa na Arduino pin 2.

5. korak: Arduino koda, glavna skica

CrawlSpace_monitor.ino

6. korak: Opombe o kodeksu

Naslednje vrstice kode ustvarjajo primerke grelca in določajo obratovalne parametre: // Grelec (releyPin, onTemp (f), offTemp (f), minMinutes, testInterval (minute), luxDelta) Grelec grelnika1 = grelec (A1, 38, 43, 20, 1440, 5); Grelec grelnika2 = grelec (A2, 36, 41, 20, 1440, 5); grelec grelnika3 = grelec (A3, 34, 39, 20, 1440, 5); grelec grelnika4 = grelec (A4, 32, 37, 20, 1440, 5); (In ja, opredelil sem vse 4 grelnike, čeprav trenutno uporabljam samo 3. Še vedno bi moral dobiti drug rele, potem pa bi dodajanje 4. grelnika bodite tako preprosti, kot da ga priklopite.) Omamljam njihove sprožilne temperature, začenši pri 38 stopinjah za prvo in končajoč pri 32 za neobstoječo 4.. Ena od stvari, ki sem jih odkril, ko sem prvič začel to skupaj sestavljati, je bila ta, da sem moral določiti temperaturni razpon in določiti najmanjši "čas gorenja", ali pa sem kot noro prižgal in ugasnil luči. Tukaj vsakemu dam 5 stopinjski namaz in 20 minut najmanjšega časa gorenja. Preskusni interval sem nastavil na 24 ur in nastavil 5 luksov kot najmanjšo vrednost svetlobe, ki sem jo potreboval, da sem ugotovil, da žarnica še deluje. Skoraj vse, kar je potrebno konfigurirati, je tukaj v teh 4 vrsticah kode.

7. korak: Koda Arduino, razredi

Za ta projekt sem ustvaril 3 razrede. Bili so "časovnik", "grelec" in "akumulator". Z malo več razmišljanja bi lahko zložil akumulator v časovnik, vendar tega še nisem. Tukaj so v celoti: heater.h

timer.h

akumulator.h

8. korak: Nadzor sistema

Spremljanje sistema
Spremljanje sistema

Ustvaril sem en sam vmesnik za dva ločena monitorja. Gre za interaktivno sejo prek serijske konzole. V mojem primeru uporabljam Bluefruit EZ-Link, da lahko dostopam do sistema, ne da bi se plazil pod hišo ali poskušal kabla USB vleči med talne grede! Dodatna prednost EZ-Linka je, da lahko na Arduino naložim tudi novo programsko kodo prek Bluetootha. Do »človeškega« vmesnika lahko dostopate (Bluetooth ali fizični kabel) s katero koli programsko opremo za emulacijo terminala, vključno s serijsko programsko opremo Arduino IDE monitor. Ko se najprej povežete, ni odziva, vendar tipka pritisne "u" (za "posodobitev") in "t" (za "test"), da dobite izhod, prikazan na posnetku zaslona. "m" ("monitor") in "s" ("sys check") dobite iste podatke, vendar v precej manj berljivi obliki. Te naj bi "strgali" drugi programi za samodejni prikaz. Sestavil sem skript Python, ki to počne. Na katerem koli drugem ključu je prikazano sporočilo o napaki. Videli boste vrednost za "čas gorenja" - pomislite na to kot "minute žarnice" - 1 žarnica za 10 minut = 10 minut, 3 žarnice za 10 minut = 30 minut.

9. korak: Skript Python

Skript Python
Skript Python

crawlspace_gui.py

10. korak: Še je treba storiti …

Morda ni lep ali popoln, vendar je učinkovit in se izkaže za zanesljivega. IN, to zimo še nisem imel nobenih težav z zamrznjenimi cevmi !!! Imam seznam stvari, ki jih moram postoriti. Seveda, zdaj, ko to deluje, bom lahko ali pa tudi nikoli ne bom uspel doseči večine teh postavk: Zaženite Bluetooth na enem od svojih Raspberry Pi, da bom lahko ustvaril namenski monitor. Naučite se še nekaj Pythona - nato očistite Python vmesnik. Ta ločitev elementov ni namerno in ne razumem, zakaj je tam. Dodajte vmesnik na nekaj podobnega IO storitvi Adafruit, da ga lahko spremljam od koder koli. Dodajte opozorilo pri besedilnem sporočilu. Premaknite se na manjši krmilnik (po možnosti Metro Mini ali Trinket Pro?), Cenejše releje in boljšo embalažo. Vzemite ga s plošče na ploščo "Perma Proto". Konfiguracijski parametri v EEPROM -u. Bolj natančen vmesnik, ki bo pokazal, katere žarnice so dobre, in morda celo čas gorenja za posamezne žarnice. Ko jih opravim, se bom vrnil in posodobil ta Instructable.

11. korak: Posodobite 3/16, "trajno" zgradbo

Posodobitev 3/16,
Posodobitev 3/16,
Posodobitev 3/16,
Posodobitev 3/16,
Posodobitev 3/16,
Posodobitev 3/16,

V hladnem vremenu sem si dobro privoščil enoto in jo premaknil na manjši krmilnik (nameraval sem uporabiti Trinket Pro, vendar je Adafruit Metro Mini sedel naokoli, za katerega noben drug projekt ni zahteval), ga spajkal na ploščo Perma-Proto in vse skupaj postavite v boljši primer. Glede na to, kako zanesljiv je bil, nanj nisem postavil nadzornika strojne opreme. Še vedno uporabljam samo 3 svetilke/releje, kjer bo sistem upravljal s 4. Modul Bluetooth je na spajkani glavi, zato ga lahko odstranim, če ga potrebujem kje drugje. Za prehod na nov krmilnik ni bilo treba spremeniti kode - preprosto ponovno zbiranje in nalaganje sta me zagnala v nekaj minutah. (Metro Mini ima enak pinout kot Arduino Uno in je tudi procesor ATMega328.)

12. korak: Posodobitev 1. 1. 2018 - dobrodošli v IoT

Sistem je pri nas deloval brezhibno. Po dveh precej hudih zimah, brez zamrznjenih cevi. Pravzaprav je sistem lahko vzdrževal cevi, ne da bi kdaj zažgal več kot 2 žarnici. Tretja žarnica na spletu je bila lepo zavarovanje, vendar je do danes še nismo potrebovali.

Prihod v 3. leto sistema, modul Bluetooth ni uspel. Zgradili smo tudi novo hišo, zato je nadzorni sistem precej izven dosega Bluetooth. (Stara hiša ostane nekaj časa budna, vendar ne za vedno.) V vmesnem času sem veliko delal s procesorjem, ki podpira WiFi ESP8266; tako v formatu Adafruit Feather kot v odprtokodnem formatu "NodeMCU". NodeMCU lahko na Amazonu običajno najdete za približno 5 USD - veliko manj, če kupujete v razsutem stanju in/ali pri nekom, kot je AliExpress.

Ta nova različica ohranja serijski vmesnik, zato jo lahko še vedno uporabljamo z modulom Bluetooth ali neposredno serijsko povezavo USB in prejšnjo skripto python, vendar ima nova različica vmesnik za spletno stran. Kot je napisano, vsebuje naslednjo funkcijo:

Upravitelj omrežja WiFi za odpravo trdo kodiranih poverilnic WiFi.

Možnost posodabljanja vdelane programske opreme brezžično z uporabo Arduino IDE (dokler ste v istem omrežju WiFi-upoštevajte, da je po nalaganju USB v napravo potrebna ponastavitev, preden bodo delovale posodobitve OTA). Prosimo, spremenite geslo OTA v vrstici 6, da bo edinstveno za vas !!

Spletna stran, ki prikazuje iste podatke kot skript python, s samodejno osvežitvijo vsako minuto. Na stran nisem postavil nobene zaščite, ker je samo za prikaz.

Novo kodo najdete tukaj. Upoštevajte, da se imena pin spremenijo, ko se premaknete v NodeMCU.

Priporočena: