Innholdsfortegnelse:

Vannlekkasjesensor på ESP8266 + Micropython + Domoticz: 16 trinn (med bilder)
Vannlekkasjesensor på ESP8266 + Micropython + Domoticz: 16 trinn (med bilder)

Video: Vannlekkasjesensor på ESP8266 + Micropython + Domoticz: 16 trinn (med bilder)

Video: Vannlekkasjesensor på ESP8266 + Micropython + Domoticz: 16 trinn (med bilder)
Video: Bli varslet om vannlekkasjen før vannet når stuen 2024, November
Anonim
Vannlekkasjesensor på ESP8266 + Micropython + Domoticz
Vannlekkasjesensor på ESP8266 + Micropython + Domoticz
Vannlekkasjesensor på ESP8266 + Micropython + Domoticz
Vannlekkasjesensor på ESP8266 + Micropython + Domoticz

For en tid siden ba kona mi meg om å lage en vannlekkasjesensor. Hun var redd for at slangen i fyrrommet kan være lekker, og vannet ville oversvømme det nylagte tregulvet. Og jeg som en sann ingeniør påtok meg en slik sensor å gjøre.

Fra min 15 års erfaring som medisinsk ingeniør, vet jeg at den enkleste måten å oppdage vann på er metallpinner kortsluttet av vann. Prinsippet for bruk av de enkleste sensorene er at vann må korte to (eller flere) metallpinner, og så snart det skjer, utløses alarm.

Trinn 1: Maskinvare

Maskinvare
Maskinvare

For dette prosjektet trenger vi:

1. ESP8266 - 01 modul

2. HT7333 3.3V MS Low Dropout Lineær regulator Strømforsyning mod

Vi trenger denne modulen for å redusere spenningen fra batteriet til akseptabelt nivå for ESP8266. I henhold til databladet bør det være 3V til 3,6V inngang. Denne modulen gir oss 3,3V.

3. Batteri. Jeg bruker 3, 7V Li-ion 400mAh batteri. Faktisk kan du bruke en hvilken som helst annen egnet strømkilde. 18650 batteri er også et godt valg. Når du velger et batteri, må du huske på at ESP "spiser" omtrent 200mA mens du kobler til WiFi -nettverk, og omtrent 60mA brukes når kortet laster opp data til serveren.

4. TP4056 Lipo batteriladebrett.

5. Pololu mini trykknapp Strømbryter Veldig interessant bittesmå brett. Den lar oss bare bytte ESP -modul når det oppdages vann. Du trenger ikke å holde ESP PÅ. Så det er bra for å spare ladning av batteriet.

6. Boliger7. Dobbel mikrobryter PÅ-AV. En linje tjener til å slå på enheten. Andre linje er for testing - den kortslutter uten vann, bare for å gi oss beskjed om enheten fungerer eller ikke.

8. Raspberry Pi mikro -datamaskin

Jeg bruker Raspberry Pi Zero. Den er kraftig nok til å kjøre Domoticz -server.

Trinn 2: Programvare

På din PC:

1. esptool installert, for sletting av moduler og blinkende fastvare

2. Ampy installert, for å blinke programmet

3 Python 3.6 eller høyere anbefalt

4. Enhver kodeditor du ønsker. Enkleste - Python IDLE som vanligvis installeres med Python. Jeg bruker Pycharm / Atom eller Anaconda Spyder På bringebær Pi

5. Domoticz -server installert på Raspberry Pi (eller vanlig PC under Windows eller Linux)

Trinn 3: Forbered Raspberry Pi - Installer Domoticz

Så ta din RPi og installer operativsystemet som er egnet for å kjøre Domoticz -server.

Du kan følge disse instruksjonene.

Jeg bruker Raspbian Stretch med Desktop herfra:

Neste trinn er å installere Domoticz -serveren på PCen. Du kan bruke instruksjonene her eller her:). Ikke vær redd, det er ikke så vanskelig. Tydeligvis må du kjøre i terminalen din:

curl -L install.domoticz.com | sudo bash

Og det er det:) mer eller mindre. Oppsett av Domoticz

Nå som serveren vår er klar, kan vi få tilgang til den fra hvilken som helst nettleser, inkludert fra et nettbrett ved å skrive inn følgende URL: https:// IP_domoticz: 8080

Trinn 4: Domoticz -oppsett

Oppsett av Domoticz
Oppsett av Domoticz

Nå som serveren vår er klar, kan vi få tilgang til den fra hvilken som helst nettleser, inkludert fra et nettbrett ved å skrive inn følgende URL: https:// IP_domoticz: 8080

Trinn 5: Juster applikasjonsinnstillinger

Juster applikasjonsinnstillinger
Juster applikasjonsinnstillinger
Juster applikasjonsinnstillinger
Juster applikasjonsinnstillinger

Det er forskjellige applikasjonsinnstillinger som kan angis via Oppsett | Innstillingsmeny.

Innstillingsmenyen med forskjellige faner lar deg angi personlige parametere som er nødvendige for en bedre systemfunksjon. Etter at du har lagt inn data i feltene, må du lagre dem ved å trykke på den røde knappen "Bruk innstillinger". Etter denne handlingen vil alle passordfeltene, som var tomme ved første tilgang, vises med en lang streng med stjerner, selv om de ikke har blitt brukt.

Etter at du har gjort hovedoppsettet på "System" -siden, klikker du på "Meldinger". Her må vi justere hva slags varsler vi skal bruke.

Trinn 6: Oppsettvarsler

Oppsettvarsler
Oppsettvarsler

Varsler kan sendes for eksempel når en bryter trykkes, strømforbruket er for høyt, temperaturen til høy og for mange flere alternativer.

I vårt tilfelle må varsler sendes så snart vann ble oppdaget av sensoren. Så bare slå på dem, du vil bruke. Vanligvis trenger du også API -nøkkel for at varsling skal fungere. Når jeg løper litt fremover, vil jeg si at jeg prøvde Pushover, Pushsafer og Pushbullet. Og jeg ble hos Pushover. Sist vil jeg fortelle hvorfor.

Noen få ord om hvordan varsler fungerer. Du må ha en konto på Pushbullet, Pushover eller andre sider du vil bruke. Du trenger også en app på mobiltelefonen eller PCen.

Skaff deg API -nøkkelen, og sett den inn på siden ovenfor. Du kan teste varsel ved å klikke på "Test". Hvis API -nøkkelen er korrekt, bør du få testvarsler til mobiltelefonen din.

Så snart sensoren føler vann, slår ESP seg på og sender forespørsel til Domoticz -serveren i JSON -format. Da hvis betingelsene for å utløse en hendelse (sende varsel til mobiltelefonen) er oppfylt, sender Domoticz varselet.

Senere kommer jeg tilbake til "hendelser".

Trinn 7: Konfigurer kommunikasjonen til maskinvareenheter

Konfigurer kommunikasjonen til maskinvareenheter
Konfigurer kommunikasjonen til maskinvareenheter
Konfigurer kommunikasjonen til maskinvareenheter
Konfigurer kommunikasjonen til maskinvareenheter
Konfigurer kommunikasjonen til maskinvareenheter
Konfigurer kommunikasjonen til maskinvareenheter

Før du kan bruke Domoticz -appen til å kontrollere enheter eller lese sensorer, må du konfigurere kommunikasjonen til maskinvareenheter. Velg Oppsett | Maskinvare for å legge til maskinvare. Enheter vises ikke før riktig maskinvare er lagt til.

Domoticz -applikasjonen støtter mange maskinvareenheter innfødt. I vårt tilfelle for å lese vår flomsensor må vi legge til såkalt "Dummy" maskinvare fra listen over maskinvare.

Når maskinvare er lagt til, vil oversikten over all definert maskinvare vises. Maskinvare kan deaktiveres eller slettes.

Den nye maskinvaren skal være på listen, og det skal være en knapp "Lag virtuelle sensorer".

Klikk på denne knappen og velg Sensortype "Alert". Nå må vi legge til enheten i Domoticz for å bli aktiv.

Trinn 8: Legg til enheten i Domoticz for å bli aktiv

Legg til enheten i Domoticz for å bli aktiv
Legg til enheten i Domoticz for å bli aktiv
Legg til enheten i Domoticz for å bli aktiv
Legg til enheten i Domoticz for å bli aktiv
Legg til enheten i Domoticz for å bli aktiv
Legg til enheten i Domoticz for å bli aktiv

Vær oppmerksom på nummeret under "IDX". Dette er den unike referansen til denne enheten, og vi trenger den senere i vårt Python -skript for å ta opp varsling. I dette tilfellet er IDX -nummeret 1.

Aktiver enheten ved å klikke på den grønne pilen til venstre (på bildet mitt under er den blå på grunn av enheten som er aktivert).

Fyll inn navnet på enheten, og klikk på "legg til".

Naviger til menyen "Verktøy", og enheten din bør vises der.

Nå må vi programmere "event" for sensoren vår. Det betyr at vi må fortelle serveren hva vi skal gjøre hvis den har fått en melding fra sensor. Og det var det vanskeligste stedet for meg:).

Trinn 9: Det fungerer ikke på denne måten …

Det fungerer ikke på denne måten …
Det fungerer ikke på denne måten …

Jeg begynte med å prøve å programmere hendelsen på / enheten / siden. Dette nedenfor er ikke mitt, men det er ok å illustrere.

Hvis du tror at du vil merke av i noen avmerkingsbokser og det vil fungere, tar du feil:) Det fungerer ikke på denne måten. Jeg antar at denne funksjonen her ikke er ferdig ennå. Ikke glem - det er programvare med åpen kildekode. Ok, etter flere timer fant jeg løsningen. Vi må bruke "Events" fra rullegardinmenyen "Setup".

Etter å ha klikket på "Events" kan du lage ditt eget arrangement. Du kan gjøre det ved å skrive en kode i Python eller LUA, eller bare ved å bruke ting som heter "Blockly". Jeg valgte å bruke Blockly. Det er to måter å tvinge serveren til å gjøre det du vil.

Trinn 10: Bygg hendelsen på en riktig måte 1

Bygg arrangement på en riktig måte 1
Bygg arrangement på en riktig måte 1

1. Utfør ekstern fil via "Events", ved å bruke Blockly melding "Start script"

Dette fungerer perfekt for meg på Windows -maskin. Men jeg lyktes ikke med dette på Raspbian på min Raspberry Pi. Jeg mistenker at det er et problem med tillatelser.

Trinn 11: Bygg arrangement på en riktig måte 2

Bygg arrangement på en riktig måte 2
Bygg arrangement på en riktig måte 2

2. Bruk meldingen "Send varsel med emne". Det fungerer på Raspbian. Dette alternativet støtter sending av varsler til Pushsafe og Pushover.

Fordelen med å bruke 1. måte er at den er mer fleksibel. Du kan velge ikonet som skal vises på skjermen, lyder og så videre. Min "hendelse" er vist på bildet ovenfor.

La oss deretter programmere ESP -modulen.

Trinn 12: Programmering av ESP8266-01-modul

Programmering av ESP8266-01-modul
Programmering av ESP8266-01-modul

La oss starte med å blinke ESP8266 -modulen vår. Normalt kommer disse modulene med fabrikkfastvare. det er mulig å kommunisere med moduler ved å bruke såkalte AT -kommandoer. Og denne programvaren tillater ikke bruk av moduler som frittstående kontrollere. For å bruke dem som frittstående kontrollere må vi slette fabrikkens fastvare og installere en ny.

For å gjøre dette vil vi bruke esptool. Da må vi koble modulen til PCen for å slette fastvaren. For å gjøre dette trenger du TTL -omformer + noen ekstra komponenter. Men det er en enklere måte:). Bare kjøp på aliexpress eller ebay USB til ESP8266 ESP-01 Wi-Fi-adaptermodul m/ CH340G-driver.

Koble ESP8266 -modulen til TTL -omformeren som vist på bildet, og koble den til USB -porten.

Hvis du har samme omformer som meg, må du i seg selv bytte bryteren til "Prog" -posisjonen. Finn ut hvor esptool er installert (vanligvis et sted som C: / Program Files (x86) Python36-32 / Scripts. Gå til denne mappen, start ledeteksten der. Type: python esptool.exe --port COM5 erase_flash

Velg selvfølgelig riktig port. I mitt tilfelle er det COM5. Du kan kontrollere porten der ESP er installert fra Kontrollpanel - System - Enhetsbehandling.

Installer fastvare (jeg tok den herfra: https://micropython.org/download#esp8266) ved å skrive:

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

Ok, nå er vi klare for å laste opp micropython -skriptene til ESP8266.

Jeg bruker Adafruit MicroPython Tool (ampy) for dette.

Men i dag er det et annet alternativ som heter Esplorer. Dette er en app med brukergrensesnitt, som lar deg laste opp filer til ESP -moduler.

Du finner instruksjoner for hvordan du installerer ampy her. Så sett bryteren på TTL -omformeren til "UART" -posisjon. Vi må laste opp filer:

  • wifimgr.py - wifi manager for tilkobling til wifi nettverk
  • main.py - vårt hovedmanus

Skriv inn kommandolinjen: ampy --port COM5, legg C: / path til filen din

Trykk "enter". Etter noen sekunder bør du se tom kommandolinje. Det betyr at filen er lastet opp. Du kan sjekke listen over filer på ESP etter ampy -kommando:

ampy --port COM5 ls

Etter min erfaring er det bedre å laste opp main.py etter at du har lastet opp alle nødvendige filer. Det er slik, på grunn av så snart du vil laste opp main.py - vil ESP8266 -modulen starte på nytt og begynne å kjøre main.py -filen. Så i dette tilfellet hvis du prøver å laste opp en annen fil, vil noen ganger opplastingsprosessen mislykkes. Men det betyr ikke at alt er tapt:), bare prøv andre gang, så lykkes du (igjen, fra min erfaring).

Alle filer for dette prosjektet er tilgjengelige her:

Trinn 13: Koble til WiFi -nettverket ditt. Få beskjed

Koble til WiFi -nettverket ditt. Få beskjed
Koble til WiFi -nettverket ditt. Få beskjed
Koble til WiFi -nettverket ditt. Få beskjed
Koble til WiFi -nettverket ditt. Få beskjed

hvis alt er i orden, start modulen på nytt ved å sette inn TTL -omformeren på nytt på USB -porten på PCen.

Etter at ESP starter, finn et nytt WiFi -nettverk kalt "Wifimanager". Koble til den med din PC eller telefon, og gå deretter til IP -adressen 192.168.4.1.. Her kan du koble ESP til det lokale WiFi -nettverket. Velg WiFi -nettverk du skal bruke, skriv inn passord, trykk "Send".

Hvis alt er riktig, vil du se meldingen "ESP er koblet til XXXX -nettverket". ESP -en din er nå koblet til WiFi -nettverket ditt og klar. Så snart den er koblet til WiFi, kobles den til Domoticz -serveren. Shorty, du må motta et varsel på mobiltelefonen.

Du kan spore prosessen i "Setup"/"Log".

Vua lia!:) Det fungerer. Nå kan vi fortsette å montere alle delene sammen, i henhold til blokkdiagrammet nedenfor.

Trinn 14: Blokkdiagram

Blokkdiagram
Blokkdiagram

Det er ikke så mye å si om dette diagrammet. Veldig enkelt. Slå på strømmen med S1 -bryteren. Enheten står i av -tilstand til vannet kortslutter "Vannsensor" -nålene. Deretter slås "Pololu board" på, og gir strøm til spenningsomformeren. Denne kraftmodulen basert på HT7333 -brikke, konverterer spenning til stabil 3.3V for ESP8266. Neste ESP slås på og sender en melding til Domoticz -serveren.

Trinn 15: Resultat og konklusjoner

Resultat og konklusjoner
Resultat og konklusjoner
Resultat og konklusjoner
Resultat og konklusjoner
Resultat og konklusjoner
Resultat og konklusjoner
Resultat og konklusjoner
Resultat og konklusjoner

Det fungerer. Sende varsel tok opptil 10 sekunder: tilkobling til WiFi, sending av varsel, alarmmelding til telefonen.

Jeg har programmert sensoren til å sende alarmer hvert 30. sekund, hvis det ble oppdaget vann. Sensoren kan sende opptil 5 - 6 varsler til batteriet er utladet. En slik enhet kan også brukes til å bestemme vannivået. Hva jeg ønsker å forbedre.

1. For å få det til å fungere raskere. Jeg tror jeg vil prøve å bruke ESP-Now-teknologi, som lar meg koble flere ESP-er direkte. I dette tilfellet er strømforbruket under tilkobling veldig lavt og det er raskere. Så tanken er å bruke en ESP som et knutepunkt for å koble andre ESP -er.

2. Implementere batterinivåalarm. Nå kan du ikke vite om det er nok strøm til å sende alarmmelding eller ikke. Jeg tror at i neste generasjon av denne sensoren vil det være en spesiell knapp for å teste batteriladning.

Brukeren må trykke på en knapp, og batterinivået vises.

Anbefalt: