İçindekiler:

ESP-NOW Ev Otomasyonu Esp8266 Raspberry Pi MQTT: 4 Adım
ESP-NOW Ev Otomasyonu Esp8266 Raspberry Pi MQTT: 4 Adım

Video: ESP-NOW Ev Otomasyonu Esp8266 Raspberry Pi MQTT: 4 Adım

Video: ESP-NOW Ev Otomasyonu Esp8266 Raspberry Pi MQTT: 4 Adım
Video: Akıllı Ev Kuruyoruz-4 Home Assistant ve MQTT Kullanımı 2024, Kasım
Anonim
ESP-NOW Ev Otomasyonu Esp8266 Raspberry Pi MQTT
ESP-NOW Ev Otomasyonu Esp8266 Raspberry Pi MQTT

Bu Eğitilebilir Kitapta size ev otomasyonumda ESP-NOW'u nasıl kullandığımı gösteriyorum. Şematikte iletişim akışlarını görebilirsiniz

Sana gostereyim:

  • gönderici nasıl çalışır
  • alıcı nasıl çalışır
  • Raspberry Pi ile seri iletişim nasıl çalışır?

MQTT ve ev otomasyonumun nasıl çalıştığını göstermiyorum, bunun için başka iyi talimatlar bulabilirsiniz.

Krediler: Bu Eğitilebilirlik, şunlardan ilham almıştır:

Video #172 by Andreas Spiess

www.esploradores.com/practica-6-conexion-es…

1. Adım: WiFi ve MQTT ile Yedekleme

WiFi ve MQTT ile Yedekleme
WiFi ve MQTT ile Yedekleme

ESP-NOW'un son derece hızlı ve oldukça güvenilir olduğunu öğrendim, ancak bazen başarısız oluyor. Programıma normal WiFi ve MQTT bağlantısı üzerinden bir yedekleme ekledim.

2. Adım: Uzak/gönderici

Uzak/gönderen
Uzak/gönderen
Uzak/gönderen
Uzak/gönderen
Uzak/gönderen
Uzak/gönderen
Uzak/gönderen
Uzak/gönderen

İlk şemada gönderenin programının nasıl çalıştığını görüyorsunuz:

  1. esp8266, açılıştan veya sıfırlamadan başlar
  2. ESP-NOW başlatıldı
  3. Modül, belirli bir süre için ESP-NOW gönderir
  4. Modül, bir geri arama işlevinde ESP-NOW mesajının alıcı tarafından alınıp alınmadığını kontrol eder.

    1. ESP-NOW mesajı alındıysa, modül düşük güçte derin uyku moduna geçer
    2. ESP-NOW mesajı alınmadıysa, modül bir WiFi bağlantısı ve yedek bağlantı olarak bir MQTT bağlantısı başlatır.

Göndericinin programı Github'umda (Master_sender.ino). Programlar, MQTT ev otomasyonu için hem konuyu hem de mesajı, alıcıda kolay bir bölme için bir "&" işaretiyle birleştirilmiş tek bir birleşik ESP-NOW mesajında gönderir.

İki farklı uzaktan kumanda/gönderici yaptım:

Gönderen 1: esp8266 derin uykudadır ve sıfırlama ile etkinleştirilir. Modül bittiğinde butondaki led yanar ve söner. Pilin voltajı düşükse, led yanıp söner. ESP-NOW başarısız olursa, WiFi/MQTT bağlantılarına geçmeden önce led yanıp söner. esp8266, HT7333 voltaj regülatörlü bir LiPo pilden 3.3V'a kadar güç alır

Gönderen 2: esp8266 kapatılır ve düğmeye basılarak çalıştırılır. Normalde ESP-NOW bağlantısı 'tıklama' düğmesinden sonra yapılır. esp8266, doğrudan bir LiPo pilden güç alır. Sadece birkaç 100 ms'de çalıştırıldığında, tam olarak şarj edilmiş bir pilin (4,2 V'a kadar) yüksek voltajından esp8266'nın zarar görüp görmediğini bilmiyorum. Spesifikasyonlardan daha yüksektir (3.0 - 3.6V).

Not: pil gücü düşükse, ESP-NOW başarısız olur.

3. Adım: Alıcı - Donanım (esp8266 ve Raspberry Pi)

Alıcı - Donanım (esp8266 ve Raspberry Pi)
Alıcı - Donanım (esp8266 ve Raspberry Pi)
Alıcı - Donanım (esp8266 ve Raspberry Pi)
Alıcı - Donanım (esp8266 ve Raspberry Pi)
Alıcı - Donanım (esp8266 ve Raspberry Pi)
Alıcı - Donanım (esp8266 ve Raspberry Pi)

Alıcının açıklaması iki bölüme ayrılmıştır:

  1. Donanım
  2. Yazılım

donanım

Alıcı esp-01, ev otomasyon sistemimi (Openhab2) ve Node Red'i çalıştıran Raspberry Pi Zero'ya bağlı.

Şematikte basit bağlantılar gösterilmektedir:

  • esp-01'in RX'i RasPi'nin TX'ine
  • esp-01'in TX'i ile RasPi'nin RX'i
  • GND'den GND'ye dönüştürücü
  • esp-01 VCC, Raspi'nin 3.3V pininden güç alır.
  • esp-01'de hem RST hem de CH_PD yükseğe çekilir.

Kolayca monte etmek için bir arayüz konektörü yaptım

Bir resimde Raspberry Pi 3'e (aynı pin çıkışına sahip, ancak CH_PD'ye bağlanmak için başka bir 3.3V pin kullandım) kablo bağlantılarımı görebilirsiniz.

esp-01, diğer Instructable'ımda gösterildiği gibi programlandı (bkz. adım 3).

Adım 4: Alıcı - Yazılım (Seri, Kırmızı Düğüm, MQTT)

Alıcı - Yazılım (Seri, Kırmızı Düğüm, MQTT)
Alıcı - Yazılım (Seri, Kırmızı Düğüm, MQTT)
Alıcı - Yazılım (Seri, Kırmızı Düğüm, MQTT)
Alıcı - Yazılım (Seri, Kırmızı Düğüm, MQTT)
Alıcı - Yazılım (Seri, Kırmızı Düğüm, MQTT)
Alıcı - Yazılım (Seri, Kırmızı Düğüm, MQTT)

esp8266'daki program

esp-01 alıcısının programı Github'ımda (Master_sender.ino). Program gerçekten basittir, sadece Seri portta alınan ESP-NOW mesajını Raspberry Pi'ye yazdırır.

Seri port

Raspberry Pi'de, normal seri iletişim için Seri Bağlantı Noktasını etkinleştirmelisiniz (raspbian'da 'sudo raspi-config' yürütün).

Seri bağlantı noktasının adı:

  • Raspberry Pi Zero: /dev/ttyAMA0
  • Raspberry Pi 3: /dev/ttyS0

'dmesg | grep tty' veya 'ls /dev'

Düğüm Kırmızı

Kırmızı Düğüm'de, seri giriş Düğümünü seçin ve seri bağlantı noktasını ayarlayın (ekli resimlere bakın). Seri bağlantının baud hızına dikkat edin, bunun esp8266'da programlandığı gibi baud hızıyla eşleşmesi gerekir.

Seri düğümün çıktısı, mesajı '&' işaretiyle bölen ve msg.topic ile msg.payload'ı ayarlayan bir işlev düğümü tarafından dönüştürülür. Fonksiyonun çıktısı, mesajı MQTT sunucusuna gönderen mqtt çıktı düğümüne yönlendirilir. Konu mesajda ayarlandığından, mqtt düğümünün konu alanının boş olduğuna dikkat edin.

Önerilen: