ESP32-WROOM-32 UDP单播透传AT指令例程

news2024/9/25 9:34:56

ESP32-WROOM-32 AT指令配置TCP通讯

  • ESP32-WROOM-32
  • 前言
  • 固件烧录
  • 测试AT指令
  • UDP单播通讯\透传
    • ESP32配置SoftAP
    • ESP32与手机间的UDP通讯与透传
      • 普通传输模式
      • 演示
      • UDP透传
      • 演示

ESP32-WROOM-32

在这里插入图片描述

前言

上次演示了ESP32与手机的三种TCP连接与数据传输方法,现在接着上一篇“ESP32-WROOM-32 AT指令配置TCP通讯”把ESP32和手机的UDP,单播透传完成,准备工作可以回到上一篇查看,需要准备的都是一样的,这里不过多赘述。
关于网络调试助手的APP,大家可以直接在手机的应用商城下载或者网上搜索“网络调试助手”或者“TCP网络调试助手”应该会有的,这边用的IOS系统手机做的演示,所以没法分享APP安装包。

固件烧录

本文需要用到乐鑫官方ESP32-WROOM-32的出厂AT固件下面用Flash Download Tools进行烧录。(如果ESP32里面本身就是烧的乐鑫出厂的固件,或者是从“TCP”那篇文章过来的,那么就可以直接跳过这一步)这一步简单带过。

打开Flash Download Tools并载入,固件包里路径为

X:XXX\ESP32-WROOM-32_AT_Bin_V2.4.0.0\ESP32-WROOM-32-V2.4.0.0\factory

里面名为“factory_WROOM-32.bin”的固件,起始地址为0,勾选上“DoNotChgBin”,选好串口开始下载。
在这里插入图片描述

测试AT指令

用USB转TTL接到ESP32-WROOM-32的UART2上,上电,
打开串口助手
波特率为115200,停止位1,数据位8,无校验
发送“AT”,查看烧录的AT固件是否正常运行

ESP32USB转TTL
RX2TX
TX2RX
GNDGND
VCC5V

在这里插入图片描述
AT固件正常运行。

UDP单播通讯\透传

ESP32配置SoftAP

在实现ESP32和手机之间进行UDP单播通讯\透传之前,需要让两者通过WIFI连接,下文以ESP32的SoftAP为例。

  1. 接着上面的AT指令测试后,发送
AT+CWMODE=2			//打开ESP32的SoftAP模式
/*
AT+CWMODE=<mode>[,<auto_connect>]
<mode>:模式
  0: 无 Wi-Fi 模式,并且关闭 Wi-Fi RF
  1: Station 模式
  2: SoftAP 模式
  3: SoftAP+Station 模式
<auto_connect>
是否启用自动连接 AP 的功能,参数缺省使用默认值,启用自动连接 AP 的功能
参数为0时禁用自动连接 AP 的功能
*/

上面命令用于开启ESP32的SoftAP模式,后面用到的指令不再讲解对应参数的具体内容(太长了),感兴趣的可以自行查看AT指令集。

  1. 配置AP的具体参数,发送
AT+CWSAP="YouXin","1234567890",5,3
/*
SSID为YouXin
password为1234567890
可自行更改上面的参数
*/
  1. 发送
AT+CWDHCP=1,1
/*
开启DHCP,默认DHCP地址池为192.168.4.2-192.168.101,地址池可改
*/
  1. 开启了DHCP后,手机下载一个“TCP网络调试助手”(自行网上找),手机找到ESP32的WIFI,上面配置的SSID为YouXin,所以去找名为YouXin的WIFI并连接。连接上ESP32的WIFI后,可以记一下ESP32的串口返回的信息,里面包含了给连接上的设备分配的IP地址等信息,后面连接时需要用。

ESP32与手机间的UDP通讯与透传

普通传输模式

–接上–

  1. 手机连上ESP32的WIFI后,打开“TCP网络调试助手”。
  2. 手机的“TCP网络调试助手”选择“UDP调试”,不同的软件可能会名字不同。
  3. “TCP网络调试助手”输入UDP连接参数,本地IP、本地绑定的端口号 、远端IP地址、远端端口号。
    其中,本地IP不知道是多少,可以去看手机连接ESP32的WIFI时,串口返回的信息;
    本地绑定的端口号输入一个没有被占用的就行;
    远端IP地址,输入ESP32的IP地址,由于ESP32是SoftAP模式,它的地址一般是192.168.4.1;
    远端端口号,可输入一个ESP32没有被占用的端口号,ESP32建立UDP单播连接时本地的端口号就要时这个输入端口号。
    输入完以上几个参数后,点击绑定。接下来在ESP32端建立UDP单播连接。
  4. 在串口助手发送指令,把ESP32通讯设为单连模式
4.AT+CIPMUX=0		//设置为单连模式
  1. ESP32建立UDP单播连接,发送:
AT+CIPSTART="UDP","192.168.4.2",1000,1002,2		//建立UDP单播
/*
 *第一个参数为网络连接类型										*
 *第二给参数为远端IP(即是手机端的IP地址)						*
 *第三个参数为远端端口号(即是手机端绑定UDP时输入的本地端口号)		*
 *第四个参数为本地端口号(即是手机端绑定UDP时输入的远端端口号)		*
 *第五个参数为模式:											*
	0: 接收到 UDP 数据后,不改变对端 UDP 地址信息(默认)
	1: 仅第一次接收到与初始设置不同的对端 UDP 数据时,改变对端 UDP 地址信息为发送数据设备的IP地址和端口
	2: 每次接收到 UDP 数据时,都改变对端 UDP 地址信息为发送数据的设备的 IP 地址和端口

*/

发送上面的建立 UDP 连接指令后,如果成功连接串口助手会返回相关信息。
到了这一步,手机通过“TCP网络调试助手”可以发送数据给ESP32了,ESP32接收到数据后会在串口打印输出。
虽然ESP32可以收到了手机发过来的数据了,但是这个时候如果想从ESP32发送数据到手机上,串口助手会返回ERROR,并且没有把数据发出去,这时进行下一步。

  1. 发送
AT+CIPSEND=<Length>		//发送指定长度的数据请求
/*
由于这次实验ESP32充当的是TCP Client,所以是单连模式,这条指令就只有Length一个参数
Length:需要发的数据长度
*/

当发送上面指令成功后,ESP32进入指定长度数据发送的状态,可以发送一次数据长度小于Length的数据,发送完后,ESP32会返回AT模式,每次发送数据都要先发AT+CIPSEND=XX(太麻烦了不是?),进入透传后就不需要发,发送指定长度数据请求的指令了。

演示

UDP单播通讯

在这里插入图片描述

UDP透传

  1. 发送
AT+CIPCLOSE		//断开UDP连接

断开UDP连接后再发送

AT+CIPSTART="UDP","192.168.4.2",1000,1002,0		//ESP32重新连接,最后一个参数改成0

重新建立UDP连接

  1. 发送
AT+CIPMODE=1		//进入透传模式

进入透传模式。

  1. 进入透传模式后,发送开始传输的指令即可开始透传
AT+CIPSEND		//开始发送数据

这一步成功后,ESP32的就进入了透传输出数据状态,期间发送AT指令无效

  1. 退出透传,当完成了透传后,不需要透传了,ESP32返回AT指令状态发送
+++	

注意 发送退出透传的指令时,不要带换行

  1. 发送
17.AT+CIPCLOSE	//断开UDP连接

断开ESP32与手机进行UDP单播通讯/透传结束。

演示

UDP单播透传

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/672168.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二章 数据结构(一)——链表,栈和队列与kmp

文章目录 链表栈和队列表达式运算 单调栈单调队列kmp链表练习题826. 单链表827. 双链表 栈和队列练习题828. 模拟栈3302. 表达式求值829. 模拟队列830. 单调栈154. 滑动窗口 kmp练习题831. KMP字符串 kmp虐我一下午 链表 若用链式结构实现链表&#xff0c;效率低&#xff0c;因…

软件开发流程

目录 软件软件开发流程的演变 瀑布模型敏捷模型 XPSCRUMDevOps 1.软件 与计算机系统操作有关的计算机程序、可能有的文件、文档及数据。 软件可以分为两种主要类型&#xff1a; 独立软件&#xff1a;独立软件是一种完整的应用程序&#xff0c;可以直接在计算机或移动设备上…

Android系统安全 — 6.2 Ethernet安卓架构

1. Android Ethernet架构介绍 整个Ethernet系统架构如下图所示&#xff1a; 以太网服务&#xff08;EthernetService&#xff09;的启动与注册流程&#xff1b;应用层调用使能ethernet功能的方法流程来分析&#xff0c;从应用层如何将指令一步一步传到底层kernel&#xff1b;…

SAAS-HRM系统概述与搭建环境

SAAS-HRM系统概述与搭建环境 学习目标&#xff1a; 理解SaaS的基本概念 了解SAAS-HRM的基本需求和开发方式掌握Power Designer的用例图 完成SAAS-HRM父模块及公共模块的环境搭建完成企业微服务中企业CRUD功能 初识SaaS 云服务的三种模式 IaaS&#xff08;基础设施即服务…

使用Windows To Go工具制作你的U盘系统【含下载Windows10系统镜像】亲测已成功23.06.21

WinToGo是一款辅助工具&#xff1a;专为能够让你将系统装进U盘&#xff0c;移动硬盘里&#xff0c;让你在任意电脑都能运行U盘里装的系统&#xff01; 一、下载&#xff0c;安装“Windows To Go”工具 1、下载Windows To Go工具 口袋系统WinToGo: 安装Win 10到U盘 2、双击Wi…

从0到1精通自动化测试,pytest自动化测试框架,assert断言(七)

目录 一、前言 二、assert 三、异常信息 四、异常断言 五、常用断言 一、前言 断言是写自动化测试基本最重要的一步&#xff0c;一个用例没有断言&#xff0c;就失去了自动化测试的意义了。什么是断言呢&#xff1f; 简单来讲就是实际结果和期望结果去对比&#xff0c;符…

三分钟学习一个python小知识2-----------我的对python的类(Class)和对象(Object)的理解

文章目录 一、类&#xff08;Class&#xff09;和对象&#xff08;Object&#xff09;是什么&#xff1f;二、Python类和对象的实现1.定义类2.创建对象3.调用类的属性和方法 三、利用python实现了一个动物的类&#xff08;Animal&#xff09;和其两个子类&#xff08;Cat和Dog&…

年轻人存款难,要攒够多少存款才可以体面的养老,结论亮了

这个情况确实值得我们思考。年轻人的经济压力比较大,所以他们普遍存款比较少。而10万元确实是一个比较大的数目,对于一些年轻人来说可能确实很难达到。 然而,我认为这并不是一个“坎”。我们应该鼓励年轻人理财,增加存款,以便应对未来可能出现的各种经济问题。同时,我们…

定义一个一维数组存放10个整数,要求从键盘输入10个数,对其进行求和、求平均、求最大值/最小值及其位置的下标

目录 题目 分析思路 法一&#xff1a;在主函数直接编程 法二&#xff1a;用 调用函数 实现 代码 法一&#xff1a;在主函数直接编程 法二&#xff1a;用 调用函数 实现 题目 定义一个一维数组存放10个整数&#xff0c;要求从键盘输入10个数&#xff0c;对其进行求和、求…

新华三H3C无线控制器AC对接网络准入实现定制化Portal短信认证

随着企业办公信息化的不断发展&#xff0c;企业内网安全也面临着诸多挑战。在包含了无线 WiFi、有线网络的混合网络环境中&#xff0c;员工或访客、外包人员、合作伙伴等用户在接入网络时&#xff0c;如果无需进行身份验证及访问权限的管理&#xff0c;则很可能给不法分子可乘之…

一起Talk Android吧(第五百四十八回:如何创建垂直版SeekBar)

文章目录 概念介绍创建方法示例程序 各位看官们大家好&#xff0c;上一回中咱们说的例子是"蓝牙广播中的厂商数据",本章回中介绍的例子是" 如何创建垂直版SeekBar"。闲话休提&#xff0c;言归正转&#xff0c;让我们一起Talk Android吧&#xff01; 概念介…

基于深度学习的高精度绵羊检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度绵羊检测识别系统可用于日常生活中或野外来检测与定位绵羊目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的绵羊目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

Java基础知识之异常处理

目录 1.Java 异常处理 2.Exception 类的层次 3.Java 内置异常类 4.异常方法 5.捕获异常 6.多重捕获块 7.throws/throw 关键字 7.1 throw 关键字 7.2 throws 关键字 8.finally关键字 8.1 实例--ExcepTest.java 文件代码&#xff1a; 9.try-with-resources 9.1 try-…

外设驱动库开发笔记54:外设库驱动设计改进的思考

不知不觉中我们已经发布了五十多篇外设驱动的文章。前段时间有一位网友提出了一些非常中肯的建议&#xff0c;这也让我们开始考虑怎么优化驱动程序设计的问题。在这一篇中我们将来讨论这一问题。 1、问题分析 首先我们来分析一下网友提出的几点问题。第一点是说在驱动设计时&a…

[年中总结]真正的精彩都在海里

时间过得可真的是快啊,一眨眼就是六月底了 这半年的经历也是挺多彩 二月底的时候,跟老大提出了离职申请,经过 老大/hr/部门 leader 的谈话之后,依然决定离职 四月底拿到离职证明之后,就出去玩了一圈,六月份刚回来,哈哈哈哈 我不知道有没有人和我一样,非常在意能不能在一份工作…

2023个人简历的范文参考(合集)

2023个人简历的范文参考【篇1】 基本信息 姓名&#xff1a;__ 性别&#xff1a;__ 出生日期&#xff1a;__ 籍贯&#xff1a;__市 目前城市&#xff1a;__市 联系电话&#xff1a;__ E-mail&#xff1a;__ 应聘方向 求职行业&#xff1a;金融/投资/证券&#xff0c;银行&#x…

Python 标准库-CSV 文件读写

目录 【1】读取CSV 【2】字典方式写入 【3】常用自定义 csv --- CSV 文件读写 — Python 3.10.11 文档 涉及方法&#xff1a; csv.DictReadercsv.DictWriter 【1】读取CSV def readToCsvFile(csv_path, u_delimiter,, u_doublequoteTrue):read_file []try:with open(cs…

计算机网络23年6月期末复习【更新】

计算机网络23年6月期末复习 题型分布 循环冗余码&#xff08;CRC校验码&#xff09;子网划分IP数据报分片滑动窗口拥塞避免和快速重传TCP三次握手和四次握手路由选择&#xff08;更新路由表&#xff09;1.&#xff08;简答题&#xff09;网络体系结构为什么要采用分层次的结构&…

签约新闻 | 南方传媒携手AMT企源开启各项管理优化工作

南方出版传媒股份公司&#xff08;本文简称“南方传媒”&#xff09;成立于2009年&#xff0c;2016年在上交所挂牌上市&#xff0c;是广东省文化产业第一股、广东文化产业龙头企业、中国出版业重要力量。 在数字化发展浪潮下&#xff0c;为支撑业务数字化转型变革&#xff0c;…

FreeBSD 开源操作系统 30周年纪念特刊

FreeBSD是一种类UNIX操作系统&#xff0c;是经由 BSD、386BSD 和 4.4BSD 发展而来的Unix的一个重要分支。由一些原来 BSD UNIX 的开发者后来转到 FreeBSD 的开发&#xff0c;使得 FreeBSD 在内部结构和系统 API 上和 UNIX 有很大的兼容性。FreeBSD 是开源Free。 FreeBSD 项目庆…