91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ESP32開發(fā)板單向點對點ESP-NOW無線通信

jf_88434166 ? 來源:jf_88434166 ? 作者:jf_88434166 ? 2026-03-19 09:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

@TOC

簡介

本例程通過兩個ESP32開發(fā)板實現(xiàn)單向點對點ESP-NOW無線通信,一個ESP32開發(fā)板作為Sender發(fā)送方,另一個開發(fā)板作為Receiver接收方接收發(fā)送方的數(shù)據(jù)。
在這里插入圖片描述

讀取ESP32接收方Receiver的MAC地址

#include < WiFi.h >
#include < esp_wifi.h >

void readMacAddress(){
  uint8_t baseMac[6];
  esp_err_t ret = esp_wifi_get_mac(WIFI_IF_STA, baseMac);
  if (ret == ESP_OK) {
    Serial.printf("%02x:%02x:%02x:%02x:%02x:%02xn",
                  baseMac[0], baseMac[1], baseMac[2],
                  baseMac[3], baseMac[4], baseMac[5]);
  } else {
    Serial.println("Failed to read MAC address");
  }
}

void setup(){
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin();
  Serial.print("[DEFAULT] ESP32 Board MAC Address: ");
  readMacAddress();
}
 
void loop(){

}

在這里插入圖片描述

ESP32發(fā)送方Sender程序

把接收方ESP32開發(fā)板讀取到的MAC地址填入以下程序第4行中

#include < esp_now.h >
#include < WiFi.h >

// REPLACE WITH YOUR RECEIVER MAC Address
uint8_t broadcastAddress[] = {0x54, 0x43, 0xb2, 0x7f, 0x00, 0x60};

// Structure example to send data
// Must match the receiver structure
typedef struct struct_message {
  char a[32];
  int b;
  float c;
  bool d;
} struct_message;

// Create a struct_message called myData
struct_message myData;
esp_now_peer_info_t peerInfo;

// callback when data is sent
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
  Serial.print("rnLast Packet Send Status:t");
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}
 
void setup() {
  // Init Serial Monitor
  Serial.begin(115200); 
  // Set device as a Wi-Fi Station
  WiFi.mode(WIFI_STA);
  // Init ESP-NOW
  if (esp_now_init() != ESP_OK) {
    Serial.println("Error initializing ESP-NOW");
    return;
  }

  // Once ESPNow is successfully Init, we will register for Send CB to
  // get the status of Trasnmitted packet
  esp_now_register_send_cb(OnDataSent);  
  // Register peer
  memcpy(peerInfo.peer_addr, broadcastAddress, 6);
  peerInfo.channel = 0;  
  peerInfo.encrypt = false;  
  // Add peer        
  if (esp_now_add_peer(&peerInfo) != ESP_OK){
    Serial.println("Failed to add peer");
    return;
  }
}
 
void loop() {
  // Set values to send
  strcpy(myData.a, "THIS IS A CHAR");
  myData.b = random(1,20);
  myData.c = 1.2;
  myData.d = false;  
  // Send message via ESP-NOW
  esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));   
  if (result == ESP_OK) {
    Serial.println("Sent with success");
  }
  else {
    Serial.println("Error sending the data");
  }
  delay(2000);
}

ESP32接收方Receiver程序

#include < esp_now.h >
#include < WiFi.h >

// Structure example to receive data
// Must match the sender structure
typedef struct struct_message {
    char a[32];
    int b;
    float c;
    bool d;
} struct_message;

// Create a struct_message called myData
struct_message myData;

// callback function that will be executed when data is received
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {
  memcpy(&myData, incomingData, sizeof(myData));
  Serial.print("Bytes received: ");
  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("Bool: ");
  Serial.println(myData.d);
  Serial.println();
}
 
void setup() {
  // Initialize Serial Monitor
  Serial.begin(115200);
  
  // Set device as a Wi-Fi Station
  WiFi.mode(WIFI_STA);

  // Init ESP-NOW
  if (esp_now_init() != ESP_OK) {
    Serial.println("Error initializing ESP-NOW");
    return;
  }
  
  // Once ESPNow is successfully Init, we will register for recv CB to
  // get recv packer info
  esp_now_register_recv_cb(esp_now_recv_cb_t(OnDataRecv));
}
 
void loop() {

}

ESP-NOW通信驗證

上傳發(fā)送方和接收方的程序到ESP32開發(fā)板,打開兩個串口助手分別顯示發(fā)送方和接收方的打印結果情況
ESP32發(fā)送方:發(fā)送結構體struct_message數(shù)據(jù)并顯示發(fā)送成功
在這里插入圖片描述
ESP32接收方:顯示接收到的發(fā)送方發(fā)送的結構體struct_message的具體數(shù)據(jù)
在這里插入圖片描述

總結

通過以上例程驗證了ESP32開發(fā)板之間單向點對點的ESP-NOW無線通信,接下來的篇章將繼續(xù)驗證多個的ESP32開發(fā)板之間實現(xiàn)一對多的ESP-NOW無線通信。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 無線通信
    +關注

    關注

    58

    文章

    5025

    瀏覽量

    146923
  • 開發(fā)板
    +關注

    關注

    26

    文章

    6320

    瀏覽量

    118833
  • ESP32
    +關注

    關注

    26

    文章

    1204

    瀏覽量

    21968
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ESP32/ESP8266開發(fā)板單向一對多ESP-NOW無線通信

    通過ESP-NOW無線通信協(xié)議實現(xiàn)ESP32開發(fā)板向多個ESP32/ESP 8266
    的頭像 發(fā)表于 03-13 09:23 ?86次閱讀
    <b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266<b class='flag-5'>開發(fā)板</b><b class='flag-5'>單向</b>一對多<b class='flag-5'>ESP-NOW</b><b class='flag-5'>無線通信</b>

    ESP32/ESP8266開發(fā)板ESP-NOW無線通信

    ESP-NOW 是由Espressif開發(fā)的基于數(shù)據(jù)鏈路層的無線通信協(xié)議,它將五層 OSI 上層協(xié)議精簡為一層,數(shù)據(jù)傳輸時無需依次經(jīng)過網(wǎng)絡層、傳輸層、會話層、表示層、應用層等復雜的層級,也無需層層
    的頭像 發(fā)表于 02-27 20:03 ?184次閱讀
    <b class='flag-5'>ESP32</b>/<b class='flag-5'>ESP</b>8266<b class='flag-5'>開發(fā)板</b><b class='flag-5'>ESP-NOW</b><b class='flag-5'>無線通信</b>

    ESP32-C5系列】WT9932C5-TINY開發(fā)板上手指南

    實現(xiàn)了強勁性能與豐富功能的平衡。開發(fā)板主頻高達240MHz,依托ESP32-C5升級的無線能力,支持Wi-Fi6(802.11ax)與藍牙5.3雙模通信,相比前代
    的頭像 發(fā)表于 02-26 18:05 ?354次閱讀
    【<b class='flag-5'>ESP32</b>-C5系列】WT9932C5-TINY<b class='flag-5'>開發(fā)板</b>上手指南

    ESP32-C2系列】WT9932C2-TINY開發(fā)板上手指南

    體積內實現(xiàn)了強勁性能與豐富功能的平衡。開發(fā)板主頻高達120MHz,支持藍牙與Wi-Fi雙模無線通信,可無縫適配智能家居、低功耗物聯(lián)網(wǎng)終端等場景。硬件設計上,不僅將所
    的頭像 發(fā)表于 02-25 18:25 ?166次閱讀
    【<b class='flag-5'>ESP32</b>-C2系列】WT9932C2-TINY<b class='flag-5'>開發(fā)板</b>上手指南

    ESP32-P4系列】WT9932P4-MINI開發(fā)板上手指南

    開發(fā)板介紹ESP32-P4-MINI開發(fā)板是深圳市啟明云端有限公司推出的,基于WT0132P4-A1核心設計的多媒體開發(fā)板。WT0132P
    的頭像 發(fā)表于 02-12 18:16 ?188次閱讀
    【<b class='flag-5'>ESP32</b>-P4系列】WT9932P4-MINI<b class='flag-5'>開發(fā)板</b>上手指南

    ESP32-C3】WT9932C3-TINY開發(fā)板規(guī)格書

    體積內實現(xiàn)了強勁性能與豐富功能的平衡。開發(fā)板主頻高達160MHz,支持藍牙與Wi-Fi雙模無線通信,可無縫適配智能家居、低功耗物聯(lián)網(wǎng)終端等場景。硬件設計上,不僅將
    的頭像 發(fā)表于 02-11 18:04 ?626次閱讀
    【<b class='flag-5'>ESP32</b>-C3】WT9932C3-TINY<b class='flag-5'>開發(fā)板</b>規(guī)格書

    ESP32-C5系列】WT9932C5-TINY開發(fā)板規(guī)格書

    了強勁性能與豐富功能的平衡。開發(fā)板主頻高達240MHz,依托ESP32-C5升級的無線能力,支持Wi-Fi6(802.11ax)與藍牙5.3雙模通信,相比前代吞吐
    的頭像 發(fā)表于 02-09 18:20 ?522次閱讀
    【<b class='flag-5'>ESP32</b>-C5系列】WT9932C5-TINY<b class='flag-5'>開發(fā)板</b>規(guī)格書

    ESP32-P4系列】WT9932P4-MINI開發(fā)板規(guī)格書

    開發(fā)板介紹ESP32-P4-MINI開發(fā)板是深圳市啟明云端有限公司推出的,基于WT0132P4-A1核心設計的多媒體開發(fā)板。WT0132P
    的頭像 發(fā)表于 02-03 18:14 ?304次閱讀
    【<b class='flag-5'>ESP32</b>-P4系列】WT9932P4-MINI<b class='flag-5'>開發(fā)板</b>規(guī)格書

    樂鑫科技ESP-AMP框架詳解!兩款已支持的ESP32-P4C5開發(fā)板推薦!啟明云端樂鑫科技代理

    操作系統(tǒng),并提供完整的核間通信機制。啟明云端旗兩款高性能開發(fā)板——WT99P4C5-S1與WTDKP4C5-S1,搭載樂鑫科技ESP32-P4芯片和ESP32-C5芯
    的頭像 發(fā)表于 12-18 18:02 ?1380次閱讀
    樂鑫科技<b class='flag-5'>ESP</b>-AMP框架詳解!兩款已支持的<b class='flag-5'>ESP32</b>-P4C5<b class='flag-5'>開發(fā)板</b>推薦!啟明云端樂鑫科技代理

    ESP32-P4全功能開發(fā)板ESP32-P4-TINY開發(fā)板該怎么選?看這篇就夠了!

    啟明云端基于樂鑫科技ESP32-P4芯片設計了多款開發(fā)板,這些開發(fā)板有什么區(qū)別?基于應用場景如何選擇?本期,我們聚焦兩款代表性產品:WT99P4C5-S1開發(fā)板與WT9932P4-TI
    的頭像 發(fā)表于 12-09 18:02 ?964次閱讀
    <b class='flag-5'>ESP32</b>-P4全功能<b class='flag-5'>開發(fā)板</b>和<b class='flag-5'>ESP32</b>-P4-TINY<b class='flag-5'>開發(fā)板</b>該怎么選?看這篇就夠了!

    ESP32ESP-NOW通訊踩坑記

    1、背景前段時間看到樂鑫推出了一種很有意思的Wi-Fi通訊協(xié)議,它允許設備在無連接的時候進行直接通訊。樂鑫對它的概述如下:“ESP-NOW是一種由樂鑫公司定義的無連接Wi-Fi通信協(xié)議。在ESP-NOW中,應用程序數(shù)據(jù)被封裝在
    的頭像 發(fā)表于 09-13 10:03 ?2637次閱讀
    <b class='flag-5'>ESP32</b>的<b class='flag-5'>ESP-NOW</b>通訊踩坑記

    ESP32-P4-MINI開發(fā)板開箱和上手指南來了!速速碼?。?/a>

    上期“夢中情ESP32-P4-MINI開發(fā)板一出就備受青睞這期我們立馬就端著開箱和上手指南來了!不用驚嘆,我們就是這么迅速,請把“啟明云端權威”打在公屏上好嘛!開箱展示拿到
    的頭像 發(fā)表于 07-25 18:02 ?2240次閱讀
    <b class='flag-5'>ESP32</b>-P4-MINI<b class='flag-5'>開發(fā)板</b>開箱和上手指南來了!速速碼?。? />    </a>
</div>                              <div   id=

    ESP32開發(fā)板元件資料

    ESP32開發(fā)板元件
    發(fā)表于 07-21 14:47 ?15次下載

    ESP32-P4 C5開發(fā)板燒錄小智全流程!速看!

    沒錯,你沒有看錯!我們帶著WT99P4C5-S1開發(fā)板燒錄小智全流程走來了!開發(fā)板搭載樂鑫科技ESP32-P4和ESP32-C5芯片,代碼完全開源,支持靈活二次
    的頭像 發(fā)表于 07-04 18:03 ?2454次閱讀
    <b class='flag-5'>ESP32</b>-P4 C5<b class='flag-5'>開發(fā)板</b>燒錄小智全流程!速看!

    ESP32-S3開發(fā)板燒錄小智AI系統(tǒng)全流程指南

    在AI語音交互領域不斷發(fā)展的今天,開發(fā)者們對于功能強大、開源靈活的開發(fā)板需求日益增長。今天,我們就來詳細了解一下ESP32AgentDevKit燒錄小智的全流程,這款搭載樂鑫科技ESP32
    的頭像 發(fā)表于 06-16 18:01 ?8407次閱讀
    <b class='flag-5'>ESP32</b>-S3<b class='flag-5'>開發(fā)板</b>燒錄小智AI系統(tǒng)全流程指南