Mündəricat:

MQTT/Google Ev Qapı Zəngi ESP-01 istifadə edərək: 6 addım
MQTT/Google Ev Qapı Zəngi ESP-01 istifadə edərək: 6 addım

Video: MQTT/Google Ev Qapı Zəngi ESP-01 istifadə edərək: 6 addım

Video: MQTT/Google Ev Qapı Zəngi ESP-01 istifadə edərək: 6 addım
Video: Neo NAS-AB02B0 - Zigbee сирена с датчиком климата, обзор, работа в Tuya Smart и Home Assistant 2024, Noyabr
Anonim
ESP-01 istifadə edərək MQTT/Google Ev Qapı Zəngi
ESP-01 istifadə edərək MQTT/Google Ev Qapı Zəngi

Evin qapı zənginin səsini eşitmək üçün çox uzaq bir hissədə olduğunuz üçün qapınızın zəngini çalan bir qonağa cavab verməyi heç darıxmısınızmı? zirzəmi, qapalı yataq otağı və ya bəlkə televizora baxırsınız və ya musiqi dinləyirsiniz.

Mənim kimi, evinizdə bir neçə yerdə bir və ya daha çox google ev dinamikiniz varsa, bu sizə lazım olan şey ola bilər.

Bu təlimatda NodeRED istifadə edərək google home / pushbullet elanı ilə MQTT brokeri ilə əlaqə qurmaq üçün MQTT müştərisini mövcud bir qapı zənginə necə əlavə edəcəyinizi göstərəcəyəm. Bu layihə nə qapı zəngi açarını, nə də zəngi əvəz etmir. Hələ də qapı zəngi üçün adi mexaniki düymələrdən istifadə edir.

ESP-01 modulunu MQTT brokerinə mesaj göndərmək üçün MQTT funksiyasını əlavə edən mövcud 16VAC qapı zəngi sisteminə əlavə edəcəyik (qapı zəngi açarı basıldıqda). MQTT broker 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.

DIY ev avtomatlaşdırılmasına həvəsim var və yavaş -yavaş evimə IOT əlavə edirəm. Google home, ev avtomatlaşdırmağımın əsas funksiyalarından biri oldu.

Oğlum bu layihənin ideyasını mənə verdi ki, hər dəfə kimsə qapımızın zəngini çalanda google evini elan edə bilərəmmi? 2 mərtəbəli + zirzəmili evimiz var və bir çox dəfə zirzəmimizdə və ya qapımız bağlı və ya televizorlu yataq otağında olduğumuz zaman zəngləri eşidə bilmədik.

Evimizdə müxtəlif yerlərdə/otaqlarda yerləşdirilmiş 4 google home mini var və qapı zəngini elan etmək üçün google evlərindən istifadə edərək, kiminsə qapını çaldığını dərhal evin hər hansı bir yerində bilirik.

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

İstinadlar:

  • Qapı zəngi naqillərinin diaqramları:
  • Raspberry Pi üzərində Mosquitto MQTT Brokerini quraşdırın:
  • NodeRED -i Raspberry Pi -də quraşdırın:

Addım 1: ESP-01 və Qapı Zilini İnterfeysi üçün Dövrə yaradın

ESP-01 və Qapı Zilini İnterfeysi üçün Dövrə yaradın
ESP-01 və Qapı Zilini İnterfeysi üçün Dövrə yaradın
ESP-01 və Qapı Zilini İnterfeysi üçün Dövrə yaradın
ESP-01 və Qapı Zilini İnterfeysi üçün Dövrə yaradın
ESP-01 və Qapı Zilini İnterfeysi üçün Dövrə yaradın
ESP-01 və Qapı Zilini İnterfeysi üçün Dövrə yaradın

İlk addım ESP-01 və Door Chime arasındakı interfeys olacaq bir dövrə yaratmaq olacaq. İlk fotoşəkildə göstərildiyi kimi "TRANS (keçmiş)" və "ÖN/ARKA" pinləri arasında 16VAC olduqda tipik qapı zəngi aktivləşir. Qapı zəngi düyməsinə basıldıqda bu pinlərdə gərginlik yaranır.

Hazırladığım sxem, bu 16VAC siqnalını hiss etmək və onu təxminən 3.3VDC rəqəmsal siqnalına çevirməkdir. D1 və C1 tərəfindən yaradılan əsas yarım dalğalı düzəldicidir. Bu vəziyyətdə tam dalğalı düzəldiciyə ehtiyacımız yoxdur, çünki DC çıxışına çox az yük düşür və bizi lövhədə bir az daşınmaz əmlaka qənaət edir. Lövhəni mümkün qədər az etmək istəyirəm ki, onu mövcud zilimin içərisinə yerləşdirim.

R1 və R2, pik DC gərginliyini təxminən 3.3V -ə endirmək üçün gərginlik bölücü təşkil edir.

R3, TR1 və R4, ESP-01 GPIO-2 üçün tərs məntiq təmin etmək üçün bir çevirici təşkil edir. Bu, ESP-01-in flaşdan yüklənməsi üçün açılış zamanı (R4 və R5 ilə birlikdə) YÜKSƏK məntiqi təmin etmək üçün lazımdır. Qapı zəngi düyməsinə basıldığında, GPIO-2. TR1-ə LOW məntiqi təqdim edir, hər hansı bir kiçik güc NPN tranzistoru ola bilər, mənim vəziyyətimdə 2N3904 istifadə etdim.

V1, növbəti addımda göstərəcəyim AMS1117 3.3VDC tənzimləyicisi ilə birlikdə köhnə 5V cib telefonu şarj cihazı istifadə edərək qurduğum 3.3VDC enerji təchizatıdır.

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.

Addım 2: ESP-01 üçün 3.3VDC Güc Təchizatı

ESP-01 üçün 3.3VDC Güc Təchizatı
ESP-01 üçün 3.3VDC Güc Təchizatı
ESP-01 üçün 3.3VDC Güc Təchizatı
ESP-01 üçün 3.3VDC Güc Təchizatı
ESP-01 üçün 3.3VDC Güc Təchizatı
ESP-01 üçün 3.3VDC Güc Təchizatı

Bu addımda ESP-01 üçün 3.3VDC enerji təchizatı quracağıq. Bu layihə üçün yenidən təyin etdiyim bir neçə köhnə 500mA və 700mA 5VDC USB şarj cihazı adapterim var. 5V gərginliyini 3.3V-ə endirmək üçün 3.3VDC tənzimləyicisinə də ehtiyacımız var, bunun üçün ebaydan aldığım ucuz əvvəlcədən qurulmuş AMS1117 əsaslı tənzimləyici modulundan istifadə edirəm. "3.3V AMS1117 modulu" axtarıb sizin üçün uyğun olanı tapa bilərsiniz.

Bu 3.3V tənzimləyici modulu çox kiçikdir və onu əslində 5V USB şarj cihazının içərisinə yerləşdirə bilərəm ki, bu da onu potensial qısaqapanmadan daha təhlükəsiz edir. Şarj cihazının modulundan AC divar çəngəllərini çıxarıb, mövcud zəngimin arxasındakı divardan 120VAC -a bağlanacaq iki kabellə əvəz etdim. Növbəti addımda test etməyimizə qədər bu addımdakı dişləri çıxarmayın.

Yaxınlıqda bir elektrik prizi varsa və ya elektrik təchizatını birbaşa evin elektrik naqillərinə bağlamaqdan narazısınızsa, isteğe bağlı olaraq dəyişdirilmiş enerji təchizatını divar fişinə qoşa bilərsiniz və kabelləri zənbə çəkə bilərsiniz. birbaşa ev kabellərinə bağlamaq qədər təmiz görünə bilməz.

Zəngimin arxasında 120VAC naqilləri və zəng üçün 16VAC transformator olduğunu görmək üçün fotoşəkillərimdən birinə baxın.

3.3V tənzimləyicisinin çıxışı bundan sonra əvvəlki addıma uyğun olaraq ESP-01 interfeys lövhəsinə qoşulur.

Addım 3: 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 4: Test Çalışması

Test Qaçışı
Test Qaçışı
Test Qaçışı
Test Qaçışı
Test Qaçışı
Test Qaçışı

Addım 1-dən ESP-01 interfeys lövhəsini qurduq və 2-ci addımdan ESP-01 lövhəsi üçün 3.3V enerji təchizatı əldə etdik. İndi enerji təchizatı çıxışını V1 olaraq göstərilən sxemə görə lövhəyə bağlayırıq.

İndi növbəti addım, Zəng Trans/Qapı terminallarını "Qapı Zil Terminalları" olaraq göstərilən interfeys lövhəsi əlaqələrinə bağlamaqdır. Zəngim bir divara hündür bir şəkildə quraşdırıldığından, test üçün, zənb terminallarından lövhəyə uzun bir cüt kabel çəkirəm ki, enerji təchizatı bağlayım.

Qarşılaşmamızın 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 elektrik prizini elektrik prizinə qoşun və hər şey işləyirsə, bir neçə saniyə ərzində ən azından aşağıdakı MQTT mesajını görməlisiniz:

stat/DoorBell/LWT Online

İndi çölə çıxın və qapının zəngini vurun və bu mesajı görməlisiniz:

tele/Qapı Zəngi AÇIQ

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/DoorBellInfo": bu mesaj iş vaxtı və digər məlumatları təmin etmək üçün hər dəqiqə göndərilir.

"cmnd/DoorBellInfo": ESP-01, bu mövzunu '1' (ascii = 49) "cmnd/DoorBellCPUrestart" ilə alarsa məlumat göndərər: ESP-01, bu mövzunu '1' dəyərində alarsa yenidən başlayacaq. '(ascii = 49) "cmnd/DoorBellCPUreset": ESP-01, bu mövzunu' 1 '(ascii = 49) dəyəri ilə alarsa sıfırlayacaq.

"tele/FrontDoorBell": ESP-01, qapı zənginə basıldığı təqdirdə 'ON' dəyəri ilə bu mövzuda mesaj göndərəcək.

Addım 5: Kartı və Güc Təchizatını Zəngə İnteqrasiya edin

İdarə Heyətini və Güc Təchizatını Zəngə birləşdirmək
İdarə Heyətini və Güc Təchizatını Zəngə birləşdirmək
İdarə Heyətini və Güc Təchizatını Zəngə birləşdirmək
İdarə Heyətini və Güc Təchizatını Zəngə birləşdirmək
İdarə Heyətini və Güc Təchizatını Zəngə birləşdirmək
İdarə Heyətini və Güc Təchizatını Zəngə birləşdirmək

Uğurlu sınağımızdan sonra, lövhəni və enerji təchizatını qapı zəngi zəngi içərisinə yığmalıyıq (mümkünsə). Mövcud zəngimdə, boşluğunu kəsə bildiyim və boşluğun içərisindəki enerji təchizatına uyğunlaşdırdığım bir boşluq var. ESP-01 lövhəsi o kiçik məkana sığmır, amma yenə də ümumi zəng qutusuna daxil olur. ESP-01 interfeys lövhəsini montaj etmək üçün qalın iki tərəfli lentdən istifadə etdim.

İndi metal şarj cihazlarını USB şarj cihazımızdan çıxarıb ev tellərinə qoşa biləcəyimiz daha qalın bir kabel ilə əvəz edə bilərik. Zəng dövrəsinə elektrik verən elektrik açarını söndürdüyünüzdən əmin olun.

Layihəmizi mövcud qapı zilinə sığdırmaq üçün kifayət qədər yer yoxdursa, onu ayrı bir qutuya qoyub qapı zəngi yaxınlığında quraşdırmalısınız.

Addım 6: 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ə, qapı zəngi MQTT mövzusuna qulaq asmaq/abunə olmaq və bir neçə google ev dinamikinə elan vermək üçün Node-RED istifadə edirəm. Əlavə olaraq, axını android telefonuma bildiriş göndərmək üçün bir itələyici düyünə bağladım ki, evdə olmasa da qapı zəngini kiminsə çalacağını bilirəm. Pushbullet bildirişi bəziləri üçün faydalı olmur, amma mənim üçün çox önəmli idi, ön eyvanımdakı video kamera ilə birlikdə, kimin çatdırılmanın endirilməyə gəldiyini görə bilərəm (ümumiyyətlə qapı zəngini çalırlar). Xüsusilə ağacların kölgələrini hərəkət etdirən müxtəlif müdaxilələr səbəbiylə kameranın hərəkət algılama xüsusiyyətinə çox güvənə bilmirəm.

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əyiciləri ilə əlaqə qura bilərsiniz və ya hətta qapı zəngi basdıqda digər cihazları idarə etmək üçün IFTTT istifadə edə bilərsiniz.

Əylənin…

Tövsiyə: