Obsah:

ESP-NOW Domácí automatizace Esp8266 Raspberry Pi MQTT: 4 kroky
ESP-NOW Domácí automatizace Esp8266 Raspberry Pi MQTT: 4 kroky

Video: ESP-NOW Domácí automatizace Esp8266 Raspberry Pi MQTT: 4 kroky

Video: ESP-NOW Domácí automatizace Esp8266 Raspberry Pi MQTT: 4 kroky
Video: Inteligentny dom #2 Instalowanie Domoticza 2024, Listopad
Anonim
ESP-NOW Domácí automatizace Esp8266 Raspberry Pi MQTT
ESP-NOW Domácí automatizace Esp8266 Raspberry Pi MQTT

V tomto Instructable vám ukážu, jak jsem použil ESP-NOW v domácí automatizaci. Ve schématu vidíte komunikační toky

Ukážu ti:

  • jak odesílatel funguje
  • jak přijímač funguje
  • jak funguje sériová komunikace s Raspberry Pi

Neukazuji, jak funguje MQTT a moje domácí automatizace, můžete k tomu najít další dobré návody.

Kredity: Tento Instructable byl inspirován:

Video #172 od Andrease Spiesse

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

Krok 1: Zálohování přes WiFi a MQTT

Zálohování přes WiFi a MQTT
Zálohování přes WiFi a MQTT

Zjistil jsem, že ESP-NOW je extrémně rychlý a docela spolehlivý, ale někdy selže. Do svého programu jsem přidal zálohu přes normální WiFi a MQTT připojení.

Krok 2: Dálkový ovladač/odesílatel

Dálkový ovladač/odesílatel
Dálkový ovladač/odesílatel
Dálkový ovladač/odesílatel
Dálkový ovladač/odesílatel
Dálkový ovladač/odesílatel
Dálkový ovladač/odesílatel
Dálkový ovladač/odesílatel
Dálkový ovladač/odesílatel

V prvním schématu vidíte, jak funguje program odesílatele:

  1. Zařízení esp8266 se spouští po zapnutí nebo resetování
  2. ESP-NOW je inicializován
  3. Modul odesílá ESP-NYNÍ po definovanou dobu
  4. Modul kontroluje, zda příjemce přijal zprávu ESP-NOW ve funkci zpětného volání.

    1. Pokud byla přijata zpráva ESP-NYNÍ, modul přejde do hlubokého spánku s nízkým výkonem
    2. Pokud zpráva ESP-NOW nebyla přijata, modul zahájí připojení WiFi a připojení MQTT jako záložní připojení.

Program pro odesílatele je v mém Githubu (Master_sender.ino). Programy odesílají téma i zprávu pro domácí automatizaci MQTT v jedné kombinované zprávě ESP-NOW, kombinované se znakem '&' pro snadné rozdělení na přijímač.

Vytvořil jsem dva různé dálkové ovladače/odesilatele:

Odesílatel 1: esp8266 je v hlubokém spánku a je aktivován resetem. LED dioda v tlačítku se rozsvítí a zhasne, když je modul hotový. Pokud je napětí baterie nízké, LED bliká. Pokud ESP-NOW selhalo, kontrolka bliká před změnou na připojení WiFi/MQTT. Esp8266 je napájen z baterie LiPo s regulátorem napětí HT7333 na 3,3 V.

Odesílatel 2: esp8266 je vypnutý a napájí se stisknutím tlačítka. Připojení ESP-NOW se obvykle provádí po kliknutí na tlačítko. Esp8266 je napájen přímo z baterie LiPo. Nevím, jestli se esp8266 poškodí vysokým napětím plně nabité baterie (až 4,2 V), když je napájeno pouhých několik 100 ms. Je vyšší než specifikace (3,0 - 3,6 V).

Poznámka: pokud je baterie téměř vybitá, ESP-NOW selže.

Krok 3: Přijímač - hardware (esp8266 a Raspberry Pi)

Přijímač - hardware (esp8266 a Raspberry Pi)
Přijímač - hardware (esp8266 a Raspberry Pi)
Přijímač - hardware (esp8266 a Raspberry Pi)
Přijímač - hardware (esp8266 a Raspberry Pi)
Přijímač - hardware (esp8266 a Raspberry Pi)
Přijímač - hardware (esp8266 a Raspberry Pi)

Popis přijímače je rozdělen na dvě části:

  1. Hardware
  2. Software

Hardware

Přijímací esp-01 je připojen k mému Raspberry Pi Zero, který provozuje můj systém domácí automatizace (Openhab2) a Node Red.

Ve schématu jsou znázorněna jednoduchá připojení:

  • RX esp-01 až TX RasPi
  • TX esp-01 až RX RasPi
  • GND až GND
  • Esp-01 VCC je napájen 3,3V pinem Raspi
  • Na esp-01 jsou RST i CH_PD vytaženy vysoko.

Vytvořil jsem konektor rozhraní pro snadné připojení

Na jednom obrázku vidíte moje drátová připojení k mému Raspberry Pi 3 (který má stejný pinout, ale pro připojení k CH_PD jsem použil další 3,3V pin).

Esp-01 byl naprogramován tak, jak je ukázáno v mém dalším Instructable (viz krok 3).

Krok 4: Přijímač - software (sériový, červený uzel, MQTT)

Přijímač - software (sériový, červený uzel, MQTT)
Přijímač - software (sériový, červený uzel, MQTT)
Přijímač - software (sériový, červený uzel, MQTT)
Přijímač - software (sériový, červený uzel, MQTT)
Přijímač - software (sériový, červený uzel, MQTT)
Přijímač - software (sériový, červený uzel, MQTT)

Program na esp8266

Program pro přijímač esp-01 je v mém Github (Master_sender.ino). Program je opravdu jednoduchý, pouze vytiskne přijatou zprávu ESP-NOW na sériový port na Raspberry Pi.

Sériový port

Na Raspberry Pi musíte pro normální sériovou komunikaci aktivovat sériový port (na raspbianu spustit 'sudo raspi-config').

Název sériového portu je:

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

Sériový port můžete zkontrolovat spuštěním příkazu 'dmesg | grep tty 'nebo' ls /dev '

Uzel červený

V Node Red vyberte sériový vstupní uzel a nastavte sériový port (viz přiložené obrázky). Všimněte si přenosové rychlosti sériového připojení, která musí odpovídat přenosové rychlosti naprogramované v esp8266.

Výstup sériového uzlu je transformován funkčním uzlem, který rozdělí zprávu na znak '&' a nastaví msg.topic a msg.payload. Výstup funkce je veden do výstupního uzlu mqtt, který odešle zprávu na server MQTT. Všimněte si, že pole tématu uzlu mqtt je prázdné, protože téma je nastaveno ve zprávě.

Doporučuje: