İçindekiler:

ESP-01 ile MQTT/Google Home Sel/Su WIFI Sensörü: 7 Adım
ESP-01 ile MQTT/Google Home Sel/Su WIFI Sensörü: 7 Adım

Video: ESP-01 ile MQTT/Google Home Sel/Su WIFI Sensörü: 7 Adım

Video: ESP-01 ile MQTT/Google Home Sel/Su WIFI Sensörü: 7 Adım
Video: Akıllı Ev Kuruyoruz-1 Home Assistant Kurulumu ve ESP Kartları Kullanma 2024, Temmuz
Anonim
ESP-01 ile MQTT/Google Home Sel/Su WIFI Sensörü
ESP-01 ile MQTT/Google Home Sel/Su WIFI Sensörü

Bu derste size minimum maliyetle wifi sel/su sensörünün nasıl kurulacağını göstereceğim. Tüm proje, ebay'den aldığım parçalar ve mevcut yedek parçalarım için bana 8 dolardan daha azına mal oluyor.

Bu projede, suyun varlığını algılamak için Wifi ve MQTT istemcisi sağlamak için ESP-01 kullanacağız ve isteğe bağlı olarak yerel alarm sağlamak için doğrudan bağlı hoparlör/buzzer kullanacağız.

Proje için özel uygulamam, karter pompası arızası durumunda, karter pompa kuyumdaki sel/suyu tespit etmektir. 2 açık kablo ile su algılandığında, MQTT brokerine mesaj gönderir. MQTT aracısı daha sonra mesajı NodeRED'e iletir. MQTT mesajı alındığında, NodeRED 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.

Şimdi tabii ki bu proje sadece ev elektriği AÇIK ise çalışır. Bir sonraki talimatta pil yedekleme devresini entegre edeceğim. Ancak güç kaynağını benim yaptığım gibi yaparsanız, pil yedeği için bir USB güç bankası takabilirsiniz. Aynı anda hem şarj etmenizi hem de güç sağlamanızı sağlayan bir güç bankanız varsa, hazırsınız demektir.

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:Raspberry Pi:https://www.switchdoc.com/2016/02/tutorial-installi…NodeRED'i Raspberry Pi'ye yükleyin:

Adım 1: İhtiyacınız Olan Parçalar

İhtiyacınız Olan Parçalar
İhtiyacınız Olan Parçalar
İhtiyacınız Olan Parçalar
İhtiyacınız Olan Parçalar
İhtiyacınız Olan Parçalar
İhtiyacınız Olan Parçalar

Parça listesi:

(1) ESP-01

(2) 10K ohm Direnç

(1) küçük sinyal jenerik NPN transistörü (2N3904 kullandım)

(2) uzun teller

(1) 5V jenerik güç kaynağı (bu devre 300mA'dan daha az akım gerektirir)

(1) 3.3V regülatör modülü AMS1117

(1) Mikro-USB'den DIP Adaptörüne Dişi Konnektör PCB Dönüştürücü DIY Kiti

(1) USB-A'dan MicroUSB'ye kablo.

(1) 8 pinli IC soketi - ESP-01'i doğrudan devre kartına lehimlemek istiyorsanız atlanabilir. Sıralar arasında boşluk oluşturan plastik köprüleri kesin ve ardından 2 sırayı birbirine yapıştırın, fotoğrafa bakın.

(1) Proje için küçük muhafaza

Hoparlör/buzzer kullanarak yerelleştirilmiş bir alarma ihtiyacınız varsa, aşağıda isteğe bağlı parçalar bulunmaktadır

(1) Genel PNP Transistör, hoparlör/buzzer akımı/watt gereksinimine göre seçin. Benim durumumda hoparlörüm yalnızca 0,3W (8 ohm) olduğu için 2N2907 kullanıyorum, hoparlörü sürmek için yeterli güç sağlayacaktır. Daha yüksek ses istiyorsanız daha büyük bir transistör ve hoparlör seçebilirsiniz.

(1) Hoparlör, yukarıdaki PNP Transistör notuna bakın

(1) 100 - 110 ohm Direnç

Adım 2: Devre Şeması

Devre şeması
Devre şeması

İlk adım, şemada gösterilen devreyi oluşturmak olacaktır.

3.3VDC güç kaynağını, AMS1117 3.3VDC regülatör ile birleştirilmiş eski bir 5V cep telefonu şarj cihazı kullanarak oluşturdum. 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.

Tasarladığım devre, iki kablo arasındaki suyun varlığını algılamak. Su her iki telin ucuna ulaştığında yaklaşık 10K ila 20K ohm'luk bir direnç oluşturacaktır. Ardından 10K ohm R1 ile seri olarak Q1'in tabanına küçük bir akım sağlayarak Q1'in doymasına neden olarak GPIO-2'yi toprağa kenetler. Algılama kablolarında kazara kısa devre olması durumunda Q1'e koruma sağlamak için R1, gereklidir.

R2, ESP-01'in flaştan başlatılmasına izin veren bir çekme direncidir.

Şimdi isteğe bağlı hoparlör/buzzer için, MQTT'yi konuşmak için sadece ESP-01'e ihtiyacınız varsa ve bu yerel alarmı uygulamak istemiyorsanız, R2, Q2, Speaker'ı çıkarabilir ve GPIO-0 arasına 10K çekme direnci yerleştirebilirsiniz. ve VCC.

Dişi Micro-USB - DIP adaptörü kullanma ihtiyacı hissetmiyorsanız, 5V PS ile 3.3V regülatör modülü arasındaki kabloları lehimleyebilirsiniz. Herhangi bir genel cep telefonu şarj cihazı ve MicroUSB kablosu kullanabilmem için dişi MicroUSB adaptörünü kullanmayı tercih ediyorum.

Adım 3: Devreyi Kurmak

Devreyi Kurmak
Devreyi Kurmak
Devreyi Kurmak
Devreyi Kurmak
Devreyi Kurmak
Devreyi Kurmak

Tüm bileşenleri ve parçaları önceki sayfadaki devre şemasına göre PCB'ye lehimleyin ve PCB'yi boyutuna göre kesin.

PCB'yi, PCB'ye ve isteğe bağlı hoparlöre uyacak bir muhafazanın içine yerleştirin. Benim durumumda, tüm parçalar küçük bir telefon prizi kutusunun içine sığacaktı, ancak ESP-01 modülünün sığması için bir çıkıntı oluşturmak için kapağı biraz ısıtmam gerekiyor.

Adım 4: ESP-01'i Yanıp Sönme

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 5: Test Çalıştırması

Projemizin ç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 devremizi açın ve her şey çalışıyorsa, birkaç saniye içinde en azından aşağıdaki MQTT mesajını görmelisiniz:

stat/SumpWaterSensor/LWT Çevrimiçi

Şimdi 2 algılama kablosunu bir bardak suya batırarak su sensörünü test edin ve şu mesajı görmelisiniz:

tele/SumpWaterSensor ISLAK

Ve telleri sudan çıkarırsanız, şu mesajı görmelisiniz:

tele/SumpWaterSensor KURU

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

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

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

"cmnd/SumpWaterSensorInfo": ESP-01, bu konuyu '1' değeriyle alırsa bilgi gönderir (ascii=49)

"cmnd/SumpWaterSensorCPUrestart": ESP-01, bu konuyu '1' değeriyle alırsa (ascii=49) yeniden başlar

"cmnd/SumpWaterSensorBeep": ESP-01, bu konuyu '1' değeriyle alırsa (ascii=49) hoparlörden ses çıkaracaktır.

"cmnd/SumpWaterSensorBeepFreq": Hoparlör alarmının frekansını ayarlar, varsayılan = 900 (Hz)

"cmnd/SumpWaterSensorDebug": Seri hata ayıklama düzeyini etkinleştirin ve ayarlayın (varsayılan 0'dır - hata ayıklama yok)

Adım 6: Sensörü Monte Edin

Sensörü Monte Edin
Sensörü Monte Edin
Sensörü Monte Edin
Sensörü Monte Edin

Uygulamamda, karter pompamın kuyusundaki su seviyesini izlemek ve karter pompa şamandıra şalterinin üzerine su gelirse bana haber vermek istiyorum, bu da karter pompamın çalışmadığı anlamına geliyor. Kabloları çalıştırdım ve tahliye borusu boyunca sabitlemek için kablo bağları kullandım.

7. Adım: 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 "tele/SumpWaterSensor" MQTT konusunu dinlemek/abone olmak için Node-RED kullanıyorum ve su algılanırsa birkaç google home hoparlörüne duyuruyorum. Buna ek olarak, android telefonuma bildirim göndermek için akışı bir pushbullet düğümüne bağladım.

Ayrıca sensörün durumunu (açık/çevrimdışı, çalışma süresi vb.) görmek için bir web ön ucu oluşturdum. Bazen 1 hafta boyunca birkaç kez çevrimdışı olduğunu, istatistiklerden, çoğu zaman ESP-01'in wifi veya MQTT ile bağlantısının kesilmesinden kaynaklandığını gördüm. Ama endişelenmeyin, çizimim, WIFI ve/veya MQTT brokerine bağlanmayı denemeye devam ederse, ESP-01'i yeniden başlatma rutinini içeriyor.

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 veya hatta su algılandığında diğer cihazları sürmek için IFTTT'yi kullanabilirsiniz.

İyi eğlenceler…

Önerilen: