Mündəricat:

ESP8266 + Micropython + Domoticz -də su sızma sensoru: 16 addım (şəkillərlə)
ESP8266 + Micropython + Domoticz -də su sızma sensoru: 16 addım (şəkillərlə)

Video: ESP8266 + Micropython + Domoticz -də su sızma sensoru: 16 addım (şəkillərlə)

Video: ESP8266 + Micropython + Domoticz -də su sızma sensoru: 16 addım (şəkillərlə)
Video: MicroPython & ESP8266 2024, Noyabr
Anonim
ESP8266 + Micropython + Domoticz -də su sızma sensoru
ESP8266 + Micropython + Domoticz -də su sızma sensoru
ESP8266 + Micropython + Domoticz -də su sızma sensoru
ESP8266 + Micropython + Domoticz -də su sızma sensoru

Bir müddət əvvəl həyat yoldaşım su sızması sensoru düzəltməyimi istədi. Qazanxanadakı hortumun sızdırıla biləcəyindən və suyun yeni döşənmiş taxta döşəməni su basacağından qorxdu. Mən əsl mühəndis olaraq belə bir sensoru öz üzərimə götürdüm.

Tibb mühəndisi olaraq 15 illik təcrübəmdən bilirəm ki, suyu aşkar etməyin ən asan yolu su ilə qısaldılmış metal sancaqlardır. Ən sadə sensorların işləmə prinsipi, suyun iki (və ya daha çox) metal sancağa qısa olması və baş verən kimi həyəcan siqnalı verməsidir.

Addım 1: Avadanlıq

Avadanlıq
Avadanlıq

Bu layihə üçün bizə lazımdır:

1. ESP8266 - 01 modulu

2. HT7333 3.3V MS Aşağı Düşmə Xətti Tənzimləyici Güc Təchizatı modu

Batareyadan ESP8266 üçün məqbul səviyyəyə endirmək üçün bu modula ehtiyacımız var. Məlumat cədvəlinə görə 3V -dan 3.6V -a qədər giriş olmalıdır. Bu modul bizə 3.3V verir.

3. Batareya. 3, 7V Li-ion 400mAh batareya istifadə edirəm. Əslində hər hansı digər uyğun enerji mənbəyindən istifadə edə bilərsiniz. 18650 batareya da yaxşı bir seçimdir. Batareya seçərkən unutmayın ki, ESP WiFi şəbəkəsinə qoşulan təxminən 200mA "yeyir" və lövhə serverə məlumat yükləyərkən təxminən 60mA istifadə olunur.

4. TP4056 Lipo batareya şarj lövhəsi.

5. Pololu mini düyməsi Power Switch Çox maraqlı kiçik lövhə. ESP modulunu yalnız su aşkar edildikdə dəyişdirə bilərik. ESP -ni aktiv saxlamağa ehtiyac yoxdur. Buna görə batareyanın doldurulmasına qənaət etmək yaxşıdır.

6. Mənzil7. İkiqat mikro açar ON-OFF. Bir xətt cihazı işə salmağa xidmət edir. İkinci xətt test üçündür - susuz dövrəni qısaldır, sadəcə cihazın işlədiyini və ya işləmədiyini bizə bildirin.

8. Raspberry Pi mikro kompüteri

Raspberry Pi Zero istifadə edirəm. Domoticz serverini işə salmaq üçün kifayət qədər güclüdür.

Addım 2: Proqram təminatı

Kompüterinizdə:

1. modulları və yanıb -sönən proqram təminatını silmək üçün esptool quraşdırılıb

2. Ampy proqramı quraşdırılıb, proqramı söndürmək üçün

3 Python 3.6 və ya daha yüksək tövsiyə olunur

4. İstədiyiniz hər hansı bir kod redaktoru. Ən sadə - adətən Python ilə quraşdırılan Python IDLE. Raspberry Pi üzərində Pycharm / Atom və ya Anaconda Spyder istifadə edirəm

5. Raspberry Pi -də quraşdırılmış Domoticz serveri (və ya Windows və ya Linux altında ümumi kompüter)

Addım 3: Raspberry Pi hazırlayın - Domoticz quraşdırın

Beləliklə, RPi -ni götürün və Domoticz serverini işə salmaq üçün uyğun bir əməliyyat sistemi qurun.

Bu təlimatları izləyə bilərsiniz.

Mən burada Raspbian Stretch ilə Desktop istifadə edirəm:

Növbəti addım Domoticz serverini kompüterinizə quraşdırmaqdır. Təlimatları burada və ya burada istifadə edə bilərsiniz:). Qorxma, o qədər də çətin deyil. Aydındır ki, terminalınızda işləməlisiniz:

curl -L install.domoticz.com | sudo bash

Və budur:) az və ya çox. Domoticz qurulması

İndi serverimiz hazırdır, aşağıdakı URL -ni daxil etməklə istənilən veb brauzerdən, o cümlədən tabletdən daxil ola bilərik: https:// IP_domoticz: 8080

Addım 4: Domoticz Quraşdırması

Domoticz Quraşdırması
Domoticz Quraşdırması

İndi serverimiz hazırdır, aşağıdakı URL -ni daxil etməklə istənilən veb brauzerdən, o cümlədən tabletdən daxil ola bilərik: https:// IP_domoticz: 8080

Addım 5: Tətbiq Ayarlarını Düzəldin

Tətbiq parametrlərini tənzimləyin
Tətbiq parametrlərini tənzimləyin
Tətbiq parametrlərini tənzimləyin
Tətbiq parametrlərini tənzimləyin

Quraşdırma | vasitəsilə qurula bilən müxtəlif tətbiq parametrləri var Ayarlar menyusu.

Müxtəlif nişanlar olan Ayarlar menyusu, sistemin daha yaxşı işləməsi üçün lazım olan şəxsi parametrləri daxil etməyə imkan verir. Sahələrə məlumat daxil etdikdən sonra qırmızı "Ayarları tətbiq et" düyməsini basaraq onları qeyd etməlisiniz. Bu hərəkətdən sonra, ilk girişdə boş qalan bütün Şifrə sahələri, istifadə olunmasa da uzun bir ulduz simli ilə görünəcək.

"Sistem" səhifəsində əsas quruluşu qurduqdan sonra "Bildirişlər" düyməsini basın. Burada hansı növ bildirişlərdən istifadə edəcəyimizi tənzimləməliyik.

Addım 6: Bildirişləri qurun

Quraşdırma Bildirişləri
Quraşdırma Bildirişləri

Bildirişlər, məsələn, bir keçid basıldığında, elektrik istifadəsi çox yüksək olduqda, temperatur yüksək və daha çox seçim üçün göndərilə bilər.

Bizim vəziyyətimizdə, sensorlar tərəfindən su aşkar edildikdə bildirişlər göndərilməlidir. Buna görə istifadə etmək istədiyiniz şeyi yandırın. Həmçinin bildirişin işləməsi üçün ümumiyyətlə API açarına ehtiyacınız var. Bir az irəli qaçaraq deyim ki, Pushover, Pushsafer və Pushbullet -i sınamışam. Və Pushover ilə qaldım. Səbəbini sonda deyəcəyəm.

Bildirişlərin necə işlədiyinə dair bir neçə kəlmə. Pushbullet, Pushover və ya istifadə etmək istədiyiniz digər səhifələrdə hesabınız olmalıdır. Ayrıca cib telefonunuzda və ya kompüterinizdə bir tətbiqə ehtiyacınız olacaq.

API açarını alın və yuxarıdakı səhifəyə daxil edin. "Test" düyməsini basaraq bildirişləri sınaya bilərsiniz. API açarı düzgündürsə, cib telefonunuza bir test bildirişi almalısınız.

Sensor suyu hiss edən kimi ESP işə düşür və JSON formatında Domoticz serverinə sorğu göndərir. Bir hadisənin tetiklenmesinin şərtləri (cib telefonunuza bildiriş göndərmək) yerinə yetirildiyinə görə, Domoticz bildirişi göndərir.

Daha sonra "hadisələrə" qayıdacağam.

Addım 7: Əlaqəni Avadanlıq Cihazlarına Qurun

Əlaqəni Avadanlıq Cihazlarına Qurun
Əlaqəni Avadanlıq Cihazlarına Qurun
Əlaqəni Avadanlıq Cihazlarına Qurun
Əlaqəni Avadanlıq Cihazlarına Qurun
Əlaqəni Avadanlıq Cihazlarına Qurun
Əlaqəni Avadanlıq Cihazlarına Qurun

Cihazları idarə etmək və ya sensorları oxumaq üçün Domoticz tətbiqindən istifadə etməzdən əvvəl, aparat (lar) la əlaqəni qurmalısınız. Avadanlıq əlavə etmək üçün Quraşdırma | Hardware seçin. Müvafiq avadanlıq əlavə olunana qədər cihazlar görünməyəcək.

Domoticz tətbiqi bir çox hardware cihazını yerli olaraq dəstəkləyir. Bizim vəziyyətimizdə daşqın sensörümüzü oxumaq üçün aparat siyahısına "Dummy" adlanan cihazı əlavə etməliyik.

Avadanlıq əlavə edildikdə, müəyyən edilmiş bütün avadanlıqların ümumi görünüşü göstəriləcəkdir. Avadanlıq aradan qaldırıla və ya silinə bilər.

Yeni avadanlıq siyahıda olmalı və "Virtual Sensorlar Yarat" düyməsi olmalıdır.

Bu düyməni basın və Sensor Tipi "Alert" seçin. İndi aktiv olmaq üçün cihazı Domoticz -ə əlavə etməliyik.

Addım 8: Aktiv olmaq üçün cihazı Domoticz -ə əlavə edin

Aktiv olmaq üçün Domoticzdəki cihazı əlavə edin
Aktiv olmaq üçün Domoticzdəki cihazı əlavə edin
Aktiv olmaq üçün Domoticzdəki cihazı əlavə edin
Aktiv olmaq üçün Domoticzdəki cihazı əlavə edin
Aktiv olmaq üçün Domoticzdəki cihazı əlavə edin
Aktiv olmaq üçün Domoticzdəki cihazı əlavə edin

Zəhmət olmasa "IDX" altındakı nömrəyə diqqət yetirin. Bu cihaza bənzərsiz bir istinaddır və bildirişə müraciət etmək üçün daha sonra Python skriptimizdə ehtiyacımız var. Bu vəziyyətdə IDX nömrəsi 1 -dir.

Soldakı yaşıl oxu tıklayaraq cihazı aktivləşdirin (cihazın işə salınması səbəbindən altındakı şəklim mavi rəngdədir).

Cihazın adını daxil edin və "Əlavə et" düyməsini basın.

"Utilities" menyusuna gedin və cihazınız orada göstərilməlidir.

İndi sensorumuz üçün "hadisə" proqramlaşdırmalıyıq. Bu o deməkdir ki, biz serverə bildirməliyik ki, sensordan bir mesaj alsanız nə etməli və mənim üçün ən çətin yer deyək:).

Addım 9: Bu şəkildə işləmir …

Bu şəkildə işləmir…
Bu şəkildə işləmir…

Hadisəni / cihaz / səhifədə proqramlaşdırmağa çalışaraq başladım. Aşağıdakılar mənim deyil, amma təsvir etmək yaxşıdır.

Bəzi onay qutularını yoxlayacağınıza və bunun işləyəcəyinə inanırsınızsa, yanılırsınız:) Bu şəkildə işləmir. Düşünürəm ki, buradakı xüsusiyyət hələ bitməyib. Unutmayın - bu açıq mənbə proqramdır. Ok, bir neçə saatdan sonra həllini tapdım. "Quraşdırma" açılan menyusundan "Hadisələr" dən istifadə etməliyik.

"Hadisələr" düyməsini basdıqdan sonra öz tədbirinizi yarada bilərsiniz. Python və ya LUA -da bir kod yazaraq satın ala bilərsiniz və ya sadəcə "Blockly" adlı bir şeyi istifadə edə bilərsiniz. Blockly istifadə etməyi seçdim. Serveri istədiyinizi etməyə məcbur etməyin iki yolu var.

Addım 10: Hadisəni düzgün şəkildə qurun 1

Hadisəni Düzgün Qurun 1
Hadisəni Düzgün Qurun 1

1. Blockly "Start script" mesajından istifadə edərək "Events" vasitəsilə xarici faylı icra edin.

Bu mənim üçün Windows maşınında mükəmməl işləyir. Ancaq Raspberry Pi -də Raspbian -da bununla bacarmadım. İcazələrlə bağlı bir problem olduğundan şübhələnirəm.

Addım 11: Hadisəni Düzgün Qurun 2

Hadisəni Düzgün Yarat 2
Hadisəni Düzgün Yarat 2

2. "Mövzu ilə bildiriş göndər" mesajını istifadə edin. Raspbian üzərində işləyir. Bu seçim Pushsafe və Pushover -ə bildiriş göndərilməsini dəstəkləyir.

Birinci yolu istifadə etməyin üstünlüyü daha çevik olmasıdır. Ekranınızda, səslərinizdə və s. Göstəriləcək simvolu seçə bilərsiniz. Mənim "hadisəm" yuxarıdakı şəkildə göstərilir.

Sonra ESP modulunu proqramlaşdıraq.

Addım 12: ESP8266-01 Modulunun Proqramlaşdırılması

Proqramlaşdırma ESP8266-01 Modulu
Proqramlaşdırma ESP8266-01 Modulu

ESP8266 modulumuzun yanıb sönməsindən başlayaq. Adətən bu modullar fabrik firmware ilə gəlir. AT əmrlərindən istifadə edərək modullarla ünsiyyət qurmaq mümkündür. Həm də bu proqram müstəqil nəzarətçilər kimi modullardan istifadə etməyə icazə vermir. Onlardan müstəqil nəzarətçilər kimi istifadə etmək üçün zavod proqram təminatını silməli və yenisini quraşdırmalıyıq.

Bunu etmək üçün esptool istifadə edəcəyik. Firmware silmək üçün modulumuzu PC -yə bağlamalıyıq. Bunu etmək üçün TTL çeviricisinə + bir neçə əlavə komponentə ehtiyacınız var. Ancaq daha asan bir yol var:). Yalnız aliexpress və ya ebay USB-dən ESP8266 ESP-01 Wi-Fi Adapter Moduluna CH340G Sürücüsü ilə alın.

ESP8266 modulunu şəkildə göstərildiyi kimi TTL çeviriciyə qoşun və USB portuna qoşun.

Mənimlə eyni çeviriciniz varsa, o zaman keçidi "Proq" vəziyyətinə dəyişdirməlisiniz. Esptool-un harada quraşdırıldığını tapın (normal olaraq C: / Program Files (x86) Python36-32 / Scripts kimi bir yerdə. Bu qovluğa gedin, orda əmr istəməsini işə salın. Yazın: python esptool.exe-COM5 erase_flash

Əlbəttə ki, düzgün limanı seçin. Mənim vəziyyətimdə COM5 -dir. ESP -nin quraşdırıldığı portu İdarəetmə paneli - Sistem - Cihaz menecerindən yoxlaya bilərsiniz.

Yazaraq firmware quraşdırın (buradan götürdüm:

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

Yaxşı, indi micropython skriptlərini ESP8266 -ya yükləməyə hazırıq.

Bunun üçün Adafruit MicroPython Tool (ampy) istifadə edirəm.

Ancaq bu gün Esplorer adlı başqa bir seçim var. Bu faylları ESP modullarına yükləməyə imkan verən istifadəçi interfeysi olan bir tətbiqdir.

Burada ampy qurmaq üçün təlimatları tapa bilərsiniz. Beləliklə, açarı TTL çeviricisinə "UART" vəziyyətinə qoyun. Faylları yükləməyimiz lazım olacaq:

  • wifimgr.py - wifi şəbəkəsinə qoşulmaq üçün wifi meneceri
  • main.py - əsas ssenarimiz

Komanda satırına yazın: ampy --port COM5 faylınıza C: / yolunu qoyun

"Daxil et" düyməsini basın. Bir neçə saniyə sonra boş bir əmr satırını görməlisiniz. Faylın yükləndiyini bildirir. ESP -də faylların siyahısını ampy əmri ilə yoxlaya bilərsiniz:

ampy -port COM5 ls

Təcrübəmə görə, bütün lazımi faylları yüklədikdən sonra main.py yükləmək daha yaxşıdır. main.py yüklədiyiniz anda ESP8266 modulu yenidən başlayacaq və main.py faylını icra etməyə başlayacaq. Bu vəziyyətdə başqa bir fayl yükləməyə çalışsanız, bəzən yükləmə prosesi uğursuz olar. Ancaq bu, hər şeyin itirildiyi anlamına gəlmir:), ikinci dəfə cəhd edin və uğur qazanacaqsınız (yenə də təcrübəmdən).

Bu layihə üçün bütün sənədlər buradan əldə edilə bilər:

Addım 13: WiFi Şəbəkənizə qoşulun. Bildiriş almaq

WiFi Şəbəkənizə qoşulun. Bildiriş almaq
WiFi Şəbəkənizə qoşulun. Bildiriş almaq
WiFi Şəbəkənizə qoşulun. Bildiriş almaq
WiFi Şəbəkənizə qoşulun. Bildiriş almaq

hər şey qaydasındadırsa, TTL çeviricisini kompüterinizin USB portuna yenidən daxil edərək modulu yenidən başladın.

ESP başladıqdan sonra "Wifimanager" adlı yeni bir WiFi şəbəkəsi tapın. Kompüterinizlə və ya telefonunuzla ona qoşulun, sonra 192.168.4.1 IP ünvanına keçin.. Burada ESP -ni yerli WiFi şəbəkəsinə qoşa bilərsiniz. İstifadə edəcəyiniz WiFi şəbəkəsini seçin, parol daxil edin və "Göndər" düyməsini basın.

Hər şey düzgündürsə, "ESP XXXX şəbəkəsinə uğurla qoşuldu" mesajını görəcəksiniz. İndi ESP WiFi şəbəkənizə qoşulub və hazırdır. WiFi -yə qoşulan kimi Domoticz serverinə qoşulacaq. Qısa müddətdə cib telefonunuza bir bildiriş almalısınız.

Prosesi "Quraşdırma"/"Qeyd" bölməsində izləyə bilərsiniz.

Vau lia!:) İşləyir. İndi aşağıdakı blok sxemə görə bütün hissələri bir araya gətirməyə davam edə bilərik.

Addım 14: Blok Şeması

Blok diaqram
Blok diaqram

Bu diaqramla bağlı çox şey yoxdur. Çox sadə. S1 açarı ilə gücü dəyişdirin. Cihaz "Su sensoru" sancaqlarını qısaldana qədər söndürülmüş vəziyyətdədir. Sonra "Pololu lövhəsi" işə düşür və gərginlik çeviriciyə güc verir. HT7333 çipinə əsaslanan bu güc modulu, gərginliyi ESP8266 üçün sabit 3.3V -ə çevirir. Sonrakı ESP işə düşür və Domoticz serverinə bir mesaj göndərir.

Addım 15: Nəticə və Nəticələr

Nəticə və Nəticələr
Nəticə və Nəticələr
Nəticə və Nəticələr
Nəticə və Nəticələr
Nəticə və Nəticələr
Nəticə və Nəticələr
Nəticə və Nəticələr
Nəticə və Nəticələr

İşləyir. Bildiriş göndərmək 10 saniyə çəkdi: WiFi -yə qoşulma, bildiriş göndərmə, telefonunuza həyəcan mesajı almaq.

Su aşkar edilərsə, sensoru hər 30 saniyədən bir həyəcan siqnalları göndərmək üçün proqramlaşdırmışam. Sensor, batareya boşalana qədər 5-6 bildiriş göndərə bilər. Bu cihaz suyun səviyyəsini təyin etmək üçün də istifadə edilə bilər. Təkmilləşdirmək istədiyim şey.

1. Daha sürətli işləməsi üçün. Düşünürəm ki, bir neçə ESP-ni birbaşa bağlamağa imkan verən ESP-Now texnologiyasından istifadə etməyə çalışacağam. Bu vəziyyətdə əlaqə zamanı enerji istehlakı çox azdır və daha sürətli olur. Beləliklə, fikir digər ESP -ləri birləşdirmək üçün bir mərkəz kimi bir ESP -dən istifadə etməkdir.

2. Batareya səviyyəsi siqnalı tətbiq edin. İndi həyəcan mesajı göndərmək üçün kifayət qədər gücün olduğunu bilmirsiniz. Düşünürəm ki, bu sensorun növbəti nəslində batareya şarjını yoxlamaq üçün xüsusi bir düymə olacaq.

İstifadəçi bir düyməni basmalı olacaq və batareya səviyyəsi göstəriləcək.

Tövsiyə: