Obsah:

Senzor úniku vody na ESP8266 + Micropython + Domoticz: 16 krokov (s obrázkami)
Senzor úniku vody na ESP8266 + Micropython + Domoticz: 16 krokov (s obrázkami)

Video: Senzor úniku vody na ESP8266 + Micropython + Domoticz: 16 krokov (s obrázkami)

Video: Senzor úniku vody na ESP8266 + Micropython + Domoticz: 16 krokov (s obrázkami)
Video: Сушка подвала гаража с помощью метеостанции на контроллере ESP8266, отчет после первых суток. 2024, November
Anonim
Senzor úniku vody na ESP8266 + Micropython + Domoticz
Senzor úniku vody na ESP8266 + Micropython + Domoticz
Senzor úniku vody na ESP8266 + Micropython + Domoticz
Senzor úniku vody na ESP8266 + Micropython + Domoticz

Pred nejakým časom ma manželka požiadala, aby som urobil snímač úniku vody. Bála sa, že hadica v kotolni môže byť netesná a voda zaplaví novo položenú drevenú podlahu. A ako skutočný inžinier som sa podujal urobiť taký snímač.

Z mojej 15 -ročnej praxe zdravotného inžiniera viem, že najľahším spôsobom detekcie vody sú kovové kolíky skratované vodou. Princíp činnosti najjednoduchších senzorov je, že voda musí skratovať dva (alebo viac) kovových kolíkov, a akonáhle sa to stane, spustí sa alarm.

Krok 1: Hardvér

Hardvér
Hardvér

Na tento projekt potrebujeme:

1. modul ESP8266 - 01

2. Modul napájania lineárneho regulátora HT7333 3,3 V MS s nízkym výpadkom

Tento modul potrebujeme na zníženie napätia z batérie na prijateľnú úroveň pre ESP8266. Podľa technického listu by mal byť vstup 3 V až 3,6 V. Tento modul nám dáva 3,3V.

3. Batéria. Používam 3, 7V Li-ion 400mAh batériu. V skutočnosti môžete použiť akýkoľvek iný vhodný zdroj energie. Batéria 18650 je tiež dobrou voľbou. Pri výbere batérie majte na pamäti, že ESP „žerie“asi 200 mA pri pripojení k sieti WiFi a asi 60 mA sa používa pri načítaní údajov na server.

4. Doska na nabíjanie batérie TP4056 Lipo.

5. Pololu mini tlačidlo napájania Vypínač Veľmi zaujímavá malá doska. Umožnilo nám to prepnúť modul ESP iba vtedy, keď je detekovaná voda. ESP nemusíte mať zapnuté. Je to teda dobré na úsporu nabitia batérie.

6. Bývanie7. Dvojitý mikrospínač ON-OFF. Jeden riadok slúži na zapnutie zariadenia. Druhý riadok je na testovanie - skratuje obvod bez vody, len aby sme vedeli, či zariadenie funguje alebo nie.

8. Mikropočítač Raspberry Pi

Používam Raspberry Pi Zero. Je dostatočne výkonný na spustenie servera Domoticz.

Krok 2: Softvér

Na vašom počítači:

1. nainštalovaný esptool na vymazanie modulov a blikajúci firmvér

2. Ampy nainštalovaný, pre flashovanie vášho programu

3 Odporúča sa Python 3.6 alebo vyšší

4. Akýkoľvek editor kódu, ktorý chcete. Najjednoduchšie - Python IDLE, ktorý sa bežne inštaluje s Pythonom. Na Raspberry Pi používam Pycharm / Atom alebo Anaconda Spyder

5. Server Domoticz nainštalovaný na Raspberry Pi (alebo na bežnom počítači so systémom Windows alebo Linux)

Krok 3: Príprava Raspberry Pi - Nainštalujte Domoticz

Vezmite si teda RPi a nainštalujte operačný systém vhodný na spustenie servera Domoticz.

Môžete postupovať podľa týchto pokynov.

Odtiaľto používam Raspbian Stretch with Desktop:

Ďalším krokom je inštalácia servera Domoticz na váš počítač. Návod môžete použiť tu alebo tu:). Nebojte sa, nie je to také ťažké. Očividne musíte bežať na svojom termináli:

curl -L install.domoticz.com | sudo bash

A je to:) viac -menej. Nastavenie Domoticz

Teraz, keď je náš server pripravený, môžeme k nemu pristupovať z akéhokoľvek webového prehliadača, vrátane tabletu, zadaním nasledujúcej adresy URL: https:// IP_domoticz: 8080

Krok 4: Nastavenie Domoticz

Nastavenie Domoticz
Nastavenie Domoticz

Teraz, keď je náš server pripravený, môžeme k nemu pristupovať z akéhokoľvek webového prehliadača, vrátane tabletu, zadaním nasledujúcej adresy URL: https:// IP_domoticz: 8080

Krok 5: Upravte nastavenia aplikácie

Upravte nastavenia aplikácie
Upravte nastavenia aplikácie
Upravte nastavenia aplikácie
Upravte nastavenia aplikácie

Prostredníctvom programu Setup | je možné nastaviť rôzne nastavenia aplikácie Ponuka nastavení.

Ponuka Nastavenia s rôznymi kartami vám umožňuje zadať osobné parametre potrebné pre lepšie fungovanie systému. Po zadaní údajov do polí ich musíte uložiť pomocou červeného tlačidla „Použiť nastavenia“. Po tejto akcii sa všetky polia hesla, ktoré boli pri prvom prístupe prázdne, zobrazia s dlhým reťazcom hviezdičiek, aj keď neboli použité.

Po vykonaní hlavného nastavenia na stránke „Systém“kliknite na „Upozornenia“. Tu musíme nastaviť, aké typy upozornení budeme používať.

Krok 6: Nastavenie upozornení

Nastaviť upozornenia
Nastaviť upozornenia

Oznámenia je možné odosielať napríklad pri stlačení vypínača, pri príliš vysokej spotrebe elektriny, pri vysokej teplote a pri mnohých ďalších možnostiach.

V našom prípade je potrebné oznámenia odosielať hneď, ako snímač detekuje vodu. Stačí teda zapnúť tie, ktoré chcete použiť. Na fungovanie upozornení zvyčajne tiež potrebujete kľúč API. Trochu vpred poviem, že som vyskúšal Pushover, Pushsafer a Pushbullet. A zostal som u Pushovera. Neskôr poviem prečo.

Niekoľko slov o tom, ako fungujú upozornenia. Musíte mať účet na Pushbullet, Pushover alebo na iných stránkach, ktoré by ste chceli používať. Budete tiež potrebovať aplikáciu vo svojom mobilnom telefóne alebo počítači.

Získajte kľúč API a vložte ho na stránku vyššie. Oznámenie môžete otestovať kliknutím na položku „Testovať“. Ak je kľúč API správny, mali by ste dostať testovacie oznámenia na svoj mobilný telefón.

Hneď ako senzor zaznamená vodu, ESP sa zapne a odošle požiadavku na server Domoticz vo formáte JSON. Ak sú splnené podmienky na spustenie udalosti (odoslanie oznámenia na váš mobilný telefón), Domoticz odošle upozornenie.

Neskôr sa vrátim k „udalostiam“.

Krok 7: Nastavte komunikáciu s hardvérovými zariadeniami

Nastavte komunikáciu s hardvérovými zariadeniami
Nastavte komunikáciu s hardvérovými zariadeniami
Nastavte komunikáciu s hardvérovými zariadeniami
Nastavte komunikáciu s hardvérovými zariadeniami
Nastavte komunikáciu s hardvérovými zariadeniami
Nastavte komunikáciu s hardvérovými zariadeniami

Predtým, ako budete môcť používať aplikáciu Domoticz na ovládanie zariadení alebo čítanie senzorov, musíte nastaviť komunikáciu na hardvérové zariadenia. Ak chcete pridať hardvér, vyberte položku Nastavenie | Hardvér. Zariadenia sa nezobrazia, kým nepridáte príslušný hardvér.

Aplikácia Domoticz natívne podporuje mnoho hardvérových zariadení. V našom prípade, aby sme mohli prečítať náš povodňový senzor, musíme do zoznamu hardvéru pridať takzvaný „atrapu“hardvéru.

Po pridaní hardvéru sa zobrazí prehľad všetkých definovaných hardvérov. Hardvér je možné deaktivovať alebo vymazať.

Nový hardvér by mal byť v zozname a malo by tam byť tlačidlo „Vytvoriť virtuálne senzory“.

Kliknite na toto tlačidlo a zvoľte Typ senzora "Výstraha". Teraz musíme zariadenie pridať do Domoticz, aby sa stalo aktívnym.

Krok 8: Pridajte zariadenie do Domoticz, aby sa stalo aktívnym

Pridajte zariadenie do Domoticz, aby ste sa stali aktívnymi
Pridajte zariadenie do Domoticz, aby ste sa stali aktívnymi
Pridajte zariadenie do Domoticz, aby ste sa stali aktívnymi
Pridajte zariadenie do Domoticz, aby ste sa stali aktívnymi
Pridajte zariadenie do Domoticz, aby ste sa stali aktívnymi
Pridajte zariadenie do Domoticz, aby ste sa stali aktívnymi

Všimnite si prosím nižšie uvedené číslo „IDX“. Toto je jedinečný odkaz na toto zariadenie a potrebujeme ho neskôr v našom skripte Python na riešenie adries. V tomto prípade je IDX číslo 1.

Zapnite zariadenie kliknutím na zelenú šípku vľavo (na mojom obrázku nižšie je modrá, pretože je zariadenie zapnuté).

Vyplňte názov zariadenia a kliknite na „pridať“.

Prejdite do ponuky „Pomôcky“a tam by malo byť uvedené vaše zariadenie.

Teraz musíme naprogramovať „udalosť“pre náš senzor. To znamená, že musíme serveru povedať, čo robiť v prípade, že mu prišla správa zo senzora. A bolo to, povedzme, najťažšie miesto pre mňa:).

Krok 9: Takto to nefunguje …

Takto to nefunguje…
Takto to nefunguje…

Začal som pokusom naprogramovať udalosť na stránke / zariadenie /. Toto nižšie nie je moje, ale ilustrovať to je v poriadku.

Ak veríte, že začiarknete niektoré začiarkavacie políčka a bude to fungovať, mýlite sa:) Takto to nefunguje. Myslím, že táto funkcia tu ešte nie je dokončená. Nezabudnite - je to softvér s otvoreným zdrojovým kódom. Ok, po niekoľkých hodinách som našiel riešenie. Musíme použiť „Udalosti“z rozbaľovacej ponuky „Nastavenie“.

Po kliknutí na položku „Udalosti“si môžete vytvoriť vlastnú udalosť. Môžete to urobiť napísaním kódu v Pythone alebo LUA alebo jednoducho pomocou veci s názvom „Blockly“. Rozhodol som sa použiť Blockly. Existujú dva spôsoby, ako prinútiť server, aby urobil to, čo chcete.

Krok 10: Vytvorte udalosť správnym spôsobom 1

Vytvorte udalosť správnym spôsobom 1
Vytvorte udalosť správnym spôsobom 1

1. Spustite externý súbor pomocou položky „Udalosti“pomocou blokovanej správy „Spustiť skript“

Funguje mi to perfektne na počítači so systémom Windows. S týmto som ale neuspel na Raspbiane na mojom Raspberry Pi. Mám podozrenie, že je problém s povoleniami.

Krok 11: Vytvorte udalosť správnym spôsobom 2

Budujte udalosť správnym spôsobom 2
Budujte udalosť správnym spôsobom 2

2. Použite správu „Odoslať upozornenie s predmetom“. Funguje na Raspbian. Táto možnosť podporuje odosielanie upozornení na služby Pushsafe a Pushover.

Výhodou použitia prvého spôsobu je, že je flexibilnejší. Môžete si vybrať ikonu, ktorá sa má zobrazovať na vašom displeji, zvukoch a podobne. Moja „udalosť“je zobrazená na obrázku vyššie.

Ďalej naprogramujme modul ESP.

Krok 12: Programovanie modulu ESP8266-01

Programovanie modulu ESP8266-01
Programovanie modulu ESP8266-01

Začnime blikaním nášho modulu ESP8266. Tieto moduly sa bežne dodávajú s továrenským firmvérom. s modulmi je možné komunikovať pomocou takzvaných AT príkazov. Tento softvér tiež neumožňuje používať moduly ako samostatné ovládače. Aby sme ich mohli používať ako samostatné ovládače, musíme vymazať továrenský firmvér a nainštalovať nový.

Na tento účel použijeme esptool. Potom musíme modul pripojiť k počítaču a vymazať firmvér. Na to potrebujete prevodník TTL + niekoľko ďalších komponentov. Existuje ale jednoduchší spôsob:). Stačí kúpiť na aliexpress alebo ebay USB to ESP8266 ESP-01 Wi-Fi Adapter Module w/ CH340G Driver.

Pripojte modul ESP8266 k prevodníku TTL, ako je znázornené na obrázku, a pripojte ho k portu USB.

Ak máte rovnaký prevodník ako ja, musíte sám prepnúť prepínač do polohy „Prog“. Zistite, kde je nainštalovaný esptool (zvyčajne niekde ako C: / Program Files (x86) Python36-32 / Scripts. Prejdite do tohto priečinka a spustite tam príkazový riadok. Typ: python esptool.exe --port COM5 erase_flash

Samozrejme zvoľte správny port. V mojom prípade je to COM5. Port, na ktorom je nainštalovaný ESP, môžete skontrolovať v časti Ovládací panel - Systém - Správca zariadení.

Nainštalujte firmvér (prevzal som ho tu: https://micropython.org/download#esp8266) zadaním:

python esptool.exe --port COM5 --baud 460800 write_flash --flash_size = detekovať 0 C: / path_to_firmware / esp8266-20180511-v1.9.4.bin

Ok, teraz sme pripravení nahrať skripty mikropythona do ESP8266.

Na to používam nástroj Adafruit MicroPython Tool (ampy).

V dnešnej dobe však existuje aj iná možnosť s názvom Esplorer. Jedná sa o aplikáciu s užívateľským rozhraním, ktorá umožňuje nahrávať súbory do modulov ESP.

Tu nájdete pokyny na inštaláciu ampy. Prepnite teda prepínač na prevodníku TTL do polohy „UART“. Budeme musieť nahrať súbory:

  • wifimgr.py - správca wifi pre pripojenie k wifi sieti
  • main.py - náš hlavný skript

Do príkazového riadka zadajte: ampy --port COM5 vložte C: / cestu k vášmu súboru

Kliknite na „Enter“. Po niekoľkých sekundách by ste mali vidieť prázdny príkazový riadok. To znamená, že súbor bol nahraný. Zoznam súborov v ESP môžete skontrolovať pomocou príkazu ampy:

ampy --port COM5 ls

Podľa mojich skúseností je lepšie nahrať súbor main.py po nahraní všetkých potrebných súborov. je to tak, pretože akonáhle nahráte main.py - modul ESP8266 sa reštartuje a začne vykonávať súbor main.py. Takže v tomto prípade, ak sa pokúsite nahrať iný súbor, proces nahrávania niekedy zlyhá. To však neznamená, že je všetko stratené:), skúste to druhýkrát a budete úspešní (opäť z mojej skúsenosti).

Všetky súbory pre tento projekt sú dostupné tu:

Krok 13: Pripojte sa k svojej sieti WiFi. Získajte upozornenie

Pripojte sa k svojej WiFi sieti. Získajte upozornenie
Pripojte sa k svojej WiFi sieti. Získajte upozornenie
Pripojte sa k svojej WiFi sieti. Získajte upozornenie
Pripojte sa k svojej WiFi sieti. Získajte upozornenie

ak je všetko v poriadku, reštartujte modul opätovným vložením prevodníka TTL do portu USB počítača.

Po spustení ESP nájdite novú sieť WiFi s názvom „Wifimanager“. Pripojte sa k nemu pomocou počítača alebo telefónu a potom prejdite na adresu IP 192.168.4.1.. Tu môžete pripojiť svoje ESP k miestnej sieti WiFi. Vyberte si WiFi sieť, ktorú budete používať, zadajte heslo a kliknite na „Odoslať“.

Ak je všetko v poriadku, zobrazí sa správa „ESP bolo úspešne pripojené k sieti XXXX“. Váš ESP je teraz pripojený k vašej sieti WiFi a pripravený. Hneď ako sa pripojí k WiFi, pripojí sa k serveru Domoticz. Shorty, musíte dostať upozornenie na váš mobilný telefón.

Proces môžete sledovať v časti „Nastavenie“/„Denník“.

Vua lia!:) Funguje to. Teraz môžeme pristúpiť k zostaveniu všetkých častí dohromady podľa nižšie uvedeného blokového diagramu.

Krok 14: Blokový diagram

Bloková schéma
Bloková schéma

K tomuto diagramu nie je čo povedať. Veľmi jednoduché. Prepnite napájanie pomocou spínača S1. Zariadenie stojí vo vypnutom stave, kým voda neskratuje kolíky „Vodného senzora“. Potom sa „doska Pololu“zapne a napája menič napätia. Tento napájací modul založený na čipe HT7333 prevádza napätie na stabilných 3,3 V pre ESP8266. Potom sa ESP zapne a odošle správu na server Domoticz.

Krok 15: Výsledok a závery

Výsledok a závery
Výsledok a závery
Výsledok a závery
Výsledok a závery
Výsledok a závery
Výsledok a závery
Výsledok a závery
Výsledok a závery

Funguje to. Odoslanie oznámenia trvalo až 10 sekúnd: pripojenie k WiFi, odoslanie oznámenia, prijatie poplašnej správy do telefónu.

Senzor som naprogramoval tak, aby odosielal alarmy každých 30 s, ak bola zistená voda. Senzor môže odoslať až 5 - 6 upozornení, kým sa batéria nevybije. Takéto zariadenie je možné použiť aj na stanovenie hladiny vody. Čo by som chcel zlepšiť.

1. Aby to fungovalo rýchlejšie. Myslím, že sa pokúsim použiť technológiu ESP-Now, ktorá mi umožní pripojiť niekoľko ESP priamo. V takom prípade je spotreba energie počas pripojenia veľmi nízka a je ešte rýchlejšia. Cieľom je teda použiť jeden ESP ako rozbočovač na pripojenie ďalších ESP.

2. Implementujte alarm stavu batérie. Teraz nemôžete vedieť, či je dostatok energie na odoslanie poplašnej správy alebo nie. Myslím, že v ďalšej generácii tohto senzora bude špeciálne tlačidlo na testovanie nabitia batérie.

Užívateľ bude musieť stlačiť tlačidlo a zobrazí sa úroveň batérie.

Odporúča: