Turinys:

Crawl Space Monitor (dar žinomas kaip: No More Frozen Pipes !!): 12 žingsnių (su nuotraukomis)
Crawl Space Monitor (dar žinomas kaip: No More Frozen Pipes !!): 12 žingsnių (su nuotraukomis)

Video: Crawl Space Monitor (dar žinomas kaip: No More Frozen Pipes !!): 12 žingsnių (su nuotraukomis)

Video: Crawl Space Monitor (dar žinomas kaip: No More Frozen Pipes !!): 12 žingsnių (su nuotraukomis)
Video: Dirbu privačiame turtingųjų ir žinomų muziejuje. Siaubo istorijos. Siaubas. 2024, Lapkritis
Anonim
Crawl Space Monitor (dar žinomas kaip: No More Frozen Pipes !!)
Crawl Space Monitor (dar žinomas kaip: No More Frozen Pipes !!)

Vanduo į mano namus patenka iš mano šulinio per nešildomą nuskaitymo vietą. Visa virtuvės ir vonios santechnika taip pat eina per šią erdvę. (Vidaus vandentiekis šiam namui buvo aštri mintis aštunto dešimtmečio viduryje!) Aš naudoju šilumos lempas ant „rezervuaro“termostatinių kištukų, kad temperatūra būtų aukštesnė nei užšalimo. Su šiuo išdėstymu kilo keletas didelių problemų: 1 - nėra matomumo. Pirmasis išdegtų lempučių požymis yra užšalę vamzdžiai! 2 - Kartais kištukai neišsijungia. Tai sukėlė nemalonių staigmenų elektros sąskaitą. 3 - Nėra detalumo. Aš laikiau 3 lemputes „internete“(iš viso 750 vatų) ir tai buvo „viskas arba nieko“sprendimas. (2 lemputės ne visada su tuo susitvarkytų.) Po to, kai buvau supažindintas su „Arduino“ir pamačiau kai kuriuos dalykus, kuriuos kiti žmonės su juo darė, nusprendžiau, kad aš jį sukursiu. Iš čiaupo prisipažinsiu, kad, norėdamas atlikti šį darbą, begėdiškai sugriebiau ir pakoregavau pavyzdį iš kitų žmonių projektų, nors galiausiai viską perrašiau. Iš pradžių sukūriau šią „WiFi orų stotį“, kurią radau Adafruit.com ir jį pakeitė. Užuot atnaujinęs svetainę, aš naudoju „Amazon Web Services“, norėdamas atsiųsti SMS būsenos atnaujinimus. Taip pat pridėjau kai kurių 110 V relių valdymą (https://www.adafruit.com/products/268). Tada aš tapau „protingas“ir nusprendžiau jį „sutvirtinti“- na, kažkas kažką sutrumpino ir aš gavau magiškų mėlynų dūmų. Viskas kepta … Neturėdamas dar vieno „CC3000“„Wi -Fi“gedimo, šį kartą elgiausi kitaip. Sukūriau jį interaktyviai stebėti per nuosekliąją sąsają ir tada pridėjau „EZ-Link Bluetooth FTDI“sąsają. (Nebereikia vilkti nešiojamojo kompiuterio po namu, kad atnaujintumėte programinę įrangą !!!) Taip pat sukūriau „Python“sąsają, kuri jungiasi prie įrenginio per „Bluetooth“, reguliariai jo klausia ir rodo būsenos informaciją „Mac“. (Taip pat yra „žmogaus sąsaja“, prie kurios gali prisijungti bet kuri terminalo emuliacijos programinė įranga.) Dėl to, kad buvo perrašytas ir pašalintas visas „WiFi“ir RTC kodas, projekto dydis sumažėjo nuo daugiau nei 29 tūkst. Iki vos 10 tūkst. Tai taip pat pagerino patikimumą tiek, kad techninės įrangos stebėtojas per kelias savaites, kai jis veikia, visai nesuveikė ir aš keičiau.

16.02.17 Atnaujinimas/pastaba: bandant tinkamai suformatuoti kai kuriuos kodus (ypač „Python“kodo įtraukas), viskas tapo negražu ir tapo nenaudojama. Esu tikras, kad problema kažkur baigėsi, ir aš stengsiuosi ją išsiaiškinti. Iki tol pridėjau nuorodų į kodo failus per „DropBox“. Jie turėtų būti prieinami visiems. Jei ne, praneškite man, kad galėčiau juos pristatyti kitu būdu!

1 žingsnis: problemos, kurias reikia išspręsti

Sistema man turėjo atlikti šiuos veiksmus: 1 - stebėti temperatūrą nuskaitymo erdvėje. 2 - įjungti šilumos lempas, jei reikia, kad temperatūra būtų aukštesnė nei užšalimo. 3 - kai neveikia, periodiškai išbandykite lemputes ir suteikite man matomumo 4 - leiskite man matyti temperatūrą ir sistemos būseną, įskaitant: - ar sistema veikia? - kokia temperatūra DABAR? - kokia šalčiausia temperatūra? - kiek lempučių degė? - kiek lempučių yra geros? - koks yra mano bendras laikas „šviesiomis minutėmis“(dar žinomas kaip „degimo laikas“)? 5 - atlikite visus aukščiau išvardintus veiksmus, man nereikės lįsti po namu !!! Nusprendžiau, kad lengviausias būdas patikrinti lemputės veikimą buvo su šviesos jutiklis. Kai kurios kitos problemos, kurias norėjau išspręsti, buvo žibintų ciklo laikas. Per lėtai, ir aš deginu nereikalingą elektros energiją. Per greitai, ir aš rizikuoju sudeginti juos iš visų įjungimų ir išjungimų, susijusius su šildymu ir aušinimu.

2 žingsnis: Aparatūra

Aparatūra
Aparatūra

2 250 vatų šilumos lempos 1 500 vatų darbinė lempa (viena iš mano kaitrinių lempučių dingo, todėl tai yra nuolatinė įranga) „Arduino UnoDHT22“temperatūros/drėgmės jutiklis GA1A12S202 šviesos jutiklis „PowerSwitch“110 V relės „Bluefruit EZ-Link“nuosekli sąsaja ir programuotojas Aukštųjų technologijų dėklas (sumuštinio dydžio „Rubbermaid“vonia)) Kabelio liauka 1/2 dydžio duonos plokštė Akrilo plokštė, skirta duonos ir „Arduino“plokštėms. Įvairūs jungiamieji laidai. „Coleman“5 išėjimų „dirbtuvių juosta“Aš taip pat naudojau „Adafruit“niekučių kaip aparatūros sargybinį, tačiau jis pasirodė esąs nereikalingas (žinoma, jinx!) Ir aš apie tai parašė atskirą instrukciją, todėl čia to nekartosiu. „Coleman“košelė buvo puikus atradimas, nes ji suteikė man 4 lizdus mano šilumos lempoms ir „Arduino“maitinimo šaltinio lizdą be jokių papildomų skirstytuvų ar maitinimo elementų. Įvertintas visu 15 amperų stiprumu su jungikliu ir vidiniu pertraukikliu, jis galėtų valdyti viską, ką galėjau ištraukti per vieną lizdą.

3 žingsnis: požiūris

Nors sistema yra sukurta tam, kad būtų galima sėdėti ir laukti, o kai kuriuos dalykus atlikti palyginti lėtai, aš nenorėjau daryti sistemos, kurioje valdiklis sėdėjo uždelstais () ciklais, nereaguojant. Aš taip pat norėjau, kad galėčiau pakeisti konfigūracijos parametrus kuo arčiau skrydžio, kiek tik galėčiau gauti-tikrai ne taip, kad reiktų perrašyti kodą ar atlikti masines paieškos ir pakeitimo operacijas šaltinyje. rado geriausius Billo Earlo straipsnius „Multitasking the Arduino“(pradėkite čia: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) ir užsiėmėte. Sukūręs „laikmačio“ir „šildytuvo“klases, galėjau atlikti visas norimas laiko funkcijas nesinaudodamas delsimu () (tik su keliomis išimtimis) ir sukonfigūruoti lemputes („šildytuvus“) su viena kodo eilute kiekvienai vienas.

4 žingsnis: prijunkite

Sujungimas
Sujungimas
Sujungimas
Sujungimas

Į „Fritzing“diagramą neįtrauktas „Bluefruit EZ-LinkArduino 5V & Ground“prie duonos plokštės DHT22 kaištis nuo 1 iki 5 V magistralė DHT22 kontaktas 2 į „Arduino“kaištis 7 DHT22 kaištis 4 į įžeminimo magistralę „Arduino 3V“kištukas į „Arduino AREF“kaištį „Relay Ground“veda prie „Ground bus“. Vienintelis svarbus dalykas yra tai, kad šviesos jutiklio OUT laidas turi būti prijungtas prie analoginio kaiščio. Šis išjungimas veiks su mano kodu, kaip parašyta. Jei naudojate aparatūros stebėjimo šunį, pamatysite, kad mano kodas išleidžia širdies plakimą ant „Arduino“kaiščio 2.

5 žingsnis: „Arduino“kodas, pagrindinis eskizas

CrawlSpace_monitor.ino

6 žingsnis: Pastabos apie kodeksą

Šios kodo eilutės sukuria šildytuvo egzempliorius ir nustato darbo parametrus: // Šildytuvas (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (minutes), luxDelta) Šildytuvo šildytuvas1 = šildytuvas (A1, 38, 43, 20, 1440, 5); Šildytuvo šildytuvas2 = Šildytuvas (A2, 36, 41, 20, 1440, 5); Šildytuvas 3 = Šildytuvas (A3, 34, 39, 20, 1440, 5); Šildytuvas4 = Šildytuvas (A4, 32, 37, 20, 1440, 5); (Ir taip, aš apibrėžiau visus 4 šildytuvus, nors šiuo metu veikiu tik 3. Man vis tiek reikės gauti kitą relę, bet tada pridėjus ketvirtą šildytuvą būti taip paprasta, kaip prijungti.) Aš sukrečiu jų trigerio temperatūrą, pradedant nuo 38 laipsnių pirmajai ir baigiant 32, kai nėra 4. Vienas iš dalykų, kuriuos radau, kai pirmą kartą pradėjau šlifuoti, buvo tai, kad turėjau nurodyti temperatūros diapazoną, taip pat apibrėžti minimalų „degimo laiką“, arba aš kaip pašėlęs važinėdavau dviračiu. Čia kiekvienam iš jų duodu 5 laipsnių sklaidą ir 20 minučių minimalų degimo laiką. Aš nustatiau bandymo intervalą į 24 valandas ir nustatiau 5 liuksus kaip minimalų šviesos rodmenį, kurio reikia norint nustatyti, ar lemputė vis dar veikia. Beveik viskas, ką reikia konfigūruoti, yra čia, šiose 4 kodo eilutėse.

7 žingsnis: „Arduino“kodas, klasės

Šiam projektui sukūriau 3 klases. Jie buvo „laikmatis“, „šildytuvas“ir „akumuliatorius“. Šiek tiek daugiau pagalvojus, turėčiau sugebėti sulankstyti akumuliatorių į laikmatį, bet to dar nepadariau. Čia jie visiškai: šildytuvas.h

laikmatis.h

kaupiklis.h

8 žingsnis: stebėkite sistemą

Sistemos stebėjimas
Sistemos stebėjimas

Aš sukūriau vieną sąsają su dviem atskirais monitoriais. Tai interaktyvi sesija per serijinę konsolę. Mano atveju aš naudoju „Bluefruit EZ-Link“, kad galėčiau prieiti prie sistemos neslėpdamas po namu ir nebandydamas įkišti USB kabelio tarp grindų sijų! Papildomas „EZ-Link“pranašumas yra tas, kad galiu įkelti naują programos kodą į „Arduino“per „Bluetooth“. „Žmogaus“sąsają galima pasiekti („Bluetooth“arba fizinis kabelis) naudojant bet kurią terminalo emuliacinę programinę įrangą, įskaitant „Arduino IDE“serijos monitorius. Kai iš pradžių prisijungiate, atsakymo nėra, tačiau paspaudus klavišą „u“(„atnaujinti“) ir „t“(„testas“) gausite ekrano kopijoje parodytą išvestį. „m“(„monitorius“) ir „s“(„sys check“) suteikia tuos pačius duomenis, bet daug mažiau įskaitomu formatu. Juos ketina „nubraukti“kita automatinio rodymo programa. Aš sudėjau „Python“scenarijų, kuris tai daro. Bet koks kitas klavišas surenka rodomą klaidos pranešimą. Pamatysite „degimo laiko“vertę - pagalvokite apie tai kaip „lemputės minutės“- 1 lemputė 10 minučių = 10 minučių, 3 lemputės 10 minučių = 30 minučių.

9 veiksmas: „Python“scenarijus

„Python“scenarijus
„Python“scenarijus

crawlspace_gui.py

10 žingsnis: dar reikia padaryti…

Tai gali būti ne gražu ar tobula, tačiau ji yra veiksminga ir įrodo esanti patikima. IR, šią žiemą dar neturėjau jokių problemų su įšaldytais vamzdžiais !!! Turiu nuveiktų dalykų sąrašą. Žinoma, dabar, kai tai veikia, aš galiu arba negaliu atlikti daugelio šių dalykų: Įjunkite „Bluetooth“viename iš mano „Raspberry Pi“, kad galėčiau sukurti specialų monitorių. Sužinokite daugiau „Python“, tada išvalykite „Python“sąsaja. Šis elementų atskyrimas nėra tyčia, ir aš nesuprantu, kodėl taip yra. Pridėkite sąsają prie kažko panašaus į „Adafruit“IO paslaugą, kad galėčiau ją stebėti iš bet kurios vietos. Pridėkite įspėjimą apie tekstinius pranešimus. Pereikite prie mažesnio valdiklio (galbūt metro) „Mini“ar „Trinket Pro“?), Pigesnės relės ir geresnė pakuotė. Išimkite jį iš duonos lentos ir į „Perma Proto“plokštę. Konfigūracijos parametrai EEPROM. Smulkesnė sąsaja, kuri parodys, kurios lemputės yra geros, ir galbūt net degimo laikas atskiroms lemputėms. Kai juos padarysiu, grįšiu ir atnaujinsiu šią instrukciją.

11 veiksmas: atnaujinkite 3/16, „nuolatinį“kūrimą

Atnaujinta 3/16,
Atnaujinta 3/16,
Atnaujinta 3/16,
Atnaujinta 3/16,
Atnaujinta 3/16,
Atnaujinta 3/16,

Gerai pailsėjęs šaltu oru, paėmiau įrenginį ir perkėliau jį į mažesnį valdiklį (ketinau naudoti „Trinket Pro“, bet turėjau „Adafruit Metro Mini“, kurio niekas neprašė), prilipinau „Perma-Proto“plokštę ir sudėkite viską į geresnį dėklą. Atsižvelgdamas į tai, kiek jis buvo patikimas, aš negrąžinau į jį techninės priežiūros sargo. Aš vis dar naudoju tik 3 lempas/reles, kuriose sistema tvarkys 4. „Bluetooth“modulis yra ant lituotos antraštės, todėl gali būti pašalintas, jei man to reikia kur nors kitur. Nebuvo jokių kodo pakeitimų, būtinų norint pereiti prie naujo valdiklio - paprastas perkompiliavimas ir įkėlimas mane pradėjo veikti per kelias minutes. („Metro Mini“turi tą patį kištuką kaip „Arduino Uno“, taip pat yra „ATMega328“procesorius.)

12 veiksmas: atnaujinkite 2018-12-01 - Sveiki atvykę į internetą

Sistema pas mus veikė nepriekaištingai. Po dviejų gana atšiaurių žiemų NĖRA užšalusių vamzdžių. Tiesą sakant, sistema sugebėjo prižiūrėti vamzdžius, niekada nedegindama daugiau nei 2 lempučių. Turėti trečiąją lemputę internete buvo gražus draudimas, tačiau mums to niekada nereikėjo.

Artėjant sistemos 3 metams, „Bluetooth“modulis nepavyko. Mes taip pat pastatėme naują namą, todėl stebėjimo sistema yra gerokai už „Bluetooth“diapazono ribų. (Senas namas kurį laiką stovi, bet ne visam laikui.) Per tą laiką aš daug nuveikiau su procesoriumi, kuriame įgalintas „WiFi“su „WiFi“; tiek „Adafruit Feather“, tiek atvirojo kodo „NodeMCU“formatu. „NodeMCU“paprastai galima rasti „Amazon“už maždaug 5 USD - daug mažiau, jei perkate dideliais kiekiais ir (arba) iš tokio asmens kaip „AliExpress“.

Ši nauja versija palaiko nuosekliąją sąsają, todėl ją vis tiek galima naudoti su „Bluetooth“moduliu arba tiesioginiu USB nuosekliu ryšiu ir ankstesniu „python“scenarijumi, tačiau naujoji versija turi tinklalapio sąsają. Kaip parašyta, jame yra ši funkcija:

„WiFi“tinklo valdytojas pašalina sunkiai koduojančius „WiFi“prisijungimo duomenis.

Galimybė atnaujinti programinę-aparatinę įrangą belaidžiu ryšiu naudojant „Arduino IDE“(jei esate tame pačiame „WiFi“tinkle-atminkite, kad atlikus USB įkėlimą į įrenginį, reikia iš naujo nustatyti, kol OTA atnaujinimai veiks). Prašau pakeisti OTA slaptažodį 6 eilutėje, kad jis būtų unikalus !!

Tinklalapis, kuriame rodomi tie patys duomenys, kuriuos pateikia „python“scenarijus, automatiškai atnaujinant kiekvieną minutę. Puslapyje neuždėjau jokio saugumo, nes jis skirtas tik rodyti.

Naują kodą rasite čia. Atminkite, kad kaiščių pavadinimai keičiasi pereinant prie „NodeMCU“.

Rekomenduojamas: