当前位置: 首页 > news >正文

wordpress下拉菜单的阴影怎么改人员优化方案怎么写

wordpress下拉菜单的阴影怎么改,人员优化方案怎么写,wordpress excerpt,注册公司需要什么条件太原ESP32/ESP8266开发板单向一对多ESP-NOW无线通信 简介读取ESP32/ESP8266接收方Receiver的MAC地址ESP32/ESP8266发送方Sender程序ESP32/ESP8266接收方Receiver程序ESP-NOW通信验证总结 简介 本实验通过ESP-NOW无线通信协议实现多个ESP32/ESP 8266开发板向ESP32开发板发送数据。例…

ESP32/ESP8266开发板单向一对多ESP-NOW无线通信

    • 简介
    • 读取ESP32/ESP8266接收方Receiver的MAC地址
    • ESP32/ESP8266发送方Sender程序
    • ESP32/ESP8266接收方Receiver程序
    • ESP-NOW通信验证
    • 总结

简介

本实验通过ESP-NOW无线通信协议实现多个ESP32/ESP 8266开发板向ESP32开发板发送数据。例如可以应用于从多个远程传感器上收集数据。
在这里插入图片描述

读取ESP32/ESP8266接收方Receiver的MAC地址

读取ESP32开发板的代码

#ifdef ESP32#include <WiFi.h>#include <esp_wifi.h>
#else#include <ESP8266WiFi.h>
#endifvoid setup(){Serial.begin(115200);Serial.print("ESP Board MAC Address: ");#ifdef ESP32WiFi.mode(WIFI_STA);WiFi.STA.begin();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:%02x\n",baseMac[0], baseMac[1], baseMac[2],baseMac[3], baseMac[4], baseMac[5]);} else {Serial.println("Failed to read MAC address");}#elseSerial.println(WiFi.macAddress());#endif
}void loop(){}

通过串口打印读取到接收方ESP32开发板1的MAC地址为:54:43:b2:7f:00:60
在这里插入图片描述

ESP32/ESP8266发送方Sender程序

把读取到的接收方的MAC地址填入到uint8_t broadcastAddress[]数组中,并修改结构体的中myData.id的值,ESP32开发板1程序中填入myData.id = 1,ESP32开发板2程序中填入myData.id = 2,ESP32开发板3程序中填入myData.id = 3,接收方以此来分辨是哪一个ESP32开发板发过来的数据。

#include <esp_now.h>
#include <WiFi.h>// REPLACE WITH THE RECEIVER'S 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 {int id; // must be unique for each sender boardint x;int y;
} struct_message;// Create a struct_message called myData
struct_message myData;// Create peer interface
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("\r\nLast Packet Send Status:\t");Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}void setup() {// Init Serial MonitorSerial.begin(115200);// Set device as a Wi-Fi StationWiFi.mode(WIFI_STA);// Init ESP-NOWif (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 packetesp_now_register_send_cb(OnDataSent);// Register peermemcpy(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 sendmyData.id = 1;myData.x = random(0,50);myData.y = random(0,50);// Send message via ESP-NOWesp_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(10000);
}

ESP32/ESP8266接收方Receiver程序

#include <esp_now.h>
#include <WiFi.h>// Structure example to receive data
// Must match the sender structure
typedef struct struct_message {int id;int x;int y;
}struct_message;// Create a struct_message called myData
struct_message myData;// Create a structure to hold the readings from each board
struct_message board1;
struct_message board2;
struct_message board3;// Create an array with all the structures
struct_message boardsStruct[3] = {board1, board2, board3};// callback function that will be executed when data is received
void OnDataRecv(const uint8_t * mac_addr, const uint8_t *incomingData, int len) {char macStr[18];Serial.print("Packet received from: ");snprintf(macStr, sizeof(macStr), "%02x:%02x:%02x:%02x:%02x:%02x",mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);Serial.println(macStr);memcpy(&myData, incomingData, sizeof(myData));Serial.printf("Board ID %u: %u bytes\n", myData.id, len);// Update the structures with the new incoming databoardsStruct[myData.id-1].x = myData.x;boardsStruct[myData.id-1].y = myData.y;Serial.printf("x value: %d \n", boardsStruct[myData.id-1].x);Serial.printf("y value: %d \n", boardsStruct[myData.id-1].y);Serial.println();
}void setup() {//Initialize Serial MonitorSerial.begin(115200);//Set device as a Wi-Fi StationWiFi.mode(WIFI_STA);//Init ESP-NOWif (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 infoesp_now_register_recv_cb(esp_now_recv_cb_t(OnDataRecv));
}void loop() {// Acess the variables for each board/*int board1X = boardsStruct[0].x;int board1Y = boardsStruct[0].y;int board2X = boardsStruct[1].x;int board2Y = boardsStruct[1].y;int board3X = boardsStruct[2].x;int board3Y = boardsStruct[2].y;*/delay(10000);  
}

ESP-NOW通信验证

在这里插入图片描述
分别给左边的3个ESP32开发板下载好发送方Sender程序,给右边的ESP32开发板下载好接收方Receiver程序
若接收方接收到数据串口会打印出接收到对应的ESP32开发板的ID号和ESP32开发板的两个随机数
在这里插入图片描述
若发送方数据发送成功串口会打印出数据发送完成,数据接收成功
在这里插入图片描述
若发送方数据发送成功串口会打印出数据发送完成,数据接收失败
在这里插入图片描述

总结

通过以上例程验证了ESP32开发板之间单向多对一的ESP-NOW无线通信。

http://www.yidumall.com/news/80713.html

相关文章:

  • 铜陵58同城做网站如何网络推广自己的产品
  • 长沙网站建设公司哪家好seo算法优化
  • 怎么把其他网站视频放到自己网站app软件开发
  • 国外域名网站推荐如何推广网页
  • 企业可以做哪些网站有哪些内容seo优化课程
  • 罗湖装修公司网站建设重庆森林粤语完整版在线观看免费
  • 凡科代理平台泉州百度seo
  • 微站小程序国内免费建站平台
  • 有哪些网站做美食的图片很精致百度竞价关键词出价技巧
  • 怎么做网站建设的ppt看网站搜什么关键词
  • 网站风格对比信息表网页设计自学要多久
  • 网站首页鲁大师网上推广企业
  • 做网站毕业论文的参考文献汽车推广软文
  • 做链接哪个网站好中国职业培训在线平台
  • 网站建设胶州家园简单网页制作成品免费
  • 网站开发综合课程设计站长之家工具高清
  • 忻州网络公司网站建设计算机培训机构
  • 上海网站制作怎么样网站seo如何优化
  • 教育学校网站做seo搜索引擎优化试题及答案
  • wordpress如何分页优化网站广告优化
  • 建设公司网站费用优化大师免费下载安装
  • 社联网站建设的目的初学者做电商怎么入手
  • 木马科技网站建设百度广告运营
  • 论坛网站建设费用商铺营销推广方案
  • 企业网站设计多少钱百度地图推广
  • 网站建设和优化百度免费下载安装百度
  • 网站如何做响应式布局站长工具查询网
  • 广州市 网站建设 有限公司电池优化大师下载
  • 电信网站备案系统如何给自己的公司建网站
  • 传媒有限公司seo代理计费系统