Spisu treści:

ESP-NOW Automatyka domowa Esp8266 Raspberry Pi MQTT: 4 kroki
ESP-NOW Automatyka domowa Esp8266 Raspberry Pi MQTT: 4 kroki

Wideo: ESP-NOW Automatyka domowa Esp8266 Raspberry Pi MQTT: 4 kroki

Wideo: ESP-NOW Automatyka domowa Esp8266 Raspberry Pi MQTT: 4 kroki
Wideo: ESP8266 Smart Light Switch with Servo Motor 2024, Listopad
Anonim
ESP-NOW Automatyka domowa Esp8266 Raspberry Pi MQTT
ESP-NOW Automatyka domowa Esp8266 Raspberry Pi MQTT

W tej instrukcji pokazuję, jak wykorzystałem ESP-NOW w mojej automatyce domowej. Na schemacie widać przepływy komunikacji

Pokażę ci:

  • jak działa nadawca
  • jak działa odbiornik
  • jak działa komunikacja szeregowa z Raspberry Pi

Nie pokazuję, jak działa MQTT i moja automatyka domowa, można znaleźć inne dobre instrukcje do tego.

Kredyty: Ta instrukcja została zainspirowana przez:

Wideo nr 172 autorstwa Andreasa Spiess

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

Krok 1: Kopia zapasowa przez Wi-Fi i MQTT

Kopia zapasowa przez WiFi i MQTT
Kopia zapasowa przez WiFi i MQTT

Dowiedziałem się, że ESP-NOW jest niezwykle szybki i dość niezawodny, ale czasami zawodzi. W moim programie dodałem kopię zapasową przez normalne połączenie WiFi i MQTT.

Krok 2: Pilot/nadawca

Pilot/nadawca
Pilot/nadawca
Pilot/nadawca
Pilot/nadawca
Pilot/nadawca
Pilot/nadawca
Pilot/nadawca
Pilot/nadawca

Na pierwszym schemacie widzisz jak działa program nadawcy:

  1. esp8266 uruchamia się po włączeniu lub zresetowaniu
  2. ESP-NOW jest inicjowany
  3. Moduł wysyła ESP-NOW przez określony czas
  4. Moduł sprawdza, czy wiadomość ESP-NOW została odebrana przez odbiorcę w funkcji oddzwaniania.

    1. Jeśli odebrano wiadomość ESP-NOW, moduł przechodzi w stan głębokiego uśpienia o niskim poborze mocy
    2. Jeśli wiadomość ESP-NOW nie została odebrana, moduł uruchamia połączenie WiFi i połączenie MQTT jako połączenie zapasowe.

Program dla nadawcy znajduje się na moim Github (Master_sender.ino). Programy wysyłają zarówno temat, jak i wiadomość dla automatyki domowej MQTT w jednym połączonym komunikacie ESP-NOW, połączonym znakiem „&” w celu łatwego podziału u odbiorcy.

Zrobiłem dwa różne piloty/nadajniki:

Nadawca 1: esp8266 jest w głębokim uśpienia i jest aktywowany przez reset. Dioda w przycisku zapala się i gaśnie po zakończeniu pracy modułu. Jeśli napięcie baterii jest zbyt niskie, dioda miga. Jeśli ESP-NOW nie powiodło się, dioda miga przed zmianą na połączenia WiFi/MQTT. esp8266 zasilany jest z akumulatora LiPo z regulatorem napięcia HT7333 do 3,3V

Nadawca 2: esp8266 jest wyłączony i zasilany przez naciśnięcie przycisku. Zwykle połączenie ESP-NOW odbywa się po kliknięciu przycisku. Esp8266 jest zasilany bezpośrednio z akumulatora LiPo. Nie wiem, czy esp8266 ulegnie uszkodzeniu przez wysokie napięcie w pełni naładowanego akumulatora (do 4,2 V) przy zasilaniu na zaledwie kilka 100 ms. Jest wyższy niż specyfikacja (3,0 - 3,6 V).

Uwaga: jeśli poziom naładowania baterii jest niski, ESP-NOW nie działa.

Krok 3: Odbiornik - sprzęt (esp8266 i Raspberry Pi)

Odbiornik - sprzęt (esp8266 i Raspberry Pi)
Odbiornik - sprzęt (esp8266 i Raspberry Pi)
Odbiornik - sprzęt (esp8266 i Raspberry Pi)
Odbiornik - sprzęt (esp8266 i Raspberry Pi)
Odbiornik - sprzęt (esp8266 i Raspberry Pi)
Odbiornik - sprzęt (esp8266 i Raspberry Pi)

Opis odbiornika podzielony jest na dwie części:

  1. Sprzęt komputerowy
  2. Oprogramowanie

Sprzęt

Odbiornik esp-01 jest podłączony do mojego Raspberry Pi Zero, które obsługuje mój system automatyki domowej (Openhab2) i Node Red.

Na schemacie pokazane są proste połączenia:

  • RX esp-01 do TX RasPi
  • TX z esp-01 do RX z RasPi
  • GND do GND
  • esp-01 VCC jest zasilany przez pin 3.3V Raspi
  • W esp-01 zarówno RST, jak i CH_PD są podciągnięte wysoko.

Zrobiłem złącze interfejsu, aby go łatwo zamontować

Na jednym zdjęciu widać moje połączenia przewodowe z moim Raspberry Pi 3 (który ma ten sam pinout, ale użyłem innego pinu 3,3 V do połączenia z CH_PD).

Esp-01 został zaprogramowany tak, jak pokazano w moim innym Instructable (patrz krok 3).

Krok 4: Odbiornik - oprogramowanie (szeregowy, czerwony węzeł, MQTT)

Odbiornik - oprogramowanie (szeregowy, czerwony węzeł, MQTT)
Odbiornik - oprogramowanie (szeregowy, czerwony węzeł, MQTT)
Odbiornik - oprogramowanie (szeregowy, czerwony węzeł, MQTT)
Odbiornik - oprogramowanie (szeregowy, czerwony węzeł, MQTT)
Odbiornik - oprogramowanie (szeregowy, czerwony węzeł, MQTT)
Odbiornik - oprogramowanie (szeregowy, czerwony węzeł, MQTT)

Program na esp8266

Program dla odbiornika esp-01 jest na moim Github (Master_sender.ino). Program jest naprawdę prosty, drukuje tylko odebraną wiadomość ESP-NOW na porcie szeregowym do Raspberry Pi.

Port szeregowy

Na Raspberry Pi musisz aktywować port szeregowy (na raspbian, wykonaj 'sudo raspi-config') dla normalnej komunikacji szeregowej.

Nazwa portu szeregowego to:

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

Możesz sprawdzić port szeregowy, uruchamiając dmesg | grep tty' lub 'ls /dev'

Węzeł czerwony

W Node Red wybierz węzeł wejścia szeregowego i skonfiguruj port szeregowy (patrz załączone zdjęcia). Zwróć uwagę na szybkość transmisji połączenia szeregowego, która musi odpowiadać szybkości transmisji zaprogramowanej w esp8266.

Wyjście węzła szeregowego jest przekształcane przez węzeł funkcji, który dzieli wiadomość ze znakiem „&” i ustawia msg.topic oraz msg.payload. Wyjście funkcji jest kierowane do węzła wyjściowego mqtt, który wysyła wiadomość do serwera MQTT. Zwróć uwagę, że pole tematu węzła mqtt jest puste, ponieważ temat jest ustawiony w komunikacie.

Zalecana: