Sisukord:

Veelekkeandur seadmel ESP8266 + Micropython + Domoticz: 16 sammu (koos piltidega)
Veelekkeandur seadmel ESP8266 + Micropython + Domoticz: 16 sammu (koos piltidega)

Video: Veelekkeandur seadmel ESP8266 + Micropython + Domoticz: 16 sammu (koos piltidega)

Video: Veelekkeandur seadmel ESP8266 + Micropython + Domoticz: 16 sammu (koos piltidega)
Video: SKR 1.4 - Adding a 3d Extruder Stepper for a Diamond PrintHead 2024, Juuli
Anonim
Veelekkeandur seadmel ESP8266 + Micropython + Domoticz
Veelekkeandur seadmel ESP8266 + Micropython + Domoticz
Veelekkeandur seadmel ESP8266 + Micropython + Domoticz
Veelekkeandur seadmel ESP8266 + Micropython + Domoticz

Mõni aeg tagasi palus mu naine mul teha veelekkeandur. Ta kartis, et katlaruumi voolik võib lekkida ja vesi uputab äsja asetatud puitpõranda. Ja ma tõelise insenerina võtsin sellise anduri ette.

Oma 15 -aastasest meditsiiniinseneri kogemusest tean, et lihtsaim viis vee tuvastamiseks on veega lühikesed tihvtid. Lihtsamate andurite tööpõhimõte seisneb selles, et vesi peab kahe (või enama) metallist tihvti lühistama ja niipea, kui see juhtub, käivitub häire.

Samm: riistvara

Riistvara
Riistvara

Selle projekti jaoks vajame:

1. ESP8266 - 01 moodul

2. HT7333 3.3V MS madala väljalangemisega lineaarse regulaatori toiteallikas

Vajame seda moodulit, et vähendada aku pinget ESP8266 jaoks vastuvõetavale tasemele. Andmelehe kohaselt peaks sisend olema 3V kuni 3,6V. See moodul annab meile 3.3V.

3. Aku. Ma kasutan 3, 7V Li-ion 400mAh akut. Tegelikult saate kasutada mis tahes muud sobivat toiteallikat. Ka 18650 aku on hea valik. Aku valimisel pidage meeles, et ESP "sööb" umbes 200 mA, ühendades WiFi -võrguga, ja umbes 60 mA, kui plaat laadib andmeid serverisse.

4. TP4056 Lipo aku laadimislaud.

5. Pololu mini surunupp Toitelüliti Väga huvitav pisike tahvel. See võimaldab meil vahetada ESP -moodulit ainult siis, kui tuvastatakse vesi. Te ei pea ESP -d sisse lülitama. Nii et see on hea aku laadimise säästmiseks.

6. Korpus7. Topelt mikrolüliti ON-OFF. Üks rida on mõeldud seadme sisselülitamiseks. Teine rida on testimiseks - see teeb lühise ilma veeta, lihtsalt selleks, et teada anda, kas seade töötab või mitte.

8. Raspberry Pi mikroarvuti

Ma kasutan Raspberry Pi Zero. See on piisavalt võimas Domoticzi serveri käitamiseks.

Samm 2: Tarkvara

Arvutis:

1. paigaldatud esptool, moodulite ja püsivara vilkumiseks

2. Ampy installitud, teie programmi vilkumiseks

3 Soovitatav on Python 3.6 või uuem

4. Kõik soovitud koodiredaktorid. Lihtsaim - Python IDLE, mida tavaliselt installitakse koos Pythoniga. Ma kasutan Pycharm / Atom või Anaconda Spyder On vaarika Pi

5. Domoticzi server on installitud Raspberry Pi -le (või tavalisele arvutile Windowsi või Linuxi all)

Samm: valmistage ette Raspberry Pi - installige Domoticz

Niisiis, võtke oma RPi ja installige Domoticzi serveri jaoks sobiv operatsioonisüsteem.

Saate neid juhiseid järgida.

Kasutan Raspbian Stretchit koos töölauaga siit:

Järgmine samm on arvutisse installida Domoticzi server. Juhiseid saate kasutada siin või siin:). Ärge kartke, see pole nii raske. Ilmselgelt peate oma terminalis töötama:

curl -L install.domoticz.com | sudo bash

Ja ongi nii:) enam -vähem. Domoticzi seadistamine

Nüüd, kui meie server on valmis, saame sellele juurde pääseda mis tahes veebibrauserist, sealhulgas tahvelarvutist, sisestades järgmise URL -i: https:// IP_domoticz: 8080

Samm: Domoticzi seadistamine

Domoticzi seadistamine
Domoticzi seadistamine

Nüüd, kui meie server on valmis, saame sellele juurde pääseda mis tahes veebibrauserist, sealhulgas tahvelarvutist, sisestades järgmise URL -i: https:// IP_domoticz: 8080

Samm: kohandage rakenduse seadeid

Reguleerige rakenduse seadeid
Reguleerige rakenduse seadeid
Reguleerige rakenduse seadeid
Reguleerige rakenduse seadeid

Seadistuse | abil saab määrata erinevaid rakenduse seadeid Seadete menüü.

Seadistuste menüü erinevate vahekaartidega võimaldab sisestada süsteemi paremaks toimimiseks vajalikud isiklikud parameetrid. Pärast andmete sisestamist väljadele peate need salvestama, vajutades punast nuppu "Rakenda sätted". Pärast seda toimingut kuvatakse kõik parooliväljad, mis olid esimesel juurdepääsul tühjad, koos pika tärnide reaga, isegi kui neid pole kasutatud.

Kui olete lehe "Süsteem" põhiseadistused teinud, klõpsake nuppu "Märguanded". Siin peame kohandama, milliseid teatisi me kavatseme kasutada.

6. toiming: märguannete seadistamine

Seadistusteated
Seadistusteated

Teateid saab saata näiteks siis, kui lülitit vajutatakse, elektritarbimine on liiga kõrge, temperatuur on kõrge ja palju muid võimalusi.

Meie puhul tuleb teated saata kohe, kui andur on vee tuvastanud. Nii et lülitage need sisse, mida soovite kasutada. Tavaliselt vajate märguande toimimiseks API -võtit. Natuke ettepoole joostes ütlen, et proovisin Pushoverit, Pushsaferit ja Pushbulletit. Ja jäin Pushoveri juurde. Hiljem räägin, miks.

Paar sõna selle kohta, kuidas märguanded toimivad. Teil peab olema konto Pushbulletis, Pushoveris või muudel lehtedel, mida soovite kasutada. Samuti on teil vaja rakendust oma mobiiltelefonis või arvutis.

Hankige API -võti ja sisestage see ülaltoodud lehele. Saate märguannet testida, klõpsates nuppu "Testi". Kui API -võti on õige, peaksite oma mobiiltelefonile saama testiteatisi.

Niipea kui andur tunneb vett, lülitub ESP sisse ja saadab päringu Domoticzi serverile JSON -vormingus. Kui sündmuse käivitamise tingimused (teile mobiiltelefonile teatise saatmine) on täidetud, saadab Domoticz teate.

Hiljem tulen tagasi "sündmuste" juurde.

Samm: seadistage side riistvaraseadmetega

Seadme seadistamine riistvaraseadme (te) ga
Seadme seadistamine riistvaraseadme (te) ga
Seadme seadistamine riistvaraseadme (te) ga
Seadme seadistamine riistvaraseadme (te) ga
Seadme seadistamine riistvaraseadme (te) ga
Seadme seadistamine riistvaraseadme (te) ga

Enne rakenduse Domoticz kasutamist seadmete juhtimiseks või andurite lugemiseks peate seadistama side riistvaraseadmetega. Riistvara lisamiseks valige Seadistus | Riistvara. Seadmeid ei kuvata enne, kui on lisatud sobiv riistvara.

Rakendus Domoticz toetab paljusid riistvaraseadmeid. Meie üleujutusanduri lugemiseks peame lisama riistvara loendist nn "näiv" riistvara.

Riistvara lisamisel kuvatakse kõigi määratletud riistvarade ülevaade. Riistvara saab keelata või kustutada.

Uus riistvara peaks olema loendis ja seal peaks olema nupp "Loo virtuaalsed andurid".

Klõpsake seda nuppu ja valige Anduri tüüp "Alert". Nüüd peame seadme aktiveerimiseks Domoticzis seadme lisama.

Samm: lisage Domoticzis olev seade aktiivseks muutmiseks

Aktiivseks muutmiseks lisage seade Domoticzis
Aktiivseks muutmiseks lisage seade Domoticzis
Aktiivseks muutmiseks lisage seade Domoticzis
Aktiivseks muutmiseks lisage seade Domoticzis
Aktiivseks muutmiseks lisage seade Domoticzis
Aktiivseks muutmiseks lisage seade Domoticzis

Pange tähele numbrit "IDX" all. See on ainulaadne viide sellele seadmele ja me vajame seda hiljem oma Pythoni skriptis, et teavitustele vastata. Sel juhul on IDX -number 1.

Lülitage seade sisse, klõpsates vasakul rohelist noolt (minu pildil on see seadme lubamise tõttu sinine).

Sisestage seadme nimi ja klõpsake nuppu "Lisa".

Liikuge menüüsse "Utiliidid" ja teie seade peaks seal olema loetletud.

Nüüd peame oma anduri jaoks programmeerima sündmuse. See tähendab, et peame serverile ütlema, mida teha, kui andurilt on sõnum. Ja see oli minu jaoks kõige raskem koht:).

Samm: see ei tööta sel viisil…

See ei tööta sel viisil…
See ei tööta sel viisil…

Alustasin sellega, et üritasin sündmust programmeerida / seadmel / lehel. See allpool pole minu oma, kuid illustreerimiseks sobib.

Kui usute, et kontrollite mõnda märkeruutu ja see töötab, siis eksite:) See ei tööta sel viisil. Ma arvan, et see funktsioon pole siin veel lõppenud. Ärge unustage - see on avatud lähtekoodiga tarkvara. Okei, mitme tunni pärast leidsin lahenduse. Peame rippmenüüst "Seadistamine" kasutama "Sündmused".

Pärast "Sündmused" klõpsamist saate luua oma sündmuse. Saate seda osta, kirjutades koodi Pythonis või LUA -s või lihtsalt kasutades asja nimega "Blockly". Ma otsustasin kasutada Blocklyt. Serveri sundimiseks tegema seda, mida soovite, on kaks võimalust.

Samm: looge sündmus õigesti 1

Ehitage sündmus õigesti 1
Ehitage sündmus õigesti 1

1. Käivitage väline fail sündmuste kaudu, kasutades blokeeritud sõnumit "Start script"

See töötab minu jaoks Windowsi masinas ideaalselt. Kuid mul ei õnnestunud see Raspbianil minu Raspberry Pi -ga. Ma kahtlustan, et lubadega on probleeme.

Samm: looge sündmus õigel viisil 2

Ehitage sündmus õigesti 2
Ehitage sündmus õigesti 2

2. Kasutage sõnumit "Saada märguanne teemaga". See töötab Raspbianiga. See suvand toetab märguannete saatmist teenustele Pushsafe ja Pushover.

Esimese tee kasutamise eelis on see, et see on paindlikum. Saate valida ekraanil kuvatava ikooni, helid ja nii edasi. Minu "sündmus" on näidatud ülaltoodud pildil.

Järgmisena programmeerime ESP mooduli.

12. samm: ESP8266-01 mooduli programmeerimine

Programmeerimine ESP8266-01 moodul
Programmeerimine ESP8266-01 moodul

Alustame meie ESP8266 mooduli vilkumisest. Tavaliselt on need moodulid varustatud tehase püsivaraga. moodulitega on võimalik suhelda, kasutades nn AT -käske. Ja see tarkvara ei võimalda kasutada mooduleid nagu eraldiseisvad kontrollerid. Nende kasutamiseks nagu eraldiseisvad kontrollerid peame kustutama tehase püsivara ja installima uue.

Selleks kasutame esptooli. Püsivara kustutamiseks peame oma mooduli arvutiga ühendama. Selleks vajate TTL -muundurit ja mõnda lisakomponenti. Aga on ka lihtsam viis:). Ostke lihtsalt aliexpressist või ebay USB-lt ESP8266-le ESP-01 Wi-Fi-adapterimoodul koos CH340G draiveriga.

Ühendage ESP8266 moodul TTL -muundurisse, nagu pildil näidatud, ja ühendage see USB -pordiga.

Kui teil on sama muundur nagu minul, peate iseenesest lüliti asendisse "Prog" muutma. Leidke, kuhu esptool on installitud (tavaliselt kuskil C: / Program Files (x86) Python36-32 / Scripts. Minge sellesse kausta, käivitage seal käsuviip. Tüüp: python esptool.exe --port COM5 erase_flash

Loomulikult vali õige port. Minu puhul on see COM5. Porti, kuhu ESP on installitud, saate kontrollida juhtpaneelilt - Süsteem - Seadmehaldur.

Installige püsivara (võtsin selle siit: https://micropython.org/download#esp8266), tippides:

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

Ok, nüüd oleme valmis mikropythoni skripte üles laadima ESP8266 -sse.

Ma kasutan selleks Adafruit MicroPythoni tööriista (ampy).

Kuid tänapäeval on veel üks võimalus nimega Esplorer. See on kasutajaliidesega rakendus, mis võimaldab faile ESP -moodulitesse üles laadida.

Siit leiate juhised ampy installimiseks. Niisiis, lülitage TTL -muunduri lüliti asendisse "UART". Peame failid üles laadima:

  • wifimgr.py - wifi haldur wifi võrguga ühenduse loomiseks
  • main.py - meie peamine skript

Sisestage käsurea tüüp: ampy --port COM5 pange failile C: / tee

Vajuta "enter". Mõne sekundi pärast peaksite nägema tühja käsurida. See tähendab, et fail on üles laaditud. ESP -s olevate failide loendit saate kontrollida käsuga ampy:

ampy -port COM5 ls

Minu kogemuste põhjal on parem üles laadida main.py pärast kõigi vajalike failide üleslaadimist. see on nii, sest niipea kui laadite üles main.py - ESP8266 moodul taaskäivitub ja hakkab käivitama faili main.py. Nii et sel juhul, kui proovite mõnda teist faili üles laadida, võib mõnikord üleslaadimisprotsess ebaõnnestuda. Kuid see ei tähenda, et kõik oleks kadunud:), proovige lihtsalt teist korda ja teil õnnestub (jällegi, minu kogemusest).

Kõik selle projekti failid on saadaval siit:

Samm: looge ühendus WiFi -võrguga. Teadet saama

Ühendage oma WiFi -võrguga. Teadet saama
Ühendage oma WiFi -võrguga. Teadet saama
Ühendage oma WiFi -võrguga. Teadet saama
Ühendage oma WiFi -võrguga. Teadet saama

kui kõik on korras, taaskäivitage moodul, sisestades TTL -muunduri uuesti arvuti USB -porti.

Pärast ESP käivitamist leidke uus WiFi -võrk nimega "Wifimanager". Ühendage see oma arvuti või telefoniga, seejärel minge IP -aadressile 192.168.4.1.. Siin saate ühendada oma ESP kohaliku WiFi -võrguga. Valige WiFi -võrk, mida kavatsete kasutada, tippige parool ja klõpsake nuppu "Esita".

Kui kõik on õigesti, näete teadet "ESP õnnestus XXXX -võrguga ühendada". Teie ESP on nüüd teie WiFi -võrguga ühendatud ja valmis. Niipea kui see on WiFi -ga ühendatud, loob see ühenduse Domoticzi serveriga. Shorty, sa pead saama oma mobiiltelefonile märguande.

Protsessi saate jälgida jaotises "Seadistamine"/"Logi".

Vua lia!:) See töötab. Nüüd saame jätkata kõigi osade kokkupanekut vastavalt allolevale plokkskeemile.

14. samm: plokkskeem

Plokiskeem
Plokiskeem

Selle skeemi kohta pole nii palju öelda. Väga lihtne. Lülitage toide sisse lülitiga S1. Seade seisab väljalülitatud olekus, kuni vesi teeb lühisesse "Veeanduri" tihvtid. Seejärel lülitub "Pololu board" sisse ja annab pingemuundurile toite. See HT7333 kiibil põhinev võimsusmoodul muudab pinge ESP8266 jaoks stabiilseks 3,3 V pingeks. Järgmine ESP lülitub sisse ja saadab sõnumi Domoticzi serverile.

15. samm: Tulemus ja järeldused

Tulemus ja järeldused
Tulemus ja järeldused
Tulemus ja järeldused
Tulemus ja järeldused
Tulemus ja järeldused
Tulemus ja järeldused
Tulemus ja järeldused
Tulemus ja järeldused

See töötab. Märguande saatmine võttis aega kuni 10 sekundit: ühendus WiFi -ga, märguande saatmine, häireteate saatmine telefoni.

Olen programmeerinud anduri saatma häireid iga 30 sekundi järel, kui tuvastati vesi. Andur võib saata kuni 5-6 teadet, kuni aku tühjeneb. Sellist seadet saab kasutada ka veetaseme määramiseks. Mida ma sooviksin parandada.

1. Et see kiiremini töötaks. Ma arvan, et proovin kasutada ESP-Now tehnoloogiat, mis võimaldab mul ühendada mitu ESP-d otse. Sellisel juhul on voolutarve ühenduse ajal väga väike ja kiirem. Seega on idee kasutada ühte ESP -d nagu jaoturit teiste ESP -de ühendamiseks.

2. Rakendage aku taseme häire. Nüüd ei saa teada, kas häiresõnumi saatmiseks on piisavalt energiat või mitte. Ma arvan, et selle anduri järgmise põlvkonna jaoks on aku laadimise testimiseks spetsiaalne nupp.

Kasutaja peab nuppu vajutama ja aku tase kuvatakse.

Soovitan: