İçindekiler:

ESP8266 + Micropython + Domoticz'de Su Kaçak Sensörü: 16 Adım (Resimli)
ESP8266 + Micropython + Domoticz'de Su Kaçak Sensörü: 16 Adım (Resimli)

Video: ESP8266 + Micropython + Domoticz'de Su Kaçak Sensörü: 16 Adım (Resimli)

Video: ESP8266 + Micropython + Domoticz'de Su Kaçak Sensörü: 16 Adım (Resimli)
Video: УРОК ПО MICROPYTHON | ЗАПУСКАЕМ ВЕБ СЕРВЕР НА ESP8266 #micropython #python #esp8266 2024, Temmuz
Anonim
ESP8266 + Micropython + Domoticz'de Su Kaçak Sensörü
ESP8266 + Micropython + Domoticz'de Su Kaçak Sensörü
ESP8266 + Micropython + Domoticz'de Su Kaçak Sensörü
ESP8266 + Micropython + Domoticz'de Su Kaçak Sensörü

Bir süre önce eşim benden su kaçağı sensörü yapmamı istedi. Kazan dairesindeki hortumun sızdırmasından ve suyun yeni döşenen ahşap zemine taşmasından korkuyordu. Ve ben gerçek bir mühendis olarak böyle bir sensör yapmayı üstlendim.

15 yıllık tıp mühendisi deneyimimden, suyu tespit etmenin en kolay yolunun suyla kısa devre yapan metal pimler olduğunu biliyorum. En basit sensörlerin çalışma prensibi, suyun iki (veya daha fazla) metal pimi kısa devre yapması gerektiği ve bu gerçekleşir gerçekleşmez alarmın tetiklenmesidir.

Adım 1: Donanım

Donanım
Donanım

Bu proje için ihtiyacımız var:

1. ESP8266 - 01 modülü

2. HT7333 3.3V MS Düşük Kayıplı Lineer Regülatör Güç Kaynağı modu

Aküden gelen voltajı ESP8266 için kabul edilebilir seviyeye düşürmek için bu modüle ihtiyacımız var. Veri sayfasına göre 3V ila 3.6V giriş olmalıdır. Bu modül bize 3.3V verir.

3. Pil.3, 7V Li-ion 400mAh pil kullanıyorum. Aslında başka herhangi bir uygun güç kaynağını kullanabilirsiniz. 18650 pil de iyi bir seçimdir. Bir pil seçerken, ESP'nin WiFi ağına bağlanırken yaklaşık 200mA "yediğini" ve kart sunucuya veri yüklerken yaklaşık 60mA kullanıldığını unutmayın.

4. TP4056 Lipo pil şarj kartı.

5. Pololu mini buton Güç Anahtarı Çok ilginç minik kart. ESP modülünü sadece su algılandığında değiştirmemize izin verir. ESP'yi AÇIK tutmanıza gerek yoktur. Bu yüzden pilin şarjından tasarruf etmek için iyidir.

6. Konut7. Çift mikro anahtar AÇIK-KAPALI. Bir hat, cihazı açmaya yarar. İkinci satır test içindir - su olmadan devreye kısa devre yapar, cihazın çalışıp çalışmadığını bize bildirmek için.

8. Raspberry Pi mikro bilgisayar

Raspberry Pi Zero kullanıyorum. Domoticz sunucusunu çalıştırmak için yeterince güçlüdür.

2. Adım: Yazılım

PC'nizde:

1. modülleri silmek ve bellenimi yanıp sönmek için kurulu esptool

2. Programınızı flashlamak için Ampy yüklü

3 Python 3.6 veya üstü önerilir

4. İstediğiniz herhangi bir kod düzenleyici. Simplest - Normalde Python ile kurulan Python IDLE. Raspberry Pi'de Pycharm / Atom veya Anaconda Spyder kullanıyorum

5. Raspberry Pi'de (veya Windows veya Linux altında ortak PC'de) yüklü Domoticz sunucusu

3. Adım: Raspberry Pi'yi Hazırlayın - Domoticz'i Kurun

Bu nedenle, RPi'nizi alın ve Domoticz sunucusunu çalıştırmaya uygun işletim sistemini kurun.

Bu talimatları takip edebilirsiniz.

Raspbian Stretch with Desktop'ı buradan kullanıyorum:

Sonraki adım PC'nize Domoticz sunucusunu kurmaktır. Buradaki veya buradaki talimatları kullanabilirsiniz:). Korkma, o kadar zor değil. Açıkçası terminalinizde çalıştırmanız gerekiyor:

curl -L install.domoticz.com | sudo bash

Ve işte bu:) az çok. Domoticz kurulumu

Artık sunucumuz hazır olduğuna göre, aşağıdaki URL'yi girerek bir tablet de dahil olmak üzere herhangi bir web tarayıcısından erişebiliriz:

Adım 4: Domoticz Kurulumu

Domoticz Kurulumu
Domoticz Kurulumu

Artık sunucumuz hazır olduğuna göre, aşağıdaki URL'yi girerek bir tablet de dahil olmak üzere herhangi bir web tarayıcısından erişebiliriz:

Adım 5: Uygulama Ayarlarını Yapın

Uygulama Ayarlarını Yapın
Uygulama Ayarlarını Yapın
Uygulama Ayarlarını Yapın
Uygulama Ayarlarını Yapın

Kurulum | Ayarlar menüsü.

Çeşitli sekmelere sahip Ayarlar menüsü, daha iyi bir sistem çalışması için gerekli olan kişisel parametreleri girmenize olanak tanır. Alanlara verileri girdikten sonra kırmızı renkli "Ayarları Uygula" butonuna basarak kaydetmeniz gerekmektedir. Bu işlemden sonra, ilk erişimde boş olan tüm Parola alanları, kullanılmamış olsalar bile uzun bir yıldız dizisiyle görünecektir.

"Sistem" sayfasında ana kurulumu yaptıktan sonra "Bildirimler"e tıklayın. Burada ne tür bildirimler kullanacağımızı ayarlamamız gerekiyor.

6. Adım: Bildirimleri Ayarlayın

Kurulum Bildirimleri
Kurulum Bildirimleri

Örneğin bir düğmeye basıldığında, elektrik kullanımı çok yüksek olduğunda, sıcaklık yüksek olduğunda ve daha birçok seçenek için bildirimler gönderilebilir.

Bizim durumumuzda, sensör tarafından su algılanır algılanmaz bildirimler gönderilmelidir. Yani kullanmak istediğinizi açın. Ayrıca normalde bildirimin çalışması için API anahtarına ihtiyacınız vardır. Biraz ilerleyerek Pushover, Pushsafer ve Pushbullet'i denediğimi söyleyeceğim. Ben de Pushover'la kaldım. Daha sonra nedenini söyleyeceğim.

Bildirimlerin nasıl çalıştığı hakkında birkaç kelime. Pushbullet, Pushover veya kullanmak istediğiniz diğer sayfalarda bir hesabınızın olması gerekir. Ayrıca cep telefonunuzda veya PC'nizde bir uygulamaya ihtiyacınız olacak.

API anahtarını alın ve yukarıdaki sayfaya ekleyin. "Test" seçeneğine tıklayarak bildirimi test edebilirsiniz. API anahtarı doğruysa, cep telefonunuza bir test bildirimi almalısınız.

Sensör suyu algılar algılamaz ESP devreye girer ve Domoticz sunucusuna JSON formatında istek gönderir. Bir olayın tetiklenmesi (cep telefonunuza bildirim gönderilmesi) için koşullar yerine getirildiğinde, Domoticz bildirimi gönderir.

Daha sonra "olaylara" geri döneceğim.

Adım 7: Donanım Cihaz(lar)ıyla İletişimi Kurun

Donanım Cihaz(lar)ıyla İletişimi Kurun
Donanım Cihaz(lar)ıyla İletişimi Kurun
Donanım Cihaz(lar)ıyla İletişimi Kurun
Donanım Cihaz(lar)ıyla İletişimi Kurun
Donanım Cihaz(lar)ıyla İletişimi Kurun
Donanım Cihaz(lar)ıyla İletişimi Kurun

Cihazları kontrol etmek veya sensörleri okumak için Domoticz uygulamasını kullanmadan önce, donanım cihaz(lar)ıyla iletişimi kurmanız gerekir. Donanım eklemek için Kurulum|Donanım'ı seçin. Uygun donanım eklenene kadar cihazlar görünmeyecektir.

Domoticz uygulaması, yerel olarak birçok donanım aygıtını destekler. Bizim durumumuzda, sel sensörümüzü okumak için donanım listesinden sözde "Kukla" donanımı eklememiz gerekiyor.

Donanım eklendiğinde, tanımlanan tüm donanımların genel görünümü gösterilecektir. Donanım devre dışı bırakılabilir veya silinebilir.

Yeni donanım listede olmalı ve "Sanal Sensör Oluştur" düğmesi bulunmalıdır.

Bu butona tıklayın ve Sensör Tipi "Uyarı"yı seçin. Şimdi cihazı aktif hale getirmek için Domoticz'e eklememiz gerekiyor.

Adım 8: Aktif Olmak İçin Cihazı Domoticz'e Ekleyin

Aktif Olmak için Cihazı Domoticz'e ekleyin
Aktif Olmak için Cihazı Domoticz'e ekleyin
Aktif Olmak için Cihazı Domoticz'e ekleyin
Aktif Olmak için Cihazı Domoticz'e ekleyin
Aktif Olmak için Cihazı Domoticz'e ekleyin
Aktif Olmak için Cihazı Domoticz'e ekleyin

Lütfen "IDX" altındaki numarayı not edin. Bu, bu cihazın benzersiz referansıdır ve bildirimi ele almak için daha sonra Python betiğimizde buna ihtiyacımız var. Bu durumda IDX numarası 1'dir.

Soldaki yeşil oka tıklayarak cihazı etkinleştirin (aşağıdaki resmimde cihaz etkin olduğundan mavidir).

Cihazın adını girin ve "ekle" ye tıklayın.

"Yardımcı Programlar" menüsüne gidin ve cihazınız orada listelenmelidir.

Şimdi sensörümüz için "olay" programlamamız gerekiyor. Demek ki sunucuya sensörden mesaj gelirse ne yapması gerektiğini söylememiz gerekiyor. Ve benim için en zor yerdi diyebilirim:).

Adım 9: Bu Şekilde Çalışmıyor…

Bu Şekilde Çalışmıyor…
Bu Şekilde Çalışmıyor…

/device/ sayfasında olayı programlamaya çalışarak başladım. Aşağıdaki bu benim değil, ama göstermek için sorun değil.

Bazı onay kutularını işaretleyip işe yarayacağını düşünüyorsanız yanılıyorsunuz:) Bu şekilde olmuyor. Sanırım buradaki bu özellik henüz bitmedi. Unutmayın - bu açık kaynaklı yazılım. Tamam, birkaç saat sonra çözümü buldum. "Kurulum" açılır menüsünden "Etkinlikler"i kullanmamız gerekiyor.

"Etkinlikler"e tıkladıktan sonra kendi etkinliğinizi oluşturabilirsiniz. Python veya LUA'da kod yazarak veya sadece "Blockly" denen şeyi kullanarak satın alabilirsiniz. Blockly kullanmayı seçtim. Sunucuyu istediğinizi yapmaya zorlamanın iki yolu vardır.

Adım 10: Olayı Doğru Şekilde Oluşturun 1

Olayı Doğru Şekilde Oluşturun 1
Olayı Doğru Şekilde Oluşturun 1

1. "Komut dosyasını başlat" Blockly mesajını kullanarak "Olaylar" aracılığıyla harici dosyayı yürütün

Bu benim için Windows makinesinde mükemmel çalışıyor. Ancak Raspberry Pi'mdeki Raspbian'da bunu başaramadım. İzinlerle ilgili bir sorun olduğundan şüpheleniyorum.

Adım 11: Olayı Doğru Şekilde Oluşturun 2

Olayı Doğru Şekilde Oluşturun 2
Olayı Doğru Şekilde Oluşturun 2

2. "Konu ile bildirim gönder" mesajını kullanın. Raspbian'da çalışıyor. Bu seçenek, Pushsafe ve Pushover'a bildirim gönderilmesini destekler.

1. yolu kullanmanın avantajı, daha esnek olmasıdır. Ekranınızda gösterilecek simgeyi, sesleri vb. seçebilirsiniz. "Etkinliğim" yukarıdaki resimde gösterilmektedir.

Ardından ESP modülünü programlayalım.

Adım 12: ESP8266-01 Modülünün Programlanması

ESP8266-01 Modülünün Programlanması
ESP8266-01 Modülünün Programlanması

ESP8266 modülümüzü flashlayarak başlayalım. Normalde bu modüller fabrika yazılımı ile birlikte gelir. AT komutlarını kullanarak modüllerle iletişim kurmak mümkündür. Ayrıca bu yazılım, bağımsız kontrolörler gibi modüllerin kullanılmasına izin vermez. Bunları bağımsız denetleyiciler gibi kullanmak için fabrika bellenimini silmemiz ve yeni bir tane yüklememiz gerekir.

Bunu yapmak için esptool kullanacağız. Bellenimi silmek için modülümüzü PC'ye bağlamamız gerekiyor. Bunu yapmak için TTL dönüştürücü + birkaç ek bileşene ihtiyacınız var. Ama daha kolay bir yolu var:). Sadece aliexpress veya ebay USB'den ESP8266 ESP-01 Wi-Fi Adaptör Modülü w/CH340G Sürücüsüne satın alın.

ESP8266 modülünü resimde gösterildiği gibi TTL dönüştürücüye takın ve USB portuna bağlayın.

Benimle aynı dönüştürücüye sahipseniz, anahtarı kendi başına "Prog" konumuna getirmeniz gerekir. esptool'ün nerede kurulu olduğunu bulun (normalde C:

Tabii ki doğru portu seçin. Benim durumumda COM5. ESP'nin kurulu olduğu portu Kontrol paneli - Sistem - Cihaz yöneticisinden kontrol edebilirsiniz.

Firmware yükleyin (buradan aldım: https://micropython.org/download#esp8266) şunu yazarak:

python esptool.exe --port COM5 --baud 460800 write_flash --flash_size=tespit 0 C:\path_to_firmware\esp8266-20180511-v1.9.4.bin

Tamam, şimdi micropython betiklerini ESP8266'ya yüklemeye hazırız.

Bunun için Adafruit MicroPython Tool (ampy) kullanıyorum.

Ancak günümüzde Esplorer adında başka bir seçenek var. Bu, ESP modüllerine dosya yüklemeye izin veren, kullanıcı arayüzüne sahip bir uygulama.

Ampy'nin nasıl kurulacağına dair talimatları burada bulabilirsiniz. Bu nedenle, TTL dönüştürücü üzerindeki anahtarı "UART" konumuna getirin. Dosyaları yüklememiz gerekecek:

  • wifimgr.py - wifi ağına bağlanmak için wifi yöneticisi
  • main.py - ana betiğimiz

Komut satırına şunu yazın: ampy --port COM5 dosyanıza C:\path yazın

"Giriş"e basın. Birkaç saniye sonra boş komut satırı görmelisiniz. Bu, dosyanın yüklendiği anlamına gelir. ampy komutuyla ESP'deki dosyaların listesini kontrol edebilirsiniz:

ampy --port COM5 ls

Deneyimlerime göre, gerekli tüm dosyaları yükledikten sonra main.py'yi yüklemek daha iyidir. çünkü main.py'yi yükler yüklemez ESP8266 modülü yeniden başlatılacak ve main.py dosyasını çalıştırmaya başlayacaktır. Yani bu durumda başka bir dosya yüklemeyi denerseniz, bazen yükleme işlemi başarısız olur. Ama bu her şeyin kaybolduğu anlamına gelmez:), sadece ikinci kez dene ve başaracaksın (yine deneyimlerime göre).

Bu proje için tüm dosyalara buradan ulaşabilirsiniz:

Adım 13: WiFi Ağınıza Bağlanın. Bildirim al

WiFi Ağınıza Bağlanın. Bildirim al
WiFi Ağınıza Bağlanın. Bildirim al
WiFi Ağınıza Bağlanın. Bildirim al
WiFi Ağınıza Bağlanın. Bildirim al

her şey yolundaysa, TTL dönüştürücüyü PC'nizin USB bağlantı noktasına yeniden takarak modülü yeniden başlatın.

ESP başladıktan sonra "Wifimanager" adlı yeni bir WiFi ağı bulun. PC'niz veya telefonunuzla bağlanın, ardından 192.168.4.1. IP adresine gidin. Burada ESP'nizi yerel WiFi ağına bağlayabilirsiniz. Kullanacağınız WiFi ağını seçin, şifreyi girin ve "Gönder"e basın.

Her şey doğruysa, "ESP XXXX ağına başarıyla bağlandı" mesajını göreceksiniz. ESP'niz artık WiFi ağınıza bağlı ve hazır. WiFi'ye bağlanır bağlanmaz Domoticz sunucusuna bağlanacaktır. Shorty, cep telefonuna bir bildirim almak zorundasın.

İşlemi "Kurulum"/"Günlük" bölümünden takip edebilirsiniz.

Vua lia!:) İşe yarıyor. Şimdi aşağıdaki blok şemaya göre tüm parçaları bir araya getirmeye geçebiliriz.

Adım 14: Blok Şeması

Blok Şeması
Blok Şeması

Bu diyagram hakkında söylenecek çok fazla bir şey yok. Çok basit. Gücü S1 anahtarıyla değiştirin. Cihaz, su "Su sensörü" pinlerine kısa devre yapana kadar kapalı durumda kalır. Ardından "Pololu kartı" devreye girer ve voltaj dönüştürücüye güç verir. HT7333 çipine dayalı bu güç modülü, ESP8266 için voltajı kararlı 3.3V'a dönüştürür. Sonraki ESP açılır ve Domoticz sunucusuna bir mesaj gönderir.

Adım 15: Sonuç ve Sonuçlar

Sonuç ve Sonuçlar
Sonuç ve Sonuçlar
Sonuç ve Sonuçlar
Sonuç ve Sonuçlar
Sonuç ve Sonuçlar
Sonuç ve Sonuçlar
Sonuç ve Sonuçlar
Sonuç ve Sonuçlar

İşe yarıyor. Bildirim gönderme 10 saniye kadar sürdü: WiFi bağlantısı, bildirim gönderme, telefonunuza alarm mesajı alma.

Sensörü, su algılanırsa her 30 saniyede bir alarm gönderecek şekilde programladım. Sensör, pil boşalana kadar 5 - 6 bildirime kadar gönderebilir. Bu cihaz aynı zamanda su seviyesini belirlemek için de kullanılabilir. Geliştirmek istediğim şey.

1. Daha hızlı çalışmasını sağlamak için. Sanırım birkaç ESP'yi doğrudan bağlamama izin veren ESP-Now teknolojisini kullanmayı deneyeceğim. Bu durumda bağlantı sırasındaki güç tüketimi çok düşüktür ve daha hızlıdır. Yani fikir, bir ESP'yi diğer ESP'leri bağlamak için bir hub gibi kullanmaktır.

2. Pil seviyesi alarmını uygulayın. Artık alarm mesajı göndermek için yeterli gücün olup olmadığını bilemezsiniz. Bu sensörün gelecek neslinde pil şarjını test etmek için özel bir düğme olacağını düşünüyorum.

Kullanıcının bir düğmeye basması gerekecek ve pil seviyesi gösterilecektir.

Önerilen: