Mundarija:

ESP8266 + Micropython + Domoticz -da suv oqishi sensori: 16 qadam (rasmlar bilan)
ESP8266 + Micropython + Domoticz -da suv oqishi sensori: 16 qadam (rasmlar bilan)

Video: ESP8266 + Micropython + Domoticz -da suv oqishi sensori: 16 qadam (rasmlar bilan)

Video: ESP8266 + Micropython + Domoticz -da suv oqishi sensori: 16 qadam (rasmlar bilan)
Video: Water leakage sensor on ESP8266 + micropython + Domoticz 2024, Iyul
Anonim
ESP8266 + Micropython + Domoticz -da suv oqishi sensori
ESP8266 + Micropython + Domoticz -da suv oqishi sensori
ESP8266 + Micropython + Domoticz -da suv oqishi sensori
ESP8266 + Micropython + Domoticz -da suv oqishi sensori

Bir muncha vaqt oldin, xotinim mendan suv oqishi sensori yasashimni so'radi. U qozonxonadagi shlang oqishi mumkinligidan qo'rqardi va suv yangi yotqizilgan yog'och polni suv bosadi. Va men haqiqiy muhandis sifatida shunday sensorni oldim.

Tibbiyot muhandisi sifatida 15 yillik tajribamdan bilamanki, suvni aniqlashning eng oson usuli - bu suv bilan qisilgan metall pinlar. Eng oddiy datchiklarning ishlash printsipi shundaki, suv ikkita (yoki undan ko'p) metall pimni qisqartirishi kerak va bu sodir bo'lishi bilan signal ishga tushadi.

1 -qadam: Uskuna

Uskuna
Uskuna

Ushbu loyiha uchun bizga kerak:

1. ESP8266 - 01 moduli

2. HT7333 3.3V MS Low Dropout Lineer Regulator Power Supply modu

Batareyadan kuchlanishni ESP8266 uchun maqbul darajaga tushirish uchun bizga bu modul kerak. Ma'lumotlar jadvaliga ko'ra, 3V dan 3.6V gacha kirish bo'lishi kerak. Ushbu modul bizga 3,3V kuchlanish beradi.

3. Batareya. Men 3, 7V Li-ion 400mAh batareyadan foydalanayapman. Aslida, siz boshqa mos keladigan quvvat manbalaridan foydalanishingiz mumkin. 18650 batareyasi ham yaxshi tanlovdir. Batareyani tanlayotganda, shuni esda tutingki, ESP WiFi tarmog'iga ulangan 200mA atrofida "yeydi" va taxta serverga ma'lumotlarni yuklashda taxminan 60mA ishlatiladi.

4. TP4056 Lipo batareyasini zaryadlovchi paneli.

5. Pololu mini tugmachali quvvat tugmasi Juda qiziq kichkina taxta. Bu ESP modulini faqat suv aniqlanganda o'zgartirishga imkon beradi. ESP -ni yoqish shart emas. Shunday qilib, batareya zaryadini tejash yaxshidir.

6. Uy -joy7. Ikkita mikro kalitni ON-OFF. Bitta chiziq qurilmani yoqish uchun xizmat qiladi. Ikkinchi qator sinov uchun - bu suvsiz davrni qisqartiradi, bizga xabar bering, bu qurilma ishlayaptimi yoki yo'qmi.

8. Raspberry Pi mikrokompyuter

Men Raspberry Pi Zero -dan foydalanmoqdaman. Bu Domoticz serverini ishga tushirish uchun etarlicha kuchli.

2 -qadam: dasturiy ta'minot

Kompyuteringizda:

1. esptool o'rnatilgan, modullarni o'chirish va dasturiy ta'minotni o'chirish uchun

2. Ampy o'rnatilgan, sizning dasturingizni o'chirish uchun

3 Python 3.6 yoki undan yuqori tavsiya etiladi

4. Siz xohlagan kod muharriri. Eng oddiy - odatda Python bilan o'rnatiladigan Python IDLE. Men malina Pi -da Pycharm / Atom yoki Anaconda Spyder -dan foydalanayapman

5. Raspberry Pi (yoki Windows yoki Linux ostida oddiy kompyuter) o'rnatilgan Domoticz serveri

3 -qadam: Raspberry Pi tayyorlang - Domoticz -ni o'rnating

Shunday qilib, RPi -ni oling va Domoticz serverini ishga tushirish uchun mos operatsion tizimni o'rnating.

Siz ushbu ko'rsatmalarga amal qilishingiz mumkin.

Men bu erda Raspbian Stretch -ni ish stoli bilan ishlataman:

Keyingi qadam - Domoticz serverini kompyuteringizga o'rnatish. Siz bu erda yoki bu erda ko'rsatmalarni ishlatishingiz mumkin:). Qo'rqmang, bu unchalik qiyin emas. Shubhasiz, siz terminalda ishlashingiz kerak:

curl -L install.domoticz.com | sudo bash

Va bu:) ko'proq yoki kamroq. Domoticzni sozlash

Endi bizning server tayyor, biz unga istalgan veb -brauzerdan, shu jumladan planshetdan quyidagi URLni kiritish orqali kira olamiz: https:// IP_domoticz: 8080

4 -qadam: Domoticz -ni sozlash

Domoticz sozlamalari
Domoticz sozlamalari

Endi bizning server tayyor, biz unga istalgan veb -brauzerdan, shu jumladan planshetdan quyidagi URLni kiritish orqali kira olamiz: https:// IP_domoticz: 8080

5 -qadam: Ilova sozlamalarini to'g'rilang

Ilova sozlamalarini sozlash
Ilova sozlamalarini sozlash
Ilova sozlamalarini sozlash
Ilova sozlamalarini sozlash

O'rnatish | orqali sozlash mumkin bo'lgan turli xil dastur sozlamalari mavjud Sozlamalar menyusi.

Har xil yorliqli sozlamalar menyusi tizimning yaxshi ishlashi uchun zarur bo'lgan shaxsiy parametrlarni kiritishga imkon beradi. Ma'lumotlarni maydonlarga kiritgandan so'ng, ularni "Sozlamalarni qo'llash" qizil tugmachasini bosib saqlashingiz kerak. Bu amaldan so'ng, birinchi kirishda bo'sh bo'lgan Parol maydonlari, agar ular ishlatilmagan bo'lsa ham, uzun yulduzcha qatori bilan paydo bo'ladi.

"Tizim" sahifasida asosiy sozlamalarni o'rnatganingizdan so'ng, "Bildirishnomalar" ni bosing. Bu erda biz qanday bildirishnomalarni ishlatishni sozlashimiz kerak.

6 -qadam: Bildirishnomalarni o'rnatish

O'rnatish bildirishnomalari
O'rnatish bildirishnomalari

Bildirishnomalar, masalan, kalit bosilganda, elektr quvvati juda yuqori, harorat yuqori va boshqa variantlar uchun yuborilishi mumkin.

Bizning holatimizda, sensorlar orqali suv aniqlanganda, bildirishnomalar yuborilishi kerak. Shunday qilib, siz foydalanmoqchi bo'lgan narsalarni yoqing. Shuningdek, bildirishnoma ishlashi uchun odatda sizga API kaliti kerak bo'ladi. Bir oz oldinga yugurib, men aytamanki, men Pushover, Pushsafer va Pushbulletni sinab ko'rdim. Va men Pushover bilan qoldim. Buning sababini keyinroq aytaman.

Bildirishnomalar qanday ishlashi haqida bir necha so'z. Pushbullet, Pushover yoki siz foydalanmoqchi bo'lgan boshqa sahifalarda hisob qaydnomangiz bo'lishi kerak. Bundan tashqari, sizga mobil telefon yoki kompyuterda ilova kerak bo'ladi.

API kalitini oling va uni yuqoridagi sahifaga joylashtiring. Siz "Sinov" tugmasini bosish orqali bildirishnomani sinab ko'rishingiz mumkin. Agar API kaliti to'g'ri bo'lsa, siz mobil telefoningizga sinov xabarnomasini olishingiz kerak.

Sensor suvni sezishi bilan ESP yoqiladi va Domoticz serveriga JSON formatida so'rov yuboradi. Agar voqeani boshlash shartlari (sizga mobil telefoningizga xabar yuborish) bajarilsa, Domoticz xabar yuboradi.

Keyinchalik "voqealar" ga qaytaman.

7 -qadam: Aloqa qurilmalari bilan aloqa o'rnatish

Aloqa qurilmalari uchun aloqa o'rnatish
Aloqa qurilmalari uchun aloqa o'rnatish
Aloqa qurilmalari uchun aloqa o'rnatish
Aloqa qurilmalari uchun aloqa o'rnatish
Aloqa qurilmalari uchun aloqa o'rnatish
Aloqa qurilmalari uchun aloqa o'rnatish

Qurilmalarni boshqarish yoki sensorlarni o'qish uchun Domoticz dasturidan foydalanishdan oldin siz apparat qurilmalari bilan aloqa o'rnatishingiz kerak. Uskunani qo'shish uchun O'rnatish | Uskuna -ni tanlang. Tegishli uskunalar qo'shilmaguncha qurilmalar ko'rinmaydi.

Domoticz ilovasi ko'plab apparat qurilmalarini mahalliy darajada qo'llab -quvvatlaydi. Bizning holatda, suv toshqini sensorini o'qish uchun, biz uskunalar ro'yxatiga "qo'g'irchoq" deb nomlangan qo'shimcha qurilmani qo'shishimiz kerak.

Uskuna qo'shilganda, barcha aniqlangan uskunalarning umumiy ko'rinishi ko'rsatiladi. Uskuna o'chirilishi yoki o'chirilishi mumkin.

Yangi apparat ro'yxatda bo'lishi kerak va "Virtual sensorlar yaratish" tugmasi bo'lishi kerak.

Bu tugmani bosing va "Alert" Sensor turini tanlang. Endi biz faol bo'lish uchun Domoticz -ga qurilmani qo'shishimiz kerak.

8 -qadam: Faol bo'lish uchun qurilmani Domoticz -ga qo'shing

Faol bo'lish uchun qurilmani Domoticz -ga qo'shing
Faol bo'lish uchun qurilmani Domoticz -ga qo'shing
Faol bo'lish uchun qurilmani Domoticz -ga qo'shing
Faol bo'lish uchun qurilmani Domoticz -ga qo'shing
Faol bo'lish uchun Domoticz -dagi qurilmani qo'shing
Faol bo'lish uchun Domoticz -dagi qurilmani qo'shing

Iltimos, "IDX" ostidagi raqamga e'tibor bering. Bu ushbu qurilmaga yagona havola va bizga keyinchalik Python skriptida bildirishnoma yuborish uchun kerak. Bu holda IDX raqami 1 ga teng.

Chapdagi yashil o'qni bosish orqali qurilmani yoqing (pastdagi rasmimda ko'k, chunki qurilma yoqilgan).

Qurilmaning nomini kiriting va "Qo'shish" tugmasini bosing.

"Utilitalar" menyusiga o'ting va qurilmangiz u erda ko'rsatilishi kerak.

Endi biz sensorimiz uchun "voqea" ni dasturlashimiz kerak. Bu shuni anglatadiki, agar biz sensordan xabar olgan bo'lsak, nima qilish kerakligini serverga aytishimiz kerak va bu men uchun eng qiyin joy:).

9 -qadam: bu tarzda ishlamaydi …

Bu usulda ishlamaydi…
Bu usulda ishlamaydi…

Men voqeani / device / sahifasida dasturlashdan boshladim. Bu meniki emas, lekin tasvirlash yaxshi.

Agar siz ba'zi katakchalarni belgilashingizga ishonsangiz va u ishlasa, siz xato qilasiz:) Bu shunday ishlamaydi. Menimcha, bu xususiyat bu erda hali tugamagan. Shuni unutmangki, bu ochiq manbali dasturiy ta'minot, bir necha soatdan keyin men yechimni topdim. Biz "O'rnatish" ochiladigan menyusidan "Voqealar" dan foydalanishimiz kerak.

"Voqealar" tugmachasini bosgandan so'ng, siz o'zingizning tadbiringizni yaratishingiz mumkin. Siz buni Python yoki LUA -da yoki "Blockly" deb nomlangan kod yordamida yozishni sotib olishingiz mumkin. Men Blockly -dan foydalanishni tanladim. Serverni xohlagan narsani qilishga majburlashning ikki yo'li mavjud.

10 -qadam: Voqeani to'g'ri yo'l bilan qurish 1

Voqeani to'g'ri yo'l bilan qurish 1
Voqeani to'g'ri yo'l bilan qurish 1

1. Tashqi faylni "Voqealar" orqali, "Skriptni ishga tushirish" blokli xabaridan foydalanib bajaring.

Bu men uchun Windows mashinasida juda yaxshi ishlaydi. Ammo men Raspberry Pi -da Raspbian -da muvaffaqiyat qozonmadim. Men ruxsatnomalar bilan bog'liq muammo borligiga shubha qilaman.

11 -qadam: Voqeani to'g'ri yo'l bilan qurish 2

Voqeani to'g'ri yo'l bilan qurish 2
Voqeani to'g'ri yo'l bilan qurish 2

2. "Mavzu bilan xabar yuborish" xabaridan foydalaning. Bu Raspbian tilida ishlaydi. Bu parametr Pushsafe va Pushover -ga bildirishnoma yuborishni qo'llab -quvvatlaydi.

Birinchi usuldan foydalanishning afzalligi shundaki, u yanada moslashuvchan. Siz displeyda, tovushlarda va boshqalarda ko'rsatiladigan belgini tanlashingiz mumkin. Mening "voqeam" yuqoridagi rasmda ko'rsatilgan.

Keyin ESP modulini dasturlashtiramiz.

12-qadam: ESP8266-01 modulini dasturlash

ESP8266-01 modulini dasturlash
ESP8266-01 modulini dasturlash

ESP8266 modulini miltillashdan boshlaylik. Odatda bu modullar zavod dasturiy ta'minoti bilan birga keladi. AT buyruqlari yordamida modullar bilan aloqa o'rnatish mumkin. Shuningdek, ushbu dastur mustaqil boshqaruvchi kabi modullardan foydalanishga ruxsat bermaydi. Ularni mustaqil boshqaruvchilar kabi ishlatish uchun biz zavod dasturlarini o'chirib tashlashimiz va yangisini o'rnatishimiz kerak.

Buning uchun biz esptool -dan foydalanamiz. Dasturiy ta'minotni o'chirish uchun biz modulni kompyuterga ulashimiz kerak. Buning uchun sizga TTL konvertori + bir nechta qo'shimcha komponentlar kerak. Lekin osonroq yo'l bor:). Faqat aliexpress yoki ebay USB orqali CH340G drayveri bilan ESP8266 ESP-01 Wi-Fi adapter moduliga sotib oling.

ESP8266 modulini rasmda ko'rsatilgandek TTL konvertoriga ulang va uni USB portiga ulang.

Agar sizda meniki bilan bir xil konvertor bo'lsa, o'z -o'zidan siz kalitni "Prog" holatiga o'zgartirishingiz kerak. Esptool o'rnatilgan joyni toping (odatda C: / Program Files (x86) Python36-32 / Scripts kabi. Bu papkaga o'ting, u erda buyruq irodasini ishga tushiring. Turi: python esptool.exe-COM5 erase_flash

Albatta, to'g'ri portni tanlang. Mening holimda bu COM5. Siz ESP o'rnatilgan portni Boshqarish paneli - Tizim - Qurilma menejeri orqali tekshirishingiz mumkin.

Dasturiy ta'minotni o'rnating (men uni bu erdan oldim: https://micropython.org/download#esp8266) yozib:

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

OK, endi biz mikropiton skriptlarini ESP8266 -ga yuklashga tayyormiz.

Buning uchun men Adafruit MicroPython Tool (ampy) dan foydalanayapman.

Ammo hozirgi kunda Esplorer deb nomlangan boshqa variant bor. Bu fayllarni ESP modullariga yuklash imkonini beruvchi foydalanuvchi interfeysiga ega ilova.

Ampini o'rnatish bo'yicha ko'rsatmalarni bu erda topishingiz mumkin. Shunday qilib, TTL konvertoridagi kalitni "UART" holatiga qo'ying. Fayllarni yuklashimiz kerak bo'ladi:

  • wifimgr.py - wifi tarmog'iga ulanish uchun wifi menejeri
  • main.py - bizning asosiy skriptimiz

Buyruqlar satriga yozing: ampy --port COM5 faylingizga C: / yo'lini qo'ying

"Kirish" tugmasini bosing. Bir necha soniyadan so'ng siz bo'sh buyruq satrini ko'rishingiz kerak. Bu fayl yuklanganligini anglatadi. ESP -dagi fayllar ro'yxatini ampy buyrug'i bilan tekshirishingiz mumkin:

ampy -port COM5 ls

Mening tajribamga ko'ra, barcha kerakli fayllarni yuklaganingizdan so'ng main.py -ni yuklash yaxshiroqdir. Bu shunday, chunki siz main.py -ni yuklaysiz - ESP8266 moduli qayta yuklanadi va main.py faylini ishga tushiradi. Shunday qilib, agar siz boshqa faylni yuklamoqchi bo'lsangiz, ba'zida yuklash jarayoni muvaffaqiyatsiz bo'ladi. Ammo bu hamma narsa yo'qoldi degani emas:), faqat ikkinchi marta urinib ko'ring, va siz muvaffaqiyat qozonasiz (yana o'z tajribamdan).

Loyihaning barcha fayllarini bu erdan olish mumkin:

13 -qadam: Wi -Fi tarmog'iga ulaning. Bildirishnoma oling

Wi -Fi tarmog'ingizga ulaning. Bildirishnoma oling
Wi -Fi tarmog'ingizga ulaning. Bildirishnoma oling
Wi -Fi tarmog'ingizga ulaning. Bildirishnoma oling
Wi -Fi tarmog'ingizga ulaning. Bildirishnoma oling

Agar hamma narsa yaxshi bo'lsa, TTL konvertorini kompyuterning USB portiga qayta o'rnatish orqali modulni qayta ishga tushiring.

ESP ishga tushgandan so'ng, "Wifimanager" deb nomlangan yangi WiFi tarmog'ini toping. Unga kompyuter yoki telefon orqali ulaning, keyin 192.168.4.1 IP -manziliga o'ting. Bu erda siz ESP -ni mahalliy WiFi tarmog'iga ulashingiz mumkin. Foydalanmoqchi bo'lgan WiFi tarmog'ini tanlang, parolni kiriting va "Yuborish" ni bosing.

Agar hamma narsa to'g'ri bo'lsa, siz "ESP XXXX tarmog'iga muvaffaqiyatli ulandi" xabarini ko'rasiz. Sizning ESP hozir Wi -Fi tarmog'ingizga ulangan va tayyor. Wi -Fi tarmog'iga ulanishi bilan u Domoticz serveriga ulanadi. Qisqa vaqt ichida siz mobil telefoningizga xabar olishingiz kerak.

Siz jarayonni "O'rnatish"/"Jurnal" da kuzatishingiz mumkin.

Vau lia!:) Ishlamoqda. Endi biz quyidagi blok -sxemaga muvofiq barcha qismlarni yig'ishni davom ettira olamiz.

14 -qadam: Blok diagrammasi

Blok diagrammasi
Blok diagrammasi

Bu diagramma haqida ko'p gapirish mumkin emas. Juda oddiy. S1 kaliti yordamida quvvatni o'zgartiring. Qurilma "Suv sensori" shnuri yopilmaguncha yopiq holatda bo'ladi. Keyin "Pololu platasi" yoqiladi va kuchlanish konvertoriga quvvat beradi. HT7333 chipiga asoslangan ushbu quvvat moduli ESP8266 uchun kuchlanishni barqaror 3.3V ga o'zgartiradi. Keyingi ESP yoqiladi va Domoticz serveriga xabar yuboradi.

15 -qadam: Natijalar va xulosalar

Natija va xulosalar
Natija va xulosalar
Natija va xulosalar
Natija va xulosalar
Natijalar va xulosalar
Natijalar va xulosalar
Natijalar va xulosalar
Natijalar va xulosalar

Ishlamoqda. Bildirishnoma yuborish 10 sekundgacha davom etdi: Wi -Fi tarmog'iga ulanish, bildirishnoma yuborish, telefoningizga signal yuborish.

Men sensorni har 30 -soniyada signal yuborish uchun dasturlashtirganman, agar suv aniqlansa. Sensor batareya tugagunga qadar 5-6 ta bildirishnoma yuborishi mumkin. Bunday qurilma suv sathini aniqlash uchun ham ishlatilishi mumkin. Men nimani yaxshilashni xohlayman.

1. Buni tezroq ishlashi uchun. O'ylaymanki, men ESP-Now texnologiyasidan foydalanishga harakat qilaman, bu menga bir nechta ESPni to'g'ridan-to'g'ri ulash imkonini beradi. Bunday holda, ulanish paytida quvvat sarfi juda past va u tezroq bo'ladi. Shunday qilib, bitta ESPni boshqa ESPlarni ulash uchun uyadan foydalanish maqsadga muvofiqdir.

2. Batareya darajasi signalizatsiyasini amalga oshirish. Endi siz signal yuborish uchun etarli kuch bor yoki yo'qligini bilolmaysiz. Menimcha, bu sensorning keyingi avlodida batareya zaryadini tekshirish uchun maxsus tugma bo'ladi.

Foydalanuvchi tugmachani bosishi kerak va batareya quvvati ko'rsatiladi.

Tavsiya: