Sadržaj:

Senzor curenja vode na ESP8266 + Micropython + Domoticz: 16 koraka (sa slikama)
Senzor curenja vode na ESP8266 + Micropython + Domoticz: 16 koraka (sa slikama)

Video: Senzor curenja vode na ESP8266 + Micropython + Domoticz: 16 koraka (sa slikama)

Video: Senzor curenja vode na ESP8266 + Micropython + Domoticz: 16 koraka (sa slikama)
Video: ApaITU I2C? ESP01 I2C Hack (Subtittled) 2024, Juli
Anonim
Senzor curenja vode na ESP8266 + Micropython + Domoticz
Senzor curenja vode na ESP8266 + Micropython + Domoticz
Senzor curenja vode na ESP8266 + Micropython + Domoticz
Senzor curenja vode na ESP8266 + Micropython + Domoticz

Prije nekog vremena supruga me zamolila da napravim senzor curenja vode. Bojala se da crijevo u kotlovnici ne može procuriti i da će voda poplaviti tek položeni drveni pod. I ja sam kao pravi inženjer poduzeo takav senzor.

Iz svog 15 -godišnjeg iskustva kao medicinskog inženjera, znam da je najlakši način otkrivanja vode metalne igle spojene vodom. Princip rada najjednostavnijih senzora je da voda mora spojiti dva (ili više) metalna igla, a čim se to dogodi, aktivira se alarm.

Korak 1: Hardver

Hardver
Hardver

Za ovaj projekat potrebno nam je:

1. ESP8266 - 01 modul

2. HT7333 3.3V MS napajanje linearnog regulatora sa niskim ispadanjem modu

Ovaj modul nam je potreban za smanjenje napona iz baterije na prihvatljiv nivo za ESP8266. Prema tablici s podacima, ulaz bi trebao imati 3V do 3.6V. Ovaj modul daje nam 3.3V.

3. Baterija. Koristim 3, 7V Li-ion 400mAh bateriju. Zapravo možete koristiti bilo koji drugi odgovarajući izvor napajanja. Baterija 18650 je takođe dobar izbor. Prilikom odabira baterije imajte na umu da ESP "pojede" oko 200mA dok se povezuje na WiFi mrežu, a oko 60mA se koristi kada ploča učitava podatke na server.

4. TP4056 Lipo ploča za punjenje baterije.

5. Pololu mini prekidač za uključivanje i isključivanje Vrlo zanimljiva mala ploča. Omogućava nam da prebacimo ESP modul samo kada se detektira voda. Ne morate držati ESP UKLJUČENIM. Stoga je dobro za uštedu napunjenosti baterije.

6. Stanovanje7. Dvostruki mikro prekidač ON-OFF. Jedna linija služi za uključivanje uređaja. Druga linija je za testiranje - skraćuje krug bez vode, samo da nas obavijesti radi li uređaj ili ne.

8. Raspberry Pi mikro računar

Koristim Raspberry Pi Zero. Dovoljno je moćan za pokretanje Domoticz servera.

Korak 2: Softver

Na računaru:

1. esptool instaliran, za brisanje modula i flešovanje firmvera

2. Ampy instaliran, za flešovanje vašeg programa

3 Preporučuje se Python 3.6 ili noviji

4. Bilo koji uređivač koda koji želite. Najjednostavnije - Python IDLE koji se obično instalira s Pythonom. Koristim Pycharm / Atom ili Anaconda Spyder na malini Pi

5. Domoticz server instaliran na Raspberry Pi (ili uobičajenom računaru pod Windows ili Linux)

Korak 3: Pripremite Raspberry Pi - instalirajte Domoticz

Dakle, uzmite svoj RPi i instalirajte operativni sistem prikladan za pokretanje Domoticz servera.

Možete slijediti ove upute.

Koristim Raspbian Stretch sa radnom površinom odavde:

Sledeći korak je instaliranje Domoticz servera na vaš računar. Upute možete koristiti ovdje ili ovdje:). Ne bojte se, nije tako teško. Očigledno je da morate pokrenuti svoj terminal:

curl -L install.domoticz.com | sudo bash

I to je to:) manje -više. Domoticz setup

Sada kada je naš poslužitelj spreman, možemo mu pristupiti iz bilo kojeg web preglednika, uključujući i s tableta, unosom sljedeće URL adrese: https:// IP_domoticz: 8080

Korak 4: Postavljanje Domoticza

Domoticz Setup
Domoticz Setup

Sada kada je naš poslužitelj spreman, možemo mu pristupiti iz bilo kojeg web preglednika, uključujući i s tableta, unosom sljedeće URL adrese: https:// IP_domoticz: 8080

Korak 5: Podesite postavke aplikacije

Podesite postavke aplikacije
Podesite postavke aplikacije
Podesite postavke aplikacije
Podesite postavke aplikacije

Postoje različite postavke aplikacija koje se mogu postaviti kroz Setup | Meni postavki.

Izbornik Postavke s različitim karticama omogućuje vam unos osobnih parametara neophodnih za bolje funkcioniranje sistema. Nakon unosa podataka u polja, morate ih spremiti pritiskom na crveno dugme "Primijeni postavke". Nakon ove radnje, sva polja Lozinka, koja su bila prazna pri prvom pristupu, pojavit će se s dugim nizom zvjezdica, čak i ako nisu korištena.

Nakon što izvršite glavno podešavanje na stranici "Sistem", kliknite na "Obaveštenja". Ovdje moramo prilagoditi vrstu obavijesti koje ćemo koristiti.

Korak 6: Postavljanje obavijesti

Obavijesti o postavljanju
Obavijesti o postavljanju

Obavijesti se mogu slati na primjer kada se pritisne prekidač, ako je potrošnja električne energije previsoka, temperatura previsoka i za mnoge druge opcije.

U našem slučaju obavijesti se moraju poslati čim senzor otkrije vodu. Zato samo uključite one koje želite koristiti. Također vam je normalno potreban API ključ za rad obavijesti. Trčeći malo naprijed, reći ću da sam probao Pushover, Pushsafer i Pushbullet. I ostao sam s Pushoverom. Kasnije ću reći zašto.

Nekoliko riječi o tome kako notifikacije funkcioniraju. Morate imati račun na Pushbullet, Pushover ili drugim stranicama koje želite koristiti. Takođe će vam trebati aplikacija na vašem mobilnom telefonu ili računaru.

Nabavite API ključ i umetnite ga na gornju stranicu. Obavijest možete testirati klikom na "Testiraj". Ako je API ključ ispravan, trebali biste primiti testna obavještenja na svoj mobilni telefon.

Čim senzor osjeti vodu, ESP se uključuje i šalje zahtjev Domoticz serveru u JSON formatu. Ako su ispunjeni uvjeti za pokretanje događaja (slanje obavijesti na vaš mobilni telefon), Domoticz šalje obavijest.

Kasnije ću se vratiti na "događaje".

Korak 7: Postavite komunikaciju na hardverske uređaje

Postavljanje komunikacije s hardverskim uređajima
Postavljanje komunikacije s hardverskim uređajima
Postavljanje komunikacije s hardverskim uređajima
Postavljanje komunikacije s hardverskim uređajima
Postavljanje komunikacije s hardverskim uređajima
Postavljanje komunikacije s hardverskim uređajima

Prije nego što možete koristiti aplikaciju Domoticz za upravljanje uređajima ili senzorima za čitanje, morate postaviti komunikaciju na hardverske uređaje. Odaberite Postavke | Hardver za dodavanje hardvera. Uređaji se neće pojaviti dok se ne doda odgovarajući hardver.

Aplikacija Domoticz izvorno podržava mnoge hardverske uređaje. U našem slučaju za čitanje našeg senzora poplave moramo dodati takozvani "Dummy" hardver sa liste hardvera.

Kada se doda hardver, prikazat će se pregled svih definiranih hardvera. Hardver se može onemogućiti ili izbrisati.

Novi hardver trebao bi biti na listi i trebalo bi postojati dugme "Kreiraj virtualne senzore".

Pritisnite ovaj gumb i odaberite Sensor Type "Alert". Sada moramo dodati uređaj u Domoticz da postane aktivan.

Korak 8: Dodajte uređaj u Domoticz da biste postali aktivni

Dodajte uređaj u Domoticz da biste postali aktivni
Dodajte uređaj u Domoticz da biste postali aktivni
Dodajte uređaj u Domoticz da biste postali aktivni
Dodajte uređaj u Domoticz da biste postali aktivni
Dodajte uređaj u Domoticz da biste postali aktivni
Dodajte uređaj u Domoticz da biste postali aktivni

Imajte na umu broj ispod "IDX". Ovo je jedinstvena referenca na ovaj uređaj i potrebna nam je kasnije u našoj Python skripti za rješavanje obavijesti. U ovom slučaju IDX broj je 1.

Omogućite uređaj klikom na zelenu strelicu s lijeve strane (na mojoj slici ispod je plava, jer je omogućen uređaj).

Unesite naziv uređaja i kliknite "dodaj".

Idite na izbornik "Uslužni programi" i tamo bi trebao biti naveden vaš uređaj.

Sada moramo programirati "događaj" za naš senzor. To znači da moramo poslužitelju reći šta treba učiniti u slučaju da dobije poruku od senzora. I to mi je bilo recimo najteže mjesto:).

Korak 9: Ne funkcionira na ovaj način …

Ne funkcionira na ovaj način…
Ne funkcionira na ovaj način…

Počeo sam pokušavajući programirati događaj na / device / stranici. Ovo ispod nije moje, ali je u redu za ilustraciju.

Varate se ako vjerujete da ćete označiti neke potvrdne okvire i to će funkcionirati, varate se:) Ne radi na ovaj način. Pretpostavljam da ova funkcija ovdje još nije završena. Ne zaboravite - to je softver otvorenog koda. U redu, nakon nekoliko sati pronašao sam rješenje. Moramo koristiti "Događaje" iz padajućeg izbornika "Postavljanje".

Nakon što kliknete na "Događaji", možete kreirati vlastiti događaj. To možete učiniti pisanjem koda u Pythonu ili LUA -i ili samo pomoću stvari koja se zove "Blockly". Odlučio sam koristiti Blockly. Postoje dva načina da prisilite server da radi ono što želite.

Korak 10: Napravite događaj na pravi način 1

Izgradite događaj na pravi način 1
Izgradite događaj na pravi način 1

1. Izvršite vanjsku datoteku putem "Događaji", koristeći Blockly poruku "Pokreni skriptu"

Ovo mi savršeno funkcionira na Windows mašini. Ali nisam uspio s ovim na Raspbian -u na svom Raspberry Pi -u. Sumnjam da postoji problem s dozvolama.

Korak 11: Napravite događaj na pravi način 2

Izgradite događaj na pravi način 2
Izgradite događaj na pravi način 2

2. Koristite poruku "Pošalji obavijest s naslovom". Radi na Raspbian -u. Ova opcija podržava slanje obavijesti na Pushsafe i Pushover.

Prednost korištenja prvog načina je to što je fleksibilniji. Možete izabrati ikonu koja će se prikazivati na ekranu, zvukove itd. Moj "događaj" je prikazan na gornjoj slici.

Zatim, programirajmo ESP modul.

Korak 12: Programiranje modula ESP8266-01

Programiranje modula ESP8266-01
Programiranje modula ESP8266-01

Počnimo s prebacivanjem našeg ESP8266 modula. Obično ti moduli dolaze s tvorničkim firmverom. moguće je komunicirati s modulima pomoću tzv. AT naredbi. Također ovaj softver ne dopušta upotrebu modula poput samostalnih kontrolera. Da bismo ih koristili kao samostalne kontrolere, moramo izbrisati tvornički firmver i instalirati novi.

Za to ćemo koristiti esptool. Zatim moramo povezati naš modul s računalom kako bismo izbrisali firmver. Da biste to učinili, potreban vam je TTL pretvarač + nekoliko dodatnih komponenti. Ali postoji lakši način:). Samo kupite na aliexpressu ili ebayu USB za ESP8266 ESP-01 adapterski modul za Wi-Fi s upravljačkim programom CH340G.

Uključite ESP8266 modul u TTL pretvarač kao što je prikazano na slici i spojite ga na USB priključak.

Ako imate isti pretvarač kao ja, tada morate sami prebaciti prekidač u položaj "Prog". Pronađite gdje je esptool instaliran (obično negdje poput C: / Program Files (x86) Python36-32 / Scripts. Idite u ovu mapu, tamo pokrenite naredbeni redak. Vrsta: python esptool.exe --port COM5 erase_flash

Naravno, odaberite ispravan port. U mom slučaju to je COM5. Port na kojem je instaliran ESP možete provjeriti na Upravljačkoj ploči - Sistem - Upravitelj uređaja.

Instalirajte firmver (preuzeo sam ga odavde: https://micropython.org/download#esp8266) upisivanjem:

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

U redu, sada smo spremni za postavljanje mikropython skripti na ESP8266.

Za to koristim Adafruit MicroPython Tool (ampy).

No, danas postoji još jedna opcija koja se zove Esplorer. Ovo je aplikacija s korisničkim sučeljem koja omogućuje postavljanje datoteka na ESP module.

Ovdje možete pronaći upute kako instalirati ampy. Dakle, postavite prekidač na TTL pretvaraču u položaj "UART". Morat ćemo učitati datoteke:

  • wifimgr.py - wifi menadžer za povezivanje na WiFi mrežu
  • main.py - naša glavna skripta

U komandnu liniju unesite: ampy --port COM5 stavite C: / putanju do vaše datoteke

Pritisnite "enter". Nakon nekoliko sekundi trebali biste vidjeti praznu komandnu liniju. To znači da je datoteka učitana. Spisak datoteka na ESP -u možete provjeriti pomoću ampy naredbe:

ampy --port COM5 ls

Iz mog iskustva, bolje je učitati main.py nakon što učitate sve potrebne datoteke. tako je, jer čim učitate main.py - modul ESP8266 će se ponovo pokrenuti i početi izvršavati datoteku main.py. Dakle, u ovom slučaju, ako pokušate otpremiti drugu datoteku, ponekad proces otpremanja neće uspjeti. Ali to ne znači da je sve izgubljeno:), pokušajte drugi put i uspjet ćete (opet, iz mog iskustva).

Sve datoteke za ovaj projekat dostupne su ovdje:

Korak 13: Povežite se na svoju WiFi mrežu. Get Notification

Povežite se na svoju WiFi mrežu. Get Notification
Povežite se na svoju WiFi mrežu. Get Notification
Povežite se na svoju WiFi mrežu. Get Notification
Povežite se na svoju WiFi mrežu. Get Notification

ako je sve u redu, ponovo pokrenite modul ponovnim umetanjem TTL pretvarača u USB priključak vašeg računala.

Nakon pokretanja ESP -a pronađite novu WiFi mrežu pod nazivom "Wifimanager". Povežite se na njega pomoću računara ili telefona, a zatim idite na IP adresu 192.168.4.1.. Ovdje možete povezati svoj ESP na lokalnu WiFi mrežu. Odaberite WiFi mrežu koju ćete koristiti, upišite lozinku, pritisnite "Pošalji".

Ako je sve ispravno, vidjet ćete poruku "ESP je uspješno povezan s XXXX mrežom". Vaš ESP je sada povezan na vašu WiFi mrežu i spreman. Čim se poveže na WiFi, povezat će se s Domoticz serverom. Ukratko, morate primiti obavještenje na mobitel.

Proces možete pratiti u "Setup"/"Log".

Vua lia!:) Radi. Sada možemo pristupiti sastavljanju svih dijelova zajedno, prema donjem blok dijagramu.

Korak 14: Blok dijagram

Blok dijagram
Blok dijagram

Nema se toliko toga reći o ovom dijagramu. Veoma jednostavno. Uključite napajanje prekidačem S1. Uređaj stoji u isključenom stanju sve dok voda ne skrati igle "Senzor vode". Zatim se uključuje "Pololu board" i daje napajanje pretvaraču napona. Ovaj modul za napajanje baziran na čipu HT7333 pretvara napon u stabilnih 3,3 V za ESP8266. Sljedeći ESP se uključuje i šalje poruku Domoticz serveru.

Korak 15: Rezultat i zaključci

Rezultat i zaključci
Rezultat i zaključci
Rezultat i zaključci
Rezultat i zaključci
Rezultat i zaključci
Rezultat i zaključci
Rezultat i zaključci
Rezultat i zaključci

Radi. Slanje obavijesti trajalo je do 10 sekundi: povezivanje na WiFi, slanje obavijesti, primanje poruke alarma na vaš telefon.

Programirao sam senzor da šalje alarme svakih 30 sekundi, ako se otkrije voda. Senzor može poslati do 5 - 6 obavijesti dok se baterija ne isprazni. Takav uređaj može se koristiti i za određivanje nivoa vode. Šta bih želio poboljšati.

1. Da bi ubrzao rad. Mislim da ću pokušati koristiti ESP-Now tehnologiju koja mi omogućava da direktno povežem nekoliko ESP-ova. U ovom slučaju potrošnja energije tokom povezivanja je vrlo mala i brža je. Stoga je ideja koristiti jedan ESP kao čvorište za povezivanje drugih ESP -ova.

2. Sprovedite alarm nivoa baterije. Sada ne možete znati ima li dovoljno snage za slanje poruke alarma ili ne. Mislim da će u sljedećoj generaciji ovog senzora postojati posebno dugme za ispitivanje napunjenosti baterije.

Korisnik će morati pritisnuti dugme i prikazat će se nivo napunjenosti baterije.

Preporučuje se: