ESP-01 Kullanan MQTT/Google Ana Kapı Zili: 6 Adım
ESP-01 Kullanan MQTT/Google Ana Kapı Zili: 6 Adım
Anonim
ESP-01 Kullanan MQTT/Google Ana Kapı Zili
ESP-01 Kullanan MQTT/Google Ana Kapı Zili

Sırf evin zil sesini duyamayacak kadar uzakta olan bir bölümünde olduğunuz için kapı zilinizi çalan bir misafire cevap vermeyi hiç kaçırdınız mı? bodrum, kapalı yatak odası gibi ya da belki televizyon seyrediyordunuz ya da müzik dinliyordunuz.

Benden hoşlanıyorsanız, evinizin çeşitli yerlerinde bir veya daha fazla google ev hoparlörünüz varsa, bu talimat ihtiyacınız olan şey olabilir.

Bu Eğitilebilir Kitapta, NodeRED kullanarak google home / pushbullet duyurusu ile MQTT komisyoncusu ile iletişim kurmak için mevcut bir kapı zili ziline MQTT istemcisini nasıl ekleyeceğinizi göstereceğim. Bu proje, kapı zili anahtarının veya zilin yerini almaz. Kapı zili için hala normal mekanik buton kullanıyor.

MQTT brokerine mesaj göndermek için (kapı zili anahtarına basıldığında) MQTT işlevselliği ekleyerek mevcut 16VAC kapı zili sistemine ESP-01 modülünü ekleyeceğiz. MQTT aracısı mesajı NodeRED'e iletir. NodeRED, MQTT mesajını aldıktan sonra birden fazla google ev cihazına duyuru gönderir ve isteğe bağlı olarak pushbullet aracılığıyla cep telefonuna/tarayıcıya mesaj gönderir.

Kendin yap ev otomasyonu ve yavaş yavaş evime IOT ekleme konusunda bir tutkum var. Google home, ev otomasyonumdaki merkezi işlevlerden biri olmuştur.

Oğlum, birisi kapı zilimizi her çaldığında google home'u anons ettirip ettiremeyeceğimi sorduğunda bana bu proje için fikir verdi. 2 katlı + bodrum kat evimiz var ve çoğu zaman bodrumdayken veya üst katta yatak odasında kapı kapalı veya TV açıkken zil sesini duyamadık.

Evimizde çeşitli yerlere/odalara yerleştirilmiş 4 adet google home mini var ve google home'u kullanarak bir kapı zili duyurmak için evin herhangi bir yerinde birisinin zili çaldığını anında biliyoruz.

Evimde Mosquitto MQTT sunucusunu ve NodeRED'i barındırmak için RaspberryPi ZeroW kullanıyorum. Bir yılı aşkın süredir sorunsuz çalışıyor.

Referanslar:

  • Kapı zili bağlantı şemaları:
  • Mosquitto MQTT Broker'ı Raspberry Pi'ye yükleyin:
  • NodeRED'i Raspberry Pi'ye yükleyin:

Adım 1: ESP-01 ve Kapı Zil Arayüzüne Devreyi Oluşturun

ESP-01 ve Kapı Zil Arayüzüne Devreyi Oluşturun
ESP-01 ve Kapı Zil Arayüzüne Devreyi Oluşturun
ESP-01 ve Kapı Zil Arayüzüne Devreyi Oluşturun
ESP-01 ve Kapı Zil Arayüzüne Devreyi Oluşturun
ESP-01 ve Kapı Zil Arayüzüne Devreyi Oluşturun
ESP-01 ve Kapı Zil Arayüzüne Devreyi Oluşturun

İlk adım, ESP-01 ve Door Chime arasındaki arayüz olacak devreyi oluşturmak olacaktır. İlk fotoğrafımda gösterildiği gibi "TRANS(eski)" ve "ÖN/ARKA" Pinleri arasında 16VAC olduğunda tipik kapı zili devreye giriyor. Kapı zili düğmesine basıldığında bu pinlerde voltaj oluşur.

Tasarladığım devre bu 16VAC sinyalini algılayıp 3.3VDC civarında dijital sinyale dönüştürmek. D1 ve C1 tarafından oluşturulan temel bir yarım dalga doğrultucudur. DC çıkışına çok az yükleme yapıldığından bu durumda tam dalga doğrultucuya ihtiyacımız yok, bu da bize biraz emlak tasarrufu sağlıyor. Mevcut zilimin içine yerleştirebilmem için tahtayı mümkün olduğunca az yapmak istiyorum.

R1 ve R2, tepe DC voltajını yaklaşık 3,3V'a düşürmek için voltaj bölücü oluşturur.

R3, TR1 ve R4, ESP-01 GPIO-2 için ters mantık sağlamak üzere bir invertör oluşturur. Bu, ESP-01'in flaştan önyüklenmesi için başlatma sırasında (R4 ve R5 pull-up ile) YÜKSEK mantık sağlamak için gereklidir. Kapı zili düğmesine basıldığında, GPIO-2. TR1'e DÜŞÜK mantık sunar, benim durumumda 2N3904 kullandım.

V1, bir sonraki adımda göstereceğim AMS1117 3.3VDC regülatörü ile birleştirilmiş eski bir 5V cep telefonu şarj cihazı kullanarak oluşturduğum bir 3.3VDC güç kaynağı.

ESP-01 soketi için 8 pinli standart IC soket kullanıyorum ve sıralar arasında boşluk oluşturan plastik köprüleri kesip ardından 2 sırayı birbirine yapıştırıyorum.

Adım 2: ESP-01 için 3.3VDC Güç Kaynağı

ESP-01 için 3.3VDC Güç Kaynağı
ESP-01 için 3.3VDC Güç Kaynağı
ESP-01 için 3.3VDC Güç Kaynağı
ESP-01 için 3.3VDC Güç Kaynağı
ESP-01 için 3.3VDC Güç Kaynağı
ESP-01 için 3.3VDC Güç Kaynağı

Bu adımda ESP-01 için 3.3VDC güç kaynağı oluşturacağız. Bu proje için yeniden tasarladığım birkaç eski 500mA ve 700mA 5VDC USB şarj adaptörüm var. Ayrıca 5V voltajı 3.3V'a düşürmek için 3.3VDC regülatöre ihtiyacımız var, bunun için ebay'den satın aldığım önceden oluşturulmuş ucuz bir AMS1117 tabanlı regülatör modülü kullanıyorum. "3.3V AMS1117 modülü" için arama yapabilir ve sizin için neyin işe yaradığını bulabilirsiniz.

Bu 3.3V regülatör modülü çok küçüktür ve onu orijinal 5V USB şarj cihazı muhafazasının içine yerleştirip potansiyel kısa devreden daha güvenli hale getirebilirim. AC duvar uçlarını şarj modülünden çıkardım ve mevcut zilimin arkasındaki duvardan 120VAC'ye bağlanacak iki kabloyla değiştirdim. Ancak bir sonraki adımda test çalıştırması yapana kadar bu adımdaki tırnakları çıkarmayın.

Yakınlarda bir duvar prizi varsa veya güç kaynağını doğrudan ev kablolarına bağlama konusunda rahat değilseniz, isteğe bağlı olarak değiştirilmiş güç kaynağını duvar prizine takabilir ve kabloyu çana kadar çalıştırabilirsiniz. doğrudan ev kablolarına bağlamak kadar temiz görünmeyebilir.

Zil sesimin arkasında 120VAC kablolama ve çan için 16VAC transformatör olduğunu görmek için fotoğrafımdan birine bakın.

3.3V regülatörden gelen çıkış, önceki adıma göre ESP-01 arayüz kartına bağlanacaktır.

Adım 3: ESP-01'in yanıp sönmesi

Bu adımda ESP-01'i arduino kroki ile flashlayacağız. ESP-01 modülünü hiç flash etmediyseniz, başlamak için talimatlarımı takip edebilirsiniz:

Çizimimi github sayfamda bulabilirsiniz:

Çizimde, en azından ev ağınıza/kurulumunuza ilişkin aşağıdaki bilgileri değiştirmeniz gerekir:

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

Ev ağımda, 2 farklı SSID yayınlayan 2 farklı erişim noktam var ve bu çizim, mevcut AP ile iletişim kesilirse bir sonraki SSID'ye bağlanarak yedekliliğe izin verecek. Yalnızca bir SSID'niz varsa, hem ssid1 hem de ssid2'yi aynı değerle doldurun.

Değişikliği yaptıktan sonra taslağı ESP-01'e yükleyin ve ESP-01'i arayüz kartına takın.

Adım 4: Test Çalıştırması

Test sürüşü
Test sürüşü
Test sürüşü
Test sürüşü
Test sürüşü
Test sürüşü

1. adımdan itibaren ESP-01 arayüz kartını oluşturduk ve 2. adımdan itibaren ESP-01 kartı için 3.3V güç kaynağına sahibiz. Şimdi güç kaynağı çıkışını V1 ile gösterilen devre şemasına göre karta bağlıyoruz.

Şimdi bir sonraki adım, çan Trans/Kapı terminallerini "Kapı Zil Terminalleri" olarak gösterilen arayüz kartı bağlantılarına bağlamaktır. Çanım duvara yükseğe monte edildiğinden, test çalışması için, güç kaynağını takabilmem için zil terminallerinden karta geçici olarak uzun bir kablo çifti çalıştırıyorum.

Aracımızın çalışıp çalışmadığını test etmek için en kolayı ağdaki MQTT mesajlarını izlemek olacaktır. Bunu yapmak için, mosquitto aracısına bir SSH oturumu açmanız ve aşağıdaki komutu vermeniz gerekir:

mosquitto_sub -v -t '#'

Yukarıdaki komut, aracıya gelen tüm MQTT mesajlarını görmemizi sağlar.

Şimdi güç kaynağını duvar prizine takın ve her şey çalışıyorsa, birkaç saniye içinde en azından aşağıdaki MQTT mesajını görmelisiniz:

istatistik/Kapı Zili/LWT Çevrimiçi

Şimdi dışarı çıkın ve kapı zilinizi çalın ve şu mesajı görmelisiniz:

tele/Kapı Zili AÇIK

Bu mesajları görürseniz, projeniz başarılı demektir.

Ayrıca eskizde kullanabileceğiniz birkaç faydalı MQTT konusu ekledim:

"stat/DoorBellInfo": Bu mesaj, çalışma süresi ve diğer bilgileri sağlamak için her dakika gönderilir.

"cmnd/DoorBellInfo": ESP-01 bu konuyu '1' (ascii=49)"cmnd/DoorBellCPUrestart" değeriyle alırsa bilgi gönderir: ESP-01 bu konuyu '1 değeriyle alırsa yeniden başlar ' (ascii=49)"cmnd/DoorBellCPUreset": ESP-01, bu konuyu '1' değeriyle alırsa (ascii=49) sıfırlanır

"tele/Front DoorBell": Kapı ziline basılırsa ESP-01 bu konuda 'AÇIK' değeri ile mesaj gönderir

Adım 5: Kartın ve Güç Kaynağının Çana Entegre Edilmesi

Anakartı ve Güç Kaynağını Çan'a Entegre Etme
Anakartı ve Güç Kaynağını Çan'a Entegre Etme
Anakartı ve Güç Kaynağını Çan'a Entegre Etme
Anakartı ve Güç Kaynağını Çan'a Entegre Etme
Anakartı ve Güç Kaynağını Çan'a Entegre Etme
Anakartı ve Güç Kaynağını Çan'a Entegre Etme

Başarılı bir test çalıştırmamız olduğuna göre, kartı ve güç kaynağını kapı zili zilimizin (mümkünse) içine monte etmemiz gerekiyor. Mevcut zilimde, kesip açabildiğim ve güç kaynağını o alana sığdırabildiğim boş bir kasa var. ESP-01 kartı bu küçük alana sığmıyor, ancak yine de genel çan kutusunun içine sığıyor. ESP-01 arabirim kartını monte etmek için kalın bir çift taraflı bant kullandım.

Artık metal uçları USB şarj cihazımızdan çıkarabilir ve ev kablolarına bağlayabileceğimiz daha kalın kablolarla değiştirebiliriz. Çan devresine elektrik sağlayan devre kesicinizi kapattığınızdan emin olun.

Mevcut kapı ziline projemizi sığdırmak için yeterli alan yoksa, ayrı bir kutuya koymanız ve kapı ziline yakın monte etmeniz gerekecektir.

Adım 6: Son Dokunuş

Son dokunuş
Son dokunuş

Artık projeyi çalıştırdığımıza ve komisyoncuya MQTT mesajını yayınlayabildiğimize göre, bir sonraki adım bununla ne yapılacağına dair bir fikir düşünmektir.

Projemde, o kapı zili MQTT konusunu dinlemek/abone olmak ve birkaç google ana hoparlörüne duyuru yapmak için Node-RED kullanıyorum. Buna ek olarak, android telefonuma bildirim göndermek için akışı bir pushbullet düğümüne bağladım, böylece evde olmasam bile birinin kapı zilini çalıp çalmadığını anlayabilirim. Pushbullet bildirimi bazıları için yararlı değil, ancak benim için birkaç kez oldukça yararlı oldu, ön verandamdaki video kamerayla birleştiğinde, teslimatları kimin bıraktığını görebiliyorum (genellikle kapı zilini çalarlar). Çeşitli parazitler, özellikle de ağaçların hareket eden gölgeleri nedeniyle kameranın hareket algılama özelliğine pek güvenemiyorum.

Bu adımdaki görüntü, bunu gerçekleştirmek için Düğüm-KIRMIZI akışını gösterir. Ayrıca github sayfamdaki akışı Node-RED'inize yapıştırabilirsiniz:

Google ana sayfa duyurusu bu proje için sadece bir örnek ama bence en kullanışlı ve pratik olanı bu. Her zaman diğer MQTT dinleyicileriyle arayüz oluşturabilir, hatta kapı ziline basıldığında diğer cihazları sürmek için IFTTT'yi kullanabilirsiniz.

İyi eğlenceler…