Obsah:

Monitor procházení prostoru (aka: No More Frozen Pipes !!): 12 kroků (s obrázky)
Monitor procházení prostoru (aka: No More Frozen Pipes !!): 12 kroků (s obrázky)

Video: Monitor procházení prostoru (aka: No More Frozen Pipes !!): 12 kroků (s obrázky)

Video: Monitor procházení prostoru (aka: No More Frozen Pipes !!): 12 kroků (s obrázky)
Video: Abandoned American Home Holds Thousands Of Forgotten Photos! 2024, Listopad
Anonim
Crawl Space Monitor (aka: No More Frozen Pipes !!)
Crawl Space Monitor (aka: No More Frozen Pipes !!)

Voda do mého domu vychází z mé studny nevytápěným plazivým prostorem. Tímto prostorem prochází také veškeré instalatérské práce v kuchyni a koupelně. (Vnitřní instalatérství bylo v polovině 70. let v tomto domě nápadem!) Používal jsem tepelné žárovky na termostatických zástrčkách „zásobní nádrže“, abych udržel teplotu nad bodem mrazu. S tímto uspořádáním došlo k několika významným problémům: 1 - Žádná viditelnost. První známkou spálených žárovek jsou zamrzlé trubky! 2 - Někdy se zátky nevypnou. Díky tomu přišla nepříjemná překvapení s účtem za elektřinu. 3 - Žádná zrnitost. Nechal jsem 3 žárovky „online“(celkem 750 wattů) a bylo to řešení typu všechno nebo nic. (2 žárovky by to ne vždy zvládly.) Poté, co jsem byl představen Arduinu a viděl jsem některé věci, které s ním dělali jiní lidé, rozhodl jsem se, že to zkusím. Přiznám se hned ze skluzu, že jsem bezostyšně zachytil a upravil ukázkový kód z projektů jiných lidí, aby to fungovalo, i když nakonec jsem téměř všechno přepsal. Zpočátku jsem postavil tuto „WiFi meteorologickou stanici“, kterou jsem našel Adafruit.com a upravil jej. Místo aktualizace webových stránek jsem k zasílání aktualizací stavu SMS používal webové služby Amazon. Také jsem přidal ovládání některých 110V relé (https://www.adafruit.com/products/268). Potom jsem se stal „chytrým“a rozhodl jsem se to „zničit“- no - něco něco zkratovalo a já jsem se nadýchal kouzelného modrého kouře. Všechno smažené … Neměl jsem další CC3000 WiFi breakout, ale tentokrát jsem udělal věci jinak. Postavil jsem jej k interaktivnímu monitorování přes sériové rozhraní a poté jsem přidal rozhraní EZ-Link Bluetooth FTDI. (Už žádné přetahování notebooku pod dům kvůli aktualizacím softwaru !!!) Také jsem vytvořil rozhraní Python, které se připojuje k jednotce přes Bluetooth, pravidelně se ho dotazuje a zobrazuje informace o stavu na mém Macu. (Existuje také „lidské rozhraní“, ke kterému má přístup jakýkoli software pro emulaci terminálu.) V důsledku přepsání a odstranění veškerého kódu WiFi a RTC se projekt zmenšil z více než 29 kB na sotva 10 kB. Zlepšila se také spolehlivost do té míry, že se hardwarový hlídací pes za těch pár týdnů, co běží, vůbec nespouští a já dolaďuji.

17.2.16 Aktualizace/poznámka: Ve snaze získat správné formátování některého kódu (zejména odsazení kódu Pythonu) šlo vše od ošklivého k nepoužitelnému. Jsem si jistý, že problém je někde na mé straně, a budu se snažit na to přijít. Do té doby jsem přidal odkazy na soubory kódu prostřednictvím DropBoxu. Měly by být přístupné komukoli. Pokud ne, dejte mi prosím vědět, abych vám je mohl poskytnout jiným způsobem!

Krok 1: Problémy k řešení

Systém pro mě potřeboval provést následující věci: 1 - sledovat teplotu v plazivém prostoru. 2 - podle potřeby zapínat tepelné žárovky, aby se teplota udržela nad bodem mrazu. 3 - když není v provozu, pravidelně testujte žárovky a dávejte mi viditelnost 4 - Ukažte mi teplotu a stav systému, včetně: - běží systém? - jaká je TEĎ teplota? - jaká je nejchladnější teplota? - kolik žárovek proběhlo? - kolik žárovek se dobře testuje? - jaký je můj celkový čas ve „světelných minutách“(alias „době hoření“)? 5 - proveďte vše výše, aniž bych se musel plazit pod dům !!! Rozhodl jsem se, že nejjednodušší způsob testování provozu žárovky byl pomocí světelný senzor. Některé další problémy, které jsem chtěl řešit, byla doba cyklu na světlech. Příliš pomalu a spaluji zbytečnou elektřinu. Příliš rychle a riskuji, že je spálím ze všeho zapnutí a vypnutí se souvisejícím zahříváním a ochlazováním.

Krok 2: Hardware

Hardware
Hardware

2 250 wattové tepelné žárovky 1 500 wattová pracovní lampa (jedna z mých tepelných lamp zmizela, takže je to záložní) Senzor teploty Arduino UnoDHT22 Tepelný/HumitidyGA1A12S202 PowerSwitch 110V relé Bluefruit EZ-Link Sériové rozhraní a programátor High-tech pouzdro (sendvičová Rubbermaid vana) Kabelová vývodka Krájecí prkénko velikosti 1/2Akrylová deska na prkénko a ArduinoRozřazené propojovací vodiče. Coleman 5-zásuvkový "dílenský pás" Také jsem použil Adafruit Trinket jako hardwarový hlídací pes, ale ukázalo se, že není potřeba (samozřejmě jinx!) A já napsal o tom samostatný návod, takže to tu nebudu opakovat. Coleman pigtail byl pěkný nález, protože mi poskytl 4 zásuvky pro mé tepelné lampy PLUS zásuvku pro napájení Arduino bez dalších rozbočovačů nebo napájecích pásků. Jmenovitých plných 15 ampérů s vypínačem a interním jističem zvládlo vše, co jsem dokázal protáhnout jedinou zásuvkou.

Krok 3: Přístup

Zatímco systém je aplikace postavená tak, aby seděla a čekala a některé věci dělala relativně pomalu, to, co jsem nechtěl, bylo vytvořit systém, kde ovladač seděl v cyklech delay (), které nereagovaly. Také jsem chtěl mít možnost změnit konfigurační parametry co nejblíže za běhu-určitě ne způsobem, který by vyžadoval přepisování kódu nebo hromadné vyhledávání a nahrazování operací na zdroji. našel nejúžasnější články Billa Earla na téma „Multitasking the Arduino“(začněte zde: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) a dal si práci. Vytvořením tříd „časovač“a „ohřívač“jsem mohl provádět všechny požadované funkce časování bez použití delay () (pouze s několika výjimkami) a konfigurovat žárovky („ohřívače“) s jediným řádkem kódu pro každou jeden.

Krok 4: Zapojení

Zapojení
Zapojení
Zapojení
Zapojení

Fritzingův diagram nezahrnuje Bluefruit EZ-LinkArduino 5V a uzemnění na sběrnici DHT22 pin 1 až 5V sběrnice DHT22 pin 2 na Arduino pin 7DHT22 pin 4 to Ground bus10K odpor mezi piny DHT22 1 a 2GA1A12S202 VCC pin na 5V busGA1A12S202 GND pin busGA1A12S202 OUT pin na Arduino A0 Arduino 3V pin na Arduino AREF pinRelay Uzemnění vede na Ground busRelay 1 napájecí kabel na Arduino A1Relay 2 napájecí kabel na Arduino A2Relay 3 napájecí kabel na Arduino A3Relay 4 napájecí kabel na Arduino A4 Většinu těchto připojení lze přeskupit, jak chcete. Jediný, který je kritický, je, že výstup OUT na světelném senzoru musí jít na analogový pin. Tento pin-out bude fungovat s mým kódem tak, jak je napsán. Pokud používáte hardwarového hlídacího psa, uvidíte, že můj kód dává tlukot srdce na pin 2 Arduino.

Krok 5: Arduino Code, hlavní skica

CrawlSpace_monitor.ino

Krok 6: Poznámky ke kódu

Následující řádky kódu vytvářejí instance ohřívače a definují provozní parametry: // Ohřívač (reléPin, onTemp (f), offTemp (f), minMinutes, testInterval (minuty), luxDelta) Ohřívač ohřívač1 = Ohřívač (A1, 38, 43, 20, 1440, 5); Ohřívač topení 2 = Ohřívač (A2, 36, 41, 20, 1440, 5); Ohřívač ohřívače 3 = Ohřívač (A3, 34, 39, 20, 1440, 5); Ohřívač ohřívače 4 = Ohřívač (A4, 32, 37, 20, 1440, 5); (A ano, definoval jsem všechny 4 ohřívače, i když v současné době provozuji pouze 3. Stále bych potřeboval získat další relé, ale poté přidání 4. ohřívače by být tak jednoduché, jako zapojit.) Rozptýlím jejich spouštěcí teploty, začínající na 38 stupních pro první a končící na 32 pro neexistující 4. místo. Jednou z věcí, které jsem zjistil, když jsem to poprvé začal dláždit, bylo, že jsem potřeboval určit rozsah teploty a definovat minimální „dobu hoření“, nebo jsem cyklicky zapínal a vypínal světla. Zde dávám každému z nich šíření 5 stupňů a minimální dobu hoření 20 minut. Nastavil jsem testovací interval na 24 hodin a nastavil 5 luxů, protože minimální hodnota světla, kterou jsem potřeboval k určení, že žárovka stále funguje. Skoro všechno, co je potřeba konfigurovat, je právě zde v těchto 4 řádcích kódu.

Krok 7: Arduino Code, třídy

Pro tento projekt jsem vytvořil 3 třídy. Byly to „časovač“, „ohřívač“a „akumulátor“. S trochou přemýšlení bych měl být schopen složit akumulátor do časovače, ale zatím jsem to neudělal. Zde jsou v plném rozsahu: ohřívač. H

časovač. h

akumulátor. h

Krok 8: Monitorování systému

Monitorování systému
Monitorování systému

Vytvořil jsem jediné rozhraní pro dva samostatné monitory. Jedná se o interaktivní relaci přes sériovou konzolu. V mém případě používám Bluefruit EZ-Link, abych měl přístup k systému, aniž bych se plazil pod domem nebo se pokoušel vklouznout kabel USB mezi podlahové nosníky! Další výhodou EZ-Link je, že mohu nahrát nový programový kód do Arduina také přes Bluetooth. K „lidskému“rozhraní lze přistupovat (Bluetooth nebo fyzický kabel) pomocí jakéhokoli softwaru pro emulaci terminálu, včetně sériového IDE Arduino monitor. Když se zpočátku připojíte, nereaguje, ale stisknutím kláves „u“(pro „aktualizaci“) a „t“(pro „test“) získáte výstup zobrazený na snímku obrazovky. „m“(„monitor“) a „s“(„kontrola sys“) vám poskytnou stejná data, ale v mnohem méně čitelném formátu. Ty jsou určeny k „seškrábnutí“jiným programem pro automatické zobrazení. Sestavil jsem skript Pythonu, který to dělá. Jakýkoli jiný klíč sbírá zobrazené chybové hlášení. Zobrazí se hodnota „doba hoření“- představte si to jako „minuty žárovky“- 1 žárovka na 10 minut = 10 minut, 3 žárovky na 10 minut = 30 minut.

Krok 9: Skript Python

Python skript
Python skript

crawlspace_gui.py

Krok 10: Stále je co dělat…

Možná to není hezké nebo dokonalé, ale je to efektivní a osvědčuje se jako spolehlivé. A tuto zimu jsem ještě neměl žádné problémy se zamrzlým potrubím !!! Mám seznam úkolů, které mám dělat. Samozřejmě, teď, když to funguje, se mohu nebo nemusím někdy dostat k dosažení většiny z těchto položek: Nechte Bluetooth běžet na jednom z mých Raspberry Pi, abych mohl vytvořit vyhrazený monitor. Naučte se další Python - pak vyčistěte Python rozhraní. Toto oddělení prvků není účelové a nechápu, proč tam je. Přidejte rozhraní k něčemu, jako je služba IO Adafruit, abych jej mohl sledovat odkudkoli. Přidejte upozornění na textovou zprávu. Přejděte na menší ovladač (možná Metro) Mini nebo Trinket Pro?), Levnější relé a lepší balení. Získejte jej z prkénka a na desku „Perma Proto“. Konfigurační parametry v EEPROM. Podrobnější rozhraní, které bude indikovat - které žárovky jsou dobré, a možná i doba hoření pro jednotlivé žárovky. Jakmile je dokončím, vrátím se a aktualizuji tento Instructable.

Krok 11: Aktualizace 3/16, „trvalé“sestavení

Aktualizace 3/16,
Aktualizace 3/16,
Aktualizace 3/16,
Aktualizace 3/16,
Aktualizace 3/16,
Aktualizace 3/16,

Když jsem si v chladném počasí pořádně odpočinul, vyzvedl jsem jednotku a přesunul ji na menší ovladač (měl jsem v úmyslu použít Trinket Pro, ale nechal jsem sedět Adafruit Metro Mini nevyzvednutý jiným projektem), připájel jsem ho na desku Perma-Proto a vše v lepším případě. Na základě toho, jak spolehlivý byl, jsem na něj hardwarový hlídací pes nevrátil. Stále používám pouze 3 žárovky/relé, kde systém zvládne 4. Modul Bluetooth je na pájené hlavičce, takže jej lze odstranit, pokud ho potřebuji někde jinde. K přechodu na nový řadič nebyly nutné žádné změny kódu - jednoduché překompilování a načtení mi umožnily spustit během několika minut. (Metro Mini má stejný vývod jako Arduino Uno a je také procesorem ATMega328.)

Krok 12: Aktualizace 1. 1. 2018 - Vítejte v IoT

Systém pro nás fungoval bezchybně. Po dvou dosti krutých zimách BEZ zamrzlých trubek. Ve skutečnosti byl systém schopen udržovat potrubí, aniž by kdy spálil více než 2 žárovky. Mít třetí žárovku online bylo příjemné pojištění, ale k dnešnímu dni jsme ji nikdy nepotřebovali.

Při přechodu do roku 3 pro systém selhal modul Bluetooth. Postavili jsme také nový dům, takže monitorovací systém je mimo dosah Bluetooth. (Starý dům chvíli pobývá, ale ne navždy.) Mezitím jsem hodně pracoval s procesorem ESP8266 s podporou WiFi; jak ve formátu Adafruit Feather, tak ve formátu open-source „NodeMCU“. NodeMCU lze obecně nalézt na Amazonu za přibližně 5 dolarů - mnohem méně, pokud nakupujete hromadně a/nebo od někoho jako AliExpress.

Tato nová verze zachovává sériové rozhraní, takže ji lze stále používat s modulem Bluetooth nebo přímým sériovým připojením USB a předchozím skriptem pythonu, nicméně nová verze má rozhraní webové stránky. Jak bylo napsáno, obsahuje následující funkci:

Správce sítě WiFi, který eliminuje pevně kódovaná pověření WiFi.

Možnost aktualizovat firmware bezdrátově pomocí Arduino IDE (pokud jste ve stejné síti WiFi-mějte na paměti, že po odeslání USB do zařízení je zapotřebí reset, než budou fungovat aktualizace OTA). PROSÍM, změňte heslo OTA na řádku 6, aby bylo pro vás jedinečné !!

Webová stránka, která zobrazuje stejná data jako skript pythonu, s automatickým obnovováním každou minutu. Na stránku jsem nevložil žádné zabezpečení, protože je pouze pro zobrazení.

Nový kód najdete zde. Pamatujte, že názvy pinů se mění při přechodu na NodeMCU.

Doporučuje: