Obsah:
- Zásoby
- Krok 1: Získejte adresu Mac rady
- Krok 2: Jak zajistit, aby ESP-NYNÍ fungovalo
- Krok 3: FUNKCE ESP-NYNÍ (ESP32)
- Krok 4: FUNKCE ESP-NYNÍ (ESP8266)
- Krok 5: Jednosměrná komunikace (ESP32 jako odesílatel)
- Krok 6: Jednosměrná komunikace (ESP8266 jako odesílatel)
- Krok 7: DVOJCESTNÁ KOMUNIKACE
- Krok 8: REFERENCE
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
Na mém probíhajícím projektu potřebuji více ESP, abychom spolu mohli mluvit bez routeru. K tomu použiji ESP-NOW k bezdrátové komunikaci mezi sebou bez routeru na ESP.
Zásoby
Věci, které jsem použil:
Modul ESP32 DEV
NODEMCU 1.0 (modul ESP12E)
Krok 1: Získejte adresu Mac rady
Prostřednictvím ESP-now zařízení ESP hovoří mezi sebou odesíláním dat na svou jedinečnou adresu, zatímco jsou připojeni k interní síti přístupových bodů vytvořené při integraci esp nyní.. Určete tedy MAC adresu každého zařízení. Připojeno je moje nastavení desky ESP32 a ESP8266
PRO ESP32
#include "WiFi.h" // Přístup k funkcím ESP32 WIFI
neplatné nastavení () {Serial.begin (115200); Serial.print („Adresa MAC desky ESP32:“); Serial.println (WiFi.macAddress ()); // vytiskne svoji MAC adresu} void loop () {}
PRO ESP8266
#include // Knihovna používaná pro přístup k funkcím ESP8266 WIFI
neplatné nastavení () {Serial.begin (115200); Serial.println (); Serial.print ("Adresa MAC desky ESP8266:"); Serial.println (WiFi.macAddress ()); // vytiskne svoji MAC adresu} void loop () {}
Moje MAC adresa je:
- ESP32 - 30: AE: A4: F5: 03: A4
- ESP8266: A4: CF: 12: C7: 9C: 77
Krok 2: Jak zajistit, aby ESP-NYNÍ fungovalo
Zde je přehled toho, jak to funguje:
- Zahrnout nyní esp a wifi knihovny
- Uložte mac adresu příjemce ESP
- Definujte datovou strukturu zprávy odeslané/přijaté
- V nastavení nastavte wifi na režim stanice
- Inicializujte esp_now
- provést a zaregistrovat funkci zpětného volání vyvolanou po odeslání a přijetí dat
- Pro Esp8266 definujte jeho roli
- zaregistrujte peer nebo příjemce esp
- Odeslat data
Krok 3: FUNKCE ESP-NYNÍ (ESP32)
esp_now_init (neplatné)
Vrátit se:
- ESP_OK: úspěch
- ESP_ERR_ESPNOW_INTERNAL: Interní chyba
Popis:
Inicializujte funkci ESPNOW
esp_now_register_send_cb (cb)
Vrací:
- ESP_OK: úspěch
- ESP_ERR_ESPNOW_NOT_INIT: ESPNOW není inicializován
- ESP_ERR_ESPNOW_INTERNAL: interní chyba
Parametry:
-
cb: název funkce zpětného volání po odeslání dat ESPNOW s těmito parametry:
-
void cb (const uint8_t *mac_addr, esp_now_send_status_t status)
- mac_addr: mac adresa příjemce
-
postavení:
- 1 = úspěch
- 0 = selhání
-
Popis:
Po odeslání dat ESPNOW zavolejte funkci OnDataSent
esp_now_add_peerconst esp_now_peer_info_t *peer)
Vrací:
- ESP_OK: úspěch
- ESP_ERR_ESPNOW_NOT_INIT: ESPNOW není inicializován
- ESP_ERR_ESPNOW_ARG: neplatný argument
- ESP_ERR_ESPNOW_FULL: seznam partnerů je plný
- ESP_ERR_ESPNOW_NO_MEM: nedostatek paměti
- ESP_ERR_ESPNOW_EXIST: peer existoval
Parametry:
-
peer: informace peer s následujícími údaji:
-
uint8_t
peer_addr [ESP_NOW_ETH_ALEN]; ESPNOW peer MAC adresa, která je také MAC adresou stanice nebo softapu
-
uint8_t lmk [ESP_NOW_KEY_LEN]
Místní hlavní klíč ESPNOW peer, který se používá k šifrování dat
-
kanál uint8_t
Kanál Wi-Fi, který peer používá k odesílání/přijímání dat ESPNOW. Pokud je hodnota 0, použijte aktuální kanál, na kterém je stanice nebo softap zapnutý. V opačném případě musí být nastaven jako kanál, na kterém je stanice nebo softap zapnutý
-
wifi_interface_t ifidx
Rozhraní Wi-Fi, které peer používá k odesílání/přijímání dat ESPNOW
-
bool šifrování
Data ESPNOW, která tento peer odesílá/přijímá, jsou šifrována nebo ne
-
prázdný *priv
ESPNOW peer soukromá data
-
Popis:
Přidat peer do seznamu peer
esp_now_send (const uint8_t *peer_addr, const uint8_t *data, size_t len)
Vrací:
- ESP_OK: úspěch
- ESP_ERR_ESPNOW_NOT_INIT: ESPNOW není inicializován
- ESP_ERR_ESPNOW_ARG: neplatný argument
- ESP_ERR_ESPNOW_INTERNAL: interní chyba
- ESP_ERR_ESPNOW_NO_MEM: nedostatek paměti
- ESP_ERR_ESPNOW_NOT_FOUND: peer nebyl nalezen
- ESP_ERR_ESPNOW_IF: aktuální rozhraní WiFi neodpovídá rozhraní peer
Parametry:
- peer_addr: peer MAC adresa
- data: data to send
- len: délka dat
Popis:
Odeslat údaje ESPNOW. V některých případech se to stane:
- Pokud peer_addr není NULL, odešlete data peer, jehož adresa MAC odpovídá peer_addr
- Pokud je peer_addr NULL, odešlete data všem peerům, kteří jsou přidáni do seznamu peer
- Maximální délka dat musí být menší než ESP_NOW_MAX_DATA_LEN
- Vyrovnávací paměť, na kterou odkazuje argument data, nemusí být platná po návratu esp_now_send
esp_now_register_recv_cb (cb)
Vrací:
- ESP_OK: úspěch
- ESP_ERR_ESPNOW_NOT_INIT: ESPNOW není inicializován
- ESP_ERR_ESPNOW_INTERNAL: interní chyba
Parametry:
-
cb: funkce zpětného volání pro příjem dat ESPNOW
-
void cb (const uint8_t *mac_addr, const uint8_t *data, int data_len)
-
mac_addr:
mac adresa přijímače
-
*data:
příjem dat
-
data_len
délka datového bajtu
-
-
Popis:
Po přijetí dat ESPNOW zavolejte funkci cb
Krok 4: FUNKCE ESP-NYNÍ (ESP8266)
POPIS FUNKCÍ ESP32 ESP8266
int esp_now_init (neplatné)
Vrací:
- 1 = úspěch
- 0 = selhání
Popis
Inicializujte funkci ESPNOW
int esp_now_set_self_role (role u8)
Parametry:
- ESP_NOW_ROLE_IDLE: přenos dat není povolen.
- ESP_NOW_ROLE_CONTROLLER: priorita je dána rozhraní Sation
- ESP_NOW_ROLE_SLAVE: priorita je dána rozhraní SoftAP
- ESP_NOW_ROLE_COMBO: priorita je dána SoftAPinterface
Popis
Nastaví roli zařízení
int esp_now_register_send_cb (cb)
Vrací:
- 1 = úspěch
- 0 = selhání
Parametry:
-
cb: název funkce zpětného volání po odeslání dat ESPNOW s těmito parametry:
-
void cb (const uint8_t *mac_addr, esp_now_send_status_t status)
- mac_addr: mac adresa příjemce
-
postavení:
- 1 = úspěch
- 0 = selhání
-
Popis
Po odeslání dat ESPNOW zavolejte funkci OnDataSent
int esp_now_add_peer (u8 *mac_addr, u8 role, u8 kanál, u8 *klíč, u8 key_len)
Vrací:
- 1 = úspěch
- 0 = selhání
Parametry:
-
mac_addr
mac adresa peer
- role
-
kanál
Pokud je hodnota 0, použijte aktuální kanál, na kterém je stanice nebo softap zapnutý. V opačném případě musí být nastaven jako kanál, na kterém je stanice nebo softap zapnutý
-
*klíč
klíč pro šifrování
-
key_len
délka klíče
Popis:
Přidat peer do seznamu peer
int esp_now_send (const uint8_t *peer_addr, const uint8_t *data, size_t len)
Vrací:
- 1 = úspěch
- 0 = Selhání
Parametry:
- peer_addr: peer MAC adresa
- data: data to send
- len: délka dat
Popis:
Odeslat údaje ESPNOW. V některých případech se to stane:
- Pokud peer_addr není NULL, odešlete data peer, jehož MAC adresa odpovídá peer_addr
- Pokud je peer_addr NULL, odešlete data všem peerům, kteří jsou přidáni do seznamu peer
- Maximální délka dat musí být menší než ESP_NOW_MAX_DATA_LEN
- Vyrovnávací paměť, na kterou odkazuje argument data, nemusí být platná po návratu esp_now_send
int esp_now_register_recv_cb (cb)
Vrací:
- 1 = úspěch
- 0 = Selhání
Parametry:
-
cb: funkce zpětného volání pro příjem dat ESPNOW
-
void cb (const uint8_t *mac_addr, const uint8_t *data, int data_len)
-
mac_addr:
mac adresa přijímače
-
*data:
příjem dat
-
data_len
délka datového bajtu
-
-
Popis:
Po přijetí dat ESPNOW zavolejte funkci cb
Krok 5: Jednosměrná komunikace (ESP32 jako odesílatel)
ESP32 odesílá data na ESP8266. s tímto kódem. Změňte broadcastAddress na vaši adresu mac přijímače corrsponding. Moje byla A4: CF: 12: C7: 9C: 77
// Přidejte potřebné knihovny
#include // Přístup k funkcím esp nyní #include // Přidání funkcí Wifi na ESP32 // uložení MAC adresy do pole s názvem broadcastAddress; uint8_t broadcastAddress = {0xA4, 0xCF, 0x12, 0xC7, 0x9C, 0x77}; // MAC adresa mého přijímače/*definuje strukturované datové typy více proměnných a všechny je přejmenoval na struct_message*/typedef struct struct_message {char a [32]; int b; float c; Řetězec d; bool e; } struct_message; // Vytvořte struct_message s názvem myData struct_message myData; // funkce volána při odesílání dat k vytištění jejího stavu neplatné OnDataSent (const uint8_t *mac_addr, esp_now_send_status_t status) {Serial.print ("\ r / nPoslední stav odeslání paketu: / t"); Serial.println (status == ESP_NOW_SEND_SUCCESS? "Delivery Success": "Delivery Fail"); } void setup () {// Nastavení přenosové rychlosti pro sériovou komunikaci s ESP Serial.begin (115200); // Nastavit zařízení jako Wi-Fi Station WiFi.mode (WIFI_STA); // Spustí wifi // Init ESP-NOW a vrátí svůj stav, pokud (esp_now_init ()! = ESP_OK) {Serial.println ("Chyba při inicializaci ESP -NYNÍ"); vrátit se; } // volání funkce OnDataSent po odeslání dat ESPNOW esp_now_register_send_cb (OnDataSent); // Registrace peer esp_now_peer_info_t peerInfo; // inicializace a přiřazení informací o peer jako ukazatel addres memcpy (peerInfo.peer_addr, broadcastAddress, 6); // zkopírujte hodnotu broadcastAddress se 6 bajty do peerInfo.peer_addr peerInfo.channel = 0; // kanál, na kterém esp mluví. 0 znamená nedefinováno a data budou odeslána na aktuální kanál. 1-14 jsou platné kanály, které jsou stejné s místním zařízením peerInfo.encrypt = false; // nezašifrováno // Přidejte zařízení do seznamu spárovaných zařízení, pokud (esp_now_add_peer (& peerInfo)! = ESP_OK) {Serial.println ("Nepodařilo se přidat peer"); vrátit se; }} void loop () {// Nastavení hodnot pro odesílání strcpy (myData.a, "TOTO JE CHAR"); // uložení "TOTO JE CHAR" do proměnné a mých "dat" definovaných dříve myData.b = random (1, 20); // uložení náhodné hodnoty myData.c = 1,2; // save a float myData.d = "Dobrý den"; // uložení řetězce myData.e = false; // uložit bool // Odeslat data menší nebo rovna 250 bytů přes ESP-NYNÍ a vrátí jeho stav esp_err_t result = esp_now_send (broadcastAddress, (uint8_t *) & myData, sizeof (myData)); if (result == ESP_OK) {Serial.println ("Odesláno úspěšně"); } else {Serial.println ("Chyba při odesílání dat"); } zpoždění (2000); }
ESP8266 přijímá data z ESP32 pomocí tohoto kódu.
// Přidejte potřebné knihovny
#include // Přidání funkcí Wifi na ESP32 #include // Pro přístup k funkcím esp nyní /*definujte datové typy více strukturovaných proměnných a přejmenujte je na struct_message* /typedef struct struct_message {char a [32]; int b; float c; Řetězec d; bool e; } struct_message; // Vytvořte proměnnou struct_message s názvem myData struct_message myData; // funkce volaná při příjmu dat a vytiskne je neplatná OnDataRecv (uint8_t * mac, uint8_t * incomingData, uint8_t len) {memcpy (& myData, incomingData, sizeof (myData)); Serial.print ("Byty přijaty:"); 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 ("Řetězec:"); Serial.println (myData.d); Serial.print ("Bool:"); Serial.println (myData.e); Serial.println (); } void setup () {// Nastavení přenosové rychlosti pro sériovou komunikaci s ESP Serial.begin (115200); // Nastavit zařízení jako Wi-Fi Station WiFi.mode (WIFI_STA); // Spustí wifi // Spustí ESP-NYNÍ a vrátí svůj stav, pokud (esp_now_init ()! = 0) {Serial.println ("Chyba při inicializaci ESP-NYNÍ"); vrátit se; } esp_now_set_self_role (ESP_NOW_ROLE_SLAVE); // Definuje roli tohoto esp esp_now_register_recv_cb (OnDataRecv); // volání funkce OnDataRecv po přijetí dat ESPNOW} void loop () {}
Krok 6: Jednosměrná komunikace (ESP8266 jako odesílatel)
ESP8266 odesílá data do ESP32. s tímto kódem. Změňte broadcastAddress na vaši adresu mac přijímače corrsponding. Moje adresa esp32 je 30: AE: A4: F5: 03: A4. Další funkce pro esp8266 najdete zde
// Přidejte potřebné knihovny
#include // Přidání funkcí Wifi na ESP32 #include // Přístup k funkcím esp nyní // uložte MAC adresu do pole s názvem broadcastAddress; uint8_t broadcastAddress = {0x30, 0xAE, 0xA4, 0xF5, 0x03, 0xA4}; /*definujte datové typy strukturovaných více proměnných a všechny je přejmenujte na struct_message*/ typedef struct struct_message {char a [32]; int b; float c; Řetězec d; bool e; } struct_message; // Vytvořte strukturovanou proměnnou s názvem myData struct_message myData; // funkce volána při odesílání dat a vytištění jejího stavu neplatné OnDataSent (uint8_t *mac_addr, uint8_t sendStatus) {Serial.print ("\ r / nPoslední stav odeslání paketu: / t"); Serial.println (sendStatus == 1? "Delivery Delivery success": "Delivery Fail"); } void setup () {// Nastavení přenosové rychlosti pro sériovou komunikaci s ESP Serial.begin (115200); // Nastavit zařízení jako Wi-Fi Station WiFi.mode (WIFI_STA); // Spustí wifi // Init ESP-NOW a vrátí svůj stav, pokud (esp_now_init ()) {Serial.println ("Chyba při inicializaci ESP-NOW"); vrátit se; } esp_now_register_send_cb (OnDataSent); // volání funkce OnDataSent po odeslání dat ESPNOW // přidání zařízení do seznamu spárovaných zařízení if (esp_now_add_peer (broadcastAddress, ESP_NOW_ROLE_CONTROLLER, 1, NULL, 0)) {Serial.println ("Nepodařilo se přidat peer"); vrátit se; }} void loop () {// Nastavení hodnot pro odesílání strcpy (myData.a, "TOTO JE CHAR"); // uložení "TOTO JE CHAR" do proměnné a mých "dat" definovaných dříve myData.b = random (1, 20); // uložení náhodné hodnoty myData.c = 1,2; // save a float myData.d = "SP8266"; // uložení řetězce myData.e = false; // uložit bool // Odeslat data menší nebo rovna 250 bytů přes ESP-NYNÍ a vrátí jeho stav int result = esp_now_send (broadcastAddress, (uint8_t *) & myData, sizeof (myData)); if (esp_now_init ()! = 0) {Serial.println ("Odesláno úspěšně"); } else {Serial.println ("Chyba při odesílání dat"); } zpoždění (2000); }
ESP32 přijímá data z ESP8266. s tímto kódem. Pro ostatní funkce rozhodčí zde
// Přidejte potřebné knihovny
#include // Přístup k funkcím esp nyní #include // Přidání funkcí Wifi na ESP32 /*definujte datové typy strukturovaných více proměnných a přejmenujte je na struct_message* /typedef struct struct_message {char a [32]; int b; float c; Řetězec d; bool e; } struct_message; // Vytvořte proměnnou struct_message s názvem myData struct_message myData; // funkce volaná při příjmu dat a jejich vytištění neplatná OnDataRecv (const uint8_t * mac, const uint8_t * incomingData, int len) {memcpy (& myData, incomingData, sizeof (myData)); Serial.print ("Byty přijaty:"); 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 ("Řetězec:"); Serial.println (myData.d); Serial.print ("Bool:"); Serial.println (myData.e); Serial.println (); } void setup () {// Nastavení přenosové rychlosti pro sériovou komunikaci s ESP Serial.begin (115200); // Nastavit zařízení jako Wi-Fi Station WiFi.mode (WIFI_STA); // Spustí wifi // Spustí ESP-NYNÍ a vrátí svůj stav, pokud (esp_now_init ()! = 0) {Serial.println ("Chyba při inicializaci ESP-NYNÍ"); vrátit se; } esp_now_register_recv_cb (OnDataRecv); // volání funkce OnDataRecv po přijetí dat ESPNOW} void loop () {}
Krok 7: DVOJCESTNÁ KOMUNIKACE
ESP32 odesílá data při spuštění do ESP8266. ESP8266 vytiskne přijatou zprávu a poté odpoví, které ESP32 vytiskne na svém sériovém monitoru.
KÓD ESP32
// Přidejte potřebné knihovny
#include // Přístup k funkcím esp nyní #include // Přidání funkcí Wifi na ESP32 // uložení MAC adresy do pole s názvem broadcastAddress; uint8_t broadcastAddress = {0xA4, 0xCF, 0x12, 0xC7, 0x9C, 0x77}; // MAC adresa mého přijímače/*definuje strukturované datové typy více proměnných a všechny je přejmenoval na struct_message*/typedef struct struct_message {char a [32]; int b; float c; Řetězec d; bool e; } struct_message; // Vytvořte struct_message s názvem myData struct_message myData; // funkce volaná při odesílání dat k vytištění jejího stavu neplatné OnDataSent (const uint8_t *mac_addr, esp_now_send_status_t status) {Serial.print ("\ r / nPoslední stav odeslání paketu: / t"); Serial.println (status == ESP_NOW_SEND_SUCCESS? "Delivery Success": "Delivery Fail"); if (status! = ESP_NOW_SEND_SUCCESS) {send_data ();}} neplatné OnDataRecv (const uint8_t * mac, const uint8_t * incomingData, int len) {memcpy (& myData, incomingData, sizeof (myData)); Serial.print ("Byty přijaty:"); 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 ("Řetězec:"); Serial.println (myData.d); Serial.print ("Bool:"); Serial.println (myData.e); Serial.println (); } void setup () {// Nastavení přenosové rychlosti pro sériovou komunikaci s ESP Serial.begin (115200); // Nastavit zařízení jako Wi-Fi Station WiFi.mode (WIFI_STA); // Spustí wifi // Init ESP-NOW a vrátí svůj stav, pokud (esp_now_init ()! = ESP_OK) {Serial.println ("Chyba při inicializaci ESP -NYNÍ"); vrátit se; } // volání funkce OnDataSent po odeslání dat ESPNOW esp_now_register_send_cb (OnDataSent); // Registrace peer esp_now_peer_info_t peerInfo; // inicializace a přiřazení informací o peer jako ukazatel addres memcpy (peerInfo.peer_addr, broadcastAddress, 6); // zkopírujte hodnotu broadcastAddress se 6 bajty do peerInfo.peer_addr peerInfo.channel = 0; // kanál, na kterém mluví esp. 0 znamená nedefinováno a data budou odeslána na aktuální kanál.1-14 jsou platné kanály, které jsou stejné s místním zařízením peerInfo.encrypt = false; // nezašifrováno // Přidejte zařízení do seznamu spárovaných zařízení, pokud (esp_now_add_peer (& peerInfo)! = ESP_OK) {Serial.println ("Nepodařilo se přidat peer"); vrátit se; } esp_now_register_recv_cb (OnDataRecv); // volání funkce OnDataRecv po přijetí dat ESPNOW send_data (); } void loop () {} void send_data () {Serial.println ("Odesílání"); // Nastavte hodnoty pro odesílání strcpy (myData.a, "TOTO JE CHAR"); // uložení "TOTO JE CHAR" do proměnné a mých "dat" definovaných dříve myData.b = random (1, 20); // uložení náhodné hodnoty myData.c = 1,2; // save a float myData.d = "ESP32"; // uložení řetězce myData.e = false; // uložit bool // Odeslat data menší nebo rovna 250 bytů přes ESP-NYNÍ a vrátí jeho stav esp_err_t result = esp_now_send (broadcastAddress, (uint8_t *) & myData, sizeof (myData)); if (result == ESP_OK) {Serial.println ("Odesláno s úspěchem");} else {Serial.println ("Chyba při odesílání dat"); }}
KÓD ESP8266
// Přidejte potřebné knihovny
#include // Přidání funkcí Wifi na ESP32 #include // Přístup k funkcím esp nyní // uložte MAC adresu do pole s názvem broadcastAddress; uint8_t broadcastAddress = {0x30, 0xAE, 0xA4, 0xF5, 0x03, 0xA4}; /*definujte datové typy strukturovaných více proměnných a všechny je přejmenujte na struct_message*/ typedef struct struct_message {char a [32]; int b; float c; Řetězec d; bool e; } struct_message; // Vytvořte proměnnou struct_message s názvem myData struct_message myData; // funkce volaná při příjmu dat a vytiskne je neplatná OnDataRecv (uint8_t * mac, uint8_t * incomingData, uint8_t len) {memcpy (& myData, incomingData, sizeof (myData)); Serial.print ("Byty přijaty:"); 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 ("Řetězec:"); Serial.println (myData.d); Serial.print ("Bool:"); Serial.println (myData.e); Serial.println (); send_data (); } neplatné OnDataSent (uint8_t *mac_addr, uint8_t sendStatus) {Serial.print ("\ r / nPoslední stav odeslání paketu: / t"); Serial.println (sendStatus == 1? "Delivery Delivery success": "Delivery Fail"); if (sendStatus! = 1) {send_data (); }} void send_data () {// Nastavení hodnot pro odesílání strcpy (myData.a, "TOTO JE CHAR"); // uložení "TOTO JE CHAR" do proměnné a mých "dat" definovaných dříve myData.b = random (1, 20); // uložení náhodné hodnoty myData.c = 1,2; // save a float myData.d = "ESP8266"; // uložení řetězce myData.e = false; // uložení bool esp_now_send (broadcastAddress, (uint8_t *) & myData, sizeof (myData)); } void setup () {// Nastavení přenosové rychlosti pro sériovou komunikaci s ESP Serial.begin (115200); // Nastavit zařízení jako Wi-Fi Station WiFi.mode (WIFI_STA); // Spustí wifi // Spustí ESP-NYNÍ a vrátí svůj stav, pokud (esp_now_init ()! = 0) {Serial.println ("Chyba při inicializaci ESP-NYNÍ"); vrátit se; } if (esp_now_add_peer (broadcastAddress, ESP_NOW_ROLE_SLAVE, 1, NULL, 0)) {Serial.println ("Nepodařilo se přidat peer"); vrátit se; } esp_now_set_self_role (ESP_NOW_ROLE_COMBO); esp_now_register_send_cb (OnDataSent); esp_now_set_self_role (ESP_NOW_ROLE_COMBO); // Definuje roli tohoto esp esp_now_register_recv_cb (OnDataRecv); // volání funkce OnDataRecv po přijetí dat ESPNOW} void loop () {}
Krok 8: REFERENCE
ESPNOW_32_Příklad
ESPNOW_8266 Příklad
WIFI.h
ESP8266WiFi.h
esp_now.h pro ESP8266
esp_now.h pro ESP32
esp_now oficiální dokument (Lepší vysvětlení funkcí)
ESP-NYNÍ Oficiální průvodce
Doporučuje:
Jak vytvořit hru pro více hráčů pomocí ovladačů Arduino: 6 kroků
Jak vytvořit hru pro více hráčů pomocí ovladačů Arduino: Přemýšleli jste někdy nad tím, jak vývojáři her vytvářejí úžasné hry, které si hrají lidé na celém světě? Dnes vám k tomu dám jen malou nápovědu vytvořením malé hry pro více hráčů, kterou bude ovládat buď ovládání Arduino
Pěstování více salátu na menším prostoru nebo Pěstování salátu ve vesmíru, (více či méně) .: 10 kroků
Pěstování více salátu na menším prostoru Nebo … Pěstování salátu ve vesmíru ((více či méně)): Toto je profesionální příspěvek do soutěže Growing Beyond Earth, Maker Contest, podané prostřednictvím Instructables. Nemohl jsem být více nadšený, že navrhuji vesmírnou produkci plodin a zveřejňuji svůj první Instructable. Na začátku nás soutěž požádala, abychom
Použití více než 4 motorů - skládání více štítů motoru: 3 kroky
Použití více než 4 motorů - stohování více motorových štítů: Instruktabilní vibrotaktilní senzorické substituční a augmentační zařízení (https: //www.instructables.com/id/Vibrotactile-Sens …) ukazuje způsob, jak vytvořit zařízení, které překládá senzorické vstup do vibračních podnětů. Tyto vibrační podněty jsou
Jak vytvořit 2D znak pomocí ovladače znaků v Unreal Engine 4 pomocí Visual Script pro PC: 11 kroků
Jak vytvořit 2d znak pomocí ovladače znaků v Unreal Engine 4 pomocí Visual Script pro PC: Jak vytvořit 2d znak pomocí ovladače znaků v Unreal Engine 4 pomocí vizuálního skriptu pro PC Ahoj, jsem Jordan Steltz. Video hry vyvíjím od svých 15 let. Tento tutoriál vás naučí, jak vytvořit základní postavu pomocí
Jak vytvořit autonomního robota hrajícího basketbal pomocí IRobota Vytvořit jako základ: 7 kroků (s obrázky)
Jak vytvořit autonomního robota hrajícího basketbal pomocí IRobota Vytvořit jako základ: Toto je můj příspěvek k výzvě iRobot Create. Nejtěžší na celém tomto procesu pro mě bylo rozhodnout, co bude robot dělat. Chtěl jsem předvést skvělé funkce Create a zároveň přidat trochu robo vkusu. Všechny moje