Kazalo:

Senzor puščanja vode na ESP8266 + Micropython + Domoticz: 16 korakov (s slikami)
Senzor puščanja vode na ESP8266 + Micropython + Domoticz: 16 korakov (s slikami)

Video: Senzor puščanja vode na ESP8266 + Micropython + Domoticz: 16 korakov (s slikami)

Video: Senzor puščanja vode na ESP8266 + Micropython + Domoticz: 16 korakov (s slikami)
Video: Лучшие датчики протечек для ВАШЕГО умного дома | Обзор мегадатчика воды 2024, Julij
Anonim
Senzor puščanja vode na ESP8266 + Micropython + Domoticz
Senzor puščanja vode na ESP8266 + Micropython + Domoticz
Senzor puščanja vode na ESP8266 + Micropython + Domoticz
Senzor puščanja vode na ESP8266 + Micropython + Domoticz

Pred časom me je žena prosila, naj naredim senzor za uhajanje vode. Bala se je, da lahko cev v kotlovnici pušča, voda pa bo poplavila novo položeno leseno tla. In kot pravi inženir sem se lotil takega senzorja.

Iz mojih 15 let izkušenj kot inženir medicine vem, da je najlažji način za odkrivanje vode kovinski zatiči, ki jih voda skrajša. Načelo delovanja najpreprostejših senzorjev je, da mora voda kratka dva (ali več) kovinska zatiča, in takoj ko se to zgodi, se sproži alarm.

1. korak: Strojna oprema

Strojna oprema
Strojna oprema

Za ta projekt potrebujemo:

1. Modul ESP8266 - 01

2. Napajanje linearnega regulatorja HT7333 3.3V MS z nizkim odstopanjem modu

Ta modul potrebujemo za zmanjšanje napetosti iz akumulatorja na sprejemljivo raven za ESP8266. Po podatkovnem listu mora biti vhod 3V do 3.6V. Ta modul nam daje 3.3V.

3. Baterija. Uporabljam 3, 7V Li-ion 400mAh baterijo. Pravzaprav lahko uporabite kateri koli drug primeren vir energije. Baterija 18650 je tudi dobra izbira. Ko izbirate baterijo, ne pozabite, da ESP "poje" približno 200 mA, medtem ko se poveže z omrežjem WiFi, in približno 60 mA se uporabi, ko plošča nalaga podatke na strežnik.

4. Plošča za polnjenje baterije TP4056 Lipo.

5. Pololu mini stikalo za vklop / izklop Zelo zanimiva drobna plošča. Omogočil nam je preklop modula ESP le, ko je zaznana voda. ESP vam ni treba držati vklopljenega. Zato je dobro prihraniti napolnjenost baterije.

6. Stanovanje7. Dvojno mikro stikalo ON-OFF. Ena linija služi za vklop naprave. Druga vrstica je za preskušanje - skrajša krog brez vode, samo da nam sporočite, ali naprava deluje ali ne.

8. Mikro računalnik Raspberry Pi

Uporabljam Raspberry Pi Zero. Je dovolj zmogljiv za delovanje strežnika Domoticz.

2. korak: Programska oprema

V računalniku:

1. esptool nameščen za brisanje modulov in utripanje vdelane programske opreme

2. Ampy nameščen za utripanje programa

3 Priporoča se Python 3.6 ali novejši

4. Vsak urejevalnik kod, ki ga želite. Najenostavnejši - Python IDLE, ki se običajno namešča s programom Python. Uporabljam Pycharm / Atom ali Anaconda Spyder na malini Pi

5. Domoticz strežnik, nameščen na Raspberry Pi (ali običajnem računalniku v sistemu Windows ali Linux)

3. korak: Pripravite Raspberry Pi - Namestite Domoticz

Torej, vzemite svoj RPi in namestite operacijski sistem, primeren za izvajanje strežnika Domoticz.

Lahko sledite tem navodilom.

Od tu uporabljam Raspbian Stretch z namizjem:

Naslednji korak je namestitev strežnika Domoticz v računalnik. Navodila lahko uporabite tukaj ali tukaj:). Ne bojte se, ni tako težko. Očitno morate zagnati v svojem terminalu:

curl -L install.domoticz.com | sudo bash

In to je to:) bolj ali manj. Domoticz nastavitev

Zdaj, ko je naš strežnik pripravljen, lahko do njega dostopamo iz katerega koli spletnega brskalnika, tudi iz tabličnega računalnika, tako da vnesemo naslednji URL: https:// IP_domoticz: 8080

4. korak: Domoticz nastavitev

Domoticz nastavitev
Domoticz nastavitev

Zdaj, ko je naš strežnik pripravljen, lahko do njega dostopamo iz katerega koli spletnega brskalnika, tudi iz tabličnega računalnika, tako da vnesemo naslednji URL: https:// IP_domoticz: 8080

5. korak: Prilagodite nastavitve aplikacije

Prilagodite nastavitve aplikacije
Prilagodite nastavitve aplikacije
Prilagodite nastavitve aplikacije
Prilagodite nastavitve aplikacije

Obstajajo različne nastavitve aplikacij, ki jih lahko nastavite v meniju Setup | Meni nastavitev.

V meniju Nastavitve z različnimi zavihki lahko vnesete osebne parametre, potrebne za boljše delovanje sistema. Ko vnesete podatke v polja, jih morate shraniti s pritiskom na rdeči gumb "Uporabi nastavitve". Po tem dejanju se bodo vsa polja Geslo, ki so bila prazna ob prvem dostopu, prikazana z dolgim nizom zvezdic, tudi če niso bila uporabljena.

Ko opravite glavno nastavitev na strani "Sistem", kliknite "Obvestila". Tu moramo prilagoditi, kakšna obvestila bomo uporabljali.

6. korak: Obvestila o namestitvi

Obvestila o namestitvi
Obvestila o namestitvi

Obvestila se lahko pošljejo na primer, ko pritisnete stikalo, je poraba električne energije previsoka, temperatura previsoka in za številne druge možnosti.

V našem primeru je treba obvestila poslati takoj, ko senzor zazna vodo. Zato samo vklopite tiste, ki jih želite uporabiti. Običajno za delovanje obvestila potrebujete ključ API. Malo naprej bom rekel, da sem poskusil Pushover, Pushsafer in Pushbullet. In ostal sem pri Pushoverju. Na koncu bom povedal zakaj.

Nekaj besed o tem, kako delujejo obvestila. Na Pushbullet, Pushover ali drugih straneh, ki jih želite uporabiti, morate imeti račun. Potrebovali boste tudi aplikacijo na mobilnem telefonu ali računalniku.

Pridobite ključ API in ga vstavite na zgornjo stran. Obvestilo lahko preizkusite s klikom na "Preizkusi". Če je ključ API pravilen, morate na mobilni telefon prejeti testna obvestila.

Takoj, ko senzor zazna vodo, se ESP vklopi in pošlje zahtevo strežniku Domoticz v formatu JSON. Če so izpolnjeni pogoji za sprožitev dogodka (pošiljanje obvestila na vaš mobilni telefon), obvestilo pošlje Domoticz.

Kasneje se bom vrnil k »dogodkom«.

7. korak: Nastavite komunikacijo s strojno opremo

Nastavitev komunikacije s strojno opremo
Nastavitev komunikacije s strojno opremo
Nastavitev komunikacije s strojno opremo
Nastavitev komunikacije s strojno opremo
Nastavitev komunikacije s strojno opremo
Nastavitev komunikacije s strojno opremo

Preden lahko z aplikacijo Domoticz upravljate naprave ali senzorje za branje, morate komunikacijo nastaviti na strojno opremo. Izberite Nastavitev | Strojna oprema za dodajanje strojne opreme. Naprave se ne bodo prikazale, dokler ne dodate ustrezne strojne opreme.

Aplikacija Domoticz doma podpira številne strojne naprave. V našem primeru moramo za branje našega senzorja poplave dodati tako imenovano "Dummy" strojno opremo s seznama strojne opreme.

Ko dodate strojno opremo, se prikaže pregled vse definirane strojne opreme. Strojno opremo lahko onemogočite ali izbrišete.

Nova strojna oprema bi morala biti na seznamu in obstajati mora gumb "Ustvari navidezne senzorje".

Kliknite ta gumb in izberite tip senzorja "Opozorilo". Zdaj moramo dodati napravo v Domoticz, da postane aktivna.

8. korak: Dodajte napravo v Domoticz, da postane aktivna

Dodajte napravo v Domoticz, da postanete aktivni
Dodajte napravo v Domoticz, da postanete aktivni
Dodajte napravo v Domoticz, da postanete aktivni
Dodajte napravo v Domoticz, da postanete aktivni
Dodajte napravo v Domoticz, da postanete aktivni
Dodajte napravo v Domoticz, da postanete aktivni

Upoštevajte številko pod "IDX". To je edinstven sklic na to napravo in ga potrebujemo pozneje v skriptu Python za obravnavo obvestil. V tem primeru je IDX številka 1.

Omogočite napravo s klikom na zeleno puščico na levi (na moji sliki je modra, ker je naprava omogočena).

Vnesite ime naprave in kliknite »dodaj«.

Pomaknite se v meni "Pripomočki" in tam mora biti navedena vaša naprava.

Zdaj moramo programirati "dogodek" za naš senzor. To pomeni, da moramo strežniku povedati, kaj storiti, če ima sporočilo od senzorja. In to je bilo recimo zame najtežje mesto:).

9. korak: Na ta način ne deluje …

Na ta način ne deluje…
Na ta način ne deluje…

Začel sem s poskusom programiranja dogodka na / napravi / strani. To spodaj ni moje, vendar je za ponazoritev v redu.

Če menite, da boste označili nekaj potrditvenih polj in bo delovalo, se motite:) Ne deluje na ta način. Predvidevam, da ta funkcija še ni končana. Ne pozabite - to je odprtokodna programska oprema. V redu, po nekaj urah sem našel rešitev. Iz spustnega menija "Nastavitev" moramo uporabiti "Dogodki".

Ko kliknete »Dogodki«, lahko ustvarite svoj dogodek. To lahko storite tako, da napišete kodo v Pythonu ali LUA ali preprosto uporabite stvar, imenovano "Blockly". Odločil sem se za uporabo Blockly. Obstajata dva načina, kako prisiliti strežnik, da stori, kar želite.

10. korak: Ustvarite dogodek na pravi način 1

Zgradite dogodek na pravi način 1
Zgradite dogodek na pravi način 1

1. Izvedite zunanjo datoteko prek "Dogodki" z uporabo blokirnega sporočila "Začni skript"

To mi odlično deluje na sistemu Windows. Vendar mi to ni uspelo na Raspbianu na mojem Raspberry Pi. Sumim, da je prišlo do težave z dovoljenji.

11. korak: Ustvarite dogodek na pravi način 2

Zgradite dogodek na pravi način 2
Zgradite dogodek na pravi način 2

2. Uporabite sporočilo "Pošlji obvestilo z zadevo". Deluje na Raspbian. Ta možnost podpira pošiljanje obvestil v Pushsafe in Pushover.

Prednost uporabe 1. načina je, da je bolj prilagodljiv. Izberete lahko ikono za prikaz na zaslonu, zvoke itd. Moj "dogodek" je prikazan na zgornji sliki.

Nato programirajmo modul ESP.

12. korak: Programiranje modula ESP8266-01

Programiranje modula ESP8266-01
Programiranje modula ESP8266-01

Začnimo s utripanjem modula ESP8266. Običajno so ti moduli opremljeni s tovarniško vdelano programsko opremo. z moduli je mogoče komunicirati z uporabo tako imenovanih ukazov AT. Poleg tega ta programska oprema ne dovoljuje uporabe modulov, kot so samostojni krmilniki. Če jih želimo uporabiti kot samostojne krmilnike, moramo izbrisati tovarniško vdelano programsko opremo in namestiti novo.

Za to bomo uporabili esptool. Nato moramo naš modul povezati z računalnikom, da izbrišemo vdelano programsko opremo. Za to potrebujete pretvornik TTL + nekaj dodatnih komponent. Je pa lažja pot:). Samo kupite na aliexpressu ali ebayu z vmesnikom USB za ESP8266 ESP-01 Wi-Fi z gonilnikom CH340G.

Priključite modul ESP8266 v pretvornik TTL, kot je prikazano na sliki, in ga priključite v vrata USB.

Če imate enak pretvornik kot jaz, morate samostojno preklopiti stikalo v položaj "Prog". Poiščite, kje je nameščen esptool (običajno nekje na primer C: / Program Files (x86) Python36-32 / Scripts. Pojdite v to mapo, tam zaženite ukazni poziv. Vrsta: python esptool.exe --port COM5 erase_flash

Seveda izberite prava vrata. V mojem primeru je COM5. Vrata, kjer je nameščen ESP, lahko preverite na nadzorni plošči - Sistem - Upravitelj naprav.

Namestite vdelano programsko opremo (vzel sem jo od tukaj: https://micropython.org/download#esp8266) tako, da vnesete:

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

V redu, zdaj smo pripravljeni za nalaganje skriptov mikropythona v ESP8266.

Za to uporabljam orodje Adafruit MicroPython (ampy).

Danes pa obstaja še ena možnost, imenovana Esplorer. To je aplikacija z uporabniškim vmesnikom, ki omogoča nalaganje datotek v module ESP.

Navodila za namestitev ampy najdete tukaj. Torej, stikalo pretvornika TTL postavite v položaj "UART". Naložiti bomo morali datoteke:

  • wifimgr.py - upravitelj wifi za povezavo z omrežjem wifi
  • main.py - naš glavni skript

V vrstici ukazne vrstice: ampy --port COM5 postavite C: / pot do datoteke

Pritisnite "enter". Po nekaj sekundah bi morali videti prazno ukazno vrstico. To pomeni, da je bila datoteka naložena. Seznam datotek na ESP lahko preverite z ukazom ampy:

ampy -port COM5 ls

Po mojih izkušnjah je bolje, da naložite main.py, potem ko naložite vse potrebne datoteke. tako je, ker se bo takoj, ko naložite main.py - modul ESP8266 znova zagnal in začel izvajati datoteko main.py. V tem primeru, če poskusite naložiti drugo datoteko, včasih postopek nalaganja ne bo uspel. Ampak to ne pomeni, da je vse izgubljeno:), poskusite drugič, pa vam bo uspelo (spet po mojih izkušnjah).

Vse datoteke za ta projekt so na voljo tukaj:

Korak: Povežite se z omrežjem WiFi. Dobiti obvestilo

Povežite se z omrežjem WiFi. Dobiti obvestilo
Povežite se z omrežjem WiFi. Dobiti obvestilo
Povežite se z omrežjem WiFi. Dobiti obvestilo
Povežite se z omrežjem WiFi. Dobiti obvestilo

če je vse v redu, znova zaženite modul tako, da pretvornik TTL znova vstavite v vrata USB vašega računalnika.

Ko se ESP zažene, poiščite novo omrežje WiFi, imenovano "Wifimanager". Z njim se povežite z računalnikom ali telefonom, nato pojdite na naslov IP 192.168.4.1.. Tu lahko svoj ESP povežete z lokalnim omrežjem WiFi. Izberite omrežje WiFi, ki ga boste uporabljali, vnesite geslo, pritisnite »Pošlji«.

Če je vse v redu, se prikaže sporočilo "ESP uspešno povezan z omrežjem XXXX". Vaš ESP je zdaj povezan z vašim omrežjem WiFi in pripravljen. Takoj ko se poveže z WiFi, se bo povezal s strežnikom Domoticz. Kratko morate prejeti obvestilo na svoj mobilni telefon.

Proces lahko spremljate v "Nastavitvi"/"Dnevnik".

Vua lia!:) Deluje. Zdaj lahko nadaljujemo s sestavljanjem vseh delov v skladu s spodnjo blok shemo.

Korak 14: Blokovni diagram

Blok diagram
Blok diagram

O tem diagramu ni toliko za povedati. Zelo preprosto. Napajanje preklopite s stikalom S1. Naprava stoji v izklopljenem stanju, dokler voda ne zaskoči na nožice "Senzorja vode". Nato se vklopi "Pololu board" in napaja pretvornik napetosti. Ta napajalni modul, ki temelji na čipu HT7333, pretvori napetost v stabilnih 3,3 V za ESP8266. Nato se ESP vklopi in pošlje sporočilo strežniku Domoticz.

Korak 15: Rezultat in zaključki

Rezultat in zaključki
Rezultat in zaključki
Rezultat in zaključki
Rezultat in zaključki
Rezultat in zaključki
Rezultat in zaključki
Rezultat in zaključki
Rezultat in zaključki

Deluje. Pošiljanje obvestila je trajalo do 10 sekund: povezava z WiFi, pošiljanje obvestila, prejem alarmnega sporočila v telefon.

Senzor sem programiral za pošiljanje alarmov vsakih 30 sekund, če zazna vodo. Senzor lahko pošlje do 5 - 6 obvestil, dokler se baterija ne izprazni. Takšno napravo lahko uporabite tudi za določanje nivoja vode. Kaj bi rad izboljšal.

1. Da bi delovalo hitreje. Mislim, da bom poskušal uporabiti tehnologijo ESP-Now, ki mi omogoča neposredno povezavo več ESP-jev. V tem primeru je poraba energije med povezavo zelo nizka in je hitrejša. Zato je ideja uporabiti en ESP kot zvezdišče za povezovanje drugih ESP.

2. Izvedite alarm za stanje baterije. Zdaj ne morete vedeti, ali je dovolj energije za pošiljanje alarmnega sporočila ali ne. Mislim, da bo v naslednji generaciji tega senzorja na voljo poseben gumb za testiranje napolnjenosti baterije.

Uporabnik bo moral pritisniti gumb in prikazana bo raven napolnjenosti baterije.

Priporočena: