ESP-NOW är ett trådlöst kommunikationsprotokoll utvecklat specifikt för dess ESP8266 och ESP32 mikrokontroller. Det erbjuder en lågströms-, säker, kostnadseffektiv och enkel trådlös kommunikationslösning för ESP32-enheter. Med ESP-NOW kan flera ESP32-enheter kommunicera med varandra utan behov av WiFi eller routrar, vilket skapar ett mesh-nätverk av enheter.
Vad är ESP-NOW?
esp-now är ett lättviktigt kommunikationsprotokoll utformat för att erbjuda en effektiv och pålitlig anslutningslös kommunikationslösning. Det är designat för inbäddade enheter och är särskilt lämpligt för Espressif Systems ESP-familj av chip.
esp-now använder befintlig Wi-Fi-hårdvara för att möjliggöra direkt kommunikation mellan en-till-många och många-till-många enheter utan att behöva gå via en router eller annan mellanliggande enhet.
Med ESP-NOW kan vi ha enkelriktad eller till och med tvåvägs kommunikation mellan ESP MCU-enheter utan behov av ett Wi-Fi-nätverk. Det möjliggör lågkostnads punkt-till-punkt trådlös dataöverföring, men med mindre paket. Upp till 250 byte data kan överföras. Därför, om en stor mängd data behöver överföras, är det inte användbart att använda detta protokoll.
Med ESP-NOW förenklas anslutningsprotokollet, vilket minskar strömförbrukningen eftersom mindre tid krävs för dataöverföring. Dessutom använder ESP-NOW samma 2,4 GHz-band som Wi-Fi, men kräver ingen anslutning eller stör den lokala nätverksanslutningen. Det är ett snabbt och bekvämt kommunikationsprotokoll för att överföra mindre mängder data.

Arbetsprincip för ESP-NOW
Arbetsprincipen för esp-now är relativt enkel, den baseras på MAC-lagerimplementeringen av Wi-Fi. Följande är arbetsflödet för esp-now:
-
Initiering: Initiera esp-now-biblioteket och konfigurera enhetens roll (sändare eller mottagare).
-
Parkoppling: Innan kommunikation måste sändaren och mottagaren utföra en parkopplingsoperation. Under parkopplingsprocessen skickar sändaren sin MAC-adress till mottagaren för att etablera en förtroenderelation. 3.
-
Skicka data: Sändaren skickar ett paket till mottagaren med hjälp av API:et som tillhandahålls av esp-now-biblioteket. Paketet kan vara vilken typ av data som helst, såsom nätverkskonfigurationsinformation, firmwareuppgraderingsfil eller felsökningsinformation.
-
Ta emot data: Mottagaren lyssnar på Wi-Fi-kanalen och tar emot paket från sändaren. När paketet mottagits kommer mottagaren att utlösa callback-funktionen () för att bearbeta det. 5.
-
Bearbetning av data: Mottagaren bearbetar det mottagna paketet via callback-funktionen. Beroende på paketets typ kan mottagaren utföra motsvarande operationer, såsom att uppdatera nätverkskonfigurationen, utföra en firmwareuppgradering eller felsökning.
Egenskaper hos ESP-NOW
esp-now har följande funktioner som ger det en fördel vid storskalig dataöverföring:
-
Låg latens: esp-now använder Wi-Fi för att kommunicera direkt utan att gå via en router eller andra mellanliggande enheter, vilket minskar överföringsfördröjningen.
-
Hög tillförlitlighet: esp-now använder den pålitliga ARQ() (Automatisk Omöverföringsförfrågan) mekanismen för att säkerställa pålitlig dataöverföring.
-
Låg energiförbrukning: esp-now använder en lågströmsdesign för inbäddade enheter för att minska energiförbrukningen samtidigt som kommunikationskvaliteten bibehålls.
-
Flexibilitet: esp-now stödjer en-till-många och många-till-många enhetsanslutningar och kontroll, vilket kan tillgodose behoven i olika applikationsscenarier.
-
Användarvänlighet: esp-now:s lättanvända API gör det möjligt för utvecklare att snabbt integrera och distribuera protokollet.
-
En-till-en dataöverföring (krypterad och okrypterad).
-
Stöd för krypterade och okrypterade peer-enheter. För krypterade enheter finns upp till 10 peers i Workstation-läge och upp till 6 peers i SoftAP eller en blandning av båda lägena. För okrypterade enheter tillåts dock maximalt 19 enheter utan begränsning på deras driftsläge.
-
Maximalt 250 byte data kan överföras i små paket.
-
Den genererar en callback-funktion som informerar applikationslagret om dataöverföringen lyckades.
För att initiera ESP-NOW-anslutningen måste vi först para ihop ESP32-korten. Anslutningen förblir aktiv oavsett om kortet startas om och överföringen fortsätter utan problem.
Vilka faktorer påverkar ESP-NOW?
Räckvidden för ESP-NOW beror på flera faktorer, inklusive antenndesign och konfiguration samt driftsmiljö. Generellt kan ESP-NOW ha en räckvidd på upp till 220 meter (772 fot); dessa räckvidder är dock ungefärliga och kan variera mycket beroende på omständigheterna.
Faktorer som kan påverka ESP-NOW:s räckvidd inkluderar:
-
RF-störningar: ESP-NOW fungerar i 2,4 GHz-bandet, som delas med andra trådlösa teknologier som Bluetooth och WiFi. Detta innebär att det kan förekomma störningar från andra enheter som använder samma band.
-
Driftsmiljö: Räckvidden för ESP-NOW kan påverkas av fysiska hinder som väggar, tak och golv, samt miljöfaktorer som temperatur, luftfuktighet och atmosfärstryck.
-
Antennens design: Räckvidden för ESP-NOW kan påverkas av typen och designen på antennen som används. Till exempel kan användning av en riktad antenn öka räckvidden för ESP-NOW, medan användning av en omni-riktad antenn kan minska räckvidden.
Är ESP-NOW säkert?
Du kan säkra ESP-NOW-kommunikation på flera sätt för att hålla den säker och privat:
-
Kryptering av data: Att kryptera data är ett av de mest användbara sätten att säkra ESP-NOW-kommunikation. Du kan kryptera data med olika krypteringsalgoritmer, såsom AES eller RSA. Kryptering av data förhindrar att någon kan avlyssna och läsa den överförda datan.
-
Användning av säkerhetsnycklar: ESP-NOW stödjer användning av säkerhetsnycklar för att autentisera och etablera anslutningar mellan enheter. Genom att använda säkerhetsnycklar kan du säkerställa att endast auktoriserade enheter kan kommunicera med varandra.
-
Använd säkra kommunikationsprotokoll: Om säkerheten i din applikation kräver mer avancerade säkerhetsåtgärder kan du överväga att använda ett annat kommunikationsprotokoll, såsom WiFi, som har inbyggt stöd för kryptering och autentisering.
-
Använd ett separat säkerhetslager: I vissa fall kan det vara användbart att använda ett separat säkerhetslager ovanpå ESP-NOW för att ge extra säkerhet. Till exempel kan du använda ett säkert tunnlingsprotokoll, såsom HTTPS, för att skydda data som överförs via ESP-NOW. Vilka typer av kommunikation finns tillgängliga med ESP-NOW?
ESP32 ESP-NOW envägskommunikation
I envägskommunikation fungerar en enhet som sändare/master och den andra som mottagare/slav. I detta fall kan vi ha flera konfigurationer för sändare-mottagare.
-
Ett ESP32-kort skickar data till ett annat ESP32-kort
Som visas i bilden nedan fungerar ett ESP32-kort som sändare och det andra kortet tar emot data och fungerar därför som mottagare.
Användning: Skicka sensordata, styra ESP-utgångar, inklusive LED-lampor, reläer, summer, etc.
-
Ett ESP32-sändarkort som skickar data till olika andra ESP32-mottagarkort
I detta fall kommer ett ESP32-kort att agera som sändare/master och skicka data till flera ESP32-kort som agerar som mottagare/slav-enheter.
Användning: Fjärrstyrning

-
Ett ESP32-kort tar emot data från olika andra ESP32-sändarkort
Slutligen, i detta fall tar ett ESP32-kort (mottagare/slav) emot data från flera ESP32-kort (sändare/master).
Syfte: Att ta emot sensordata från olika sensorer.
Eller till och med ha ett nätverk av ESP32-kort för att överföra data:

I vilka områden kan ESP-NOW användas?
ESP-NOW har ett brett användningsområde i olika applikationsscenarier, särskilt vid storskalig dataöverföring. Följande är några vanliga applikationsscenarier:
-
Nätverkskonfiguration: esp-now kan användas för att snabbt överföra nätverkskonfigurationsinformation så att enheter enkelt kan ansluta till ett angivet Wi-Fi-nätverk.
-
Firmwareuppgradering: Genom esp-now kan enheter ta emot firmwareuppgraderingsfiler och utföra uppgraderingsoperationen därefter - Felsökning och fjärrstyrning: esp-now kan användas för att fjärrfelsöka och styra enheten, vilket är bekvämt för utvecklare att utföra felsökning och funktionstestning.
-
Sensoröverföring: esp-now kan användas för att överföra sensordata, såsom temperatur, luftfuktighet osv., för att utföra realtidsövervakning och datainsamling.
-
Smart hemstyrning: esp-now kan användas för kommunikation och styrning mellan smarta hemanordningar, såsom smarta glödlampor, smarta uttag osv.
-
Industriell automation: esp-now har potential inom området industriell automation för realtidsdataöverföring och styrning mellan enheter.
Du kanske också vill fråga
Vad är en-till-en-bitfrekvensen för ESP32 i ESP-NOW-läge?
Testresultat:
-
Testkort: ESP32-DevKitC V4.
-
Wi-Fi-läge: station.
-
PHY-hastigheten är som standard 1 Mbps.
-
Cirka 214 Kbps i en öppen miljö.
-
Cirka 555 Kbps i skärmad låda.
-
Om du behöver en högre hastighet är det möjligt att konfigurera hastigheten via esp_wifi_config_espnow_rate.
Kan Wi-Fi användas samtidigt med ESP-NOW?
Ja, men det bör noteras att kanalen för ESP-NOW måste vara densamma som för den anslutna AP:n.
Hur ställer jag in hastigheten för när ESP-NOW-data skickas?
Du kan använda esp_wifi_config_espnow_rate()-funktionen för att konfigurera hastigheten, till exempel
esp_wifi_config_espnow_rate(WIFI_IF_STA, WIFI_ PHY_RATE_MCS0_LGI)
.ESP-NOW tillåter parkoppling med maximalt 20 enheter. Finns det ett sätt att styra fler enheter?
Du kan använda sändningspaket och ange destinationsadresserna i nyttolasten. Antalet adresser påverkas då inte av det begränsade antalet. Du behöver bara konfigurera rätt sändningsadress.
Se dokumentationen för fler frågor:ESP-NOW
1 kommentar
Armand Djonga Chedjui Djonga
L’esp32 est une technologie qui me pationne