INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
Op my voortgesette projek het ek verskeie ESP nodig om sonder 'n router met mekaar te praat. Om dit te doen, gebruik ek die ESP-NOW om draadloos met mekaar te kommunikeer sonder 'n router op die ESP.
Voorrade
Dinge wat ek gebruik het:
ESP32 DEV -module
NODEMCU 1.0 (ESP12E -module)
Stap 1: Kry die Board Mac -adres
Deur middel van ESP-now praat ESP-toestelle met mekaar deur data na hul unieke adres te stuur terwyl hulle gekoppel is aan 'n interne toegangspuntnetwerk wat gemaak is nadat die esp nou geïntiliseer is.. Bepaal dus die MAC -adres van elke toestel. Aangeheg is my ESP32 en ESP8266 Board Settings
VIR ESP32
#sluit "WiFi.h" in // Om toegang te verkry tot ESP32 WIFI -vermoëns
ongeldige opstelling () {Serial.begin (115200); Serial.print ("ESP32 Board MAC -adres:"); Serial.println (WiFi.macAddress ()); // druk sy MAC -adres} leemte -lus () {} af
VIR ESP8266
#include // Biblioteek wat gebruik word om toegang te verkry tot ESP8266 WIFI -vermoëns
ongeldige opstelling () {Serial.begin (115200); Serial.println (); Serial.print ("ESP8266 Board MAC -adres:"); Serial.println (WiFi.macAddress ()); // druk sy MAC -adres} leemte -lus () {} af
My MAC ADRES is:
- ESP32 - 30: AE: A4: F5: 03: A4
- ESP8266: A4: CF: 12: C7: 9C: 77
Stap 2: Hoe om ESP-NOU te laat werk
Hier is 'n oorsig van hoe u dit kan laat werk:
- Sluit nou esp en wifi -biblioteke in
- Stoor die mac -adres van die ontvanger ESP
- Definieer die datastruktuur van die boodskap stuur/ontvang
- Stel die wifi in die stasie -modus op tydens die opstelling
- Initialiseer esp_now
- bel en registreer die terugbelfunksie wat gebel word nadat data gestuur en ontvang is
- Definieer die rol vir Esp8266
- registreer die eweknie of ontvanger, bv
- Stuur data
Stap 3: ESP-NOU-FUNKSIES (ESP32)
esp_now_init (nietig)
Terug:
- ESP_OK: slaag
- ESP_ERR_ESPNOW_INTERNAL: Interne fout
Beskrywing:
Begin die ESPNOW -funksie
esp_now_register_send_cb (cb)
Opbrengs:
- ESP_OK: slaag
- ESP_ERR_ESPNOW_NOT_INIT: ESPNOW is nie geïnisialiseer nie
- ESP_ERR_ESPNOW_INTERNAL: interne fout
Grense:
-
cb: terugbelfunksienaam nadat ESPNOW -data met hierdie parameters gestuur is:
-
leegte cb (const uint8_t *mac_addr, esp_now_send_status_t status)
- mac_addr: mac -adres van ontvanger
-
status:
- 1 = sukses
- 0 = misluk
-
Beskrywing:
Bel die funksie OnDataSent nadat u ESPNOW -data gestuur het
esp_now_add_peerconst esp_now_peer_info_t *eweknie)
Opbrengs:
- ESP_OK: slaag
- ESP_ERR_ESPNOW_NOT_INIT: ESPNOW is nie geïnisialiseer nie
- ESP_ERR_ESPNOW_ARG: ongeldige argument
- ESP_ERR_ESPNOW_FULL: eweknieëlys is vol
- ESP_ERR_ESPNOW_NO_MEM: geheue op
- ESP_ERR_ESPNOW_EXIST: eweknie bestaan
Grense:
-
eweknie: eweknie -inligting met die volgende data:
-
uint8_t
peer_addr [ESP_NOW_ETH_ALEN]; ESPNOW eweknie -MAC -adres, wat ook die MAC -adres van die stasie of sagteware is
-
uint8_t lmk [ESP_NOW_KEY_LEN]
ESPNOW eweknie -plaaslike hoofsleutel wat gebruik word om data te enkripteer
-
uint8_t kanaal
Wi-Fi-kanaal wat eweknie gebruik om ESPNOW-data te stuur/ontvang. As die waarde 0 is, gebruik die huidige kanaal waarop die stasie of sagteware is. Andersins moet dit ingestel word as die kanaal waarop die stasie of sagteware is
-
wifi_interface_t ifidx
Wi-Fi-koppelvlak wat eweknie gebruik om ESPNOW-data te stuur/ontvang
-
bool encrypt
ESPNOW -data wat hierdie eweknie stuur/ontvang, is geïnkripteer of nie
-
leegte *priv
ESPNOW eweknie -privaat data
-
Beskrywing:
Voeg 'n eweknie -tot -eweknie -lys by
esp_now_send (const uint8_t *peer_addr, const uint8_t *data, size_t len)
Opbrengs:
- ESP_OK: slaag
- ESP_ERR_ESPNOW_NOT_INIT: ESPNOW is nie geïnisialiseer nie
- ESP_ERR_ESPNOW_ARG: ongeldige argument
- ESP_ERR_ESPNOW_INTERNAL: interne fout
- ESP_ERR_ESPNOW_NO_MEM: geheue op
- ESP_ERR_ESPNOW_NOT_FOUND: eweknie word nie gevind nie
- ESP_ERR_ESPNOW_IF: die huidige WiFi -koppelvlak stem nie ooreen met die van eweknie nie
Grense:
- peer_addr: eweknie MAC -adres
- data: data wat gestuur moet word
- len: lengte van data
Beskrywing:
Stuur ESPNOW -data. In sommige gevalle gebeur dit:
- As peer_addr nie NULL is nie, stuur data na die eweknie wie se MAC -adres ooreenstem met peer_addr
- As peer_addr NULL is, stuur data na al die eweknieë wat by die eweknieëlys gevoeg word
- Die maksimum lengte data moet minder wees as ESP_NOW_MAX_DATA_LEN
- Die buffer waarop data -argument aangedui word, hoef nie geldig te wees nadat esp_now_send opgawes is nie
esp_now_register_recv_cb (cb)
Opbrengs:
- ESP_OK: slaag
- ESP_ERR_ESPNOW_NOT_INIT: ESPNOW is nie geïnisialiseer nie
- ESP_ERR_ESPNOW_INTERNAL: interne fout
Grense:
- cb: terugbelfunksie vir die ontvangs van ESPNOW -data
-
leegte cb (const uint8_t *mac_addr, const uint8_t *data, int data_len)
-
mac_addr:
mac -adres van die ontvanger
-
*data:
data ontvang
-
data_len
data byte lengte
-
-
Beskrywing:
Bel die funksie cb nadat u ESPNOW -data ontvang het
Stap 4: ESP-NOW-FUNKSIES (ESP8266)
FUNKSIES BESKRYWING ESP32 ESP8266
int esp_now_init (nietig)
Opbrengs:
- 1 = sukses
- 0 = misluk
Beskrywing
Begin die ESPNOW -funksie
int esp_now_set_self_role (u8 -rol)
Grense:
- ESP_NOW_ROLE_IDLE: data -oordrag word nie toegelaat nie.
- ESP_NOW_ROLE_CONTROLLER: Sation -koppelvlak kry prioriteit
- ESP_NOW_ROLE_SLAVE: SoftAP -koppelvlak het prioriteit
- ESP_NOW_ROLE_COMBO: prioriteit word gegee aan SoftAP -koppelvlak
Beskrywing
Stel die toestel se rol in
int esp_now_register_send_cb (cb)
Opbrengs:
- 1 = sukses
- 0 = misluk
Grense:
-
cb: terugbelfunksienaam nadat ESPNOW -data met hierdie parameters gestuur is:
-
leegte cb (const uint8_t *mac_addr, esp_now_send_status_t status)
- mac_addr: mac -adres van ontvanger
-
status:
- 1 = sukses
- 0 = misluk
-
Beskrywing
Bel die funksie OnDataSent nadat u ESPNOW -data gestuur het
int esp_now_add_peer (u8 *mac_addr, u8 rol, u8 kanaal, u8 *sleutel, u8 key_len)
Opbrengs:
- 1 = sukses
- 0 = misluk
Grense:
-
mac_addr
mac -adres van eweknie
- rol
-
kanaal
As die waarde 0 is, gebruik die huidige kanaal waarop die stasie of sagteware is. Andersins moet dit ingestel word as die kanaal waarop die stasie of sagteware is
-
*sleutel
sleutel vir kodering
-
key_len
lengte van die sleutel
Beskrywing:
Voeg 'n eweknie -tot -eweknie -lys by
int esp_now_send (const uint8_t *peer_addr, const uint8_t *data, size_t len)
Opbrengs:
- 1 = Sukses
- 0 = Misluk
Grense:
- peer_addr: eweknie MAC -adres
- data: data wat gestuur moet word
- len: lengte van data
Beskrywing:
Stuur ESPNOW -data. In sommige gevalle gebeur dit:
- As peer_addr nie NULL is nie, stuur data na die eweknie wie se MAC -adres ooreenstem met peer_addr
- As peer_addr NULL is, stuur data na al die eweknieë wat by die eweknieëlys gevoeg word
- Die maksimum lengte data moet minder wees as ESP_NOW_MAX_DATA_LEN
- Die buffer waarop data -argument aangedui word, hoef nie geldig te wees nadat esp_now_send opgawes is nie
int esp_now_register_recv_cb (cb)
Opbrengs:
- 1 = Sukses
- 0 = Misluk
Grense:
- cb: terugbelfunksie vir die ontvangs van ESPNOW -data
-
leegte cb (const uint8_t *mac_addr, const uint8_t *data, int data_len)
-
mac_addr:
mac -adres van die ontvanger
-
*data:
data ontvang
-
data_len
data byte lengte
-
-
Beskrywing:
Bel die funksie cb nadat u ESPNOW -data ontvang het
Stap 5: Eenrigtingkommunikasie (ESP32 as sender)
Die ESP32 stuur data na 'n ESP8266. met hierdie kode. Verander die broadcastAddress na u korresponderende ontvanger se mac -adres. Myne was A4: CF: 12: C7: 9C: 77
// Voeg die nodige biblioteke by
#include // Om toegang te verkry tot die funksies van esp nou #include // Om wifi -vermoëns by te voeg op ESP32 // stoor die MAC -adres in 'n skikking met die naam broadcastAddress; uint8_t broadcastAddress = {0xA4, 0xCF, 0x12, 0xC7, 0x9C, 0x77}; // MAC -adres van my ontvanger/*definieer die datatipes van die veelvoudige veranderlikes wat gestruktureer is en dit alles hernoem as struct_message*/typedef struct struct_message {char a [32]; int b; dryf c; String d; bool e; } struct_boodskap; // Skep 'n struct_message genaamd myData struct_message myData; // funksie word gebel wanneer data gestuur word om die status leegte daarvan OnDataSent (const uint8_t *mac_addr, esp_now_send_status_t status) af te druk {{Serial.print ("\ r / nStatus van die laaste pakkie: / t"); Serial.println (status == ESP_NOW_SEND_SUCCESS? "Afleweringsukses": "Aflewering misluk"); } leemte -opstelling () {// Stel die baud -tempo in vir seriële kommunikasie met ESP Serial.begin (115200); // Stel die toestel in as 'n Wi-Fi-stasie WiFi.mode (WIFI_STA); // Begin die wifi // Begin ESP-NOW en gee sy status terug as (esp_now_init ()! = ESP_OK) {Serial.println ("Fout by die inisialisering van ESP -NU "); terugkeer; } // noem die funksie OnDataSent nadat ESPNOW -data gestuur is esp_now_register_send_cb (OnDataSent); // Registreer eweknie esp_now_peer_info_t peerInfo; // initialiseer en ken die eweknie -inligting as 'n wyser toe aan 'n addres memcpy (peerInfo.peer_addr, broadcastAddress, 6); // kopieer die waarde van broadcastAddress met 6 grepe na peerInfo.peer_addr peerInfo.channel = 0; // kanaal waarop die esp praat. 0 beteken ongedefinieerd en data sal op die huidige kanaal gestuur word. 1-14 geldige kanale, wat dieselfde is met die plaaslike toestel peerInfo.encrypt = false; // nie geënkripteer // Voeg die toestel by die lys van gekoppelde toestelle as (esp_now_add_peer (& peerInfo)! = ESP_OK) {Serial.println ("Kon nie eweknie byvoeg nie"); terugkeer; }} void lus () {// Stel waardes om strcpy te stuur (myData.a, "DIT IS 'N CHAR"); // stoor "THIS IS A CHAR" in veranderlike a van my "data" wat vroeër gedefinieer is myData.b = random (1, 20); // stoor 'n ewekansige waarde myData.c = 1.2; // save a float myData.d = "Hallo"; // stoor 'n string myData.e = false; // Stoor 'n bool if (result == ESP_OK) {Serial.println ("Met sukses gestuur"); } anders {Serial.println ("Fout met die stuur van die data"); } vertraging (2000); }
Die ESP8266 ontvang data van die ESP32 met behulp van hierdie kode.
// Voeg die nodige biblioteke by
#include // Om Wifi -vermoëns by ESP32 by te voeg #include // Om toegang te verkry tot die funksies van esp nou /*definieer die datatipes van die veelvoudige veranderlikes wat gestruktureer is en dit alles hernoem as struct_message* /typedef struct struct_message {char a [32]; int b; dryf c; String d; bool e; } struct_boodskap; // Skep 'n veranderlike struct_message genaamd myData struct_message myData; // funksie genoem wanneer die data ontvang word en dit ongeldig druk OnDataRecv (uint8_t * mac, uint8_t * incomingData, uint8_t len) {memcpy (& myData, incomingData, sizeof (myData)); Serial.print ("Bytes ontvang:"); Serial.println (len); Serial.print ("Char:"); Serial.println (myData.a); Serial.print ("Int:"); Serial.println (myData.b); Serial.print ("Float:"); Serial.println (myData.c); Serial.print ("String:"); Serial.println (myData.d); Serial.print ("Bool:"); Serial.println (myData.e); Serial.println (); } leemte -opstelling () {// Stel die baud -tempo in vir seriële kommunikasie met ESP Serial.begin (115200); // Stel die toestel in as 'n Wi-Fi-stasie WiFi-modus (WIFI_STA); // Begin die wifi // Init ESP-NOW en gee sy status terug as (esp_now_init ()! = 0) {Serial.println ("Fout tydens die begin van ESP-NOW"); terugkeer; } esp_now_set_self_role (ESP_NOW_ROLE_SLAVE); // Definieer die rol van hierdie esp esp_now_register_recv_cb (OnDataRecv); // bel die funksie OnDataRecv na ontvangs van ESPNOW data} leemte lus () {}
Stap 6: Eenrigtingkommunikasie (ESP8266 as sender)
Die ESP8266 stuur data na 'n ESP32. met hierdie kode. Verander die broadcastAddress na u korresponderende ontvanger se mac -adres. My esp32 adres is 30: AE: A4: F5: 03: A4. Vir ander funksies vir esp8266, gaan hier
// Voeg die nodige biblioteke by
#include // Om wifi -vermoëns by te voeg op ESP32 #include // Om toegang te verkry tot die funksies van esp nou // stoor die MAC -adres in 'n skikking met die naam broadcastAddress; uint8_t broadcastAddress = {0x30, 0xAE, 0xA4, 0xF5, 0x03, 0xA4}; /*definieer die datatipes van die veelvoudige veranderlikes wat gestruktureer is en dit alles hernoem as struct_message*/ typedef struct struct_message {char a [32]; int b; dryf c; String d; bool e; } struct_boodskap; // Skep 'n gestruktureerde veranderlike genaamd myData struct_message myData; // funksie genoem wanneer data gestuur word en druk die status leegte daarvan OnDataSent (uint8_t *mac_addr, uint8_t sendStatus) {Serial.print ("\ r / nLaaste pakkie stuurstatus: / t"); Serial.println (sendStatus == 1? "Afleweringsukses": "Aflewering misluk"); } leemte -opstelling () {// Stel die baud -tempo in vir seriële kommunikasie met ESP Serial.begin (115200); // Stel die toestel in as 'n Wi-Fi-stasie WiFi.mode (WIFI_STA); // Begin die wifi // Begin ESP-NOW en gee sy status terug as (esp_now_init ()) {Serial.println ("Fout tydens die inisialisering van ESP-NOW"); terugkeer; } esp_now_register_send_cb (OnDataSent); // bel die funksie OnDataSent nadat ESPNOW -data gestuur is // Voeg die toestel by die gepaarde toestellys as (esp_now_add_peer (broadcastAddress, ESP_NOW_ROLE_CONTROLLER, 1, NULL, 0)) {Serial.println ("Kon nie eweknie byvoeg nie"); terugkeer; }} void lus () {// Stel waardes om strcpy te stuur (myData.a, "DIT IS 'N CHAR"); // stoor "THIS IS A CHAR" in veranderlike a van my "data" wat vroeër gedefinieer is myData.b = random (1, 20); // stoor 'n ewekansige waarde myData.c = 1.2; // stoor 'n vlot myData.d = "SP8266"; // stoor 'n string myData.e = false; // Stoor 'n bool if (esp_now_init ()! = 0) {Serial.println ("Met sukses gestuur"); } anders {Serial.println ("Fout met die stuur van die data"); } vertraging (2000); }
Die ESP32 ontvang data van 'n ESP8266. met hierdie kode. Vir ander funksies verwys hier
// Voeg die nodige biblioteke by
#include // Om toegang te verkry tot die funksies van esp nou #include // Om wifi -vermoëns by te voeg op ESP32 /*definieer die datatipes van die veelvoudige veranderlikes wat gestruktureer is en dit alles hernoem as struct_message* /typedef struct struct_message {char a [32]; int b; dryf c; String d; bool e; } struct_boodskap; // Skep 'n veranderlike struct_message genaamd myData struct_message myData; // funksie genoem wanneer die data ontvang word en dit leegmaak OnDataRecv (const uint8_t * mac, const uint8_t * incomingData, int len) {memcpy (& myData, incomingData, sizeof (myData)); Serial.print ("Bytes ontvang:"); Serial.println (len); Serial.print ("Char:"); Serial.println (myData.a); Serial.print ("Int:"); Serial.println (myData.b); Serial.print ("Float:"); Serial.println (myData.c); Serial.print ("String:"); Serial.println (myData.d); Serial.print ("Bool:"); Serial.println (myData.e); Serial.println (); } leemte -opstelling () {// Stel die baud -tempo in vir seriële kommunikasie met ESP Serial.begin (115200); // Stel die toestel in as 'n Wi-Fi-stasie WiFi-modus (WIFI_STA); // Begin die wifi // Init ESP-NOW en gee sy status terug as (esp_now_init ()! = 0) {Serial.println ("Fout tydens die begin van ESP-NOW"); terugkeer; } esp_now_register_recv_cb (OnDataRecv); // bel die funksie OnDataRecv na ontvangs van ESPNOW data} leemte lus () {}
Stap 7: TWEE MANIER KOMMUNIKASIE
Die ESP32 stuur data by die aanvang na die ESP8266. Die ESP8266 druk die ontvangde boodskap af en reageer dan waarvan die ESP32 op sy seriële monitor druk.
ESP32 KODE
// Voeg die nodige biblioteke by
#include // Om toegang te verkry tot die funksies van esp nou #include // Om wifi -vermoëns by te voeg op ESP32 // stoor die MAC -adres in 'n skikking met die naam broadcastAddress; uint8_t broadcastAddress = {0xA4, 0xCF, 0x12, 0xC7, 0x9C, 0x77}; // MAC -adres van my ontvanger/*definieer die datatipes van die veelvoudige veranderlikes wat gestruktureer is en dit alles hernoem as struct_message*/typedef struct struct_message {char a [32]; int b; dryf c; String d; bool e; } struct_boodskap; // Skep 'n struct_message genaamd myData struct_message myData; // funksie genoem wanneer data gestuur word om sy status leegte OnDataSent te druk (const uint8_t *mac_addr, esp_now_send_status_t status) {Serial.print ("\ r / nLaaste pakkie stuurstatus: / t"); Serial.println (status == ESP_NOW_SEND_SUCCESS? "Afleweringsukses": "Aflewering misluk"); if (status! = ESP_NOW_SEND_SUCCESS) {send_data ();}} ongeldig OnDataRecv (const uint8_t * mac, const uint8_t * incomingData, int len) {memcpy (& myData, incomingData, sizeof (myData)); Serial.print ("Bytes ontvang:"); Serial.println (len); Serial.print ("Char:"); Serial.println (myData.a); Serial.print ("Int:"); Serial.println (myData.b); Serial.print ("Float:"); Serial.println (myData.c); Serial.print ("String:"); Serial.println (myData.d); Serial.print ("Bool:"); Serial.println (myData.e); Serial.println (); } leemte -opstelling () {// Stel die baud -tempo in vir seriële kommunikasie met ESP Serial.begin (115200); // Stel die toestel in as 'n Wi-Fi-stasie WiFi.mode (WIFI_STA); // Begin die wifi // Begin ESP-NOW en gee sy status terug as (esp_now_init ()! = ESP_OK) {Serial.println ("Fout by die inisialisering van ESP -NU "); terugkeer; } // noem die funksie OnDataSent nadat ESPNOW -data gestuur is esp_now_register_send_cb (OnDataSent); // Registreer eweknie esp_now_peer_info_t peerInfo; // initialiseer en ken die eweknie -inligting as 'n wyser toe aan 'n addres memcpy (peerInfo.peer_addr, broadcastAddress, 6); // kopieer die waarde van broadcastAddress met 6 grepe na peerInfo.peer_addr peerInfo.channel = 0; // kanaal waarop die esp praat. 0 beteken ongedefinieerd en data sal op die huidige kanaal gestuur word.1-14 geldige kanale, wat dieselfde is met die plaaslike toestel peerInfo.encrypt = false; // nie geënkripteer // Voeg die toestel by die lys van gekoppelde toestelle as (esp_now_add_peer (& peerInfo)! = ESP_OK) {Serial.println ("Kon nie eweknie byvoeg nie"); terugkeer; } esp_now_register_recv_cb (OnDataRecv); // bel die funksie OnDataRecv na ontvangs van ESPNOW -data send_data (); } void lus () {} void send_data () {Serial.println ("Stuur"); // Stel waardes om strcpy te stuur (myData.a, "DIT IS 'N KARAAR"); // stoor "THIS IS A CHAR" in veranderlike a van my "data" wat vroeër gedefinieer is myData.b = random (1, 20); // stoor 'n ewekansige waarde myData.c = 1.2; // stoor 'n vlot myData.d = "ESP32"; // stoor 'n string myData.e = false; // Stoor 'n bool if (result == ESP_OK) {Serial.println ("Met sukses gestuur");} else {Serial.println ("Fout by die stuur van die data"); }}
ESP8266 KODE
// Voeg die nodige biblioteke by
#include // Om wifi -vermoëns by te voeg op ESP32 #include // Om toegang te verkry tot die funksies van esp nou // stoor die MAC -adres in 'n skikking met die naam broadcastAddress; uint8_t broadcastAddress = {0x30, 0xAE, 0xA4, 0xF5, 0x03, 0xA4}; /*definieer die datatipes van die veelvoudige veranderlikes wat gestruktureer is en dit alles hernoem as struct_message*/ typedef struct struct_message {char a [32]; int b; dryf c; String d; bool e; } struct_boodskap; // Skep 'n veranderlike struct_message genaamd myData struct_message myData; // funksie genoem wanneer die data ontvang word en dit ongeldig druk OnDataRecv (uint8_t * mac, uint8_t * incomingData, uint8_t len) {memcpy (& myData, incomingData, sizeof (myData)); Serial.print ("Bytes ontvang:"); Serial.println (len); Serial.print ("Char:"); Serial.println (myData.a); Serial.print ("Int:"); Serial.println (myData.b); Serial.print ("Float:"); Serial.println (myData.c); Serial.print ("String:"); Serial.println (myData.d); Serial.print ("Bool:"); Serial.println (myData.e); Serial.println (); stuur_data (); } maak OnDataSent ongeldig (uint8_t *mac_addr, uint8_t sendStatus) {Serial.print ("\ r / nLaaste pakkie -stuurstatus: / t"); Serial.println (sendStatus == 1? "Afleweringsukses": "Aflewering misluk"); as (sendStatus! = 1) {send_data (); }} void send_data () {// Stel waardes om strcpy te stuur (myData.a, "DIT IS 'N CHAR"); // stoor "THIS IS A CHAR" in veranderlike a van my "data" wat vroeër gedefinieer is myData.b = random (1, 20); // stoor 'n ewekansige waarde myData.c = 1.2; // stoor 'n vlot myData.d = "ESP8266"; // stoor 'n string myData.e = false; // stoor 'n bool esp_now_send (broadcastAddress, (uint8_t *) en myData, sizeof (myData)); } leemte -opstelling () {// Stel die baud -tempo in vir seriële kommunikasie met ESP Serial.begin (115200); // Stel die toestel in as 'n Wi-Fi-stasie WiFi-modus (WIFI_STA); // Begin die wifi // Init ESP-NOW en gee sy status terug as (esp_now_init ()! = 0) {Serial.println ("Fout tydens die begin van ESP-NOW"); terugkeer; } if (esp_now_add_peer (broadcastAddress, ESP_NOW_ROLE_SLAVE, 1, NULL, 0)) {Serial.println ("Kon nie eweknie byvoeg nie"); terugkeer; } esp_now_set_self_role (ESP_NOW_ROLE_COMBO); esp_now_register_send_cb (OnDataSent); esp_now_set_self_role (ESP_NOW_ROLE_COMBO); // Definieer die rol van hierdie esp esp_now_register_recv_cb (OnDataRecv); // bel die funksie OnDataRecv na ontvangs van ESPNOW data} leemte lus () {}
Stap 8: VERWYSINGS
ESPNOW_32_Voorbeeld
ESPNOW_8266 Voorbeeld
WIFI.h
ESP8266WiFi.h
esp_now.h vir ESP8266
esp_now.h vir ESP32
esp_now amptelike dokument (beter verduideliking van funksies)
ESP-NOW Amptelike Gids
Aanbeveel:
Hoe om 'n baba-gewigmasjien te maak met behulp van Arduino Nano, HX-711-laadsel en OLED 128X64 -- Kalibrasie van HX-711: 5 stappe
Hoe om 'n baba-gewigmasjien te maak met behulp van Arduino Nano, HX-711-laadsel en OLED 128X64 || Kalibrasie van HX-711: Hallo instruksies, ek het 'n paar dae gelede pa geword van 'n oulike baba?. Toe ek in die hospitaal was, het ek gevind dat die gewig van die baba so belangrik is om die groei van die baba te monitor. So ek het 'n idee? om self 'n baba -gewigmasjien te maak. in hierdie instruksionele ek
Hoe om 'n hommeltuig te maak met Arduino UNO - Maak 'n quadcopter met behulp van mikrokontroller: 8 stappe (met foto's)
Hoe om 'n hommeltuig te maak met Arduino UNO | Maak 'n quadcopter met behulp van mikrobeheerder: inleiding Besoek my Youtube -kanaal 'n Drone is 'n baie duur apparaat (produk) om te koop. In hierdie pos gaan ek bespreek hoe ek dit goedkoop kan maak ?? En hoe kan u u eie goedkoop maak teen goedkoop pryse … In Indië is al die materiale (motors, ESC's
Aan die gang met ESP32 CAM - Streaming van video met behulp van ESP CAM via wifi - ESP32 -beveiligingskamera -projek: 8 stappe
Aan die gang met ESP32 CAM | Streaming van video met behulp van ESP CAM via wifi | ESP32 -beveiligingskamera -projek: Vandag leer ons hoe u hierdie nuwe ESP32 CAM -bord kan gebruik en hoe ons dit kan kodeer en as 'n beveiligingskamera kan gebruik en 'n stroomvideo oor wifi kan kry
Aan die slag met Esp 8266 Esp-01 Met Arduino IDE - Die installering van Esp -borde in Arduino Ide en programmering van Esp: 4 stappe
Aan die slag met Esp 8266 Esp-01 Met Arduino IDE | Installering van Esp-borde in Arduino Ide en programmering van Esp: In hierdie instruksies gaan ons leer hoe om esp8266-borde in Arduino IDE te installeer en hoe om esp-01 te programmeer en kode daarin te laai. dit en die meeste mense het 'n probleem
Hoe maklik om 'n rugsteun van u Linux-boks te maak met behulp van Rdiff-rugsteun: 9 stappe
Hoe maklik om 'n rugsteun van u Linux-boks te maak met behulp van Rdiff-rugsteun: Hierdie instruksies sal u wys hoe u 'n eenvoudige volledige rugsteun- en herstelselstelsel op Linux kan gebruik met rdiff-rugsteun en 'n usb-skyf