Mündəricat:

MQTT/Google Ev Daşqını/ESP-01 ilə Su WIFI Sensoru: 7 Addım
MQTT/Google Ev Daşqını/ESP-01 ilə Su WIFI Sensoru: 7 Addım

Video: MQTT/Google Ev Daşqını/ESP-01 ilə Su WIFI Sensoru: 7 Addım

Video: MQTT/Google Ev Daşqını/ESP-01 ilə Su WIFI Sensoru: 7 Addım
Video: 5. Установка MQTT Broker на Raspberry Pi. Умный Дом | Room31 2024, Noyabr
Anonim
MQTT/Google Ev Daşqını/ESP-01 ilə Su WIFI Sensoru
MQTT/Google Ev Daşqını/ESP-01 ilə Su WIFI Sensoru

Bu təlimatda sizə minimum xərclə wifi sel/su sensoru qurmağı göstərəcəyəm. Ebaydan aldığım hissələr və mövcud ehtiyat hissələrim üçün bütün layihə mənə 8 dollardan daha ucuz başa gəlir.

Bu layihədə Wifi və MQTT müştərilərinə suyun mövcudluğunu təyin etmək üçün ESP-01-dən istifadə edəcəyik və isteğe bağlı olaraq lokalizasiya siqnalı vermək üçün birbaşa bağlı dinamikdən/səs siqnalından istifadə edəcəyik.

Layihə üçün xüsusi tətbiqim, karter nasosunun nasaz olması halında, nasos quyumun içərisində sel/suyu aşkar etməkdir. Su 2 açıq tel ilə aşkar edildikdə, MQTT brokerinə mesaj göndərərdi. MQTT brokeri sonra mesajı NodeRED -ə ötürür. MQTT mesajını aldıqdan sonra NodeRED birdən çox Google ev cihazına anons göndərir və isteğe bağlı olaraq pushbullet vasitəsilə cib telefonuna/brauzerə mesaj göndərir.

Əlbəttə ki, bu layihə yalnız ev elektrik enerjisi AÇIQ olarsa işləyəcək. Növbəti təlimatda batareyanın ehtiyat dövrəsini birləşdirəcəyəm. Ancaq enerji təchizatını mənim etdiyim kimi etsəniz, batareyanın ehtiyat nüsxəsini çıxarmaq üçün USB güc bankını bağlaya bilərsiniz. Eyni anda enerjinizi doldurmağa və verməyə imkan verən bir güc bankınız varsa, hər şey hazırdır.

Mosquitto MQTT serverini və NodeRED -i yerləşdirmək üçün RaspberryPi ZeroW -dan istifadə edirəm. Bir ildən çoxdur ki, problemsiz işləyir.

İstinadlar: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi… NodeRED-i Raspberry Pi-də quraşdırın:

Addım 1: Ehtiyac duyacağınız hissələr

Ehtiyac duyacağınız hissələr
Ehtiyac duyacağınız hissələr
Ehtiyac duyacağınız hissələr
Ehtiyac duyacağınız hissələr
Ehtiyac duyacağınız hissələr
Ehtiyac duyacağınız hissələr

Parça siyahısı:

(1) ESP-01

(2) 10K ohm rezistor

(1) kiçik siqnal ümumi NPN tranzistoru (2N3904 istifadə etdim)

(2) uzun tellər

(1) 5V ümumi enerji təchizatı (bu dövrə 300mA -dan az cərəyan tələb edir)

(1) 3.3V tənzimləyici modulu AMS1117

(1) Micro-USB DIP Adapter Qadın Bağlayıcı PCB Dönüştürücü DIY Kit

(1) USB-A-MicroUSB kabeli.

(1) 8 pinli IC yuvası-ESP-01-ni birbaşa lövhəyə lehimləmək istəyirsinizsə, buraxıla bilər. Satırlar arasında boşluq yaradan plastik körpüləri kəsin və sonra 2 sıranı bir -birinə yapışdırın, şəkilə baxın.

(1) Layihə üçün kiçik korpus

Dinamik/səs siqnalı istifadə edərək lokalizə edilmiş bir həyəcana ehtiyacınız varsa, aşağıda əlavə hissələr var

(1) Ümumi PNP Transistoru, dinamik/səs siqnalı cari/vat tələbinə uyğun olaraq seçin. Mənim vəziyyətimdə, 2N2907 istifadə edirəm, çünki dinamikim yalnız 0.3W (8 ohm) olduğu üçün dinamikin idarə edilməsi üçün kifayət qədər güc təmin edərdi. Daha yüksək səs istəsəniz daha böyük bir tranzistor və dinamik seçə bilərsiniz.

(1) Dinamik, yuxarıdakı PNP Transistoruna dair qeydə baxın

(1) 100 - 110 ohm rezistor

Addım 2: Dövrə Şeması

Dövrə diaqramı
Dövrə diaqramı

İlk addım, diaqramda göstərilən dövrəni yaratmaqdır.

AMS1117 3.3VDC tənzimləyicisi ilə birlikdə köhnə 5V cib telefonu şarj cihazı istifadə edərək 3.3VDC enerji təchizatı qurdum. ESP-01 yuvası üçün 8 pinli standart bir IC yuvasından istifadə edirəm və sıralar arasındakı boşluğu yaradan plastik körpüləri kəsirəm və sonra 2 sıranı yapışdırıram.

Hazırladığım sxem, iki tel arasında suyun olduğunu hiss etməkdir. Su hər iki telin ucuna çatdıqda, təxminən 10K ilə 20K ohm arasında bir müqavimət yaradır. Sonra 10K ohm R1 ilə ardıcıl olaraq, Q1-in bazasına kiçik bir cərəyan verir və Q1-in doymasına səbəb olur, GPIO-2-ni yerə bağlayır. R1, algılama tellərində təsadüfən bir qısaqlıq olması halında Q1 -in qorunmasını təmin etmək üçün lazımdır.

R2, ESP-01-in flaşdan yüklənməsinə imkan verən çəkmə müqavimətçisidir.

İsteğe bağlı dinamik/səs siqnalı üçün, yalnız MQTT danışmaq üçün ESP-01-ə ehtiyacınız varsa və bu lokalizasiya edilmiş həyəcan siqnalını tətbiq etmək istəmirsinizsə, R2, Q2, Dinamikləri çıxarıb GPIO-0 arasına 10K çəkmə müqaviməti yerləşdirə bilərsiniz. və VCC.

Dişi Micro-USB-dən DIP adapterinə ehtiyacınız yoxdursa, 5V PS arasındakı telləri 3.3V tənzimləyici moduluna lehimləyə bilərsiniz. Qadın MicroUSB adapterindən istifadə etməyi üstün tuturam, buna görə hər hansı bir ümumi cib telefonu şarj cihazı və MicroUSB kabelindən istifadə edə bilərəm.

Addım 3: Dövrün qurulması

Dövrə qurulması
Dövrə qurulması
Dövrə qurulması
Dövrə qurulması
Dövrə qurulması
Dövrə qurulması

Əvvəlki səhifədəki sxemə görə bütün komponentləri və hissələri PCB -yə lehimləyin və PCB -ni ölçüsünə görə kəsin.

PCB -ni PCB -yə və isteğe bağlı dinamikə uyğun bir korpusun içərisinə qoyun. Mənim vəziyyətimdə, bütün hissələr kiçik bir telefon priz qutusuna daxil olardı, baxmayaraq ki, ESP-01 modulunun uyğun olması üçün qabarıqlıq yaratmaq üçün qapağı bir qədər qızdırmalıyam.

Addım 4: ESP-01-in yanması

Bu addımda, ESP-01-i arduino eskizi ilə flaş edəcəyik. Heç vaxt ESP-01 modulunu yandırmadınızsa, başlamağım üçün mənim göstərişlərimə əməl edə bilərsiniz:

Eskizimi github səhifəmdə tapa bilərsiniz:

Eskizdə, minimum olaraq ev şəbəkəniz/quruluşunuzla əlaqədar aşağıdakı məlumatları dəyişdirməlisiniz:

#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

Ev şəbəkəmdə 2 fərqli SSID yayımlayan 2 fərqli giriş nöqtəm var və bu eskiz, mövcud AP ilə əlaqə kəsilərsə, növbəti SSID -ə qoşulmaqla ixtisara imkan verəcəkdir. Yalnız bir SSID varsa, həm ssid1, həm də ssid2 -ni eyni dəyərlə doldurun.

Dəyişiklik etdikdən sonra eskizi ESP-01-ə yükləyin və ESP-01-ni interfeys lövhəsinə qoşun.

Addım 5: Test Çalışması

Layihəmizin işlədiyini yoxlamaq üçün ən asan yol şəbəkədəki MQTT mesajlarını izləməkdir. Bunu etmək üçün ağcaqanad brokerinə bir SSH sessiyası açmalı və aşağıdakı əmri verməlisiniz:

mosquitto_sub -v -t '#'

Yuxarıdakı əmr, brokerə gələn bütün MQTT mesajlarını görməyə imkan verəcəkdir.

İndi dövrəmizi gücləndirin və hər şey işləyirsə, bir neçə saniyə ərzində ən azından aşağıdakı MQTT mesajını görməlisiniz:

stat/SumpWaterSensor/LWT Online

İndi 2 hissedici teli bir fincan suya batıraraq su sensorunu sınayın və bu mesajı görməlisiniz:

tele/SumpWaterSensor WET

Telləri sudan çıxarsanız, bu mesajı görməlisiniz:

tele/SumpWaterSensor DRY

Bu mesajları görürsünüzsə, layihəniz uğur qazanır.

Eskizdə istifadə edə biləcəyiniz bir neçə faydalı MQTT mövzusu da daxil etdim:

"stat/SumpWaterSensorInfo": bu mesaj iş vaxtı və digər məlumatları təmin etmək üçün hər dəqiqə göndərilir.

"cmnd/SumpWaterSensorInfo": ESP-01, bu mövzunu '1' (ascii = 49) ilə alarsa məlumat göndərər.

"cmnd/SumpWaterSensorCPUrestart": ESP-01, bu mövzunu '1' (ascii = 49) dəyəri ilə alarsa yenidən başlayacaq.

"cmnd/SumpWaterSensorBeep": ESP-01, bu mövzunu '1' (ascii = 49) dəyəri ilə alarsa dinamikə səs verər.

"cmnd/SumpWaterSensorBeepFreq": Dinamik siqnalının tezliyini təyin edir, standart = 900 (Hz)

"cmnd/SumpWaterSensorDebug": Serial ayıklama səviyyəsini aktivləşdirin və təyin edin (standart 0 -dır - ayıklama yoxdur)

Addım 6: Sensoru quraşdırın

Sensoru quraşdırın
Sensoru quraşdırın
Sensoru quraşdırın
Sensoru quraşdırın

Tətbiqimdə, karter nasosumun içindəki su səviyyəsini izləmək və suyun karter nasosunun üzmə açarının üstünə çatdığını mənə bildirmək istəyirəm ki, bu da karter nasosumun işləmədiyini göstərir. Telləri çəkdim və drenaj borusu boyunca bağlamaq üçün tel bağlarından istifadə etdim.

Addım 7: Final Touch

Son toxunuş
Son toxunuş

Layihənin işlədiyini və MQTT mesajını brokerə yayımlaya bildiyimizə görə, növbəti addım bununla nə edəcəyimizi düşünməkdir.

Layihəmdə "tele/SumpWaterSensor" MQTT mövzusuna qulaq asmaq/abunə olmaq və su aşkar edilərsə bir neçə google ev dinamikinə elan vermək üçün Node-RED istifadə edirəm. Bundan əlavə, Android telefonuma bildiriş göndərmək üçün axını bir itələyici düyünə bağladım.

Sensorun vəziyyətini (açıq/oflayn, iş vaxtı və s.) Görmək üçün bir veb ön ucu da yaratdım. Bəzən statistikadan 1 həftə ərzində bir neçə dəfə oflayn keçdiyini gördüm, çox vaxt bunun səbəbi ESP-01-in WiFi və ya MQTT-dən ayrılmasıdır. Ancaq çox narahat olmayın, eskizim WIFI və/və ya MQTT brokerinə qoşulmağa çalışmadığı təqdirdə ESP-01-i yenidən başlatmaq üçün gündəlik daxil etdi.

Bu addımdakı görüntü, bunu həyata keçirmək üçün Node-RED axınını göstərir. Github səhifəmdəki axını Node-RED-ə də yapışdıra bilərsiniz:

Google ev elanı bu layihə üçün yalnız bir nümunədir, amma ən faydalı və praktik olduğunu düşünürəm. Həmişə digər MQTT dinləyicisi ilə əlaqə qura bilərsiniz və ya hətta su aşkar edildikdə digər cihazları idarə etmək üçün IFTTT istifadə edə bilərsiniz.

Əylənin…

Tövsiyə: