Innholdsfortegnelse:

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

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

Video: MQTT/Google Home Flood/Water WIFI-sensor med ESP-01: 7 trinn
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 denne instruksen vil jeg vise deg hvordan du bygger wifi flom-/vannsensor med minimale kostnader. Hele prosjektet koster meg mindre enn $ 8 for deler som jeg kjøper fra ebay og mine eksisterende reservedeler.

I dette prosjektet vil vi bruke ESP-01 til å tilby Wifi og MQTT-klient for å oppdage tilstedeværelse av vann, og eventuelt bruke direkte tilkoblet høyttaler/summer for å gi lokal alarm.

Min spesifikke søknad for prosjektet er å oppdage flom/vann inne i sumppumpebrønnen, i tilfelle sumppumpefeil. Når vann oppdages av to åpne ledninger, vil det sende melding til MQTT -megler. MQTT -megler vil deretter videresende meldingen til NodeRED. Ved mottak av MQTT -melding ville NodeRED sende kunngjøring til flere Google Home -enheter og eventuelt sende melding til mobiltelefon/nettleser via pushbullet

Nå ville selvfølgelig dette prosjektet bare fungere hvis strømmen i hjemmet er PÅ. I den neste instruksen vil jeg integrere batteribackupkretsen. Men hvis du lager strømforsyningen på samme måte som jeg gjorde, kan du bare koble til en USB-strømbank for batteribackup. Hvis du har en powerbank som lar deg lade og levere strøm samtidig, er du klar.

Jeg bruker RaspberryPi ZeroW til å være vert for Mosquitto MQTT -server og NodeRED. Det har kjørt i over et år uten problemer.

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

Trinn 1: Deler du trenger

Deler du trenger
Deler du trenger
Deler du trenger
Deler du trenger
Deler du trenger
Deler du trenger

Deleliste:

(1) ESP-01

(2) 10K ohm motstand

(1) generisk NPN -transistor med lite signal (jeg brukte 2N3904)

(2) lange ledninger

(1) 5V generisk strømforsyning (denne kretsen krever mindre enn 300mA strøm)

(1) 3.3V regulatormodul AMS1117

(1) Micro-USB til DIP-adapter hunnkontakt PCB-omformer DIY-sett

(1) USB-A til MicroUSB-kabel.

(1) 8-pinners IC-kontakt-kan utelates hvis du vil lodde ESP-01 direkte til kretskortet. Klipp plastbroene som skaper gapet mellom radene, og lim deretter de 2 radene sammen, se bildet.

(1) Lite kabinett for prosjektet

Nedenfor er valgfrie deler hvis du trenger en lokal alarm ved hjelp av høyttaler/summer

(1) Generisk PNP -transistor, velg i henhold til krav til høyttaler/summer strøm/watt. I mitt tilfelle bruker jeg 2N2907 siden høyttaleren min bare er 0,3 W (8 ohm), ville den gi nok strøm til å drive høyttaleren. Du kan velge en større transistor og høyttaler hvis du vil ha sterkere lyd.

(1) Høyttaler, se merknad om PNP -transistor ovenfor

(1) 100 - 110 ohm Motstand

Trinn 2: Kretsdiagram

Kretsdiagram
Kretsdiagram

Det første trinnet vil være å lage kretsen vist i diagrammet.

Jeg bygde 3.3VDC strømforsyningen ved hjelp av en gammel 5V mobiltelefonlader kombinert med AMS1117 3.3VDC regulator. For ESP-01-kontakten bruker jeg en 8-pinners standard IC-kontakt, og kutter plastbroene som skaper gapet mellom radene, og limer deretter de 2 radene sammen.

Kretsen jeg designet er å kjenne tilstedeværelsen av vann mellom de to ledningene. Når vann når tuppen av begge ledningene, vil det skape en motstand på omtrent 10K til 20K ohm. Deretter i serie med 10K ohm R1, gir den en liten strøm til bunnen av Q1 som får Q1 til å mette, og klemmer GPIO-2 til bakken. R1 er nødvendig for å gi Q1 beskyttelse i tilfelle det oppstår en utilsiktet kortslutning på sansetrådene.

R2 er en opptrekksmotstand som lar ESP-01 starte opp fra blits.

Nå for den valgfrie høyttaleren/summeren, hvis du bare trenger ESP-01 for å snakke MQTT og ikke vil implementere denne lokaliserte alarmen, kan du fjerne R2, Q2, høyttaler og plassere en 10K pull-up-motstand mellom GPIO-0 og VCC.

Hvis du ikke føler behov for å bruke den kvinnelige Micro-USB til DIP-adapteren, kan du lodde ledninger mellom 5V PS og 3.3V regulatormodulen. Jeg foretrekker å bruke den kvinnelige MicroUSB -adapteren, slik at jeg kan bruke hvilken som helst generisk mobiltelefonlader og MicroUSB -kabel.

Trinn 3: Bygg kretsen

Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen

Lodd alle komponenter og deler til PCB i henhold til kretsdiagrammet på forrige side, og kutt PCB i størrelse.

Plasser kretskortet i et kabinett som passer til kretskortet og høyttaleren (tilleggsutstyr). I mitt tilfelle ville alle delene passe inn i en liten telefonuttak, selv om jeg må varme opp dekselet litt for å lage en bule slik at ESP-01-modulen passer.

Trinn 4: Blinker ESP-01

I dette trinnet vil vi blinke ESP-01 med arduino-skisse. Hvis du aldri har blinket ESP-01-modulen, kan du følge instruksjonene mine for å komme i gang:

Du finner skissen min på github-siden min:

På skissen må du minst endre følgende informasjon om hjemmenettverket/oppsettet ditt:

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

I hjemmenettverket mitt har jeg 2 forskjellige tilgangspunkt som sender 2 forskjellige SSID -er, og denne skissen ville tillate redundans ved å koble til neste SSID hvis kommunikasjonen til den nåværende AP -en går tapt. Hvis du bare har én SSID, fyller du ut både ssid1 og ssid2 med samme verdi.

Når du har gjort endringen, laster du opp skissen til ESP-01, og plugger inn ESP-01 i grensesnittkortet.

Trinn 5: Testkjøring

For å teste om prosjektet vårt fungerer, er det enkleste å overvåke MQTT -meldinger i nettverket. For å gjøre det, må du åpne en SSH -økt for myggmegleren og utstede følgende kommando:

mygg_sub -v -t '#'

Kommandoen ovenfor vil tillate oss å se alle MQTT -meldinger som kommer inn i megleren.

Slå nå på kretsen vår, og hvis alt fungerer, bør du i det minste se følgende MQTT -melding om noen få sekunder:

stat/SumpWaterSensor/LWT Online

Test nå vannsensoren ved å dyppe de to sansetrådene i en kopp vann, og du bør se denne meldingen:

tele/SumpWaterSensor WET

Og hvis du tar ledningene opp av vannet, bør du se denne meldingen:

tele/SumpWaterSensor DRY

Hvis du ser disse meldingene, er prosjektet ditt en suksess.

Jeg inkluderte også flere nyttige MQTT -emner i skissen som du kan bruke:

"stat/SumpWaterSensorInfo": denne meldingen sendes hvert minutt for å gi oppetid og annen informasjon.

"cmnd/SumpWaterSensorInfo": ESP-01 sender ut informasjon hvis den mottar dette emnet med verdien '1' (ascii = 49)

"cmnd/SumpWaterSensorCPUrestart": ESP-01 starter på nytt hvis den mottar dette emnet med verdien '1' (ascii = 49)

"cmnd/SumpWaterSensorBeep": ESP-01 vil gi høyttaleren lyd hvis den mottar dette emnet med verdien '1' (ascii = 49)

"cmnd/SumpWaterSensorBeepFreq": Angir frekvensen for høyttaleralarmen, standard = 900 (Hz)

"cmnd/SumpWaterSensorDebug": Aktiver og angi serielt feilsøkingsnivå (standard er 0 - ingen feilsøking)

Trinn 6: Monter sensoren

Monter sensoren
Monter sensoren
Monter sensoren
Monter sensoren

I søknaden min ønsker jeg å overvåke vannivået inne i sumppumpen godt, og varsle meg hvis vann når over sumpumpens flytebryter, noe som betyr at sump -pumpen min ikke fungerer. Jeg kjørte ledningene og bruker stålbånd for å feste det langs avløpsrøret.

Trinn 7: Final Touch

Final Touch
Final Touch

Nå som vi har fått prosjektet til å fungere og kan publisere MQTT -melding til megler, er neste trinn å tenke på hva vi skal gjøre med det.

I prosjektet mitt bruker jeg Node-RED til å lytte/abonnere på "tele/SumpWaterSensor" MQTT-emnet og kunngjøre for flere Google-høyttalere hvis det oppdages vann. I tillegg til det, koblet jeg også strømmen til en pushbullet -node for å sende varsel til min Android -telefon.

Jeg opprettet også en web-front-end for å se sensorens status (på/frakoblet, oppetid osv.). Noen ganger så jeg at den går frakoblet noen ganger i løpet av 1 uke, fra statistikken, mange ganger skyldes det at ESP-01 ble koblet fra wifi eller MQTT. Men ikke så bekymret, skissen min har inkludert rutine for å starte ESP-01 på nytt hvis den ikke fortsetter å prøve å koble til WIFI og/eller MQTT-megler.

Bildet på dette trinnet viser Node-RED-strømmen for å oppnå dette. Du kan også lime inn strømmen fra github-siden min i Node-RED:

Googles hjemmemeddelelse er bare ett eksempel på dette prosjektet, men jeg tror det er det mest nyttige og praktiske. Du kan alltid koble til en annen MQTT -lytter, eller til og med bruke IFTTT til å kjøre andre enheter når det oppdages vann.

Ha det gøy…

Anbefalt: