Mündəricat:

ESP-NOW Ev Avtomatlaşdırması Esp8266 Raspberry Pi MQTT: 4 addım
ESP-NOW Ev Avtomatlaşdırması Esp8266 Raspberry Pi MQTT: 4 addım

Video: ESP-NOW Ev Avtomatlaşdırması Esp8266 Raspberry Pi MQTT: 4 addım

Video: ESP-NOW Ev Avtomatlaşdırması Esp8266 Raspberry Pi MQTT: 4 addım
Video: Блог. Home Assistant - контроль включения светильников после восстановления питания 2024, Dekabr
Anonim
ESP-NOW Ev Avtomatlaşdırması Esp8266 Raspberry Pi MQTT
ESP-NOW Ev Avtomatlaşdırması Esp8266 Raspberry Pi MQTT

Bu Təlimat kitabında sizə ev avtomatlaşdırmasında ESP-NOW-dan necə istifadə etdiyimi göstərəcəyəm. Şematik olaraq ünsiyyət axınlarını görə bilərsiniz

Sizə göstərirəm:

  • göndərən necə işləyir
  • qəbuledici necə işləyir
  • bir Raspberry Pi ilə serial ünsiyyət necə işləyir

MQTT və ev avtomatlaşdırmağımın necə işlədiyini göstərmirəm, bunun üçün başqa yaxşı təlimatlar tapa bilərsiniz.

Kreditlər: Bu Təlimat ilhamlandı:

Andreas Spiess tərəfindən 172 nömrəli video

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

Addım 1: WiFi və MQTT ilə yedekləyin

WiFi və MQTT vasitəsilə ehtiyat nüsxə
WiFi və MQTT vasitəsilə ehtiyat nüsxə

ESP-NOW-un son dərəcə sürətli və olduqca etibarlı olduğunu öyrəndim, amma bəzən uğursuz olur. Proqramımda normal WiFi və MQTT bağlantısı ilə bir yedek əlavə etdim.

Addım 2: Uzaqdan/göndərən

Uzaqdan/göndərən
Uzaqdan/göndərən
Uzaqdan/göndərən
Uzaqdan/göndərən
Uzaqdan/göndərən
Uzaqdan/göndərən
Uzaqdan/göndərən
Uzaqdan/göndərən

Birinci sxemdə göndərənin proqramının necə işlədiyini görürsünüz:

  1. Esp8266 gücdən və ya sıfırdan başlayır
  2. ESP-NOW işə salınır
  3. Modul müəyyən bir müddət üçün ESP-NOW göndərir
  4. Modul, ESP-NOW mesajının alıcı tərəfindən geri çağırma funksiyasında qəbul edilib-edilmədiyini yoxlayır.

    1. ESP-NOW mesajı alınıbsa, modul aşağı güclü dərin yuxuya gedir
    2. ESP-NOW mesajı alınmadıqda, modul WiFi bağlantısı və ehtiyat bağlantısı olaraq MQTT bağlantısı başlayır.

Göndərən üçün proqram Github -da (Master_sender.ino) var. Proqramlar həm mövzunu, həm də MQTT ev avtomatlaşdırılması üçün mesajı alıcıda asanlıqla bölünmək üçün '&' işarəsində birləşdirilmiş birləşmiş ESP-NOW mesajında göndərir.

İki fərqli pult/göndərən hazırladım:

Göndərən 1: esp8266 dərin yuxudadır və sıfırlama ilə aktivləşir. Modul tamamlandıqda düymədə olan işıq yanır və sönür. Batareyanın gərginliyi aşağı olarsa, led yanıb sönür. ESP-NOW uğursuz olarsa, WiFi/MQTT əlaqələrinə keçməzdən əvvəl led yanıb sönür. Esp8266, HT7333 gərginlik tənzimləyicisi olan LiPo batareyasından 3.3V -a qədər işləyir

Göndərən 2: esp8266 söndürüldü və düyməyə basaraq işləyir. Adətən ESP-NOW bağlantısı 'klik' düyməsindən sonra edilir. Esp8266 birbaşa LiPo batareyasından işləyir. Bir neçə 100 ms işə salındıqda esp8266 -nın tam dolu bir batareyanın yüksək gərginliyindən (4.2 V -ə qədər) zədələndiyini bilmirəm. Xüsusiyyətlərdən daha yüksəkdir (3.0 - 3.6V).

Qeyd: Batareya gücü azdırsa, ESP-NOW uğursuz olur.

Addım 3: Alıcı - Təchizat (esp8266 və Raspberry Pi)

Alıcı - Təchizat (esp8266 və Raspberry Pi)
Alıcı - Təchizat (esp8266 və Raspberry Pi)
Alıcı - Təchizat (esp8266 və Raspberry Pi)
Alıcı - Təchizat (esp8266 və Raspberry Pi)
Alıcı - Təchizat (esp8266 və Raspberry Pi)
Alıcı - Təchizat (esp8266 və Raspberry Pi)

Alıcının təsviri iki hissəyə bölünür:

  1. Avadanlıq
  2. Proqram təminatı

Avadanlıq

Qəbul edən esp-01, ev avtomatlaşdırma sistemimi (Openhab2) və Node Red-i idarə edən Raspberry Pi Zero-ya bağlıdır.

Sxemada sadə əlaqələr göstərilir:

  • RasPi-nin esp-01-dən TX-ə qədər RX
  • RasPi-nin esp-01-dən RX-ə qədər TX
  • GND - GND
  • Esp-01 VCC, Raspi-nin 3.3V pimi ilə təchiz edilmişdir
  • Esp-01-də həm RST, həm də CH_PD yüksək çəkilir.

Asanlıqla bağlamaq üçün bir interfeys bağlayıcısı hazırladım

Bir şəkildə Raspberry Pi 3 -ə tel əlaqələrimi görə bilərsiniz (eyni pinouta malikdir, lakin CH_PD -yə qoşulmaq üçün başqa bir 3.3V pin istifadə etdim).

Esp-01 digər Təlimatçımda göstərildiyi kimi proqramlaşdırılmışdır (3-cü addıma baxın).

Addım 4: Alıcı - Proqram (Serial, Node Red, MQTT)

Alıcı - Proqram təminatı (Serial, Node Red, MQTT)
Alıcı - Proqram təminatı (Serial, Node Red, MQTT)
Alıcı - Proqram təminatı (Serial, Node Red, MQTT)
Alıcı - Proqram təminatı (Serial, Node Red, MQTT)
Alıcı - Proqram təminatı (Serial, Node Red, MQTT)
Alıcı - Proqram təminatı (Serial, Node Red, MQTT)

Proqram esp8266

Esp-01 alıcısı üçün proqram mənim Github-da (Master_sender.ino) var. Proqram həqiqətən sadədir, yalnız alınan ESP-NOW mesajını Serial portda Raspberry Pi-yə yazdırır.

Serial limanı

Raspberry Pi-də Serial Portu aktiv etməlisiniz (raspbian dilində 'sudo raspi-config' icra edin) normal seriyalı ünsiyyət üçün.

Serial portun adı belədir:

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

Serial portunu 'dmesg | grep tty 'və ya' ls /dev '

Qırmızı Node

Qırmızı Node'da seriyalı giriş Nodeunu seçin və serial portunu qurun (əlavə olunan şəkillərə baxın). Seriya bağlantısının baud sürətinə diqqət yetirin, bu esp8266 -da proqramlaşdırıldığı kimi baud sürətinə uyğun olmalıdır.

Serial düyünün çıxışı '&' işarəsindəki mesajı bölən və msg.topic və msg.payload təyin edən bir funksiya nodu tərəfindən çevrilir. Funksiyanın çıxışı mesajı MQTT serverinə göndərən mqtt çıxış qovşağına aparılır. Mqtt nodunun mövzu sahəsinin boş olduğunu unutmayın, çünki mövzu mesajda qurulmuşdur.

Tövsiyə: