ESP-NOW: Osiem punktów, które musisz znać

ESP-NOW to bezprzewodowy protokół komunikacyjny opracowany specjalnie dla mikrokontrolerów ESP8266 i ESP32. Zapewnia niskoprądowe, bezpieczne, niskokosztowe i proste rozwiązanie do bezprzewodowej komunikacji dla urządzeń ESP32. Dzięki ESP-NOW wiele urządzeń ESP32 może komunikować się ze sobą bez potrzeby korzystania z WiFi lub routerów, tworząc sieć kratową urządzeń.
 
 

Czym jest ESP-NOW?

 
esp-now to lekki protokół komunikacyjny zaprojektowany, aby zapewnić wydajne i niezawodne rozwiązanie komunikacji bezpołączeniowej. Jest przeznaczony dla urządzeń wbudowanych i szczególnie odpowiedni dla rodziny układów ESP firmy Espressif Systems.
 
esp-now wykorzystuje istniejący sprzęt Wi-Fi do zapewnienia bezpośredniej komunikacji między jednym a wieloma oraz wieloma urządzeniami bez konieczności przechodzenia przez router lub inne urządzenie pośredniczące.
 
Dzięki ESP-NOW możemy mieć jednokierunkową lub nawet dwukierunkową komunikację między urządzeniami ESP MCU bez potrzeby korzystania z sieci Wi-Fi. Umożliwia to niskokosztowy bezpośredni transfer danych bezprzewodowych, ale z mniejszymi pakietami. Można przesłać do 250 bajtów danych. Dlatego, jeśli trzeba przesłać dużą ilość danych, użycie tego protokołu nie jest przydatne.
 
Dzięki ESP-NOW protokół połączenia jest uproszczony, co zmniejsza zużycie energii, ponieważ do transmisji danych potrzebny jest krótszy czas. Ponadto ESP-NOW korzysta z tego samego pasma 2,4 GHz co Wi-Fi, ale nie wymaga połączenia ani nie zakłóca lokalnego połączenia sieciowego. Jest to szybki i wygodny protokół komunikacyjny do przesyłania mniejszych ilości danych.
 

  

Zasada działania ESP-NOW

Zasada działania esp-now jest stosunkowo prosta, opiera się na implementacji warstwy MAC Wi-Fi. Poniżej znajduje się przebieg pracy esp-now:
  • Inicjalizacja: Zainicjuj bibliotekę esp-now i skonfiguruj rolę urządzenia (nadajnik lub odbiornik).
  • Parowanie: Przed komunikacją nadawca i odbiorca muszą przeprowadzić operację parowania. Podczas procesu parowania nadawca wysyła swój adres MAC do odbiorcy, aby nawiązać relację zaufania. 3.
  • Wyślij dane: Nadawca wysyła pakiet do odbiorcy, korzystając z API udostępnionego przez bibliotekę esp-now. Pakiet może zawierać dowolny typ danych, takich jak informacje o konfiguracji sieci, plik aktualizacji oprogramowania układowego lub informacje debugowania.
  • Odbieranie danych: odbiornik nasłuchuje kanału Wi-Fi i odbiera pakiety od nadawcy. Po odebraniu pakietu odbiornik wywoła funkcję zwrotną () w celu jego przetworzenia. 5.
  • Przetwarzanie danych: odbiornik przetwarza odebrany pakiet za pomocą funkcji zwrotnej. W zależności od typu pakietu, odbiornik może wykonać odpowiednie operacje, takie jak aktualizacja konfiguracji sieci, przeprowadzenie aktualizacji oprogramowania układowego lub debugowanie.
 

Charakterystyka ESP-NOW

esp-now ma następujące cechy, które dają mu przewagę w przesyłaniu danych na dużą skalę:
  • Niskie opóźnienia: esp-now wykorzystuje Wi-Fi do bezpośredniej komunikacji bez przechodzenia przez router lub inne urządzenia pośrednie, co zmniejsza opóźnienia transmisji.
  • Wysoka niezawodność: esp-now wykorzystuje niezawodny mechanizm ARQ() (Automatyczne Żądanie Ponownej Transmisji) w celu zapewnienia niezawodnej transmisji danych.
  • Niskie zużycie energii: esp-now wykorzystuje niskoprądowy projekt dla urządzeń wbudowanych, aby zmniejszyć zużycie energii przy jednoczesnym utrzymaniu jakości komunikacji.
  • Elastyczność: esp-now obsługuje połączenia i kontrolę urządzeń jeden-do-wielu oraz wiele-do-wielu, co może zaspokoić potrzeby różnych scenariuszy zastosowań.
  • Łatwość użycia: łatwy w użyciu interfejs API esp-now pozwala programistom szybko integrować i wdrażać protokół.
  • Transfer danych jeden do jednego (zaszyfrowany i niezaszyfrowany).
  • Obsługa zaszyfrowanych i niezaszyfrowanych urządzeń równorzędnych. Dla urządzeń zaszyfrowanych dostępnych jest do 10 urządzeń w trybie Workstation oraz do 6 urządzeń w trybie SoftAP lub mieszanym obu trybów. Jednak dla urządzeń niezaszyfrowanych dozwolona jest maksymalnie liczba 19 urządzeń bez ograniczeń co do trybu ich działania.
  • Maksymalnie 250 bajtów danych może być przesłanych w małych pakietach.
  • Generuje funkcję zwrotną, która informuje warstwę aplikacji, czy transfer danych zakończył się sukcesem.
Aby zainicjować połączenie ESP-NOW, musimy najpierw sparować płytki ESP32. Połączenie pozostanie aktywne niezależnie od restartu płytki, a transfer będzie kontynuowany bez żadnych problemów.

 

Jakie czynniki wpływają na ESP-NOW?

Zasięg ESP-NOW zależy od wielu czynników, w tym od konstrukcji i konfiguracji anteny oraz środowiska pracy. Ogólnie rzecz biorąc, ESP-NOW może mieć zasięg do 220 metrów (772 stóp); jednak te zasięgi są przybliżone i mogą się znacznie różnić w zależności od okoliczności.
Czynniki, które mogą wpływać na zasięg ESP-NOW, obejmują:
  • Zakłócenia RF: ESP-NOW działa w paśmie 2,4 GHz, które jest współdzielone z innymi technologiami bezprzewodowymi, takimi jak Bluetooth i WiFi. Oznacza to, że mogą występować zakłócenia ze strony innych urządzeń działających w tym samym paśmie.
  • Środowisko pracy: Zasięg ESP-NOW może być ograniczony przez fizyczne przeszkody, takie jak ściany, sufity i podłogi, a także czynniki środowiskowe, takie jak temperatura, wilgotność i ciśnienie atmosferyczne.
  • Projekt anteny: Zasięg ESP-NOW może być wpływany przez typ i konstrukcję użytej anteny. Na przykład, użycie anteny kierunkowej może zwiększyć zasięg ESP-NOW, podczas gdy użycie anteny dookólnej może zmniejszyć zasięg.
 

Czy ESP-NOW jest bezpieczny?

Możesz zabezpieczyć komunikację ESP-NOW na kilka sposobów, aby była bezpieczna i prywatna:
  • Szyfrowanie danych: Szyfrowanie danych jest jednym z najskuteczniejszych sposobów zabezpieczenia komunikacji ESP-NOW. Możesz szyfrować dane, używając różnych algorytmów szyfrowania, takich jak AES lub RSA. Szyfrowanie danych zapobiegnie przechwyceniu i odczytaniu przesyłanych danych przez niepowołane osoby.
  • Używanie kluczy bezpieczeństwa: ESP-NOW obsługuje użycie kluczy bezpieczeństwa do uwierzytelniania i nawiązywania połączeń między urządzeniami. Dzięki użyciu kluczy bezpieczeństwa możesz zapewnić, że tylko autoryzowane urządzenia mogą się ze sobą komunikować.
  • Używaj bezpiecznych protokołów komunikacyjnych: Jeśli bezpieczeństwo Twojej aplikacji wymaga bardziej zaawansowanych środków ochrony, warto rozważyć użycie innego protokołu komunikacyjnego, takiego jak WiFi, który ma wbudowane wsparcie dla szyfrowania i uwierzytelniania.
  • Użyj oddzielnej warstwy zabezpieczeń: W niektórych przypadkach może być przydatne użycie oddzielnej warstwy zabezpieczeń na wierzchu ESP-NOW, aby zapewnić dodatkowe bezpieczeństwo. Na przykład, możesz użyć bezpiecznego protokołu tunelowania, takiego jak HTTPS, aby chronić dane przesyłane przez ESP-NOW. Jakie typy komunikacji są dostępne z ESP-NOW?
 

ESP32 ESP-NOW jednokierunkowa komunikacja

W komunikacji jednokierunkowej jedno urządzenie typu peer działa jako nadawca/master, a drugie jako odbiorca/slave. W tym przypadku możemy mieć wiele konfiguracji dla nadawcy-odbiorcy.
  • Jedna płytka ESP32 wysyłająca dane do innej płytki ESP32
Jak pokazano na poniższym rysunku, jedna płytka ESP32 działa jako nadajnik, a druga płytka odbiera dane i dlatego działa jako odbiornik.
Użycie: Wysyłanie danych z czujników, sterowanie wyjściami ESP, w tym diodami LED, przekaźnikami, brzęczykami itp.

  • Jedna płytka nadajnika ESP32 wysyłająca dane do różnych innych płytek odbiornika ESP32
W tym przypadku jedna płytka ESP32 będzie działać jako nadajnik/master i wysyłać dane do wielu płytek ESP32 działających jako odbiorniki/slave.
Użytkowanie: Pilot zdalnego sterowania
  • Jedna płytka ESP32 odbiera dane z różnych innych nadajników ESP32
Wreszcie, w tym przypadku jedna płytka ESP32 (odbiornik/podrzędny) odbiera dane z wielu płytek ESP32 (nadajnik/nadrzędny).
Cel: Odbieranie danych z różnych czujników.

A nawet mieć sieć płyt ESP32 do przesyłania danych:
 
 

W jakich obszarach można używać ESP-NOW?

ESP-NOW ma szeroki zakres zastosowań w różnych scenariuszach aplikacyjnych, szczególnie w przypadku przesyłania danych na dużą skalę. Poniżej przedstawiono kilka typowych scenariuszy zastosowań:
  • Konfiguracja sieci: esp-now może być używany do szybkiego przesyłania informacji o konfiguracji sieci, dzięki czemu urządzenia mogą łatwo łączyć się z określoną siecią Wi-Fi.
  • Aktualizacja oprogramowania układowego: Za pomocą esp-now urządzenia mogą otrzymywać pliki aktualizacji oprogramowania i wykonywać odpowiednio operację aktualizacji - Debugowanie i zdalne sterowanie: esp-now może być używany do zdalnego debugowania i sterowania urządzeniem, co jest wygodne dla deweloperów do przeprowadzania rozwiązywania problemów i testowania funkcji.
  • Transmisja danych z czujników: esp-now może być używany do przesyłania danych z czujników, takich jak temperatura, wilgotność itp., w celu przeprowadzania monitoringu w czasie rzeczywistym i zbierania danych.
  • Sterowanie inteligentnym domem: esp-now może być używany do komunikacji i sterowania między urządzeniami inteligentnego domu, takimi jak inteligentne żarówki, inteligentne gniazdka itp.
  • Automatyka przemysłowa: esp-now ma potencjał w dziedzinie automatyki przemysłowej do transmisji danych w czasie rzeczywistym i sterowania między urządzeniami.

 

Możesz również chcieć zapytać

Jaka jest przepustowość bitowa jeden do jednego dla ESP32 w trybie ESP-NOW?

Wynik testu:
  • Płyta testowa: ESP32-DevKitC V4.
  • Tryb Wi-Fi: stacja.
  • Prędkość PHY wynosi domyślnie 1 Mbps.
  • Około 214 Kbps w otwartym środowisku.
  • Około 555 Kbps w obudowie ekranowanej.
  • Jeśli potrzebujesz wyższej prędkości, możliwe jest skonfigurowanie prędkości za pomocą esp_wifi_config_espnow_rate.
 

Czy Wi-Fi może być używane jednocześnie z ESP-NOW?

Tak, ale należy zauważyć, że kanał ESP-NOW musi być taki sam jak kanał podłączonego punktu dostępowego (AP).
 

Jak ustawić szybkość wysyłania danych ESP-NOW?

Możesz użyć funkcji esp_wifi_config_espnow_rate() do skonfigurowania szybkości, na przykład esp_wifi_config_espnow_rate(WIFI_IF_STA, WIFI_PHY_RATE_MCS0_LGI).
 

ESP-NOW pozwala na parowanie z maksymalnie 20 urządzeniami. Czy istnieje sposób na kontrolowanie większej liczby urządzeń?

Możesz używać pakietów rozgłoszeniowych i podać adresy docelowe w ładunku. Liczba adresów nie będzie wtedy ograniczona przez limit. Wystarczy, że skonfigurujesz poprawny adres rozgłoszeniowy.
Zobacz dokumentację, aby uzyskać więcej informacji: ESP-NOW

 

1 komentarz

hdt-avatar
Armand Djonga Chedjui Djonga

L’esp32 est une technologie qui me pationne

July 5, 2025 at 22:58pm

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Pola wymagane są oznaczone *

Zarejestruj się do naszego newslettera

Uzyskaj najnowsze informacje o naszych produktach i specjalnych ofertach.