Obsah:

ESP-NOW Domáca automatizácia Esp8266 Raspberry Pi MQTT: 4 kroky
ESP-NOW Domáca automatizácia Esp8266 Raspberry Pi MQTT: 4 kroky

Video: ESP-NOW Domáca automatizácia Esp8266 Raspberry Pi MQTT: 4 kroky

Video: ESP-NOW Domáca automatizácia Esp8266 Raspberry Pi MQTT: 4 kroky
Video: ESP8266 Smart Light Switch with Servo Motor 2024, November
Anonim
ESP-NOW Domáca automatizácia Esp8266 Raspberry Pi MQTT
ESP-NOW Domáca automatizácia Esp8266 Raspberry Pi MQTT

V tomto návode vám ukážem, ako som použil ESP-NOW v domácej automatizácii. V schéme vidíte komunikačné toky

Ukážem ti:

  • ako funguje odosielateľ
  • ako funguje prijímač
  • ako funguje sériová komunikácia s Raspberry Pi

Neukazujem, ako funguje MQTT a moja domáca automatizácia, môžete na to nájsť ďalšie dobré pokyny.

Kredity: Tento návod bol inšpirovaný:

Video #172 od Andreasa Spiessa

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

Krok 1: Zálohujte prostredníctvom WiFi a MQTT

Zálohovanie cez WiFi a MQTT
Zálohovanie cez WiFi a MQTT

Zistil som, že ESP-NOW je extrémne rýchly a celkom spoľahlivý, ale niekedy zlyhá. Do svojho programu som pridal zálohu cez bežné WiFi a MQTT pripojenie.

Krok 2: Diaľkový ovládač/odosielateľ

Diaľkový ovládač/odosielateľ
Diaľkový ovládač/odosielateľ
Diaľkový ovládač/odosielateľ
Diaľkový ovládač/odosielateľ
Diaľkový ovládač/odosielateľ
Diaľkový ovládač/odosielateľ
Diaľkový ovládač/odosielateľ
Diaľkový ovládač/odosielateľ

V prvej schéme vidíte, ako funguje program odosielateľa:

  1. Esp8266 sa spustí po zapnutí alebo resetovaní
  2. ESP-NOW sa inicializuje
  3. Modul odosiela ESP-TERAZ na definovaný čas
  4. Modul kontroluje, či príjemca prijal správu ESP-TERAZ vo funkcii spätného volania.

    1. Ak bola prijatá správa ESP-TERAZ, modul prejde do hlbokého spánku s nízkym výkonom
    2. Ak správa ESP-NOW nebola prijatá, modul spustí pripojenie WiFi a pripojenie MQTT ako záložné pripojenie.

Program pre odosielateľa je v mojom Github (Master_sender.ino). Programy odošlú tému aj správu pre domácu automatizáciu MQTT v jednej kombinovanej správe ESP-TERAZ, kombinovanej so znakom '&' pre ľahké rozdelenie v prijímači.

Vytvoril som dva rôzne diaľkové ovládače/odosielatele:

Odosielateľ 1: esp8266 je v hlbokom spánku a aktivuje sa resetom. LED dióda v tlačidle sa rozsvieti a zhasne, keď je modul hotový. Ak je napätie batérie nízke, LED dióda bliká. Ak ESP-NOW zlyhal, pred zmenou na pripojenia WiFi/MQTT kontrolka bliká. Esp8266 je napájaný z batérie LiPo s regulátorom napätia HT7333 na 3,3 V.

Odosielateľ 2: esp8266 je vypnutý a napája sa stlačením tlačidla. Pripojenie ESP-TERAZ sa bežne vykonáva po kliknutí na tlačidlo. Esp8266 je napájaný priamo z batérie LiPo Neviem, či sa esp8266 poškodí vysokým napätím plne nabitej batérie (až 4,2 V), keď je napájaných iba niekoľko 100 ms. Je vyšší ako špecifikácie (3,0 - 3,6 V).

Poznámka: ak je batéria takmer vybitá, ESP-NOW zlyhá.

Krok 3: Prijímač - hardvér (esp8266 a Raspberry Pi)

Prijímač - hardvér (esp8266 a Raspberry Pi)
Prijímač - hardvér (esp8266 a Raspberry Pi)
Prijímač - hardvér (esp8266 a Raspberry Pi)
Prijímač - hardvér (esp8266 a Raspberry Pi)
Prijímač - hardvér (esp8266 a Raspberry Pi)
Prijímač - hardvér (esp8266 a Raspberry Pi)

Popis prijímača je rozdelený na dve časti:

  1. Hardvér
  2. Softvér

Hardvér

Prijímací esp-01 je pripojený k môjmu Raspberry Pi Zero, na ktorom je spustený môj systém automatiky pre domácnosť (Openhab2) a Node Red.

V schéme sú znázornené jednoduché spojenia:

  • RX esp-01 až TX RasPi
  • TX esp-01 až RX RasPi
  • GND až GND
  • Esp-01 VCC je napájaný 3,3 V pinom Raspi
  • Na esp-01 sú RST aj CH_PD vytiahnuté vysoko.

Vytvoril som konektor rozhrania, aby sa dal ľahko namontovať

Na jednom obrázku môžete vidieť moje drôtové pripojenia k môjmu Raspberry Pi 3 (ktorý má rovnaký vývod, ale na pripojenie k CH_PD som použil ďalší 3,3V pin).

Esp-01 bol naprogramovaný tak, ako je uvedené v mojom inom inštrukcii (pozri krok 3).

Krok 4: Prijímač - softvér (sériový, červený uzol, MQTT)

Prijímač - softvér (sériový, červený uzol, MQTT)
Prijímač - softvér (sériový, červený uzol, MQTT)
Prijímač - softvér (sériový, červený uzol, MQTT)
Prijímač - softvér (sériový, červený uzol, MQTT)
Prijímač - softvér (sériový, červený uzol, MQTT)
Prijímač - softvér (sériový, červený uzol, MQTT)

Program na esp8266

Program pre prijímač esp-01 je v mojom Github (Master_sender.ino). Program je skutočne jednoduchý, prijatú správu ESP-NOW vytlačí iba na sériový port na Raspberry Pi.

Sériový port

Na Raspberry Pi musíte pre normálnu sériovú komunikáciu aktivovať sériový port (na raspbiane spustiť 'sudo raspi-config').

Názov sériového portu je:

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

Sériový port môžete skontrolovať spustením príkazu 'dmesg | grep tty 'alebo' ls /dev '

Uzol červený

V programe Node Red vyberte sériový vstupný uzol a nastavte sériový port (pozri priložené obrázky). Všimnite si prenosovú rýchlosť sériového pripojenia, ktorá sa musí zhodovať s prenosovou rýchlosťou naprogramovanou v esp8266.

Výstup sériového uzla je transformovaný funkčným uzlom, ktorý rozdelí správu na znamienko '&' a nastaví msg.topic a msg.payload. Výstup funkcie je vedený do výstupného uzla mqtt, ktorý odošle správu na server MQTT. Všimnite si toho, že pole témy uzla mqtt je prázdne, pretože téma je nastavená v správe.

Odporúča: