Obsah:

MQTT/Google Home Flood/Water WIFI senzor s ESP-01: 7 kroků
MQTT/Google Home Flood/Water WIFI senzor s ESP-01: 7 kroků

Video: MQTT/Google Home Flood/Water WIFI senzor s ESP-01: 7 kroků

Video: MQTT/Google Home Flood/Water WIFI senzor s ESP-01: 7 kroků
Video: How to Make Wireless Water Level Indicator 2024, Červenec
Anonim
Senzor MQTT/Google Home Flood/Water WIFI s ESP-01
Senzor MQTT/Google Home Flood/Water WIFI s ESP-01

V tomto pokynu vám ukážu, jak vybudovat wifi senzor zaplavení/vody s minimálními náklady. Celý projekt mě stojí méně než 8 $ za díly, které získám z ebay a mých stávajících náhradních dílů.

V tomto projektu použijeme ESP-01 k zajištění klienta Wifi a MQTT pro detekci přítomnosti vody a volitelně použijeme přímo připojený reproduktor/bzučák k zajištění lokalizovaného alarmu.

Moje konkrétní aplikace pro projekt je detekovat povodeň/vodu uvnitř mé jímky v případě poruchy čerpadla jímky. Když je voda detekována 2 otevřenými dráty, odešle zprávu makléři MQTT. Broker MQTT by pak předal zprávu NodeRED. Po přijetí zprávy MQTT by NodeRED odeslal oznámení na více domácích zařízení Google a také volitelně odeslal zprávu na mobilní telefon/prohlížeč prostřednictvím pushbullet

Nyní by tento projekt samozřejmě fungoval pouze tehdy, kdyby byla zapnutá domácí elektřina. V dalším pokynu integruji záložní obvod baterie. Pokud ale napájecí zdroj vytvoříte stejným způsobem jako já, můžete k zálohování baterie jednoduše připojit powerbanku USB. Pokud máte powerbanku, která vám umožní nabíjet a dodávat energii současně, jste připraveni.

K hostování serveru Mosquitto MQTT a NodeRED používám RaspberryPi ZeroW. Funguje více než rok bez problémů.

Reference: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi… Nainstalujte NodeRED na Raspberry Pi:

Krok 1: Díly, které budete potřebovat

Díly, které budete potřebovat
Díly, které budete potřebovat
Díly, které budete potřebovat
Díly, které budete potřebovat
Díly, které budete potřebovat
Díly, které budete potřebovat

Seznam dílů:

(1) ESP-01

(2) 10K ohmový odpor

(1) malý signální generický NPN tranzistor (použil jsem 2N3904)

(2) dlouhé dráty

(1) 5V generický napájecí zdroj (tento obvod vyžaduje proud menší než 300mA)

(1) Modul regulátoru 3,3 V AMS1117

(1) Adaptér micro USB na DIP samice konektor PCB Converter DIY Kit

(1) Kabel USB-A na MicroUSB.

(1) 8pólová zásuvka IC-lze vynechat, pokud chcete pájet ESP-01 přímo na desku s obvody. Odřízněte plastové můstky, které vytvářejí mezeru mezi řadami, a poté slepte 2 řady dohromady, viz foto.

(1) Malý kryt pro projekt

Níže jsou uvedeny volitelné součásti, pokud potřebujete lokalizovaný alarm pomocí reproduktoru/bzučáku

(1) Obecný tranzistor PNP, vybírejte podle požadavku na reproduktor/bzučák/výkon. V mém případě používám 2N2907, protože můj reproduktor má pouze 0,3 W (8 ohmů), poskytl by dostatek energie pro pohon reproduktoru. Pokud chcete hlasitější zvuk, můžete si vybrat větší tranzistor a reproduktor.

(1) Reproduktor, viz poznámka k PNP tranzistoru výše

(1) Rezistor 100 - 110 ohmů

Krok 2: Schéma zapojení

Kruhový diagram
Kruhový diagram

Prvním krokem by bylo vytvoření obvodu zobrazeného na schématu.

Postavil jsem napájecí zdroj 3,3 V DC pomocí staré 5 V nabíječky pro mobilní telefony spojené s regulátorem AMS1117 3,3 V DC. Pro zásuvku ESP-01 používám standardní 8pólovou zásuvku IC a prořezávám plastové můstky, které vytvářejí mezeru mezi řadami, a poté slepím 2 řady dohromady.

Okruh, který jsem navrhl, má snímat přítomnost vody mezi dvěma dráty. Když voda dosáhne špičky obou vodičů, vytvoří odpor přibližně 10K až 20K ohm. Poté v sérii s 10K ohm R1 poskytuje malý proud do základny Q1, což způsobí nasycení Q1 a upnutí GPIO-2 na zem. R1 je nezbytný k zajištění ochrany Q1 v případě náhodného zkratu na snímacích vodičích.

R2 je pull-up odpor, který umožňuje spuštění ESP-01 z blesku.

Nyní k volitelnému reproduktoru/bzučáku, pokud potřebujete k ovládání MQTT pouze ESP-01 a nechcete implementovat tento lokalizovaný alarm, můžete odstranit R2, Q2, reproduktor a umístit 10K pull-up odpor mezi GPIO-0 a VCC.

Pokud necítíte potřebu používat samičí adaptér Micro-USB na DIP, můžete pájet vodiče mezi 5V PS a modulem regulátoru 3,3V. Dávám přednost použití samičího adaptéru MicroUSB, abych mohl použít jakoukoli obecnou nabíječku mobilního telefonu a kabel MicroUSB.

Krok 3: Budování obvodu

Budování okruhu
Budování okruhu
Budování okruhu
Budování okruhu
Budování okruhu
Budování okruhu

Všechny součásti a součásti připájejte na desku plošných spojů podle schématu zapojení na předchozí stránce a rozřízněte desku plošných spojů na velikost.

Umístěte desku plošných spojů do skříně, která by vyhovovala desce plošných spojů a volitelnému reproduktoru. V mém případě by se všechny části vešly do malé krabičky na telefon, i když musím trochu zahřát kryt, aby se vytvořila boule, aby se modul ESP-01 vešel.

Krok 4: Bliká ESP-01

V tomto kroku provedeme záblesk ESP-01 pomocí skici arduino. Pokud jste nikdy nepoužili modul ESP-01, můžete se řídit mými pokyny, abyste mohli začít:

Můj náčrtek najdete na mé stránce github:

V náčrtu musíte minimálně změnit následující informace týkající se vaší domácí sítě/nastavení:

#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* heslo1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* heslo2 = "MYSSIDpassword";

V mé domácí síti mám 2 různé přístupové body, které vysílají 2 různé SSID, a tato skica by umožnila redundanci připojením k dalšímu SSID, pokud dojde ke ztrátě komunikace s aktuálním AP. Pokud máte pouze jeden SSID, vyplňte ssid1 i ssid2 stejnou hodnotou.

Jakmile provedete úpravu, nahrajte skicu do ESP-01 a zapojte ESP-01 do desky rozhraní.

Krok 5: Testovací běh

Chcete -li otestovat, zda náš projekt funguje, nejjednodušší by bylo sledovat zprávy MQTT v síti. Chcete -li to provést, musíte otevřít relaci SSH brokerovi mosquitto a zadat následující příkaz:

mosquitto_sub -v -t '#'

Výše uvedený příkaz by nám umožnil vidět všechny zprávy MQTT přicházející do makléře.

Nyní zapněte náš obvod a pokud vše funguje, během několika sekund byste měli vidět alespoň následující zprávu MQTT:

stat/SumpWaterSensor/LWT Online

Nyní vyzkoušejte snímač vody ponořením dvou snímacích vodičů do šálku vody a měla by se vám zobrazit tato zpráva:

tele/SumpWaterSensor WET

A pokud vytáhnete dráty z vody, měla by se vám zobrazit tato zpráva:

tele/SumpWaterSensor DRY

Pokud vidíte tyto zprávy, váš projekt je úspěšný.

Do skici jsem také zahrnul několik užitečných témat MQTT, která můžete použít:

"stat/SumpWaterSensorInfo": tato zpráva je odesílána každou minutu, aby poskytla provozuschopnost a další informace.

"cmnd/SumpWaterSensorInfo": ESP-01 odešle informace, pokud obdrží toto téma s hodnotou '1' (ascii = 49)

"cmnd/SumpWaterSensorCPUrestart": ESP-01 se restartuje, pokud obdrží toto téma s hodnotou '1' (ascii = 49)

"cmnd/SumpWaterSensorBeep": ESP-01 zazní reproduktor, pokud přijme toto téma s hodnotou '1' (ascii = 49)

"cmnd/SumpWaterSensorBeepFreq": Nastavuje frekvenci alarmu reproduktoru, výchozí = 900 (Hz)

"cmnd/SumpWaterSensorDebug": Povolit a nastavit úroveň sériového ladění (výchozí hodnota je 0 - žádné ladění)

Krok 6: Namontujte snímač

Namontujte snímač
Namontujte snímač
Namontujte snímač
Namontujte snímač

V mé aplikaci chci dobře sledovat hladinu vody uvnitř své jímky a upozornit mě, pokud voda dosáhne nad plovákový spínač čerpadla, což znamená, že moje jímka nefunguje. Protáhl jsem dráty a pomocí drátěných pásků to zajistil podél odtokového potrubí.

Krok 7: Poslední dotek

Poslední dotek
Poslední dotek

Nyní, když máme projekt funkční a můžeme publikovat zprávu MQTT brokerovi, je dalším krokem přemýšlení o tom, co s tím dělat.

V mém projektu používám Node-RED k poslechu/přihlášení k odběru tématu MQTT „tele/SumpWaterSensor“a v případě zjištění vody ohlásím několika domácím reproduktorům Google. Kromě toho jsem také propojil tok s uzlem pushbullet a odeslal oznámení do svého telefonu Android.

Také jsem vytvořil webové rozhraní, abych viděl stav senzoru (zapnuto/offline, doba provozu atd.). Někdy jsem viděl, že se to během jednoho týdne několikrát vypne offline, ze statistik, mnohokrát je to kvůli odpojení ESP-01 od wifi nebo MQTT. Ale není se čeho bát, moje skica obsahovala rutinu pro restartování ESP-01, pokud se stále nedaří pokusit se připojit k WIFI a/nebo MQTT brokerovi.

Obrázek v tomto kroku ukazuje tok Node-RED k dosažení tohoto cíle. Tok z mé stránky github můžete také vložit do svého Node-RED:

Domácí oznámení Google je jen jedním příkladem tohoto projektu, ale myslím si, že je to nejužitečnější a nejpraktičtější. Vždy, když je detekována voda, můžete se kdykoli připojit k jinému posluchači MQTT nebo dokonce použít IFTTT k pohonu jiných zařízení.

Bavte se…

Doporučuje: