Obsah:

Monitor plazivého priestoru (aka: No More Frozen Pipes !!): 12 krokov (s obrázkami)
Monitor plazivého priestoru (aka: No More Frozen Pipes !!): 12 krokov (s obrázkami)

Video: Monitor plazivého priestoru (aka: No More Frozen Pipes !!): 12 krokov (s obrázkami)

Video: Monitor plazivého priestoru (aka: No More Frozen Pipes !!): 12 krokov (s obrázkami)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Monitor plazivého priestoru (aka: No More Frozen Pipes !!)
Monitor plazivého priestoru (aka: No More Frozen Pipes !!)

Voda do môjho domu pochádza z mojej studne nevykurovaným priestorom na plazenie. Týmto priestorom prechádzajú aj všetky kuchynské a kúpeľňové armatúry. (Vnútorné vodovodné potrubie bolo v polovici 70-tych rokov v tomto dome fackou!) Na udržanie teploty nad bodom mrazu používam tepelné žiarovky na termostatických zástrčkách „zásobníka“. S týmto usporiadaním došlo k niekoľkým významným problémom: 1 - Žiadna viditeľnosť. Prvým znakom vyhorených žiaroviek sú zamrznuté potrubia! 2 - Niekedy sa zátky nevypnú. Elektrický účet spôsobil nepríjemné prekvapenia. 3 - Žiadna zrnitosť. Nechal som 3 žiarovky „online“(spolu 750 wattov) a bolo to riešenie všetko alebo nič. (2 žiarovky by to nie vždy zvládli.) Po predstavení Arduinu a keď som videl niektoré veci, ktoré s ním robili iní ľudia, rozhodol som sa, že to dám do pohybu. Priamo zo žľabu sa priznám, že som bez hanby zachytil a upravil ukážkový kód z projektov iných ľudí, aby to fungovalo, aj keď nakoniec som takmer všetko prepísal. Pôvodne som postavil túto „WiFi meteorologickú stanicu“, na ktorej som našiel Adafruit.com a upravil ho. Namiesto aktualizácie webovej stránky som na odosielanie aktualizácií stavu SMS používal webové služby Amazon. Tiež som pridal ovládanie niektorých 110V relé (https://www.adafruit.com/products/268). Potom som začal byť „múdry“a rozhodol som sa to „pokaziť“- no - niečo niečo skratovalo a nadýchol som sa kúzla magického modrého dymu. Všetko vyprážané … Keďže som nemal ďalší výpadok siete CC3000 WiFi, tentoraz som urobil veci inak. Postavil som ho na interaktívne monitorovanie cez sériové rozhranie a potom som pridal rozhranie EZ-Link Bluetooth FTDI. (Už žiadne ťahanie notebooku pod dom kvôli aktualizácii softvéru !!!) Postavil som tiež rozhranie Python, ktoré sa k jednotke pripája prostredníctvom rozhrania Bluetooth, pravidelne sa ho pýta a zobrazuje informácie o stave na mojom počítači Mac. (Existuje aj „ľudské rozhranie“, ku ktorému má prístup akýkoľvek softvér na emuláciu terminálov.) V dôsledku prepísania a odstránenia celého kódu WiFi a RTC sa projekt zmenšil z viac ako 29 kB na sotva 10 kB. Zlepšila sa aj spoľahlivosť do tej miery, že sa hardvérový strážny pes za niekoľko týždňov, čo beží, vôbec nespustil a ja ho upravujem.

17.2.16 Aktualizácia/poznámka: Pri pokuse o správne formátovanie niektorého kódu (najmä odsadenie kódu Pythonu) išlo všetko od škaredého po nepoužiteľné. Som si istý, že problém je niekde na mojej strane, a pokúsim sa ho vyriešiť. Do tej doby som pridával odkazy na súbory kódu prostredníctvom DropBoxu. Mali by byť prístupné komukoľvek. Ak nie, dajte mi prosím vedieť, aby som vám ich mohol poskytnúť iným spôsobom!

Krok 1: Problémy, ktoré je potrebné vyriešiť

Systém potreboval pre mňa urobiť tieto veci: 1 - monitorovať teplotu v plazivom priestore. 2 - podľa potreby zapínať tepelné žiarovky, aby sa teplota udržala nad bodom mrazu. 3 - keď nie je v prevádzke, pravidelne testujte žiarovky a dávajte mi viditeľnosť ich stavu.4 - Ukážte mi teplotu a stav systému vrátane: - beží systém? - aká je teplota TERAZ? - aká je najchladnejšia teplota? - koľko žiaroviek bežalo? - koľko žiaroviek je dobrých? - aký je môj celkový čas za „svetelné minúty“(alias „doba horenia“)? 5 - urobte všetky vyššie uvedené opatrenia bez toho, aby som sa musel plaziť pod dom !!! Rozhodol som sa, že najľahší spôsob testovania prevádzky žiarovky je svetelný senzor. Niektoré ďalšie problémy, ktoré som chcel riešiť, bol čas cyklu na svetlách. Príliš pomaly a spaľujem nepotrebnú elektrinu. Príliš rýchlo a riskujem, že ich spálim zo všetkého zapínania a vypínania so súvisiacim zahrievaním a chladením.

Krok 2: Hardvér

Hardvér
Hardvér

2 250 wattové žiarovky 1 500 wattová pracovná lampa (jedna z mojich tepelných žiaroviek zmizla, takže je to záložné) Senzor teploty/vlhkosti Arduino UnoDHT22GA1A12S202 Napájací spínač 110V relé Sériové rozhranie a programátor Bluefruit EZ-Link High-tech puzdro (sendvičová gumená vana)) Káblová vývodka chlebová doska veľkosti 1/2Akrylová doska na dosku na chlieb a ArduinoRozdelené prepojovacie vodiče. Coleman 5-zásuvkový "dielenský pás" Tiež som použil Adafruit Trinket ako hardvérový strážny pes, ale ukázal sa, že nie je potrebný (samozrejme, jinx!) A ja napísal o tom samostatný návod, takže to tu nebudem opakovať. Coleman pigtail bol pekný nález, pretože mi poskytol 4 zásuvky pre tepelné žiarovky PLUS a zásuvku pre napájanie Arduino bez ďalších rozdeľovačov alebo rozvodiek. Menovitých 15 ampérov s vypínačom a vnútorným ističom zvládlo všetko, čo som dokázal vytiahnuť cez jednu zásuvku.

Krok 3: Prístup

Aj keď je systém zostavený tak, aby čakal a niektoré veci robil relatívne pomaly, to, čo som nechcel urobiť, bolo vytvoriť systém, v ktorom ovládač sedel v cykloch delay (), ktoré nereagovali. Tiež som chcel byť schopný zmeniť konfiguračné parametre čo najbližšie k behu-určite nie spôsobom, ktorý by vyžadoval prepisovanie kódu alebo hromadné vyhľadávanie a nahrádzanie operácií na zdroji. našiel najúspešnejšie články Billa Earla na tému „Multitasking the Arduino“(začnite tu: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) a dal si prácu. Vytvorením tried „časovač“a „ohrievač“som mohol vykonávať všetky požadované funkcie časovania bez použitia delay () (iba s niekoľkými výnimkami) a nakonfigurovať žiarovky („ohrievače“) s jediným riadkom kódu pre každú z nich. jeden.

Krok 4: Zapojenie

Zapojenie
Zapojenie
Zapojenie
Zapojenie

Fritzingov diagram nezahŕňa Bluefruit EZ-LinkArduino 5V a uzemnenie na nepájivú zbernicu DHT22 pin 1 až 5V zbernica DHT22 pin 2 na Arduino pin 7DHT22 pin 4 na uzemnenie zbernice 10K odpor medzi pinmi DHT22 1 a 2GA1A12S202 VCC pin na 5V zbernicuGA1A12S202 pin na GND busGA1A12S202 OUT pin na Arduino A0 Arduino 3V pin na Arduino AREF pinRelay uzemňovací vodič na uzemnenie zbernice Relé 1 napájací kábel na Arduino A1Relay 2 napájací kábel na Arduino A2Relay 3 napájací kábel na Arduino A3Relay 4 napájací kábel na Arduino A4Väčšinu z týchto pripojení je možné usporiadať tak, ako chcete. Jediný, ktorý je kritický, je VÝSTUPNÝ vodič na svetelnom senzore, ktorý musí ísť na analógový kolík. Tento pin-out bude fungovať s mojím kódom tak, ako je napísaný. Ak používate hardvérový strážny pes, uvidíte, ako môj kód uvádza tlkot srdca na pine 2 Arduino.

Krok 5: Kód Arduino, hlavná skica

CrawlSpace_monitor.ino

Krok 6: Poznámky ku kódexu

Nasledujúce riadky kódu vytvárajú inštancie ohrievača a definujú prevádzkové parametre: // Ohrievač (reléPin, onTemp (f), offTemp (f), minMinutes, testInterval (minúty), luxDelta) Ohrievač ohrievača1 = ohrievač (A1, 38, 43, 20, 1440, 5); ohrievač ohrievača 2 = ohrievač (A2, 36, 41, 20, 1440, 5); ohrievač ohrievača 3 = ohrievač (A3, 34, 39, 20, 1440, 5); ohrievač ohrievača 4 = ohrievač (A4, 32, 37, 20, 1440, 5); (A áno, definoval som všetky 4 ohrievače, aj keď momentálne používam iba 3. Stále by som potreboval získať ďalšie relé, ale potom by som pridal 4. ohrievač byť také jednoduché, ako ho zapojiť.) Rozptýlim ich spúšťacie teploty, počnúc prvým 38 stupňami a končiac 32 po neexistujúcom štvrtom. Jedna z vecí, ktoré som zistil, keď som to začal spolu miešať, bolo, že som potreboval dať rozsah teploty a definovať minimálny „čas horenia“, alebo som cyklicky zapínal a vypínal svetlá. Tu dávam každému z nich šírenie 5 stupňov a minimálny čas horenia 20 minút. Interval testu som nastavil na 24 hodín a nastavil som 5 luxov, pretože minimálne svetlo, ktoré som potreboval na to, aby som zistil, že žiarovka stále funguje. Skoro všetko, čo je potrebné nakonfigurovať, je práve v týchto 4 riadkoch kódu.

Krok 7: Arduino kód, triedy

Pre tento projekt som vytvoril 3 triedy. Boli to „časovač“, „ohrievač“a „akumulátor“. Pri troche dlhšej úvahy by som mal byť schopný zložiť akumulátor do časovača, ale zatiaľ som to neurobil. Tu sú v plnom znení: ohrievač.h

časovač.h

akumulátor.h

Krok 8: Monitorovanie systému

Monitorovanie systému
Monitorovanie systému

Vytvoril som jediné rozhranie pre dva samostatné monitory. Ide o interaktívnu reláciu cez sériovú konzolu. V mojom prípade používam Bluefruit EZ-Link, aby som mal prístup k systému bez toho, aby som sa plazil pod domom alebo sa pokúšal zasunúť kábel USB medzi podlahové nosníky! Ďalšou výhodou EZ-Link je, že môžem nahrať nový programový kód do Arduina aj cez Bluetooth. K „ľudskému“rozhraniu je možné pristupovať (Bluetooth alebo fyzický kábel) pomocou akéhokoľvek softvéru na emuláciu terminálov, vrátane sériového rozhrania Arduino IDE monitor. Keď sa spočiatku pripojíte, neodpovedá, ale stlačením klávesu „u“(„aktualizácia“) a „t“(„test“) získate výstup zobrazený na snímke obrazovky. „m“(„monitor“) a „s“(„kontrola sys“) vám poskytnú rovnaké údaje, ale v oveľa menej čitateľnom formáte. Tie sú určené na „zoškrabanie“iným programom na automatické zobrazenie. Zostavil som skript Pythonu, ktorý to robí. Akékoľvek ďalšie kľúče zobrazia chybové hlásenie. Zobrazí sa hodnota „doby horenia“- predstavte si to ako „minúty žiarovky“- 1 žiarovka na 10 minút = 10 minút, 3 žiarovky na 10 minút = 30 minút.

Krok 9: Skript Python

Skript Python
Skript Python

crawlspace_gui.py

Krok 10: Stále je čo robiť…

Možno to nie je pekné ani dokonalé, ale je to efektívne a ukazuje sa, že je spoľahlivé. A túto zimu som zatiaľ nemal žiadne problémy so zamrznutým potrubím !!! Mám zoznam úloh, ktorý mám robiť. Samozrejme, teraz, keď to funguje, sa môžem alebo nemusím niekedy dostať k splneniu väčšiny týchto položiek: Spustite Bluetooth na jednom z mojich Raspberry Pi, aby som mohol vytvoriť vyhradený monitor. Naučte sa viac Pythonu - potom Python vyčistite rozhranie. Toto oddelenie prvkov nie je účelové a nechápem, prečo tam je. Pridajte rozhranie k niečomu, ako je služba IO Adafruit, aby som ho mohol monitorovať odkiaľkoľvek. Pridajte upozornenie na textovú správu. Presuňte sa na menší ovládač (možno na metro) Mini alebo Trinket Pro?), Lacnejšie relé a lepšie balenie. Zoberte ho z dosky a na dosku „Perma Proto“. Konfiguračné parametre v EEPROM. Podrobnejšie rozhranie, ktoré bude indikovať - ktoré žiarovky sú dobré a možno dokonca aj doba horenia pre jednotlivé žiarovky. Keď ich dokončím, vrátim sa a aktualizujem tento návod.

Krok 11: Aktualizujte 3/16, „trvalú“zostavu

Aktualizácia 3/16,
Aktualizácia 3/16,
Aktualizácia 3/16,
Aktualizácia 3/16,
Aktualizácia 3/16,
Aktualizácia 3/16,

Keď si v chladnom počasí poriadne oddýchnem, zobral som jednotku a presunul ju na menší ovládač (mal som v úmysle použiť Trinket Pro, ale nechal som sedieť Adafruit Metro Mini, ktorý si nevybral žiadny iný projekt), spájkoval som ho doska Perma-Proto a dajte to všetko v lepšom prípade. Na základe toho, ako bol spoľahlivý, som naň hardvérového strážneho psa nevrátil. Stále používam iba 3 žiarovky/relé, kde systém zvládne 4. Modul Bluetooth je na spájkovanej hlavičke, takže ho možno odstrániť, ak ho potrebujem niekde inde. Na prechod na nový ovládač neboli potrebné žiadne zmeny kódu - jednoduché prekompilovanie a načítanie ma uviedli do prevádzky v priebehu niekoľkých minút. (Metro Mini má rovnaký vývod ako Arduino Uno a je tiež procesorom ATMega328.)

Krok 12: Aktualizácia 1. 12. 2018 - Vitajte na IoT

Systém pre nás fungoval bezchybne. Po dvoch dosť krutých zimách BEZ zamrznutej fajky. V skutočnosti bol systém schopný udržiavať potrubia bez toho, aby niekedy spálil viac ako 2 žiarovky. Mať tretiu žiarovku online bolo pekné poistenie, ale doteraz sme to nikdy nepotrebovali.

Modul Bluetooth, ktorý prešiel do tretieho roku, zlyhal. Postavili sme tiež nový dom, takže monitorovací systém je mimo dosahu Bluetooth. (Starý dom chvíľu zostane hore, ale nie navždy.) Medzitým som veľa robil s procesorom ESP8266 s podporou WiFi; vo formáte Adafruit Feather aj vo formáte open-source „NodeMCU“. NodeMCU možno vo všeobecnosti nájsť na Amazone za približne 5 dolárov - oveľa menej, ak nakupujete hromadne a/alebo od niekoho ako AliExpress.

Táto nová verzia zachováva sériové rozhranie, takže ju možno stále používať s modulom Bluetooth alebo priamym sériovým pripojením USB a predchádzajúcim skriptom python, nová verzia však má rozhranie webovej stránky. Ako bolo napísané, obsahuje nasledujúcu funkciu:

Správca siete WiFi na odstránenie naprogramovaných poverení WiFi.

Schopnosť aktualizovať firmvér bezdrôtovo pomocou Arduino IDE (pokiaľ ste v rovnakej sieti WiFi-všimnite si, že po nahraní USB do zariadenia je potrebný reset, než budú fungovať aktualizácie OTA). PROSÍM, zmeňte heslo OTA na riadku 6, aby bolo pre vás jedinečné !!

Webová stránka, ktorá zobrazuje rovnaké údaje ako skript python, s automatickým obnovovaním každú minútu. Na stránku som nevložil žiadne zabezpečenie, pretože slúži iba na zobrazenie.

Nový kód nájdete tu. Všimnite si toho, že názvy pinov sa menia pri prechode na NodeMCU.

Odporúča: