Innehållsförteckning:

MQTT/Google Home Flood/Water WIFI-sensor med ESP-01: 7 steg
MQTT/Google Home Flood/Water WIFI-sensor med ESP-01: 7 steg

Video: MQTT/Google Home Flood/Water WIFI-sensor med ESP-01: 7 steg

Video: MQTT/Google Home Flood/Water WIFI-sensor med ESP-01: 7 steg
Video: New Blynk IOT Smart Plant Monitoring System 2024, Juli
Anonim
MQTT/Google Home Flood/Water WIFI-sensor med ESP-01
MQTT/Google Home Flood/Water WIFI-sensor med ESP-01

I denna instruerbara, kommer jag att visa dig hur man bygger wifi översvämning/vattensensor med minimal kostnad. Hela projektet kostar mig mindre än $ 8 för delar som jag köper från ebay och mina befintliga reservdelar.

I detta projekt kommer vi att använda ESP-01 för att tillhandahålla Wifi och MQTT-klient för att upptäcka förekomst av vatten, och valfritt använda direktanslutna högtalare/summer för att ge lokaliserat larm.

Min specifika ansökan för projektet är att upptäcka översvämning/vatten inuti min sumppumpbrunn, vid sumpumpfel. När vatten detekteras av två öppna ledningar skulle det skicka meddelande till MQTT -mäklaren. MQTT -mäklaren skulle sedan vidarebefordra meddelandet till NodeRED. Vid mottagande av MQTT -meddelande skulle NodeRED skicka meddelande till flera Google -hemenheter och även eventuellt skicka meddelande till mobiltelefon/webbläsare via pushbullet

Nu skulle detta projekt naturligtvis bara fungera om hushållseln är PÅ. I nästa instruerbara kommer jag att integrera batteriets backupkrets. Men om du gör strömförsörjningen på samma sätt som jag gjorde, kan du bara ansluta en USB-powerbank för batteribackup. Om du har en powerbank som låter dig ladda och leverera ström samtidigt är du klar.

Jag använder RaspberryPi ZeroW för att vara värd för Mosquitto MQTT -server och NodeRED. Det har körts i över ett år utan problem.

Referenser: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi…Install NodeRED på Raspberry Pi:

Steg 1: Delar som du behöver

Delar som du behöver
Delar som du behöver
Delar som du behöver
Delar som du behöver
Delar som du behöver
Delar som du behöver

Reservdelar:

(1) ESP-01

(2) 10K ohm motstånd

(1) liten signal generisk NPN -transistor (jag använde 2N3904)

(2) långa trådar

(1) 5V generisk strömförsörjning (denna krets kräver mindre än 300mA ström)

(1) 3.3V regulatormodul AMS1117

(1) Micro-USB till DIP-adapter Hona-kontakt PCB-omvandlare DIY-kit

(1) USB-A till MicroUSB-kabel.

(1) 8-polig IC-uttag-kan utelämnas om du vill löda ESP-01 direkt till kretskortet. Klipp plastbroarna som skapar gapet mellan raderna och lim sedan ihop de två raderna, se bild.

(1) Liten kapsling för projektet

Nedan finns valfria delar om du behöver ett lokaliserat larm med högtalare/summer

(1) Generisk PNP -transistor, välj enligt krav på högtalare/summerström/watt. I mitt fall använder jag 2N2907 eftersom min högtalare bara är 0,3 W (8 ohm), skulle det ge tillräckligt med ström för att driva högtalaren. Du kan välja en större transistor och högtalare om du vill ha högre ljud.

(1) Högtalare, se anmärkning om PNP -transistorn ovan

(1) 100 - 110 ohm Motstånd

Steg 2: Kretsdiagram

Kretsdiagram
Kretsdiagram

Det första steget skulle vara att skapa kretsen som visas i diagrammet.

Jag byggde 3.3VDC strömförsörjning med en gammal 5V mobiltelefonladdare tillsammans med AMS1117 3.3VDC regulator. För ESP-01-uttaget använder jag ett 8-stifts standard IC-uttag och skär plastbryggorna som skapar gapet mellan raderna och limmer sedan ihop de två raderna.

Kretsen som jag konstruerade är att känna av närvaron av vatten mellan de två ledningarna. När vatten når toppen av båda trådarna skulle det skapa ett motstånd på cirka 10K till 20K ohm. Sedan i serie med 10K ohm R1 ger den en liten ström till basen av Q1 som får Q1 att mättas och klämmer fast GPIO-2 till marken. R1 är nödvändigt för att ge skydd till Q1 om det skulle uppstå en oavsiktlig kortslutning på avkänningstrådarna.

R2 är ett uppdragningsmotstånd som gör att ESP-01 kan starta från blixt.

Nu till den valfria högtalaren/summern, om du bara behöver ESP-01 för att tala MQTT och inte vill implementera denna lokaliserade alarmering, kan du ta bort R2, Q2, Speaker och placera ett 10K pull-up-motstånd mellan GPIO-0 och VCC.

Om du inte känner att du behöver använda den kvinnliga Micro-USB till DIP-adaptern kan du löd kablar mellan 5V PS och 3.3V regulatormodulen. Jag föredrar att använda den kvinnliga MicroUSB -adaptern så att jag kan använda vilken generisk mobiltelefonladdare som helst och MicroUSB -kabel.

Steg 3: Bygg kretsen

Bygga kretsen
Bygga kretsen
Bygga kretsen
Bygga kretsen
Bygga kretsen
Bygga kretsen

Löd alla komponenter och delar i kretskort enligt kretsschemat på föregående sida och skär ut kretskortet i storlek.

Placera kretskortet i ett hölje som passar kretskortet och högtalaren som tillval. I mitt fall skulle alla delar passa in i en liten telefonuttagslåda, även om jag måste värma upp locket lite för att skapa en utbuktning så att ESP-01-modulen skulle passa.

Steg 4: blinkar ESP-01

I detta steg kommer vi att blinka ESP-01 med arduino-skiss. Om du aldrig har blinkat ESP-01-modulen kan du följa min instruktion för att komma igång:

Du hittar min skiss på min github-sida:

I skissen behöver du åtminstone ändra följande information som gäller ditt hemnätverk/installation:

#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

I mitt hemnätverk har jag 2 olika åtkomstpunkter som sänder 2 olika SSID: er, och denna skiss skulle tillåta redundans genom att ansluta till nästa SSID om kommunikationen till den aktuella AP: n förloras. Om du bara har ett SSID fyller du i både ssid1 och ssid2 med samma värde.

När du har gjort ändringen laddar du upp skissen till ESP-01 och ansluter ESP-01 till gränssnittskortet.

Steg 5: Testkörning

För att testa om vårt projekt fungerar är det enklaste att övervaka MQTT -meddelanden i nätverket. För att göra det måste du öppna en SSH -session för myggmäklaren och utfärda följande kommando:

mygga_sub -v -t '#'

Kommandot ovan skulle tillåta oss att se alla MQTT -meddelanden som kommer in i mäklaren.

Slå nu på vår krets, och om allt fungerar, om några sekunder bör du åtminstone se följande MQTT -meddelande:

stat/SumpWaterSensor/LWT Online

Testa nu vattensensorn genom att doppa de två avkänningskablarna i en kopp vatten, och du bör se detta meddelande:

tele/SumpWaterSensor WET

Och om du tar ledningarna ur vattnet bör du se detta meddelande:

tele/SumpWaterSensor DRY

Om du ser dessa meddelanden är ditt projekt en framgång.

Jag inkluderade också flera användbara MQTT -ämnen i skissen som du kan använda:

"stat/SumpWaterSensorInfo": detta meddelande skickas varje minut för att ge upptid och annan information.

"cmnd/SumpWaterSensorInfo": ESP-01 skickar ut information om den tar emot detta ämne med värdet '1' (ascii = 49)

"cmnd/SumpWaterSensorCPUrestart": ESP-01 startas om om det tar emot detta ämne med värdet '1' (ascii = 49)

"cmnd/SumpWaterSensorBeep": ESP-01 låter högtalaren om den tar emot detta ämne med värdet '1' (ascii = 49)

"cmnd/SumpWaterSensorBeepFreq": Ställer in frekvensen för högtalarlarmet, standard = 900 (Hz)

"cmnd/SumpWaterSensorDebug": Aktivera och ställ in seriell felsökningsnivå (standard är 0 - ingen felsökning)

Steg 6: Montera sensorn

Montera sensorn
Montera sensorn
Montera sensorn
Montera sensorn

I min ansökan vill jag övervaka vattennivån inuti min sumppump väl och meddela mig om vatten når ovanför sumppumpens flottörbrytare, vilket betyder att min sumppump inte fungerar. Jag körde ledningarna och använder trådband för att fästa den längs avloppsröret.

Steg 7: Final Touch

Sista detaljen
Sista detaljen

Nu när vi har fått projektet att fungera och kan publicera ett MQTT -meddelande till mäklaren är nästa steg att tänka på vad man ska göra med det.

I mitt projekt använder jag Node-RED för att lyssna/prenumerera på "tele/SumpWaterSensor" MQTT-ämnet och meddela flera Google-hemmahögtalare om vatten upptäcks. Utöver det kopplade jag också flödet till en pushbullet -nod för att skicka meddelande till min Android -telefon.

Jag skapade också ett webbgränssnitt för att se sensorns status (på/offline, upptid etc.). Ibland såg jag att det går offline några gånger under en vecka, från statistiken, många gånger beror det på att ESP-01 kopplades från wifi eller MQTT. Men oroa dig inte, min skiss har inkluderat rutin för att starta om ESP-01 om det fortsätter att misslyckas med att ansluta till WIFI och/eller MQTT-mäklare.

Bilden i det här steget visar flödet Node-RED för att åstadkomma detta. Du kan också klistra in flödet från min github-sida i din Node-RED:

Googles hemmeddelande är bara ett exempel på detta projekt, men jag tror att det är det mest användbara och praktiska. Du kan alltid ansluta till en annan MQTT -lyssnare eller till och med använda IFTTT för att driva andra enheter när vatten detekteras.

Ha så kul…

Rekommenderad: