Obsah:

Senzor úniku vody na ESP8266 + Micropython + Domoticz: 16 kroků (s obrázky)
Senzor úniku vody na ESP8266 + Micropython + Domoticz: 16 kroků (s obrázky)

Video: Senzor úniku vody na ESP8266 + Micropython + Domoticz: 16 kroků (s obrázky)

Video: Senzor úniku vody na ESP8266 + Micropython + Domoticz: 16 kroků (s obrázky)
Video: Сушка подвала гаража с помощью метеостанции на контроллере ESP8266, отчет после первых суток. 2024, Listopad
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

Před časem mě manželka požádala, abych vyrobil čidlo úniku vody. Bála se, že hadice v kotelně může být netěsná a voda zaplaví nově položenou dřevěnou podlahu. A jako správný inženýr jsem se ujal takového senzoru.

Ze svých 15 let zkušeností jako lékařský inženýr vím, že nejjednodušší způsob detekce vody jsou kovové kolíky zkratované vodou. Princip činnosti nejjednodušších senzorů spočívá v tom, že voda musí zkratovat dva (nebo více) kovových kolíků, a jakmile k tomu dojde, spustí se alarm.

Krok 1: Hardware

Hardware
Hardware

Pro tento projekt potřebujeme:

1. Modul ESP8266 - 01

2. Modul napájení lineárního regulátoru HT7333 3,3 V MS s nízkým výpadkem

Tento modul potřebujeme ke snížení napětí z baterie na přijatelnou úroveň pro ESP8266. Podle datového listu by měl být vstup 3V až 3,6V. Tento modul nám dává 3,3V.

3. Baterie Používám 3, 7V Li-ion 400mAh baterii. Ve skutečnosti můžete použít jakýkoli jiný vhodný zdroj energie. Dobrou volbou je také baterie 18650. Když vybíráte baterii, mějte na paměti, že ESP „žere“asi 200 mA při připojení k síti WiFi a asi 60 mA se používá, když deska nahrává data na server.

4. Deska pro nabíjení baterie TP4056 Lipo.

5. Pololu mini tlačítko Power Switch Velmi zajímavá malá deska. Umožnilo nám přepnout modul ESP pouze tehdy, když je detekována voda. ESP nemusíte zapínat. Je tedy dobré pro úsporu nabití baterie.

6. Bydlení7. Dvojitý mikrospínač ON-OFF. Jedna linka slouží k zapnutí zařízení. Druhý řádek je pro testování - zkratuje obvod bez vody, jen abychom dali vědět, zda zařízení funguje nebo ne.

8. Mikropočítač Raspberry Pi

Používám Raspberry Pi Zero. Je dostatečně výkonný pro provoz serveru Domoticz.

Krok 2: Software

Na vašem PC:

1. nainstalován esptool pro mazání modulů a blikající firmware

2. Ampy nainstalován, pro flashování vašeho programu

Doporučuje se 3 Python 3.6 nebo vyšší

4. Jakýkoli editor kódu, který chcete. Nejjednodušší - Python IDLE, který se běžně instaluje s Pythonem. Na Raspberry Pi používám Pycharm / Atom nebo Anaconda Spyder

5. Server Domoticz nainstalován na Raspberry Pi (nebo na běžném PC pod Windows nebo Linux)

Krok 3: Připravte si Raspberry Pi - nainstalujte Domoticz

Vezměte si tedy RPi a nainstalujte operační systém vhodný pro provoz serveru Domoticz.

Můžete postupovat podle těchto pokynů.

Používám Raspbian Stretch s Desktopem odtud:

Dalším krokem je instalace serveru Domoticz na váš počítač. Návod můžete použít zde nebo zde:). Nebojte se, není to tak těžké. Očividně musíte spustit svůj terminál:

curl -L install.domoticz.com | sudo bash

A je to:) víceméně. Nastavení Domoticz

Nyní, když je náš server připraven, můžeme k němu přistupovat z jakéhokoli webového prohlížeče, včetně tabletu, zadáním následující adresy URL: https:// IP_domoticz: 8080

Krok 4: Nastavení Domoticz

Nastavení Domoticz
Nastavení Domoticz

Nyní, když je náš server připraven, můžeme k němu přistupovat z jakéhokoli webového prohlížeče, včetně tabletu, zadáním následující adresy URL: https:// IP_domoticz: 8080

Krok 5: Upravte nastavení aplikace

Upravte nastavení aplikace
Upravte nastavení aplikace
Upravte nastavení aplikace
Upravte nastavení aplikace

Prostřednictvím Setup | lze nastavit různá nastavení aplikace Nabídka nastavení.

Nabídka Nastavení s různými záložkami vám umožňuje zadat osobní parametry nezbytné pro lepší fungování systému. Po zadání údajů do polí je musíte uložit pomocí červeného tlačítka „Použít nastavení“. Po této akci se všechna pole hesla, která byla při prvním přístupu prázdná, zobrazí s dlouhým řetězcem hvězdiček, i když nebyly použity.

Po provedení hlavního nastavení na stránce „Systém“klikněte na „Oznámení“. Zde musíme upravit, jaký druh oznámení budeme používat.

Krok 6: Nastavení oznámení

Nastavení oznámení
Nastavení oznámení

Oznámení lze odesílat například při stisknutí spínače, při příliš vysoké spotřebě elektřiny, při vysoké teplotě a při mnoha dalších možnostech.

V našem případě musí být oznámení zasílána, jakmile byla senzorem detekována voda. Stačí tedy zapnout ty, které chcete použít. K normálnímu fungování oznámení obvykle také potřebujete klíč API. Trochu vpřed řeknu, že jsem zkusil Pushover, Pushsafer a Pushbullet. A zůstal jsem u Pushovera. Později řeknu proč.

Několik slov o tom, jak fungují oznámení. Musíte mít účet na Pushbullet, Pushover nebo na jiných stránkách, které byste chtěli použít. Také budete potřebovat aplikaci na vašem mobilním telefonu nebo PC.

Získejte klíč API a vložte jej na výše uvedenou stránku. Oznámení můžete vyzkoušet kliknutím na „Testovat“. Pokud je klíč API správný, měli byste na svůj mobilní telefon dostat oznámení o testu.

Jakmile senzor snímá vodu, ESP se zapne a odešle požadavek na server Domoticz ve formátu JSON. Pokud jsou splněny podmínky pro spuštění události (zaslání oznámení na váš mobilní telefon), Domoticz odešle oznámení.

Později se vrátím k „událostem“.

Krok 7: Nastavení komunikace s hardwarovými zařízeními

Nastavit komunikaci na hardwarová zařízení
Nastavit komunikaci na hardwarová zařízení
Nastavit komunikaci na hardwarová zařízení
Nastavit komunikaci na hardwarová zařízení
Nastavit komunikaci na hardwarová zařízení
Nastavit komunikaci na hardwarová zařízení

Než budete moci používat aplikaci Domoticz k ovládání zařízení nebo čtení senzorů, musíte nastavit komunikaci s hardwarovými zařízeními. Chcete -li přidat hardware, vyberte možnost Nastavení | Hardware. Zařízení se nezobrazí, dokud není přidán příslušný hardware.

Aplikace Domoticz nativně podporuje mnoho hardwarových zařízení. V našem případě, abychom mohli přečíst náš povodňový senzor, musíme přidat takzvaný „fiktivní“hardware ze seznamu hardwaru.

Po přidání hardwaru se zobrazí přehled veškerého definovaného hardwaru. Hardware lze deaktivovat nebo odstranit.

Nový hardware by měl být v seznamu a mělo by tam být tlačítko „Vytvořit virtuální senzory“.

Klikněte na toto tlačítko a zvolte Typ senzoru "Alert". Nyní musíme přidat zařízení do Domoticz, aby se stalo aktivním.

Krok 8: Přidejte zařízení do Domoticz, abyste se stali aktivními

Přidejte zařízení do Domoticz, abyste se stali aktivními
Přidejte zařízení do Domoticz, abyste se stali aktivními
Přidejte zařízení do Domoticz, abyste se stali aktivními
Přidejte zařízení do Domoticz, abyste se stali aktivními
Přidejte zařízení do Domoticz, abyste se stali aktivními
Přidejte zařízení do Domoticz, abyste se stali aktivními

Všimněte si prosím čísla pod „IDX“. Toto je jedinečný odkaz na toto zařízení a potřebujeme jej později v našem skriptu Pythonu, abychom mohli řešit oznámení. V tomto případě je IDX číslo 1.

Zapněte zařízení kliknutím na zelenou šipku vlevo (na mém obrázku níže je modrá, protože je zařízení povoleno).

Vyplňte název zařízení a klikněte na „přidat“.

Přejděte do nabídky „Nástroje“a tam by mělo být uvedeno vaše zařízení.

Nyní musíme naprogramovat „událost“pro náš senzor. To znamená, že musíme serveru sdělit, co dělat v případě, že má zprávu ze senzoru. A bylo to pro mě řekněme nejtěžší místo:).

Krok 9: Takhle to nefunguje…

Takhle to nefunguje…
Takhle to nefunguje…

Začal jsem pokusem naprogramovat událost na / zařízení / stránce. Toto níže není moje, ale pro ilustraci je to v pořádku.

Pokud věříte, že zaškrtnete některá zaškrtávací políčka a bude to fungovat, mýlíte se:) Takto to nefunguje. Předpokládám, že tato funkce zde ještě není dokončena. Nezapomeňte - je to software s otevřeným zdrojovým kódem. Dobře, po několika hodinách jsem našel řešení. Musíme použít „Události“z rozbalovací nabídky „Nastavení“.

Po kliknutí na „Události“si můžete vytvořit vlastní událost. Můžete to udělat tak, že si napíšete kód v Pythonu nebo LUA, nebo jen pomocí věci s názvem „Blockly“. Rozhodl jsem se použít Blockly. Existují dva způsoby, jak přinutit server, aby dělal, co chcete.

Krok 10: Vytvořte událost správným způsobem 1

Vytvořte událost správným způsobem 1
Vytvořte událost správným způsobem 1

1. Spusťte externí soubor pomocí „Událostí“pomocí blokové zprávy „Spustit skript“

Funguje mi to perfektně na počítači se systémem Windows. S tím jsem ale na Raspbianu na svém Raspberry Pi neuspěl. Mám podezření, že je problém s oprávněními.

Krok 11: Vytvořte událost správným způsobem 2

Budujte událost správným způsobem 2
Budujte událost správným způsobem 2

2. Použijte zprávu „Odeslat oznámení s předmětem“. Funguje na Raspbian. Tato možnost podporuje zasílání upozornění na Pushsafe a Pushover.

Výhodou použití 1. způsobu je, že je flexibilnější. Můžete si vybrat ikonu, která se má zobrazovat na displeji, zvuky atd. Moje „událost“je zobrazena na obrázku výše.

Dále naprogramujeme modul ESP.

Krok 12: Programování modulu ESP8266-01

Programování modulu ESP8266-01
Programování modulu ESP8266-01

Začněme flashováním našeho modulu ESP8266. Tyto moduly jsou obvykle dodávány s továrním firmwarem. s moduly je možné komunikovat pomocí takzvaných AT příkazů. A také tento software neumožňuje používat moduly jako samostatné ovladače. Abychom je mohli používat jako samostatné ovladače, musíme vymazat tovární firmware a nainstalovat nový.

K tomu použijeme esptool. Abychom mohli vymazat firmware, musíme připojit náš modul k počítači. K tomu potřebujete převodník TTL + několik dalších komponent. Existuje ale jednodušší způsob:). Stačí koupit na aliexpress nebo ebay USB to ESP8266 ESP-01 Wi-Fi Adapter Module w/ CH340G Driver.

Připojte modul ESP8266 k převodníku TTL, jak je znázorněno na obrázku, a připojte jej k portu USB.

Pokud máte stejný převodník jako já, musíte sám přepnout přepínač do polohy „Prog“. Zjistěte, kde je nainstalován esptool (obvykle někde jako C: / Program Files (x86) Python36-32 / Scripts. Přejděte do této složky, spusťte tam příkazový řádek. Typ: python esptool.exe --port COM5 erase_flash

Samozřejmě zvolte správný port. V mém případě je to COM5. Port, na kterém je nainstalován ESP, můžete zkontrolovat v Ovládacích panelech - Systém - Správce zařízení.

Nainstalujte firmware (převzal jsem jej zde: https://micropython.org/download#esp8266) zadáním:

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

Dobře, nyní jsme připraveni nahrát skripty pro mikropython do ESP8266.

K tomu používám nástroj Adafruit MicroPython Tool (ampy).

Ale v dnešní době existuje další možnost s názvem Esplorer. Jedná se o aplikaci s uživatelským rozhraním, která umožňuje odesílat soubory do modulů ESP.

Pokyny k instalaci ampy najdete zde. Přepněte tedy přepínač na převodníku TTL do polohy „UART“. Budeme muset nahrát soubory:

  • wifimgr.py - správce wifi pro připojení k síti Wi -Fi
  • main.py - náš hlavní skript

Do příkazového řádku zadejte: ampy --port COM5 vložte C: / cestu k vašemu souboru

Stiskněte „Enter“. Po několika sekundách byste měli vidět prázdný příkazový řádek. To znamená, že soubor byl nahrán. Seznam souborů na ESP můžete zkontrolovat příkazem ampy:

ampy --port COM5 ls

Z mé zkušenosti je lepší nahrát main.py poté, co jste nahráli všechny potřebné soubory. je to tak, protože jakmile nahrajete main.py - modul ESP8266 se restartuje a začne spouštět soubor main.py. Pokud se tedy v tomto případě pokusíte nahrát jiný soubor, někdy proces nahrávání nebude úspěšný. Ale to neznamená, že je vše ztraceno:), zkuste to podruhé a budete úspěšní (opět z mé zkušenosti).

Všechny soubory pro tento projekt jsou k dispozici zde:

Krok 13: Připojte se k vaší WiFi síti. Dostat upozornění

Připojte se k vaší WiFi síti. Dostat upozornění
Připojte se k vaší WiFi síti. Dostat upozornění
Připojte se k vaší WiFi síti. Dostat upozornění
Připojte se k vaší WiFi síti. Dostat upozornění

pokud je vše v pořádku, restartujte modul opětovným vložením převodníku TTL do portu USB vašeho počítače.

Po spuštění ESP najděte novou WiFi síť s názvem „Wifimanager“. Připojte se k němu pomocí počítače nebo telefonu a poté přejděte na adresu IP 192.168.4.1.. Zde můžete připojit svůj ESP k místní síti WiFi. Vyberte síť WiFi, kterou budete používat, zadejte heslo a klikněte na „Odeslat“.

Pokud je vše v pořádku, zobrazí se zpráva „ESP úspěšně připojeno k síti XXXX“. Váš ESP je nyní připojen k vaší WiFi síti a připraven. Jakmile se připojí k WiFi, připojí se k serveru Domoticz. Shorty, musíte dostat oznámení na váš mobilní telefon.

Proces můžete sledovat v „Nastavení“/„Protokolu“.

Vua lia!:) Funguje to. Nyní můžeme přistoupit k montáži všech částí dohromady podle níže uvedeného blokového schématu.

Krok 14: Blokový diagram

Blokové schéma
Blokové schéma

K tomuto diagramu není moc co říci. Velmi jednoduché. Přepněte napájení pomocí spínače S1. Zařízení stojí ve vypnutém stavu, dokud voda nezkratuje kolíky „Vodního senzoru“. Poté se „deska Pololu“zapne a napájí měnič napětí. Tento napájecí modul založený na čipu HT7333 převádí napětí na stabilní 3,3 V pro ESP8266. Další ESP se zapne a odešle zprávu na server Domoticz.

Krok 15: Výsledek a závěry

Výsledek a závěry
Výsledek a závěry
Výsledek a závěry
Výsledek a závěry
Výsledek a závěry
Výsledek a závěry
Výsledek a závěry
Výsledek a závěry

Funguje to. Odeslání oznámení trvalo až 10 sekund: připojení k WiFi, odeslání oznámení, získání poplachové zprávy do telefonu.

Senzor jsem naprogramoval tak, aby odesílal alarmy každých 30 s, pokud byla detekována voda. Senzor může odeslat až 5 - 6 oznámení, dokud se baterie nevybije. Takové zařízení lze také použít ke stanovení hladiny vody. Co bych chtěl zlepšit.

1. Aby to fungovalo rychleji. Myslím, že se pokusím použít technologii ESP-Now, která mi umožňuje připojit několik ESP přímo. V tomto případě je spotřeba energie během připojení velmi nízká a je ještě rychlejší. Cílem je tedy použít jeden ESP jako rozbočovač pro připojení dalších ESP.

2. Implementujte alarm stavu baterie. Nyní nemůžete vědět, zda je dostatek energie k odeslání poplašné zprávy, nebo ne. Myslím, že v příští generaci tohoto senzoru bude speciální tlačítko pro testování nabití baterie.

Uživatel bude muset stisknout tlačítko a zobrazí se úroveň baterie.

Doporučuje: