Indholdsfortegnelse:

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

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

Video: MQTT/Google Home Flood/Water WIFI-sensor med ESP-01: 7 trin
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 instruktive vil jeg vise dig, hvordan du bygger wifi -oversvømmelses-/vandsensor med minimale omkostninger. Hele projektet koster mig mindre end $ 8 for dele, som jeg køber fra ebay og mine eksisterende reservedele.

I dette projekt vil vi bruge ESP-01 til at levere Wifi og MQTT-klient til at registrere tilstedeværelse af vand, og eventuelt bruge direkte tilsluttet højttaler/summer til at levere lokal alarm.

Min specifikke ansøgning om projekt er at opdage oversvømmelse/vand inde i min sump pumpe godt, i tilfælde af sump pumpe fejl. Når vand detekteres af 2 åbne ledninger, ville det sende besked til MQTT -mægler. MQTT -mægler videresender derefter meddelelsen til NodeRED. Ved modtagelse af MQTT -besked ville NodeRED sende meddelelse til flere google home -enheder og også eventuelt sende besked til mobiltelefon/browser via pushbullet

Nu ville dette projekt naturligvis kun fungere, hvis der var strøm til hjemmet. I den næste instruerbare vil jeg integrere batteriets backupkredsløb. Men hvis du laver strømforsyningen på samme måde som jeg gjorde, kan du bare tilslutte en USB-strømbank til batteribackup. Hvis du har en powerbank, der lader dig oplade og levere strøm på samme tid, så er du klar.

Jeg bruger RaspberryPi ZeroW til at være vært for Mosquitto MQTT -server og NodeRED. Det har kørt i over et år uden problemer.

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

Trin 1: Dele, du får brug for

Dele, du får brug for
Dele, du får brug for
Dele, du får brug for
Dele, du får brug for
Dele, du får brug for
Dele, du får brug for

Liste over dele:

(1) ESP-01

(2) 10K ohm modstand

(1) generisk NPN -transistor med lille signal (jeg brugte 2N3904)

(2) lange ledninger

(1) 5V generisk strømforsyning (dette kredsløb kræver mindre end 300mA strøm)

(1) 3.3V regulatormodul AMS1117

(1) Micro-USB til DIP-adapter, hun-stik PCB-konverter DIY-kit

(1) USB-A til MicroUSB-kabel.

(1) 8-polet IC-stik-kan udelades, hvis du vil lodde ESP-01 direkte til printkort. Klip plastbroerne, der skaber mellemrummet mellem rækkerne, og lim derefter de 2 rækker sammen, se foto.

(1) Lille kabinet til projektet

Nedenfor er valgfrie dele, hvis du har brug for en lokaliseret alarm ved hjælp af højttaler/summer

(1) Generisk PNP -transistor, vælg i henhold til krav til højttaler/summer summer/watt. I mit tilfælde bruger jeg 2N2907, da min højttaler kun er 0,3 W (8 ohm), ville den give nok strøm til at drive højttaleren. Du kan vælge en større transistor og højttaler, hvis du vil have højere lyd.

(1) Højttaler, se note om PNP -transistor ovenfor

(1) 100 - 110 ohm Modstand

Trin 2: Kredsløbsdiagram

Kredsløbsdiagram
Kredsløbsdiagram

Det første trin ville være at oprette kredsløbet vist i diagrammet.

Jeg byggede 3.3VDC strømforsyningen ved hjælp af en gammel 5V mobiltelefon oplader kombineret med AMS1117 3.3VDC regulator. Til ESP-01-stikket bruger jeg et 8-benet standard IC-stik, og skærer de plastbroer, der skaber mellemrummet mellem rækkerne, og limer derefter de 2 rækker sammen.

Det kredsløb, jeg designede, er at mærke tilstedeværelsen af vand mellem de to ledninger. Når vand når spidsen af begge ledninger, ville det skabe en modstand på cirka 10K til 20K ohm. Derefter i serie med 10K ohm R1 giver den en lille strøm til bunden af Q1, der får Q1 til at mætte og spænder GPIO-2 til jorden. R1 er nødvendig for at beskytte Q1, hvis der er en utilsigtet kortslutning på sansetrådene.

R2 er en pull-up-modstand, der gør det muligt for ESP-01 at starte fra flash.

Nu til den valgfri højttaler/summer, hvis du bare har brug for ESP-01 til at tale MQTT og ikke ønsker at implementere denne lokaliserede alarmering, kan du fjerne R2, Q2, højttaler og placere en 10K pull-up modstand mellem GPIO-0 og VCC.

Hvis du ikke føler behov for at bruge den kvindelige Micro-USB til DIP-adapter, kan du lodde ledninger mellem 5V PS og 3.3V regulatormodulet. Jeg foretrækker at bruge den kvindelige MicroUSB -adapter, så jeg kan bruge enhver generisk mobiltelefonoplader og MicroUSB -kabel.

Trin 3: Opbygning af kredsløbet

Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet

Lod alle komponenter og dele i printkort i henhold til kredsløbsdiagrammet på forrige side, og skær printkortet i størrelse.

Placer printkortet inde i et kabinet, der passer til printkortet og den valgfri højttaler. I mit tilfælde ville alle delene passe ind i en lille telefonudtagskasse, selvom jeg skal opvarme låget lidt for at skabe en bule, så ESP-01-modulet passer.

Trin 4: Blinker ESP-01

I dette trin blinker vi ESP-01 med arduino-skitse. Hvis du aldrig har blinket ESP-01-modulet, kan du følge min instruktion for at komme i gang:

Du kan finde min skitse på min github-side:

I skitsen skal du som minimum ændre følgende oplysninger vedrørende dit hjemmenetværk/opsætning:

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

I mit hjemmenetværk har jeg 2 forskellige adgangspunkter, der sender 2 forskellige SSID'er, og denne skitse ville tillade redundans ved at oprette forbindelse til det næste SSID, hvis kommunikationen til den aktuelle AP tabes. Hvis du kun har et SSID, skal du udfylde både ssid1 og ssid2 med den samme værdi.

Når du har foretaget ændringen, skal du uploade skitsen til ESP-01 og tilslutte ESP-01 til interfacekortet.

Trin 5: Testkørsel

For at teste om vores projekt fungerer, ville det nemmeste være at overvåge MQTT -meddelelser i netværket. For at gøre det skal du åbne en SSH -session for mygmægleren og udstede følgende kommando:

myg_sub -v -t '#'

Ovenstående kommando ville give os mulighed for at se alle MQTT -meddelelser komme ind i mægleren.

Tænd nu for vores kredsløb, og hvis alt fungerer, skal du i løbet af få sekunder i det mindste se følgende MQTT -meddelelse:

stat/SumpWaterSensor/LWT Online

Test nu vandsensoren ved at dyppe de 2 sansningstråde i en kop vand, og du skal se denne meddelelse:

tele/SumpWaterSensor WET

Og hvis du tager ledningerne op af vandet, skal du se denne meddelelse:

tele/SumpWaterSensor DRY

Hvis du ser disse meddelelser, er dit projekt en succes.

Jeg inkluderede også flere nyttige MQTT -emner i skitsen, som du kan bruge:

"stat/SumpWaterSensorInfo": denne meddelelse sendes hvert minut for at give oppetid og anden information.

"cmnd/SumpWaterSensorInfo": ESP-01 sender information ud, hvis den modtager dette emne med værdien '1' (ascii = 49)

"cmnd/SumpWaterSensorCPUrestart": ESP-01 genstartes, hvis det modtager dette emne med værdien '1' (ascii = 49)

"cmnd/SumpWaterSensorBeep": ESP-01 lyder højttaleren, hvis den modtager dette emne med værdien '1' (ascii = 49)

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

"cmnd/SumpWaterSensorDebug": Aktiver og indstil serielt fejlfindingsniveau (standard er 0 - ingen fejlfinding)

Trin 6: Monter sensoren

Monter sensoren
Monter sensoren
Monter sensoren
Monter sensoren

I min ansøgning vil jeg godt overvåge vandstanden inde i min sump -pumpe og give mig besked, hvis vand når over sump -pumpens flydekontakt, hvilket betyder, at min sump -pumpe ikke fungerer. Jeg løb ledningerne og brug trådbånd til at fastgøre det langs afløbsrøret.

Trin 7: Final Touch

Final Touch
Final Touch

Nu hvor vi har fået projektet til at fungere og er i stand til at udgive MQTT -beskeder til mægleren, er det næste trin at tænke på, hvad de skal gøre med det.

I mit projekt bruger jeg Node-RED til at lytte/abonnere på "tele/SumpWaterSensor" MQTT-emnet og meddele flere google-hjemmetalere, hvis der opdages vand. Ud over det linkede jeg også strømmen til en pushbullet -knude for at sende meddelelse til min Android -telefon.

Jeg har også oprettet en web-front-end for at se sensorens status (on/offline, oppetid osv.). Nogle gange så jeg, at det går offline få gange i løbet af 1 uge, fra statistikken, mange gange skyldes det, at ESP-01 blev afbrudt fra wifi eller MQTT. Men ikke for bekymret, min skitse har inkluderet rutine til at genstarte ESP-01, hvis det ikke bliver ved med at forsøge at oprette forbindelse til WIFI og/eller MQTT-mægler.

Billedet på dette trin viser Node-RED flow for at opnå dette. Du kan også indsætte strømmen fra min github-side i din Node-RED:

Googles hjemmemeddelelse er kun et eksempel på dette projekt, men jeg synes, det er det mest nyttige og praktiske. Du kan altid kommunikere med en anden MQTT -lytter eller endda bruge IFTTT til at drive andre enheder, når der registreres vand.

Hav det sjovt…

Anbefalede: