Satura rādītājs:

Ūdens noplūdes sensors ierīcē ESP8266 + Micropython + Domoticz: 16 soļi (ar attēliem)
Ūdens noplūdes sensors ierīcē ESP8266 + Micropython + Domoticz: 16 soļi (ar attēliem)

Video: Ūdens noplūdes sensors ierīcē ESP8266 + Micropython + Domoticz: 16 soļi (ar attēliem)

Video: Ūdens noplūdes sensors ierīcē ESP8266 + Micropython + Domoticz: 16 soļi (ar attēliem)
Video: Divstāvu dzīvoklis ar atvērtu terasi - Gudrā Māja no Domintell 2024, Jūlijs
Anonim
Ūdens noplūdes sensors uz ESP8266 + Micropython + Domoticz
Ūdens noplūdes sensors uz ESP8266 + Micropython + Domoticz
Ūdens noplūdes sensors uz ESP8266 + Micropython + Domoticz
Ūdens noplūdes sensors uz ESP8266 + Micropython + Domoticz

Pirms kāda laika sieva lūdza uztaisīt ūdens noplūdes sensoru. Viņa baidījās, ka katlu telpas šļūtene var būt noplūde, un ūdens applūdinās tikko uzlikto koka grīdu. Un es kā īsts inženieris uzņēmos šādu sensoru.

No savas 15 gadu medicīnas inženiera pieredzes es zinu, ka vienkāršākais ūdens noteikšanas veids ir metāla tapas, kuras saīsina ūdens. Vienkāršāko sensoru darbības princips ir tāds, ka ūdenim ir jāsaīsina divas (vai vairākas) metāla tapas, un, tiklīdz tas notiek, iedarbinās trauksme.

1. darbība. Aparatūra

Aparatūra
Aparatūra

Šim projektam mums ir nepieciešams:

1. ESP8266 - 01 modulis

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

Šis modulis ir nepieciešams, lai samazinātu spriegumu no akumulatora līdz ESP8266 pieņemamam līmenim. Saskaņā ar datu lapu jābūt 3V līdz 3.6V ieejai. Šis modulis dod mums 3.3V.

3. Akumulators. Es izmantoju 3, 7V litija jonu 400mAh akumulatoru. Patiesībā jūs varat izmantot jebkuru citu piemērotu barošanas avotu. Arī 18650 akumulators ir laba izvēle. Izvēloties akumulatoru, ņemiet vērā, ka ESP "apēd" aptuveni 200 mA, veidojot savienojumu ar WiFi tīklu, un aptuveni 60 mA tiek izmantots, kad tāfele augšupielādē datus serverī.

4. TP4056 Lipo akumulatora uzlādes dēlis.

5. Pololu mini spiedpogas barošanas slēdzis Ļoti interesants sīks dēlis. Tas ļauj pārslēgt ESP moduli tikai tad, kad tiek konstatēts ūdens. Jums nav jāieslēdz ESP. Tāpēc tas ir labs akumulatora uzlādes taupīšanai.

6. Mājoklis7. Divkāršs mikro slēdzis ON-OFF. Viena līnija kalpo ierīces ieslēgšanai. Otrā līnija ir paredzēta testēšanai - tā saīsina ķēdi bez ūdens, lai tikai informētu mūs, vai ierīce darbojas vai ne.

8. Raspberry Pi mikrodators

Es izmantoju Raspberry Pi Zero. Tas ir pietiekami spēcīgs, lai palaistu Domoticz serveri.

2. darbība: programmatūra

Datorā:

1. uzstādīts esptool, moduļu dzēšanai un programmaparatūras mirgošanai

2. Ampy instalēta, lai mirgo jūsu programmu

3 Ieteicams izmantot Python 3.6 vai jaunāku versiju

4. Jebkurš vēlamais koda redaktors. Vienkāršākais - Python IDLE, kas parasti tiek instalēts kopā ar Python. Es izmantoju Pycharm / Atom vai Anaconda Spyder On aveņu Pi

5. Domoticz serveris, kas instalēts Raspberry Pi (vai parasts dators operētājsistēmā Windows vai Linux)

3. darbība: sagatavojiet Raspberry Pi - instalējiet Domoticz

Tātad, paņemiet RPi un instalējiet operētājsistēmu, kas piemērota Domoticz servera darbināšanai.

Jūs varat sekot šiem norādījumiem.

Es izmantoju Raspbian Stretch ar darbvirsmu šeit:

Nākamais solis ir instalēt Domoticz serveri savā datorā. Jūs varat izmantot instrukcijas šeit vai šeit:). Nebaidieties, tas nav tik grūti. Acīmredzot jums ir jādarbojas savā terminālī:

čokurošanās -L install.domoticz.com | sudo bash

Un tā tas ir:) vairāk vai mazāk. Domoticz iestatīšana

Tagad, kad mūsu serveris ir gatavs, mēs varam tam piekļūt no jebkuras tīmekļa pārlūkprogrammas, tostarp no planšetdatora, ievadot šādu URL: https:// IP_domoticz: 8080

4. darbība: Domoticz iestatīšana

Domoticz iestatīšana
Domoticz iestatīšana

Tagad, kad mūsu serveris ir gatavs, mēs varam tam piekļūt no jebkuras tīmekļa pārlūkprogrammas, tostarp no planšetdatora, ievadot šādu URL: https:// IP_domoticz: 8080

5. darbība: pielāgojiet lietojumprogrammas iestatījumus

Pielāgojiet lietojumprogrammas iestatījumus
Pielāgojiet lietojumprogrammas iestatījumus
Pielāgojiet lietojumprogrammas iestatījumus
Pielāgojiet lietojumprogrammas iestatījumus

Izmantojot iestatījumus |, var iestatīt dažādus lietojumprogrammu iestatījumus Iestatījumu izvēlne.

Izvēlne Iestatījumi ar dažādām cilnēm ļauj ievadīt personiskos parametrus, kas nepieciešami labākai sistēmas darbībai. Pēc datu ievadīšanas laukos tie ir jāsaglabā, nospiežot sarkano pogu "Lietot iestatījumus". Pēc šīs darbības visi paroles lauki, kas bija tukši pie pirmās piekļuves, parādīsies ar garu zvaigznīšu virkni, pat ja tie nav izmantoti.

Kad esat veicis galveno iestatīšanu lapā "Sistēma", noklikšķiniet uz "Paziņojumi". Šeit mums ir jāpielāgo, kādus paziņojumus mēs izmantosim.

6. darbība: paziņojumu iestatīšana

Iestatīšanas paziņojumi
Iestatīšanas paziņojumi

Paziņojumus var nosūtīt, piemēram, ja tiek nospiests slēdzis, elektroenerģijas patēriņš ir pārāk augsts, temperatūra ir augsta un ir pieejamas daudzas citas iespējas.

Mūsu gadījumā paziņojumi ir jānosūta, tiklīdz sensors ir noteicis ūdeni. Tāpēc vienkārši ieslēdziet tos, kurus vēlaties izmantot. Arī parasti jums ir nepieciešama API atslēga, lai paziņojums darbotos. Mazliet skrienot uz priekšu, teikšu, ka izmēģināju Pushover, Pushsafer un Pushbullet. Un es paliku pie Pushover. Vēlāk es pastāstīšu, kāpēc.

Daži vārdi par paziņojumu darbību. Jums ir jābūt kontam vietnē Pushbullet, Pushover vai citās lapās, kuras vēlaties izmantot. Arī jums būs nepieciešama lietotne mobilajā tālrunī vai personālajā datorā.

Iegūstiet API atslēgu un ievietojiet to iepriekš minētajā lapā. Jūs varat pārbaudīt paziņojumu, noklikšķinot uz "Pārbaudīt". Ja API atslēga ir pareiza, uz mobilo tālruni jāsaņem testa paziņojumi.

Tiklīdz sensors uztver ūdeni, ESP ieslēdzas un nosūta pieprasījumu Domoticz serverim JSON formātā. Ja notikuma aktivizēšanas nosacījumi (paziņojuma nosūtīšana jums uz mobilo tālruni) ir izpildīti, Domoticz nosūta paziņojumu.

Vēlāk es atgriezīšos pie "notikumiem".

7. darbība: iestatiet saziņu ar aparatūras ierīci (-ēm)

Sakaru iestatīšana aparatūras ierīcē (-ēs)
Sakaru iestatīšana aparatūras ierīcē (-ēs)
Sakaru iestatīšana aparatūras ierīcē (-ēs)
Sakaru iestatīšana aparatūras ierīcē (-ēs)
Sakaru iestatīšana aparatūras ierīcē (-ēs)
Sakaru iestatīšana aparatūras ierīcē (-ēs)

Lai varētu lietot Domoticz lietotni, lai kontrolētu ierīces vai lasītu sensorus, ir jāiestata saziņa ar aparatūras ierīci (-ēm). Atlasiet Iestatīšana | Aparatūra, lai pievienotu aparatūru. Ierīces netiks rādītas, kamēr nebūs pievienota atbilstošā aparatūra.

Lietojumprogramma Domoticz sākotnēji atbalsta daudzas aparatūras ierīces. Mūsu gadījumā, lai lasītu mūsu plūdu sensoru, no aparatūras saraksta ir jāpievieno tā sauktā "fiktīvā" aparatūra.

Kad tiek pievienota aparatūra, tiks parādīts visas definētās aparatūras pārskats. Aparatūru var atspējot vai izdzēst.

Jaunajai aparatūrai jābūt sarakstā un jābūt pogai "Izveidot virtuālos sensorus".

Noklikšķiniet uz šīs pogas un izvēlieties Sensor Type "Alert". Tagad mums ir jāpievieno ierīce Domoticz, lai tā kļūtu aktīva.

8. darbība: pievienojiet ierīci Domoticz, lai kļūtu aktīvs

Pievienojiet ierīci Domoticz, lai kļūtu aktīvs
Pievienojiet ierīci Domoticz, lai kļūtu aktīvs
Pievienojiet ierīci Domoticz, lai kļūtu aktīvs
Pievienojiet ierīci Domoticz, lai kļūtu aktīvs
Pievienojiet ierīci Domoticz, lai kļūtu aktīvs
Pievienojiet ierīci Domoticz, lai kļūtu aktīvs

Lūdzu, ņemiet vērā numuru zem "IDX". Šī ir unikālā atsauce uz šo ierīci, un mums tā ir nepieciešama vēlāk mūsu Python skriptā, lai risinātu paziņojumu. Šajā gadījumā IDX numurs ir 1.

Iespējojiet ierīci, noklikšķinot uz zaļās bultiņas kreisajā pusē (manā attēlā zemāk tā ir zila, jo ierīce ir iespējota).

Ievadiet ierīces nosaukumu un noklikšķiniet uz "pievienot".

Dodieties uz izvēlni "Utilītas", un jūsu ierīcei jābūt tur norādītai.

Tagad mums ir jāprogrammē mūsu sensora "notikums". Tas nozīmē, ka mums serverim ir jāpasaka, kas jādara, ja tas ir saņēmis ziņu no sensora. Un tā bija vissarežģītākā vieta man:).

9. darbība. Tas nedarbojas šādā veidā…

Tas šādā veidā nedarbojas…
Tas šādā veidā nedarbojas…

Sākumā mēģināju ieprogrammēt notikumu / device / page. Šis zemāk nav mans, bet to var ilustrēt.

Ja uzskatāt, ka atzīmēsit dažas izvēles rūtiņas un tas darbosies, jūs kļūdāties:) Tas šādā veidā nedarbojas. Es domāju, ka šī funkcija šeit vēl nav pabeigta. Neaizmirstiet - tā ir atvērtā pirmkoda programmatūra. Labi, pēc vairākām stundām es atradu risinājumu. Mums jāizmanto nolaižamās izvēlnes "Iestatījumi" sadaļa "Notikumi".

Pēc noklikšķināšanas uz "Notikumi" jūs varat izveidot savu notikumu. To var izdarīt, pērkot koda rakstīšanu Python vai LLU, vai vienkārši izmantojot to, ko sauc par "Blockly". Es izvēlējos izmantot Blockly. Ir divi veidi, kā piespiest serveri darīt to, ko vēlaties.

10. darbība. Veidojiet notikumu pareizā veidā 1

Veidojiet notikumu pareizi 1
Veidojiet notikumu pareizi 1

1. Izpildiet ārējo failu, izmantojot "Notikumi", izmantojot bloķētu ziņojumu "Sākt skriptu"

Tas man lieliski darbojas Windows mašīnā. Bet man tas neizdevās ar Raspbian manā Raspberry Pi. Man ir aizdomas, ka radusies problēma ar atļaujām.

11. darbība. Veidojiet notikumu pareizā veidā 2

Veidojiet notikumu pareizi 2
Veidojiet notikumu pareizi 2

2. Izmantojiet ziņojumu "Sūtīt paziņojumu ar tēmu". Tas darbojas Raspbian. Šī opcija atbalsta paziņojumu sūtīšanu uz Pushsafe un Pushover.

Pirmā veida izmantošanas priekšrocība ir tā, ka tā ir elastīgāka. Jūs varat izvēlēties ikonu, kas tiks parādīta displejā, skaņas un tā tālāk. Mans "notikums" ir redzams augšējā attēlā.

Tālāk, ieprogrammēsim ESP moduli.

12. solis: ESP8266-01 moduļa programmēšana

Programmēšanas modulis ESP8266-01
Programmēšanas modulis ESP8266-01

Sāksim ar mūsu ESP8266 moduļa mirgošanu. Parasti šiem moduļiem ir rūpnīcas programmaparatūra. ir iespējams sazināties ar moduļiem, izmantojot tā saucamās AT komandas. Un arī šī programmatūra neļauj izmantot moduļus, piemēram, atsevišķus kontrolierus. Lai tos izmantotu kā atsevišķus kontrolierus, mums ir jāizdzēš rūpnīcas programmaparatūra un jāinstalē jauna.

Lai to izdarītu, mēs izmantosim esptoolu. Mums ir nepieciešams savienot moduli ar datoru, lai izdzēstu programmaparatūru. Lai to izdarītu, jums ir nepieciešams TTL pārveidotājs un daži papildu komponenti. Bet ir vieglāks veids:). Vienkārši iegādājieties aliexpress vai ebay USB uz ESP8266 ESP-01 Wi-Fi adaptera moduli ar CH340G draiveri.

Pievienojiet ESP8266 moduli TTL pārveidotājam, kā parādīts attēlā, un pievienojiet to USB portam.

Ja jums ir tāds pats pārveidotājs kā man, tad pats par sevi ir jāmaina slēdzis pozīcijā "Prog". Atrodiet, kur ir instalēts esptool (parasti kaut kur, piemēram, C: / Program Files (x86) Python36-32 / Scripts. Dodieties uz šo mapi, palaidiet tur komandu uzvedni. Tips: python esptool.exe --portēt COM5 erase_flash

Protams, izvēlieties pareizo portu. Manā gadījumā tas ir COM5. Portu, kurā ir instalēta ESP, varat pārbaudīt, izmantojot vadības paneli - sistēma - ierīču pārvaldnieks.

Instalējiet programmaparatūru (es to paņēmu no šejienes: https://micropython.org/download#esp8266), ierakstot:

python esptool.exe-ports COM5 --baud 460800 write_flash --flash_size = atklāt 0 C: / path_to_firmware / esp8266-20180511-v1.9.4.bin

Labi, tagad mēs esam gatavi augšupielādēt mikropitona skriptus uz ESP8266.

Šim nolūkam es izmantoju Adafruit MicroPython rīku (ampy).

Bet mūsdienās ir vēl viena iespēja, ko sauc par Esplorer. Šī ir lietotne ar lietotāja interfeisu, kas ļauj augšupielādēt failus ESP moduļos.

Instrukcijas par ampy instalēšanu varat atrast šeit. Tātad, ielieciet TTL pārveidotāja slēdzi pozīcijā "UART". Mums būs jāaugšupielādē faili:

  • wifimgr.py - wifi pārvaldnieks savienojuma izveidei ar wifi tīklu
  • main.py - mūsu galvenais skripts

Komandrindas ierakstā: ampy --port COM5 ielieciet C: / ceļu uz savu failu

Nospiediet "enter". Pēc dažām sekundēm vajadzētu redzēt tukšu komandrindu. Tas nozīmē, ka fails ir augšupielādēts. Jūs varat pārbaudīt ESP failu sarakstu, izmantojot komandu ampy:

ampy -ports COM5 ls

Pēc manas pieredzes labāk augšupielādēt main.py pēc tam, kad esat augšupielādējis visus nepieciešamos failus. tas tā ir, jo, tiklīdz jūs augšupielādēsit main.py - ESP8266 modulis tiks atsāknēts un sāks izpildīt failu main.py. Tātad šajā gadījumā, ja mēģināt augšupielādēt citu failu, dažreiz augšupielādes process neizdosies. Bet tas nenozīmē, ka viss ir zaudēts:), vienkārši pamēģini otro reizi, un tev izdosies (atkal, pēc manas pieredzes).

Visi šī projekta faili ir pieejami šeit:

13. darbība: izveidojiet savienojumu ar savu WiFi tīklu. Saņemt paziņojumu

Izveidojiet savienojumu ar savu WiFi tīklu. Saņemt paziņojumu
Izveidojiet savienojumu ar savu WiFi tīklu. Saņemt paziņojumu
Izveidojiet savienojumu ar savu WiFi tīklu. Saņemt paziņojumu
Izveidojiet savienojumu ar savu WiFi tīklu. Saņemt paziņojumu

ja viss ir kārtībā, restartējiet moduli, atkārtoti ievietojot TTL pārveidotāju datora USB portā.

Pēc ESP palaišanas atrodiet jaunu WiFi tīklu ar nosaukumu "Wifimanager". Izveidojiet savienojumu ar to ar datoru vai tālruni, pēc tam dodieties uz IP adresi 192.168.4.1.. Šeit jūs varat savienot savu ESP ar vietējo WiFi tīklu. Izvēlieties WiFi tīklu, kuru izmantosit, ierakstiet paroli, nospiediet "Iesniegt".

Ja viss ir pareizi, jūs redzēsit ziņojumu "ESP veiksmīgi izveidots savienojums ar XXXX tīklu". Jūsu ESP tagad ir savienots ar jūsu WiFi tīklu un ir gatavs. Tiklīdz tas izveidos savienojumu ar WiFi, tas izveidos savienojumu ar Domoticz serveri. Shorty, jums ir jāsaņem paziņojums savā mobilajā tālrunī.

Jūs varat izsekot procesam sadaļā "Iestatīšana"/"Žurnāls".

Vua lia!:) Tas strādā. Tagad mēs varam turpināt visu detaļu salikšanu saskaņā ar zemāk redzamo blokshēmu.

14. darbība: bloka diagramma

Blokshēma
Blokshēma

Par šo diagrammu nav daudz ko teikt. Ļoti vienkārši. Pārslēdziet barošanu ar S1 slēdzi. Ierīce stāv izslēgtā stāvoklī, līdz ūdens saīsina "Ūdens sensora" tapas. Pēc tam ieslēdzas "Pololu plate" un dod sprieguma pārveidotājam jaudu. Šis jaudas modulis, kura pamatā ir mikroshēma HT7333, pārveido spriegumu uz stabilu 3.3V ESP8266. Nākamais ESP ieslēdzas un nosūta ziņojumu uz Domoticz serveri.

15. darbība. Rezultāts un secinājumi

Rezultāts un secinājumi
Rezultāts un secinājumi
Rezultāts un secinājumi
Rezultāts un secinājumi
Rezultāts un secinājumi
Rezultāts un secinājumi
Rezultāts un secinājumi
Rezultāts un secinājumi

Tas strādā. Paziņojuma sūtīšana aizņēma līdz 10 sekundēm: savienojums ar WiFi, paziņojuma sūtīšana, trauksmes ziņojuma saņemšana uz tālruni.

Esmu ieprogrammējis sensoru sūtīt trauksmes signālus ik pēc 30 sekundēm, ja tiek konstatēts ūdens. Sensors var nosūtīt līdz 5-6 paziņojumiem, līdz akumulators ir izlādējies. Šādu ierīci var izmantot arī ūdens līmeņa noteikšanai. Ko es gribētu uzlabot.

1. Lai tas darbotos ātrāk. Es domāju, ka mēģināšu izmantot ESP-Now tehnoloģiju, kas ļauj tieši savienot vairākus ESP. Šajā gadījumā elektroenerģijas patēriņš savienojuma laikā ir ļoti zems un tas ir ātrāks. Tātad ideja ir izmantot vienu ESP kā centru citu ESP savienošanai.

2. Ieviest akumulatora uzlādes līmeņa trauksmi. Tagad jūs nevarat zināt, vai ir pietiekami daudz enerģijas, lai nosūtītu trauksmes ziņojumu. Es domāju, ka šī sensora nākamajā paaudzē būs īpaša poga akumulatora uzlādes pārbaudei.

Lietotājam būs jānospiež poga, un tiks parādīts akumulatora uzlādes līmenis.

Ieteicams: