İçindekiler:
- Gereçler
- Adım 1: Donanım - Devre
- 2. Adım: Donanım - Muhafaza
- 3. Adım: Yazılım
- 4. Adım: Ev Otomasyonu ve Telgraf
- Adım 5: İyileştirmeler ve Diğer İyileştirmeler
Video: Ev Otomasyonu Entegrasyonu, WiFi ve ESP-NOW ile Pille Çalışan Kapı Sensörü: 5 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu talimatta size ev otomasyon entegrasyonu ile pille çalışan bir kapı sensörünü nasıl yaptığımı gösteriyorum. Başka güzel sensörler ve alarm sistemleri gördüm ama kendim yapmak istedim.
Benim hedeflerim:
- Kapının hızlı açılmasını algılayan ve bildiren bir sensör (<5 saniye)
- Kapının kapandığını algılayan bir sensör
- Pille çalışan ve pille birkaç ay çalışan sensör
Donanım ve yazılımdan ilham alınmıştır.
- Kevin Darrah'ın trigboard'u (TPL5111 ve TPS73733).
- Bu video
Ön kapım ve arka kapım için bir sensör yaptım. Tek fark, led konumu ve harici güç anahtarıdır (arka kapı sensöründe).
Donanım ve yazılım geliştirme sırasında birkaç iyileştirme yaptım, fotoğraflarda görülebilir.
Gereçler
Elektronik bileşenleri Aliexpress'ten aldım, ana parçalar:
- LiPo pil
- TPS73733 LDO
- TPL5111
- Manyetik anahtar
- P-kanalı mosfet: IRLML6401TRPBF
- Mıknatıs
- SMD bileşenleri ve diğerleri için PCB adaptör plakası.
Adım 1: Donanım - Devre
Devre için ekteki şemalara bakın. SMD parçalarını bir adaptör PCB plakasına lehimledim ve tüm bileşenleri çift taraflı bir perf kartına lehimledim. ESP-01'i dişi başlıklar aracılığıyla bağladım, böylece bu Talimatın 3. adımında gösterilen adaptör aracılığıyla programlamak için kaldırabildim.
Devre şu şekilde çalışır:
- Kapı açıldığında, TPL5111 DELAY/M_DRV pininde bir atış alır ve ESP-01'e güç sağlayan TPS73733 LDO'yu etkinleştirir. Bu işlem için EN/ONE_SHOT aşağı çekilmelidir, TPL5111'in veri sayfasına bakın.
- Program çalıştıktan sonra (Yazılım adımına bakın), ESP-01, TPL5111'e bir Bitti sinyali gönderir ve ardından TPS73733'ü devre dışı bırakır ve bu da TPL5111 ve TPS73733 için çok düşük bir güç durumuna neden olur.
Hem NO hem de NC bağlantılı kamış anahtarları kullanıyorum. NC kablosunu bağladım, çünkü manyetik anahtarın mıknatıs çıkarıldığında devreyi kapatması (kapı açık) ve mıknatıs yakınken (kapı kapalı) açması gerekir.
Arka kapı sensörü için bazı kararsızlıkları keşfettiğimde bazı kondansatörler ve dirençler ekledim, ancak daha sonra keşfettiğim gibi kararsızlığa yazılım (esp_now_init) neden oldu.
2. Adım: Donanım - Muhafaza
Muhafazayı, "İsviçre aksanlı adam"ın bu videodan esinlenerek Autodesk Fusion360'ta tasarladım.
Üç bölümün STL dosyaları:
- Kutu
- kapak
- Mıknatıs tutucu
Thingiverse sayfamda yayınlandı.
3. Adım: Yazılım
Program Github'umda.
Programın akışı resimde gösterilmiştir. ESP-NOW'u nasıl kullandığımın açıklaması için diğer Eğitilebilir Tabloma bakın.
Modül açıldığında ilk olarak ESP-NOW üzerinden 'OPEN' mesajını göndermeye çalışır. Bu başarılı olmazsa, bir WiFi ve MQTT bağlantısına geçer.
En azından benim kurulumumda 'KAPALI' mesajının ESP-NOW üzerinden başarılı bir şekilde gönderilmediğini öğrendim, bu yüzden bunu programdan kaldırdım ve sadece WiFi ve MQTT kullandım.
Kapının açıldığı ve modülün kapının kapanmasını beklediği süre boyunca, bu süreyi WiFi ve MQTT'ye bağlanmak için kullanır, bu nedenle kapı kapandığında sadece ölçülen voltajı ve bir KAPALI mesajını göndermesi ve ardından bir KAPALI mesajı göndermesi yeterlidir. direkt uykuya geçer.
Program, kapatılan mesajın alıcı tarafından doğru konuda bir MQTT mesajını dinleyerek alıp almadığını kontrol eder.
4. Adım: Ev Otomasyonu ve Telgraf
Kapı sensörlerim, Raspberry Pi Zero'mdaki Openhab Ev Otomasyonum ile iletişim kuruyor.
Ana uygulamalar:
- Kapının durumunu okuyun: AÇIK veya KAPALI.
- Bir kapı açılırsa beni telgrafla uyar (Alarm açılırsa veya İzleme işlevi açılırsa).
- Bir kapının en son ne zaman açıldığını veya kapatıldığını okuyun.
- Pil bitmeden önce bir kapı sensörünün kaldırabileceği açıklıkların sayısını sayın.
Örneğin tatildeyken komşumuz gelip bitkileri sulasa bir mesaj alıyorum. Girişteki videoya bakın.
Openhab öğelerim, kurallarım ve site haritası dosyalarım Github'ımda. Bu dosyalarda, kilit açıklığında bir 3D yazıcıdan normal bir kablolu anahtar ve küçük bir kontak (uç) anahtarı kullanan kulübenin kapı sensörümü de görebilirsiniz (resimlere bakın).
Openhab'da Telegram eyleminin nasıl kullanılacağı burada açıklanmaktadır.
Adım 5: İyileştirmeler ve Diğer İyileştirmeler
Geçtiğimiz aylarda aşağıdaki iyileştirmeyi yaptım.
Kendinden geçişli bir darbe sinyali ile uzun kapı açıklıklarının üstesinden gelin
Yazın evdeyken arka kapıyı birkaç saat açık bırakırız. WiFi bağlantısıyla çalışan ESP-01, pili gereksiz yere boşaltacaktır. Bu nedenle, bu durumlarda modülü kapatabilmek için bir açma/kapama anahtarı ekledim.
Ancak, bu bazen kalıcı olarak kapatılmış bir modülle (açmayı unuttuğumda) ve birkaç öğleden sonra açık bir kapı ve çalışan bir modülden sonra boşalmış bir pille (kapatmayı unuttuğumda) sonuçlandı.
Bu nedenle modül, önceden tanımlanmış bir süre (1 dakika) açıldıktan sonra yazılım üzerinden modülü kapatabilmek istedim.
Ancak kapı kapatıldığında ESP-01'in 'BİTTİ' darbesi TPL5111'i kapattığında, GECİKME/M_DRV pimi YÜKSEK iken TPL5111'in bir 'BİTTİ' darbesi ile kapatılmadığını öğrendim. DELAY/M_DRV pinindeki bu YÜKSEK sinyal, açılan kapı ve akü voltajına bağlı olan indükleme anahtarının NC kontağından kaynaklanmıştır.
Bu nedenle DELAY/M_DRV pinine giden sinyal sürekli YÜKSEK olmamalı, darbeli olmalıdır. TPL5111 veri sayfasında, bunun > 20 ms'lik bir darbe olması gerektiğini bulabilirsiniz. Bu kendi kendini değiştiren sinyali bir P-kanal mosfet, bir kapasitör ve 10K ve 300K direnç aracılığıyla yaptım, verilen şemaya bakın.
Aşağıdaki gibi çalışır:
- Manyetik anahtarın NC kontağı kapalıysa, Kapı DÜŞÜK ve Mosfet AÇIK duruma getirilir, bu da modülü etkinleştiren DELAY/M_DRV pininde YÜKSEK bir sinyale neden olur.
- Kondansatör hızla şarj olur ve bu da Geçitte artan bir voltaja neden olur.
- Yaklaşık 20 ms sonra, Kapıdaki voltaj, YÜKSEK olan akü voltajının (300K/(300K+10K) %97'si olur ve Mosfet kapatılır, bu da DELAY/M_DRV pininde DÜŞÜK bir sinyale neden olur.
- DELAY/M_DRV pini DÜŞÜK olduğunda, ESP-01'in DONE sinyali modülün kapanmasına neden olur.
Bu, yazılımda uygulanmaktadır; while döngüsü sadece kapının hala açık olup olmadığını kontrol etmekle kalmaz, aynı zamanda modülün çok uzun süre açık kalıp kalmadığını da kontrol eder. Çok uzun süre açık kalırsa, bir NULL değeri yayınlar (kapının tanımsız durumu). Bu durumda kapının açılıp kapanmadığını bilmiyorum ve girişte belirtilen tüm hedeflere ulaşamıyorum, ancak pil ömrü daha önemli ve çoğu zaman o gün daha sonra kapıyı tekrar açıyoruz ve bu da onaylanmış bir kapalı durumla sonuçlanıyor. kapının.
Burada kullanılan voltaj aralığına uygun bir P-kanallı Mosfet kullanılması önemlidir. Mosfet, yaklaşık - 3.8V'luk bir VGS'de tamamen açık ve yaklaşık -0.2 V'luk bir VGS'de tamamen kapalı olmalıdır. Birkaç Mosfet denedim ve bir IRLML6401TRPBF'nin 10K ve 300K dirençlerle birlikte bu amaç için iyi çalıştığını öğrendim.. 1 uF'lik bir kapasitör, yaklaşık 20 ms'lik bir darbe uzunluğu elde etmek için iyi çalışır. Daha büyük bir kapasitör, TPL5111 etkinleştirildiğinden gerekli olmayan daha uzun bir darbe ile sonuçlanır. Voltajları ve darbe uzunluğunu kontrol etmek için DSO150 osiloskopumu kullandım.
Planlanan iyileştirme: OTA güncellemesi
Halihazırda mevcut yazılıma kısmen dahil edilmiş olan aşağıdaki prosedür aracılığıyla bir OTA güncellemesi eklemeyi planlıyorum
- NodeRed'in Openhab'ı aracılığıyla, tutulan bir 'güncelleme' mesajı bir 'güncelleme konusu' yayınlıyorum.
- Modül açık ve MQTT sunucusuna bağlıysa ve 'güncelleme konusu'na abone ise güncelleme mesajını alır.
- Güncelleme mesajı, modülün kapanmasını engeller ve HTTPUpdateServer'ı başlatır.
- HTTPUpdateServer web sitesi aracılığıyla yazılımı güncelleyebilirsiniz.
- NodeRed'in Openhab'ı aracılığıyla, tutulan bir 'boş' mesajı bir 'güncelleme konusu' yayınlıyorum.
Planlanan iyileştirme: önceden tanımlanmış bir süreden sonra donanımın kapatılması
Mevcut şemada, TPL5111'in DELAY/M_DRV ve GND'si arasında 200K'lık bir direnç kullanıyorum. Bu, modülü 2 saatten fazla açar (bkz. TPL5111 veri sayfası 7.5.3.). Ancak modülün bu kadar uzun süre açık kalmasını istemiyorum çünkü pil daha sonra boşalır. Yazılım çözümü (yukarıya bakın) modülü kapatamazsa veya güncelleme mesajı istenmeden modülü güncelleme moduna geçirirse, modül uzun süre açık kalır.
Bu nedenle TPL5111'in DELAY/M_DRV ve GND'si arasında daha küçük bir direnç kullanmak daha iyidir, bu nedenle modül kısa bir süre sonra kapatılır, örneğin bir 50K direnç 7 dakikalık bir açık kalma süresi ile sonuçlanır.
Önerilen:
Pille Çalışan Su Kolektörü Seviye Sensörü: 7 Adım (Resimlerle)
Pille Çalışan Su Kollektörü Seviye Sensörü: Evimizin çatısına düşen yağmurdan beslenen ve tuvalet, çamaşır makinesi ve bahçedeki sulama tesisleri için kullanılan su deposu bulunmaktadır. Son üç yıldır yazlar çok kuruydu, bu yüzden tanktaki su seviyesine dikkat ettik. S
IOT Kapı Sensörü - Wi-Fi Tabanlı, 2xAAA Pille Çalışan: 6 Adım
IOT Kapı Sensörü - Wi-Fi Tabanlı, 2xAAA Pille Çalışan: Bu talimatta, IOT Cricket Wi-Fi modülü ile pille çalışan bir Wi-Fi Kapı sensörünü nasıl kolayca oluşturabileceğinizi sunuyoruz. Ayrıca Cricket'in mesajlarının IFTTT (veya Home Assistant, MQTT veya Webhooks gibi diğer hizmetlerle) ile nasıl entegre edileceğini de gösteriyoruz
Pille Çalışan Hareketle Çalışan LED Lamba: 4 Adım
Pille Çalışan Hareketle Çalışan LED Lamba: Kablolamaya uygun olmayan bir yere ışık koymak istiyorsanız, ihtiyacınız olan şey bu olabilir
Pille Çalışan ESP IoT: 10 Adım (Resimlerle)
Pille Çalışan ESP IoT: Bu talimat, önceki talimatlarımdaki tasarımda Pille Çalışan ESP IoT'nin nasıl temel alınacağını gösterir
Pille Çalışan ESP Tasarımı: 3 Adım (Resimlerle)
Pille Çalışan ESP Tasarımı: Bu talimat, kablosuz ESP tabanlı IoT cihazı geliştirirken pil gücü kullanımının nasıl azaltılacağını gösterir