Turinys:

Vandens nutekėjimo jutiklis ESP8266 + „Micropython + Domoticz“: 16 žingsnių (su nuotraukomis)
Vandens nutekėjimo jutiklis ESP8266 + „Micropython + Domoticz“: 16 žingsnių (su nuotraukomis)

Video: Vandens nutekėjimo jutiklis ESP8266 + „Micropython + Domoticz“: 16 žingsnių (su nuotraukomis)

Video: Vandens nutekėjimo jutiklis ESP8266 + „Micropython + Domoticz“: 16 žingsnių (su nuotraukomis)
Video: LILYGO TTGO T-Higrow ESP32 Soil Sensor with Water Pump 2024, Liepa
Anonim
Vandens nutekėjimo jutiklis „ESP8266 + Micropython + Domoticz“
Vandens nutekėjimo jutiklis „ESP8266 + Micropython + Domoticz“
Vandens nutekėjimo jutiklis „ESP8266 + Micropython + Domoticz“
Vandens nutekėjimo jutiklis „ESP8266 + Micropython + Domoticz“

Prieš kurį laiką žmona paprašė manęs pasidaryti vandens nuotėkio jutiklį. Ji bijojo, kad katilinės žarna gali būti nesandari, o vanduo užtvindys naujai paklotas medines grindis. Ir aš, kaip tikras inžinierius, ėmiausi tokio jutiklio.

Iš savo 15 metų medicinos inžinieriaus patirties žinau, kad lengviausias būdas aptikti vandenį yra metaliniai smeigtukai, sutrumpinti vandens. Paprasčiausių jutiklių veikimo principas yra tas, kad vanduo turi sutrumpinti du (ar daugiau) metalinių kaiščių, o kai tik tai atsitinka, suveikia aliarmas.

1 žingsnis: Aparatūra

Techninė įranga
Techninė įranga

Šiam projektui mums reikia:

1. ESP8266 - 01 modulis

2. HT7333 3.3V MS Low Dropout Linear Regulator Power Supply modulis

Mums reikia šio modulio, kad sumažintume akumuliatoriaus įtampą iki priimtino ESP8266 lygio. Pagal duomenų lapą įvestis turi būti nuo 3V iki 3,6V. Šis modulis suteikia mums 3.3V.

3. Baterija. Aš naudoju 3, 7V ličio jonų 400 mAh bateriją. Tiesą sakant, galite naudoti bet kurį kitą tinkamą maitinimo šaltinį. 18650 baterija taip pat yra geras pasirinkimas. Rinkdamiesi akumuliatorių atminkite, kad ESP „suvalgo“apie 200 mA, jungdamasi prie „WiFi“tinklo, ir apie 60 mA, kai plokštė įkelia duomenis į serverį.

4. TP4056 Lipo akumuliatoriaus įkrovimo plokštė.

5. „Pololu“mini mygtukinis maitinimo jungiklis Labai įdomi mažytė lenta. Tai leidžia mums perjungti ESP modulį tik tada, kai aptinkamas vanduo. Jums nereikia įjungti ESP. Taigi tai gerai taupo akumuliatoriaus įkrovą.

6. Būstas7. Dvigubas mikro jungiklis ON-OFF. Viena eilutė skirta prietaisui įjungti. Antroji eilutė skirta bandymams - ji trumpai jungia be vandens, tik norėdama mums pranešti, ar prietaisas veikia, ar ne.

8. Raspberry Pi mikrokompiuteris

Aš naudoju Raspberry Pi Zero. Jis yra pakankamai galingas, kad galėtų paleisti „Domoticz“serverį.

2 žingsnis: programinė įranga

Kompiuteryje:

1. įdiegtas esptoolis, skirtas moduliams ir programinei įrangai mirksėti

2. Įdiegtas „Ampy“, skirtas jūsų programai mirksėti

3 Rekomenduojama „Python 3.6“arba naujesnė versija

4. Bet koks norimas kodo redaktorius. Paprasčiausias - „Python IDLE“, kuris paprastai diegiamas kartu su „Python“. Aš naudoju „Pycharm / Atom“arba „Anaconda Spyder On Raspberry Pi“

5. „Domoticz“serveris, įdiegtas „Raspberry Pi“(arba įprastame kompiuteryje, kuriame veikia „Windows“arba „Linux“)

3 žingsnis: Paruoškite „Raspberry Pi“- įdiekite „Domoticz“

Taigi, pasiimkite savo RPi ir įdiekite operacinę sistemą, tinkamą Domoticz serveriui paleisti.

Galite vadovautis šiomis instrukcijomis.

Aš naudoju „Raspbian Stretch“su darbalaukiu iš čia:

Kitas žingsnis yra įdiegti „Domoticz“serverį į savo kompiuterį. Instrukcijas galite naudoti čia arba čia:). Nebijok, tai nėra taip sunku. Akivaizdu, kad turite paleisti savo terminalą:

curl -L install.domoticz.com | sudo bash

Ir tiek:) daugiau ar mažiau. „Domoticz“sąranka

Dabar, kai mūsų serveris paruoštas, galime jį pasiekti iš bet kurios žiniatinklio naršyklės, įskaitant planšetinį kompiuterį, įvesdami šį URL: https:// IP_domoticz: 8080

4 žingsnis: „Domoticz“sąranka

„Domoticz“sąranka
„Domoticz“sąranka

Dabar, kai mūsų serveris paruoštas, galime jį pasiekti iš bet kurios žiniatinklio naršyklės, įskaitant planšetinį kompiuterį, įvesdami šį URL: https:// IP_domoticz: 8080

5 veiksmas: koreguokite programos nustatymus

Sureguliuokite programos nustatymus
Sureguliuokite programos nustatymus
Sureguliuokite programos nustatymus
Sureguliuokite programos nustatymus

Yra įvairių programų nustatymų, kuriuos galima nustatyti naudojant sąranką | Nustatymų meniu.

Nustatymų meniu su įvairiais skirtukais leidžia įvesti asmeninius parametrus, būtinus geresniam sistemos veikimui. Įvedę duomenis į laukus, turite juos išsaugoti paspausdami raudoną mygtuką „Taikyti nustatymus“. Po šio veiksmo visi slaptažodžio laukai, kurie pirmą kartą buvo tušti, pasirodys su ilga žvaigždute, net jei jie nebuvo naudojami.

Atlikę pagrindinę sąranką puslapyje „Sistema“, spustelėkite „Pranešimai“. Čia turime koreguoti, kokius pranešimus naudosime.

6 veiksmas: nustatykite pranešimus

Sąrankos pranešimai
Sąrankos pranešimai

Pranešimai gali būti siunčiami, pavyzdžiui, paspaudus jungiklį, per daug suvartojant elektros energiją, esant aukštai temperatūrai ir dar daugiau galimybių.

Mūsų atveju pranešimai turi būti siunčiami iškart, kai jutiklis aptinka vandens. Taigi tiesiog įjunkite tuos, kuriuos norite naudoti. Taip pat paprastai jums reikia API rakto, kad pranešimas veiktų. Šiek tiek bėgdamas į priekį pasakysiu, kad išbandžiau „Pushover“, „Pushsafer“ir „Pushbullet“. Ir aš likau su „Pushover“. Vėliau pasakysiu kodėl.

Keletas žodžių apie tai, kaip veikia pranešimai. Turite turėti paskyrą „Pushbullet“, „Pushover“ar kituose puslapiuose, kuriuos norite naudoti. Taip pat jums reikės programos mobiliajame telefone ar kompiuteryje.

Gaukite API raktą ir įdėkite jį aukščiau esančiame puslapyje. Pranešimą galite patikrinti spustelėję „Test“. Jei API raktas yra teisingas, turėtumėte gauti bandomąjį pranešimą į savo mobilųjį telefoną.

Kai tik jutiklis pajunta vandenį, ESP įsijungia ir siunčia užklausą „Domoticz“serveriui JSON formatu. Jei įvykdžius įvykį (pranešimo siuntimas jums į mobilųjį telefoną) įvykdomos sąlygos, „Domoticz“siunčia pranešimą.

Vėliau grįšiu prie „renginių“.

7 veiksmas: nustatykite ryšį su aparatūros įrenginiu (-ais)

Nustatykite ryšį su aparatūros įrenginiu (-ais)
Nustatykite ryšį su aparatūros įrenginiu (-ais)
Nustatykite ryšį su aparatūros įrenginiu (-ais)
Nustatykite ryšį su aparatūros įrenginiu (-ais)
Nustatykite ryšį su aparatūros įrenginiu (-ais)
Nustatykite ryšį su aparatūros įrenginiu (-ais)

Kad galėtumėte naudoti „Domoticz“programą prietaisams valdyti ar jutikliams skaityti, turite nustatyti ryšį su aparatūros įrenginiu (-iais). Pasirinkite Sąranka | Aparatūra, kad pridėtumėte aparatūros. Įrenginiai nebus rodomi, kol nebus pridėta atitinkama aparatinė įranga.

„Domoticz“programa iš esmės palaiko daugelį aparatūros įrenginių. Mūsų atveju, norėdami perskaityti potvynių jutiklį, turime iš aparatūros sąrašo pridėti vadinamąją „fiktyvią“aparatinę įrangą.

Pridėjus aparatūrą, bus rodoma visos apibrėžtos techninės įrangos apžvalga. Aparatūra gali būti išjungta arba ištrinta.

Sąraše turėtų būti nauja aparatinė įranga ir mygtukas „Sukurti virtualius jutiklius“.

Spustelėkite šį mygtuką ir pasirinkite Jutiklio tipas „Įspėjimas“. Dabar turime pridėti įrenginį „Domoticz“, kad jis taptų aktyvus.

8 veiksmas: pridėkite įrenginį „Domoticz“, kad taptumėte aktyvus

Pridėkite įrenginį „Domoticz“, kad taptumėte aktyvus
Pridėkite įrenginį „Domoticz“, kad taptumėte aktyvus
Pridėkite įrenginį „Domoticz“, kad taptumėte aktyvus
Pridėkite įrenginį „Domoticz“, kad taptumėte aktyvus
Pridėkite įrenginį „Domoticz“, kad taptumėte aktyvus
Pridėkite įrenginį „Domoticz“, kad taptumėte aktyvus

Atkreipkite dėmesį į numerį po „IDX“. Tai yra unikali nuoroda į šį įrenginį, ir mums to reikia vėliau mūsų „Python“scenarijuje, kad būtų išspręstas pranešimas. Šiuo atveju IDX numeris yra 1.

Įjunkite įrenginį spustelėdami žalią rodyklę kairėje (mano paveikslėlyje žemiau jis yra mėlynas, nes įjungtas įrenginys).

Įveskite įrenginio pavadinimą ir spustelėkite „pridėti“.

Eikite į meniu „Priemonės“ir ten turėtų būti nurodytas jūsų įrenginys.

Dabar mes turime užprogramuoti jutiklio „įvykį“. Tai reiškia, kad turime pasakyti serveriui, ką daryti, jei jis gavo pranešimą iš jutiklio. Ir tai, tarkime, buvo sunkiausia vieta man:).

9 veiksmas: tai neveikia…

Tai neveikia tokiu būdu…
Tai neveikia tokiu būdu…

Pradėjau bandydamas užprogramuoti įvykį / device / page. Žemiau tai nėra mano, bet tai gerai iliustruoti.

Jei manote, kad pažymėsite kai kuriuos žymimuosius laukelius ir tai veiks, jūs klystate:) Tai neveikia taip. Manau, kad ši funkcija čia dar nėra baigta. Nepamirškite - tai atvirojo kodo programinė įranga. Gerai, po kelių valandų radau sprendimą. Turime naudoti išskleidžiamojo meniu „Sąranka“meniu „Įvykiai“.

Spustelėję „Įvykiai“galite sukurti savo įvykį. Tai galite padaryti nusipirkę kodą rašydami „Python“arba LLU arba tiesiog naudodami „Blockly“. Aš nusprendžiau naudoti „Blockly“. Yra du būdai, kaip priversti serverį daryti tai, ko norite.

10 veiksmas: sukurkite įvykį teisingu būdu 1

Sukurkite įvykį teisingu būdu 1
Sukurkite įvykį teisingu būdu 1

1. Vykdykite išorinį failą per „Įvykiai“naudodami blokinį pranešimą „Pradėti scenarijų“

Man tai puikiai tinka „Windows“kompiuteryje. Bet man nepavyko tai padaryti su „Raspbian“mano „Raspberry Pi“. Įtariu, kad kyla problemų dėl leidimų.

11 veiksmas: sukurkite įvykį teisingu būdu 2

Sukurkite įvykį teisingu būdu 2
Sukurkite įvykį teisingu būdu 2

2. Naudokite pranešimą „Siųsti pranešimą su tema“. Tai veikia „Raspbian“. Ši parinktis palaiko pranešimų siuntimą „Pushsafe“ir „Pushover“.

Pirmojo būdo naudojimo pranašumas yra tas, kad jis yra lankstesnis. Galite pasirinkti piktogramą, kuri bus rodoma jūsų ekrane, garsus ir pan. Mano „įvykis“parodytas aukščiau esančioje nuotraukoje.

Toliau suprogramuokime ESP modulį.

12 žingsnis: ESP8266-01 modulio programavimas

Programavimo modulis ESP8266-01
Programavimo modulis ESP8266-01

Pradėkime nuo ESP8266 modulio mirksėjimo. Paprastai šie moduliai yra su gamykline programine įranga. galima bendrauti su moduliais naudojant vadinamąsias AT komandas. Taip pat ši programinė įranga neleidžia naudoti modulių, tokių kaip atskiri valdikliai. Norėdami juos naudoti kaip atskirus valdiklius, turime ištrinti gamyklinę programinę įrangą ir įdiegti naują.

Norėdami tai padaryti, mes naudosime esptool. Norėdami ištrinti programinę -aparatinę įrangą, turime prijungti modulį prie kompiuterio. Norėdami tai padaryti, jums reikia TTL keitiklio ir kelių papildomų komponentų. Bet yra lengvesnis būdas:). Tiesiog nusipirkite „aliexpress“arba „ebay“USB prie ESP8266 ESP-01 „Wi-Fi“adapterio modulio su CH340G tvarkykle.

Prijunkite ESP8266 modulį prie TTL keitiklio, kaip parodyta paveikslėlyje, ir prijunkite jį prie USB prievado.

Jei turite tą patį keitiklį kaip ir aš, tada jūs turite pakeisti jungiklį į padėtį „Prog“. Raskite, kur yra įdiegta esptool (paprastai kažkur, pvz., C: / Program Files (x86) Python36-32 / Scripts. Eikite į šį aplanką, ten paleiskite komandų eilutę. Įveskite: python esptool.exe --port COM5 erase_flash

Žinoma, pasirinkite tinkamą prievadą. Mano atveju tai yra COM5. Prievadą, kuriame įdiegta ESP, galite patikrinti iš Valdymo skydas - Sistema - Įrenginių tvarkytuvė.

Įdiekite programinę -aparatinę įrangą (ją paėmiau iš čia: https://micropython.org/download#esp8266) įvesdami:

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

Gerai, dabar esame pasiruošę įkelti „mikropitono“scenarijus į ESP8266.

Tam naudoju „Adafruit MicroPython Tool“(ampy).

Tačiau šiais laikais yra dar viena galimybė, vadinama „Esplorer“. Tai programa su vartotojo sąsaja, leidžianti įkelti failus į ESP modulius.

„Ampy“diegimo instrukcijas rasite čia. Taigi, perjunkite TTL keitiklio jungiklį į „UART“padėtį. Mums reikės įkelti failus:

  • wifimgr.py - „Wi -Fi“tvarkyklė, skirta prisijungti prie „Wi -Fi“tinklo
  • main.py - pagrindinis mūsų scenarijus

Į komandinės eilutės tipą: ampy --port COM5 įveskite C: / kelią į savo failą

Paspauskite „enter“. Po kelių sekundžių turėtumėte pamatyti tuščią komandų eilutę. Tai reiškia, kad failas buvo įkeltas. Failų sąrašą ESP galite patikrinti naudodami komandą ampy:

ampy -uostas COM5 ls

Iš mano patirties geriau įkelti main.py po to, kai įkėlėte visus reikalingus failus. taip yra, nes kai tik įkelsite main.py - ESP8266 modulis bus paleistas iš naujo ir pradės vykdyti failą main.py. Taigi šiuo atveju, jei bandysite įkelti kitą failą, kartais įkėlimo procesas nepavyks. Bet tai nereiškia, kad viskas prarasta:), tiesiog pabandyk antrą kartą, ir tau pavyks (vėlgi, iš mano patirties).

Visus šio projekto failus galite rasti čia:

13 veiksmas: prisijunkite prie „WiFi“tinklo. Gauti pranešimą

Prisijunkite prie „WiFi“tinklo. Gauti pranešimą
Prisijunkite prie „WiFi“tinklo. Gauti pranešimą
Prisijunkite prie „WiFi“tinklo. Gauti pranešimą
Prisijunkite prie „WiFi“tinklo. Gauti pranešimą

jei viskas gerai, iš naujo paleiskite modulį, iš naujo įdėdami TTL keitiklį į kompiuterio USB prievadą.

Paleidus ESP, suraskite naują „WiFi“tinklą pavadinimu „Wifimanager“. Prijunkite jį prie kompiuterio ar telefono, tada eikite į IP adresą 192.168.4.1.. Čia galite prijungti savo ESP prie vietinio „WiFi“tinklo. Pasirinkite „WiFi“tinklą, kurį ketinate naudoti, įveskite slaptažodį, paspauskite „Pateikti“.

Jei viskas teisinga, pamatysite pranešimą „ESP sėkmingai prijungtas prie XXXX tinklo“. Jūsų ESP dabar prijungtas prie „WiFi“tinklo ir paruoštas. Kai tik jis prisijungs prie „WiFi“, jis prisijungs prie „Domoticz“serverio. Trumpai, jūs turite gauti pranešimą į savo mobilųjį telefoną.

Procesą galite sekti skiltyje „Sąranka“/„Žurnalas“.

Vua lia!:) Tai veikia. Dabar galime tęsti visų dalių surinkimą pagal toliau pateiktą blokinę schemą.

14 žingsnis: blokinė diagrama

Blokinė diagrama
Blokinė diagrama

Apie šią diagramą nėra daug ką pasakyti. Labai paprasta. Įjunkite maitinimą naudodami S1 jungiklį. Įrenginys stovi išjungtoje būsenoje, kol vanduo sutrumpins „Vandens jutiklio“kaiščius. Tada „Pololu board“įsijungia ir maitina įtampos keitiklį. Šis maitinimo modulis, pagrįstas HT7333 mikroschema, paverčia įtampą į stabilią 3,3 V ESP8266. Kitas ESP įsijungia ir siunčia pranešimą į „Domoticz“serverį.

15 žingsnis: Rezultatas ir išvados

Rezultatas ir išvados
Rezultatas ir išvados
Rezultatas ir išvados
Rezultatas ir išvados
Rezultatas ir išvados
Rezultatas ir išvados
Rezultatas ir išvados
Rezultatas ir išvados

Tai veikia. Pranešimo siuntimas užtruko iki 10 sekundžių: prisijungimas prie „WiFi“, pranešimo siuntimas, įspėjimo pranešimo gavimas į telefoną.

Aš užprogramavau jutiklį siųsti signalus kas 30 sekundžių, jei buvo aptiktas vanduo. Jutiklis gali siųsti iki 5–6 pranešimų, kol baterija bus išsikrovusi. Toks prietaisas taip pat gali būti naudojamas vandens lygiui nustatyti. Ką norėčiau patobulinti.

1. Kad jis veiktų greičiau. Manau, kad pabandysiu naudoti ESP-Now technologiją, kuri leidžia tiesiogiai prijungti kelis ESP. Šiuo atveju energijos suvartojimas prisijungimo metu yra labai mažas ir yra greitesnis. Taigi idėja yra naudoti vieną ESP kaip centrą, kad būtų galima prijungti kitus ESP.

2. Įdiekite akumuliatoriaus įkrovos aliarmą. Dabar jūs negalite žinoti, ar yra pakankamai energijos, kad išsiųstumėte pavojaus pranešimą, ar ne. Manau, kad naujos kartos šiame jutiklyje bus specialus mygtukas akumuliatoriaus įkrovimui patikrinti.

Vartotojas turės paspausti mygtuką ir bus rodomas akumuliatoriaus įkrovos lygis.

Rekomenduojamas: