ESP32/ESP8266 使用WIFI模块进行UDP通信 - 米思齐/Arduino

2023-10-09 07:50

本文主要是介绍ESP32/ESP8266 使用WIFI模块进行UDP通信 - 米思齐/Arduino,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用UDP协议, 进行通信

  • ESP32以AP模式运行
  • ESP8266以STA模式运行
  • ESP8266每五秒发送"hello"
  • ESP32实时接受ESP8266发送的消息

注意 

  • 使用WiFi时, ADC2模拟通道无法使用
  • ADC2 10个通道:GPIO0、GPIO2、GPIO4、GPIO12-GPIO15、GOIO25-GPIO27
  • ADC1 8通道:GPIO32 - GPIO39

ESP - Ap 接收端

米思齐IDE代码块

#include <WiFi.h>
#include <WiFiUDP.h>const char AP_NameChar[] = "WIFI-SSID";
const char WiFiAPPSK[] = "WIFI-PSK";
IPAddress ESP8266ip1(192,168,4,2);
IPAddress ESP8266ip2(192,168,4,3);
IPAddress ESP8266ip(192,168,4,255);
unsigned int localPort =8080;
unsigned int remotePort=8080;
char incomingPacket[537];
char A;
WiFiUDP Udp;void setup(){Serial.begin(9600);WiFi.mode(WIFI_AP);WiFi.softAP(AP_NameChar, WiFiAPPSK);Udp.begin(localPort);Serial.println();Serial.println("Started ap. Local ip: " + WiFi.softAPIP().toString());Serial.begin(9600);
}void loop(){int packetSize = Udp.parsePacket();if (packetSize){Serial.printf("Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());int len = Udp.read(incomingPacket, 536);if (len > 0){incomingPacket[len] = 0;Serial.printf("UDP packet contents: %s\n", incomingPacket);String COM=incomingPacket;Serial.println(COM);}}}

ESP - STA 发送端

米思齐IDE代码块

#define STASSID "WIFI-SSID"
#define STAPSK "WIFI-PSK"
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <ESP8266WiFi.h>unsigned int localPort =8080;
unsigned int remotePort=8080;
char incomingPacket[537];
char A;
WiFiUDP Udp;void setup(){Serial.begin(9600);WiFi.mode(WIFI_STA);WiFi.begin(STASSID, STAPSK);while (WiFi.status() != WL_CONNECTED){Serial.print(".");delay(500);}delay(1000);Serial.println();Serial.print("Connected! IP address: ");Serial.println(WiFi.localIP());Serial.printf("UDP server on port  ", localPort);Udp.begin(localPort);Serial.begin(9600);Serial.print(WiFi.localIP());
}void loop(){Udp.beginPacket("192.168.4.1",remotePort);Udp.print("hello");Udp.endPacket();delay(5000);}

这篇关于ESP32/ESP8266 使用WIFI模块进行UDP通信 - 米思齐/Arduino的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/171408

相关文章

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

Python验证码识别方式(使用pytesseract库)

《Python验证码识别方式(使用pytesseract库)》:本文主要介绍Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1、安装Tesseract-OCR2、在python中使用3、本地图片识别4、结合playwrigh

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-