Indholdsfortegnelse:

Vandlækagesensor på ESP8266 + Micropython + Domoticz: 16 trin (med billeder)
Vandlækagesensor på ESP8266 + Micropython + Domoticz: 16 trin (med billeder)

Video: Vandlækagesensor på ESP8266 + Micropython + Domoticz: 16 trin (med billeder)

Video: Vandlækagesensor på ESP8266 + Micropython + Domoticz: 16 trin (med billeder)
Video: Produal Academy, episode 2: In-depth review of WTR and WBU 2024, Juli
Anonim
Vandlækagesensor på ESP8266 + Micropython + Domoticz
Vandlækagesensor på ESP8266 + Micropython + Domoticz
Vandlækagesensor på ESP8266 + Micropython + Domoticz
Vandlækagesensor på ESP8266 + Micropython + Domoticz

For nogen tid siden bad min kone mig om at lave en vandlækagesensor. Hun var bange for, at slangen i fyrrummet kunne være utæt, og vandet ville oversvømme det nylagte trægulv. Og jeg som en sand ingeniør påtog mig sådan en sensor at gøre.

Fra mine 15 års erfaring som medicinsk ingeniør ved jeg, at den letteste måde at opdage vand på er metalnåle, der er kortsluttet af vand. Princippet for drift af de enkleste sensorer er, at vand skal kortslutte to (eller flere) metalstifter, og så snart det sker, udløses alarm.

Trin 1: Hardware

Hardware
Hardware

Til dette projekt har vi brug for:

1. ESP8266 - 01 modul

2. HT7333 3.3V MS Low Dropout Lineær Regulator Strømforsyning modu

Vi har brug for dette modul for at reducere spændingen fra batteriet til det acceptable niveau for ESP8266. Ifølge databladet skal der være 3V til 3,6V input. Dette modul giver os 3,3V.

3. Batteri. Jeg bruger 3, 7V Li-ion 400mAh batteri. Faktisk kan du bruge enhver anden passende strømkilde. 18650 batteri er også et godt valg. Når du vælger et batteri, skal du huske på, at ESP "spiser" omkring 200mA på samme måde som forbindelse til WiFi -netværk, og ca. 60mA bruges, når kortet uploader data til serveren.

4. TP4056 Lipo batterioplader.

5. Pololu mini trykknap Afbryder Meget interessant lille tavle. Det lader os kun skifte ESP -modulet, når der detekteres vand. Du behøver ikke at beholde ESP ON. Så det er godt til at spare opladning af batteriet.

6. Boliger7. Dobbelt mikrokontakt ON-OFF. En linje tjener til at tænde enheden. Anden linje er til test - den kortslutter kredsløb uden vand, bare for at fortælle os, fungerer enheden eller ej.

8. Raspberry Pi mikrocomputer

Jeg bruger Raspberry Pi Zero. Det er stærkt nok til at køre Domoticz -server.

Trin 2: Software

På din pc:

1. esptool installeret, til sletning af moduler og blinkende firmware

2. Ampy installeret, for at blinke dit program

3 Python 3.6 eller højere anbefales

4. Enhver kode editor, du ønsker. Enklest - Python IDLE, som normalt installeres med Python. Jeg bruger Pycharm / Atom eller Anaconda Spyder På hindbær Pi

5. Domoticz -server installeret på Raspberry Pi (eller almindelig pc under Windows eller Linux)

Trin 3: Forbered Raspberry Pi - Installer Domoticz

Så tag din RPi og installer operativsystem, der er egnet til at køre Domoticz -server.

Du kan følge disse instruktioner.

Jeg bruger Raspbian Stretch med Desktop herfra:

Næste trin er at installere Domoticz -serveren på din pc. Du kan bruge vejledningen her eller her:). Vær ikke bange, det er ikke så svært. Du skal naturligvis køre i din terminal:

curl -L install.domoticz.com | sudo bash

Og det er det:) mere eller mindre. Opsætning af Domoticz

Nu hvor vores server er klar, kan vi få adgang til den fra enhver webbrowser, herunder fra en tablet ved at indtaste følgende URL: https:// IP_domoticz: 8080

Trin 4: Domoticz -opsætning

Opsætning af Domoticz
Opsætning af Domoticz

Nu hvor vores server er klar, kan vi få adgang til den fra enhver webbrowser, herunder fra en tablet ved at indtaste følgende URL: https:// IP_domoticz: 8080

Trin 5: Juster applikationsindstillinger

Juster applikationsindstillinger
Juster applikationsindstillinger
Juster applikationsindstillinger
Juster applikationsindstillinger

Der er forskellige applikationsindstillinger, der kan indstilles via opsætningen | Indstillinger menu.

Indstillingsmenuen med forskellige faner giver dig mulighed for at indtaste personlige parametre, der er nødvendige for en bedre systemfunktion. Efter indtastning af data i felterne skal du gemme dem ved at trykke på den røde knap "Anvend indstillinger". Efter denne handling vil alle Password -felter, der var tomme ved den første adgang, vises med en lang række stjerner, selvom de ikke er blevet brugt.

Når du har foretaget hovedopsætningen på siden "System", skal du klikke på "Meddelelser". Her skal vi justere, hvilken slags meddelelser vi skal bruge.

Trin 6: Opsæt notifikationer

Opsæt notifikationer
Opsæt notifikationer

Meddelelser kan f.eks. Sendes, når der trykkes på en switch, elforbruget er for højt, temperaturen til høj og mange flere muligheder.

I vores tilfælde skal meddelelser sendes, så snart sensoren har registreret vand. Så bare slå dem til, du vil bruge. Normalt har du også brug for API -nøgle, for at meddelelse kan fungere. Når jeg løber lidt fremad, vil jeg sige, at jeg har prøvet Pushover, Pushsafer og Pushbullet. Og jeg blev hos Pushover. Senere vil jeg fortælle hvorfor.

Få ord om, hvordan meddelelser fungerer. Du skal have en konto på Pushbullet, Pushover eller andre sider, du gerne vil bruge. Du skal også bruge en app på din mobiltelefon eller pc.

Hent API -nøgle, og indsæt den på siden ovenfor. Du kan teste meddelelsen ved at klikke på "Test". Hvis API -nøglen er korrekt, bør du få en testmeddelelse til din mobiltelefon.

Så snart sensoren registrerer vand, tænder ESP og sender anmodning til Domoticz -serveren i JSON -format. End hvis betingelserne for at udløse en begivenhed (sende meddelelse til din mobiltelefon) er opfyldt, sender Domoticz meddelelsen.

Senere vender jeg tilbage til "begivenheder".

Trin 7: Konfigurer kommunikationen til hardwareenheder

Konfigurer kommunikationen til hardwareenheder
Konfigurer kommunikationen til hardwareenheder
Konfigurer kommunikationen til hardwareenheder
Konfigurer kommunikationen til hardwareenheder
Konfigurer kommunikationen til hardwareenheder
Konfigurer kommunikationen til hardwareenheder

Inden du kan bruge Domoticz -applikationen til at styre enheder eller læse sensorer, skal du konfigurere kommunikationen til hardwareenheder. Vælg Opsætning | Hardware for at tilføje hardware. Enheder vises ikke, før den relevante hardware er tilføjet.

Domoticz -applikationen understøtter mange hardwareenheder indbygget. I vores tilfælde for at læse vores oversvømmelsessensor skal vi tilføje såkaldt "Dummy" hardware fra listen over hardware.

Når hardware tilføjes, vises oversigten over al defineret hardware. Hardware kan deaktiveres eller slettes.

Den nye hardware skulle være på listen, og der skulle være en knap "Opret virtuelle sensorer".

Klik på denne knap, og vælg Sensortype "Alert". Nu skal vi tilføje enheden i Domoticz for at blive aktiv.

Trin 8: Tilføj enheden i Domoticz for at blive aktiv

Tilføj enheden i Domoticz for at blive aktiv
Tilføj enheden i Domoticz for at blive aktiv
Tilføj enheden i Domoticz for at blive aktiv
Tilføj enheden i Domoticz for at blive aktiv
Tilføj enheden i Domoticz for at blive aktiv
Tilføj enheden i Domoticz for at blive aktiv

Bemærk venligst nummeret nedenfor "IDX". Dette er den unikke reference til denne enhed, og vi har brug for den senere i vores Python -script for at løse meddelelser. I dette tilfælde er IDX -nummeret 1.

Aktiver enheden ved at klikke på den grønne pil til venstre (på mit billede nedenfor er den blå på grund af den aktiverede enhed).

Udfyld navnet på enheden, og klik på "tilføj".

Naviger til menuen "Hjælpeprogrammer", og din enhed skal være angivet der.

Nu skal vi programmere "event" til vores sensor. Det betyder, at vi skal fortælle serveren, hvad de skal gøre, hvis den har fået en besked fra sensor. Og det var lad os sige det sværeste sted for mig:).

Trin 9: Det virker ikke på denne måde …

Det virker ikke på denne måde …
Det virker ikke på denne måde …

Jeg startede med at prøve at programmere begivenhed på / enhed / side. Dette nedenfor er ikke mit, men det er ok at illustrere.

Hvis du tror, at du vil markere nogle afkrydsningsfelter, og det vil fungere, tager du fejl:) Det fungerer ikke på denne måde. Jeg formoder, at denne funktion her ikke er færdig endnu. Glem ikke - det er open source -software. Ok, efter flere timer fandt jeg løsningen. Vi skal bruge "Begivenheder" fra rullemenuen "Opsætning".

Efter at have klikket på "Begivenheder" kan du oprette din egen begivenhed. Du kan gøre det ved at skrive en kode i Python eller LUA, eller bare ved at bruge noget der hedder "Blockly". Jeg valgte at bruge Blockly. Der er to måder at tvinge serveren til at gøre, hvad du vil.

Trin 10: Byg begivenhed på den rigtige måde 1

Byg begivenhed på den rigtige måde 1
Byg begivenhed på den rigtige måde 1

1. Udfør ekstern fil via "Events" ved at bruge Blockly -meddelelsen "Start script"

Dette fungerer perfekt for mig på Windows -maskine. Men det lykkedes mig ikke med dette på Raspbian på min Raspberry Pi. Jeg formoder, at der er et problem med tilladelser.

Trin 11: Byg begivenhed på den rigtige måde 2

Byg begivenhed på den rigtige måde 2
Byg begivenhed på den rigtige måde 2

2. Brug meddelelsen "Send underretning med emne". Det fungerer på Raspbian. Denne indstilling understøtter afsendelse af meddelelser til Pushsafe og Pushover.

Fordelen ved at bruge 1. måde er, at den er mere fleksibel. Du kan vælge ikon, der skal vises på din skærm, lyde og så videre. Min "begivenhed" er vist på billedet ovenfor.

Lad os derefter programmere ESP -modul.

Trin 12: Programmering af ESP8266-01-modul

Programmering af ESP8266-01-modul
Programmering af ESP8266-01-modul

Lad os starte med at blinke vores ESP8266 -modul. Normalt leveres disse moduler med firmware fra fabrikken. det er muligt at kommunikere med moduler ved hjælp af såkaldte AT -kommandoer. Og også denne software tillader ikke at bruge moduler som selvstændige controllere. For at bruge dem som selvstændige controllere skal vi slette fabriks firmware og installere en ny.

For at gøre dette vil vi bruge esptool. End vi er nødt til at forbinde vores modul til pc for at slette firmware. For at gøre dette har du brug for TTL -konverter + få ekstra komponenter. Men der er en lettere måde:). Bare køb på aliexpress eller ebay USB til ESP8266 ESP-01 Wi-Fi Adapter Module w/ CH340G Driver.

Slut ESP8266 -modulet til TTL -konverteren som vist på billedet, og tilslut det til USB -porten.

Hvis du har den samme konverter som mig, skal du i sig selv skifte kontakten til positionen "Prog". Find, hvor esptool er installeret (normalt et sted som C: / Program Files (x86) Python36-32 / Scripts. Gå til denne mappe, start kommandoprompt der. Type: python esptool.exe --port COM5 erase_flash

Vælg selvfølgelig den rigtige port. I mit tilfælde er det COM5. Du kan kontrollere porten, hvor ESP er installeret, fra Kontrolpanel - System - Enhedshåndtering.

Installer firmware (jeg tog den herfra: https://micropython.org/download#esp8266) ved at skrive:

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

Ok, nu er vi klar til at uploade micropython -scripts til ESP8266.

Jeg bruger Adafruit MicroPython Tool (ampy) til dette.

Men i dag er der en anden mulighed kaldet Esplorer. Dette er en app med brugergrænseflade, der gør det muligt at uploade filer til ESP -moduler.

Du kan finde instruktioner om, hvordan du installerer ampy her. Så sæt kontakten på TTL -konverteren til "UART" -position. Vi skal uploade filer:

  • wifimgr.py - wifi manager til forbindelse til wifi netværk
  • main.py - vores hovedmanuskript

I kommandolinjetype: ampy --port COM5 sæt C: / sti til din fil

Hit "enter". Efter få sekunder skulle du se tom kommandolinje. Det betyder, at filen er blevet uploadet. Du kan kontrollere listen over filer på ESP efter ampy -kommando:

ampy --port COM5 ls

Fra min erfaring er det bedre at uploade main.py, når du har uploadet alle nødvendige filer. det er sådan, på grund af så snart du vil uploade main.py - vil ESP8266 -modulet genstarte og begynde at udføre main.py -filen. Så hvis du prøver at uploade en anden fil i dette tilfælde, vil uploadprocessen nogle gange mislykkes. Men det betyder ikke, at alt er tabt:), prøv bare anden gang, og du vil lykkes (igen, fra min erfaring).

Alle filer til dette projekt er tilgængelige her:

Trin 13: Opret forbindelse til dit WiFi -netværk. Få besked

Opret forbindelse til dit WiFi -netværk. Få besked
Opret forbindelse til dit WiFi -netværk. Få besked
Opret forbindelse til dit WiFi -netværk. Få besked
Opret forbindelse til dit WiFi -netværk. Få besked

hvis alt er ok, skal du genstarte modulet ved at genindsætte TTL -konverteren til USB -porten på din pc.

Når ESP starter, skal du finde et nyt WiFi -netværk kaldet "Wifimanager". Tilslut den til din pc eller telefon, og gå derefter til IP -adresse 192.168.4.1.. Her kan du slutte din ESP til det lokale WiFi -netværk. Vælg WiFi -netværk, du skal bruge, indtast adgangskode, tryk på "Send".

Hvis alt er korrekt, vil du se meddelelsen "ESP er oprettet forbindelse til XXXX -netværk". Din ESP er nu forbundet til dit WiFi -netværk og klar. Så snart den er forbundet til WiFi, vil den oprette forbindelse til Domoticz -serveren. Shorty du skal modtage en besked på din mobiltelefon.

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

Vua lia!:) Det virker. Nu kan vi fortsætte med at samle alle dele sammen i henhold til blokdiagrammet herunder.

Trin 14: Blokdiagram

Blokdiagram
Blokdiagram

Der er ikke så meget at sige om dette diagram. Meget simpelt. Skift strømmen med S1 -kontakten. Enheden står i slukket tilstand, indtil vandet kortslutter "Vandsensor" stifter. Derefter tænder "Pololu board" og giver strøm til spændingsomformeren. Dette strømmodul baseret på HT7333 -chip, konverterer spænding til stabil 3.3V for ESP8266. Næste ESP tænder og sender en besked til Domoticz -serveren.

Trin 15: Resultat og konklusioner

Resultat og konklusioner
Resultat og konklusioner
Resultat og konklusioner
Resultat og konklusioner
Resultat og konklusioner
Resultat og konklusioner
Resultat og konklusioner
Resultat og konklusioner

Det virker. Afsendelse af besked tog op til 10 sekunder: forbindelse til WiFi, afsendelse af besked, alarmbesked til din telefon.

Jeg har programmeret sensoren til at sende alarmer hver 30. sekund, hvis der blev opdaget vand. Sensoren kan sende op til 5 - 6 meddelelser, indtil batteriet aflades. En sådan indretning kan også bruges til at bestemme vandstanden. Hvad jeg gerne vil forbedre.

1. For at få det til at fungere hurtigere. Jeg tror, jeg vil prøve at bruge ESP-Now-teknologi, som lader mig forbinde flere ESP'er direkte. I dette tilfælde er strømforbruget under tilslutning meget lavt, og det er hurtigere. Så tanken er at bruge en ESP som et hub til at forbinde andre ESP'er.

2. Gennemfør batteriniveaualarm. Nu kan du ikke vide, om der er strøm nok til at sende alarmbesked eller ej. Jeg tror, at der i den næste generation af denne sensor vil være en særlig knap til test af batteriopladning.

Brugeren skal trykke på en knap, og batteriniveauet vises.

Anbefalede: