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, Srpanj
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 za curenje vode. Bojala se da crijevo u kotlovnici ne može propustiti, te 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 zatiča, a čim se to dogodi, aktivira se alarm.

Korak 1: Hardver

Hardver
Hardver

Za ovaj projekt potrebno nam je:

1. Modul ESP8266 - 01

2. HT7333 3.3V MS napajanje linearnog regulatora napajanja modu

Ovaj nam je modul potreban za smanjenje napona iz baterije na prihvatljivu razinu za ESP8266. Prema podatkovnoj tablici, 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đer dobar izbor. Prilikom odabira baterije imajte na umu da ESP "pojede" oko 200 mA dok se poveže s WiFi mrežom, a oko 60 mA koristi se kada ploča prenosi podatke na poslužitelj.

4. Ploča za punjenje baterije TP4056 Lipo.

5. Pololu mini prekidač za uključivanje i isključivanje Vrlo zanimljiva sićušna ploča. Omogućuje nam promjenu ESP modula 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 strujni krug bez vode, samo da nas obavijesti radi li uređaj ili ne.

8. Mikro računalo Raspberry Pi

Koristim Raspberry Pi Zero. Dovoljno je moćan za pokretanje Domoticz poslužitelja.

Korak 2: Softver

Na vašem računalu:

1. esptool instaliran, za brisanje modula i bljeskanje 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 poslužitelj instaliran na Raspberry Pi (ili uobičajenom računalu u sustavu Windows ili Linux)

Korak 3: Pripremite Raspberry Pi - instalirajte Domoticz

Dakle, uzmite svoj RPi i instalirajte operacijski sustav prikladan za pokretanje Domoticz poslužitelja.

Možete slijediti ove upute.

Koristim Raspbian Stretch sa radnom površinom odavde:

Sljedeći korak je instaliranje Domoticz poslužitelja na vaše računalo. Upute možete koristiti ovdje ili ovdje:). Ne bojte se, nije tako teško. Očigledno je da morate pokrenuti na svom terminalu:

curl -L install.domoticz.com | sudo bash

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

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

Korak 4: Postavljanje Domoticza

Domoticz postavljanje
Domoticz postavljanje

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

Korak 5: Prilagodite postavke aplikacije

Prilagodite postavke aplikacije
Prilagodite postavke aplikacije
Prilagodite postavke aplikacije
Prilagodite postavke aplikacije

Postoje različite postavke aplikacija koje se mogu postaviti putem Setup | Izbornik postavki.

Izbornik Postavke s različitim karticama omogućuje vam unos osobnih parametara neophodnih za bolje funkcioniranje sustava. Nakon unosa podataka u polja, morate ih spremiti pritiskom na crveni gumb "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 postavljanje na stranici "Sustav", kliknite "Obavijesti". Ovdje moramo prilagoditi vrstu obavijesti koje ćemo koristiti.

Korak 6: Obavijesti o postavljanju

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 mogućnosti.

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 za rad obavijesti potreban API ključ. Trčeći malo naprijed, reći ću da sam isprobao Pushover, Pushsafer i Pushbullet. I ostao sam s Pushoverom. Poslije ću reći zašto.

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

Nabavite API ključ i umetnite ga na gornju stranicu. Obavijest možete testirati klikom na "Testiraj". Ako je API ključ točan, trebali biste primiti testne obavijesti na svoj mobitel.

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

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

Korak 7: Postavljanje komunikacije 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 Postavljanje | 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 popisa hardvera.

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

Novi hardver trebao bi biti na popisu i trebao bi postojati gumb "Izradi 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 što 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 radi na ovaj način…
Ne radi na ovaj način…

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

Ako vjerujete da ćete provjeriti neke potvrdne okvire i da će to raditi, varate se:) Ne radi na ovaj način. Pretpostavljam da ova značajka ovdje još nije dovršena. Ne zaboravite - to je softver otvorenog koda. U redu, nakon nekoliko sati pronašao sam rješenje. Moramo koristiti "Događaje" s padajućeg izbornika "Postavljanje".

Nakon što kliknete "Događaji", možete stvoriti 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 poslužitelj da učini što želite.

Korak 10: Izgradite 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 stroju. Ali nisam uspio s ovim na Raspbian -u na svom Raspberry Pi -u. Sumnjam da postoji problem s dozvolama.

Korak 11: Izgradite 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 predmetom". 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 odabrati ikonu za prikaz na zaslonu, zvukove itd. Moj "događaj" prikazan je na gornjoj slici.

Zatim programirajmo ESP modul.

Korak 12: Programiranje modula ESP8266-01

Programiranje modula ESP8266-01
Programiranje modula ESP8266-01

Počnimo s bljeskanjem našeg ESP8266 modula. Obično ti moduli dolaze s tvorničkim firmwareom. 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 firmware i instalirati novi.

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

Priključite modul ESP8266 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. Ulaz na kojem je instaliran ESP možete provjeriti na Upravljačkoj ploči - Sustav - 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 prijenos datoteka u 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 upravitelj za povezivanje na WiFi mrežu
  • main.py - naša glavna skripta

U naredbeni redak upišite: ampy --port COM5 stavite C: / put do vaše datoteke

Pritisnite "enter". Nakon nekoliko sekundi trebali biste vidjeti prazan naredbeni redak. To znači da je datoteka učitana. Popis datoteka na ESP -u možete provjeriti pomoću naredbe ampy:

ampy --port COM5 ls

Iz mog iskustva, bolje je učitati main.py nakon što ste učitali sve potrebne datoteke. tako je jer će se čim učitate main.py - modul ESP8266 ponovno pokrenuti i početi izvršavati datoteku main.py. Dakle, u ovom slučaju, ako pokušate prenijeti drugu datoteku, ponekad postupak prijenosa 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 projekt dostupne su ovdje:

Korak 13: Povežite se na svoju WiFi mrežu. Dobiti obavijest

Povežite se na svoju WiFi mrežu. Dobiti obavijest
Povežite se na svoju WiFi mrežu. Dobiti obavijest
Povežite se na svoju WiFi mrežu. Dobiti obavijest
Povežite se na svoju WiFi mrežu. Dobiti obavijest

ako je sve u redu, ponovno 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 s njim pomoću računala ili telefona, a zatim idite na IP adresu 192.168.4.1.. Ovdje možete povezati svoj ESP s lokalnom WiFi mrežom. 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 sada je povezan s vašom WiFi mrežom i spreman je. Čim se spoji na WiFi, spojit će se na Domoticz poslužitelj. Kratko, morate primiti obavijest 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 za reći o ovom dijagramu. Jako 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 temeljen na čipu HT7333 pretvara napon u stabilnih 3,3 V za ESP8266. Sljedeći ESP se uključuje i šalje poruku poslužitelju Domoticz.

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 razine vode. Ono što bih želio poboljšati.

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

2. Provedite alarm razine 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 posebna tipka za ispitivanje napunjenosti baterije.

Korisnik će morati pritisnuti gumb i prikazat će se razina napunjenosti baterije.

Preporučeni: