14.Wifi模组(ESP8266)

article/2025/7/22 5:02:41

目录

WIFI 模组讲解

WIFI 模组和 TCP/IP 的关系

常见的 WIFI 模组ESP8266

ESP8266 相关 AT 指令集介绍

        AT 指令集的格式

        指令分类 1

        指令分类 2

        与 ESP8266 通信,串口参数如何配置

ESP8266WIFI 设置 3 种无线通信模式:

开发板相关的硬件电路

作为客户端,连接本地服务器/远程服务器

        如何确定需要发送哪些 AT 指令

        ESP8266 的调试

                调试的目的

                直接使用 USB 转 TTL 和模块调试通信

                不依赖程序和 ESP8266 模块调试通信--借助板子的 CH340

                依赖程序的调试

        验证一些基本的指令 -- 是否开启回显

        验证查询、测试、设置、执行指令等

        连接指定的服务器 – 安信可透传云

                透传发送数据到平台

                非透传发送数据到平台

        透传和非透传的区别

        从调试到编程--调试获取的信息


WIFI 模组讲解

WIFI 模组和 TCP/IP 的关系

        TCP/IP 是一种网络协议,现在很多网络模块是集成了 TCP/IP 协议。就像单片机集成了硬件 SPI,硬件 IIC,和串口等。

常见的 WIFI 模组ESP8266

        

        乐鑫:生产芯片,以无线为主,ESP8266 ESP32

        安信可:在厂家基础上,二次开发

ESP8266 相关 AT 指令集介绍

        AT 指令集是一个通用的说法:WIFI 模块,4G 模块,CAT1 模块,NB_IOT,蓝牙模块..

        AT 指令集的格式

                指令格式:(AT)开头 + 数据 + (回车+换行)结尾

                        串口传输方式:UART 的 TTL

                        默认波特率:根据从设备确定

                字符串:”AT+数据+回车+换行”

        指令分类 1

        指令分类 2

                ESP8266 指令集主要分为:基础 AT 指令、 Wi-Fi 功能 AT 指令、 TCP/IP 相关的 AT 指令。

        与 ESP8266 通信,串口参数如何配置

        注意:需要发送新行(\r\n)

ESP8266WIFI 设置 3 种无线通信模式:

        混合模式(同时只能使用一种模式)

        AP 模式 -- 相当于手机释放热点,让别人连接

        STA 模式 -- 相当于手机连接别人的热点

开发板相关的硬件电路

/*结合硬件原理图 ESP8266 接在 UART3PE6 ESP_EN 通用推挽输出 R52 R53 两个上拉电阻未焊接,如果焊接,也可以开漏PB10 USART3_TX 复用推挽输出PB11 USART3_RX 浮空输入*/ 

作为客户端,连接本地服务器/远程服务器

        如何确定需要发送哪些 AT 指令

                最核心的问题:拿到一本 AT 指令集,内部 AT 指令太多了,如何确定要用哪些指令

                1.看文档

                2.找厂家

        ESP8266 的调试

                调试的目的

                有的ESP8266 是焊在板子上,当我们拿到一个新模块,比如说 ESP8266,我们给它供电,他的接口是 TTL,如果想电脑和模块通信,就需要用 USB 转 TTL 跟它通信,通过这个过程,去学习和确定这个模块到底怎么用,确认发哪些指令,确认发的指令对不对,多长时间回复,正确和错误回复是什么内容

                直接使用 USB 转 TTL 和模块调试通信

                1. 用 USB 转 TTL 跟 ESP8266 通信(TTL 电平,交叉)

                2. 根据需要指令,测试完整的配置过程,能够实现功能,证明 AT 指令的顺序是对的

                3. 之后在单片机编程,实现发送 AT 指令的过程

                不依赖程序和 ESP8266 模块调试通信--借助板子的 CH340

                1. 单片机编译下载没有串口 1 收发数据的程序,避免程序操作串口 1 影响-- 直接空工

                2. 接线--目的是让板载的 CH340 直接和 ESP8266 通信

                        PB11(ESP_TX) 接 PA9(CH340_RX)

                        PB10(ESP_RX) 接 PA10(CH340_TX)

                        PE6(ESP_EN) 接 3.3V--模块开机 -- 切记不要接 5V

                3. 串口助手按如下设置

                4. 输入要发送的指令 --点击发送

                注意:光标要放在 T 的后面,不能放下一行

                5. 正确的回复截图

                6. 如果回复 busy --确认第 4 步是否正确

                依赖程序的调试

                1. 将板子上的刚才的三根线都拔掉

                2. 修改串口 1 的初始化中的波特率为 115200

                3. 编写串口 3 的初始化,波特率 115200,开启接收中断和空闲中断,EN 引脚也需要配置。

                4. 编写串口 1 和串口 3 的中断服务函数

                        串口 1 和电脑通信

                        串口 3 和 ESP8266 通信的

                5. 在串口 1 中断服务函数中调用串口 3 发送数据

                        USART_SendData(USART3,data); //调用串口 3 的发送函数,将收到的数据转发给 ESP8266

                        注意:两个串口波特率要一致,都是 ESP8266 要求的波特率 115200

                        注意:使用的发送函数,是库直接提供的,不使用二次封装的单字节

                6. 在串口 3 中断服务函数中调用串口 1 发送数据

                        USART_SendData(USART1,data); //调用串口 1 的发送函数 , 将收到的数据转发给 CH340,CH340 接电脑

        验证一些基本的指令 -- 是否开启回显

        验证查询、测试、设置、执行指令等

        连接指定的服务器 – 安信可透传云

                透传发送数据到平台

                        1. 按下复位,模块重启

                        2. 确定发送哪些指令

                        3. 按照手册第 4 章的顺序发送指令

AT 测试模块AT+RST 重启模块 ,非必须AT+CWMODE=1 设置为 STA 模式AT+CWJAP="Smartisan","12345678" 连接 wifiAT+CIPSTART="TCP","122.114.122.174",33582 连接服务器AT+CIPMODE=1 进入透传模式AT+CIPSEND 开始传输数据+++ 退出透传模式 

                        4. 打开安信可透传云

                                http://tt.ai-thinker.com:8000/ttcloud

                        5. 手机释放热点 -- 热点一定要使用 2.4G 频段,5G 连不上

注意 1:热点一定要是 2.4G 的注意 2:注意一下连接的数量,限制连接数量可能就连不上了注意 3:WIFI 名称不要有中文 

                        6. 修改要连接的参数

                        7. 按照指令顺序依次发送

                        23 25 26 27 28 29 30 34

                        8. 成功平台就会显示 GOGOGO

                重复执行第 7 步就可以重复发送到平台

                        9. 平台下发数据到 ESP8266

                        10. 如果想恢复 AT 指令模式 -- 退出透传

透传:透明传输,配置成透传之后,发的数据无论是否是什么数据,都会发出去

退出透传 发送+++ 并且无换行回车 延时 1s

                        11. 再次发送 AT 指令,就可以正常回复了

                非透传发送数据到平台

                        1. 按下复位键,模块重启

                        2. 确定发送哪些 AT 指令

                        3. 按照手册第 2 章的顺序发送指令

                        4. 打开安信可透传云

                        5. 手机释放热点 -- 热点一定要使用 2.4G 频段,5G 连不上

                        6. 修改要连接的参数

                        7. 按照下面的图片顺序发送指令

                        8. 成功之后,截图

                                注意:AT+CIPSEND=5\r\n 中的 5,表示要发送的数量 ,超过的数据会被截断

                        9. 重复发送,需要重复执行截图中步骤的第 5、6 步

        透传和非透传的区别

                透传:透明传输建立透传之后,ESP8266 收到什么数据,就转发什么数据,即使这个数据是 AT 指令,也转发,不处理。

                非透传模式:永远处于 AT 指令模式

        从调试到编程--调试获取的信息

1. 每一条指令,ESP8266 正确和错误执行回复的什么内容,因为我们编程要检测

2. 每一条指令, ESP8266 需要多长时间反应,才能处理结束。

3. 这条指令正确和错误的回复,分别是什么内容

4. 判断回复的时候,要判断尾巴

5. 上一条指令处理完,再发送新的指令,否则提示 busy

6. 如果指令错误,就会回复 ERROR

/*
发送AT指令检测是否正确回复
参数1 待发送指令
参数2 期望回复
参数3 接收数据存放缓冲区
参数4 超时时间
参数5 是否检测回复
返回值 0 未检测到期望回复
返回值 1 检测到期望的回复
*/
uint8_t Send_CMD_Check_Rec(uint8_t *cmd, uint8_t *ack, uint8_t *buff, uint64_t time_out, uint8_t ack_flag)
{//发之前清除接收缓冲区,正式使用最好不要有这句话ESP_R_Buff_Clear();//发送要发送的指令ESP_SendStr(cmd);//根据是否需要检测回复处理if(ack_flag == 0){//不需要检测,延时对应的时间,返回Delay_ms(time_out);return 1;}while(strstr((char *)Esp.R_Buff, (char *)ack) == NULL){//查找不成功time_out--;Delay_ms(1);if(time_out <= 0){//等待时间,还未查找成功,返回失败return 0;}}return 1;
}

作为客户端,连接时间服务器获取时间

作为客户端,连接心知天气服务器获取天气

作为服务端,处理 AP 模式


http://www.hkcw.cn/article/vQjYUkJHRg.shtml

相关文章

13.三种低功耗和RTC实时时钟

目录 低功耗 低功耗的目的 如何降低功耗 如何测量功耗 STM32 中的电源系统 后备供电区域如何实现始终有电 STM32 中的低功耗 睡眠模式 停止模式 待机模式 三种低功耗模式的编程 睡眠模式 停止模式 待机模式 RTC 实时时钟 RTC 实时时钟的作用 实现实时时钟的必要硬件 …

海军舰艇编队辗转多海域实战化演练 锤炼协同作战能力

南部战区海军某训练中心联合某驱逐舰支队组织渭南舰、玉林舰等多艘舰艇,辗转多个海域,展开多个课目训练,检验编队协同作战能力和指挥员决策水平。在编队航行途中,突然接到上级通报,当前活动海区有“敌”无人艇活动,各舰立即进入战斗状态。渭南舰雷达战位迅速发现并上报不…

贾冰瘦脱相 压力给到沈腾 明星瘦身潮引发热议

5月31日,演员贾冰的妻子发布了一段视频,祝福大家端午节快乐,并配文“从此我家多了个瘦子”。在两人合影中,贾冰明显瘦了很多,评论区里大家都在询问他如何瘦下来的。贾冰妻子回复说,主要是通过少吃多运动的方式,甚至一天只吃一顿饭。贾冰本人也在评论区开玩笑说:“一次少…

PyTorch实战——基于生成对抗网络生成服饰图像

PyTorch实战——基于生成对抗网络生成服饰图像 0. 前言1. 模型分析与数据准备2. 判别器3. 生成器4. 模型训练5. 模型保存与加载相关链接 0. 前言 我们已经学习了生成对抗网络 (Generative Adversarial Network, GAN) 的工作原理&#xff0c;接下来&#xff0c;将学习如何将其应…

C++四种类型转换方式

const_cast,去掉&#xff08;指针或引用&#xff09;常量属性的一个类型转换,但需要保持转换前后类型一致static_cast,提供编译器认为安全的类型转换(最常使用)reinterpret_cast,类似于c语言风格的强制类型转换&#xff0c;不保证安全;dynamic_cast,主要用于继承结构中&#xf…

得物C++开发面试题及参考答案

HTTP/HTTPS 协议的区别及 HTTPS 加密过程 HTTP&#xff08;超文本传输协议&#xff09;是一种用于传输超文本的协议&#xff0c;它是明文传输的&#xff0c;这意味着数据在传输过程中容易被截取和篡改&#xff0c;存在较大的安全隐患。而 HTTPS&#xff08;超文本传输安全协议…

头歌之动手学人工智能-Pytorch 之优化

目录 第1关&#xff1a;如何使用optimizer 任务描述 编程要求 测试说明 真正的科学家应当是个幻想家&#xff1b;谁不是幻想家&#xff0c;谁就只能把自己称为实践家。 —— 巴尔扎克开始你的任务吧&#xff0c;祝你成功&#xff01; 第2关&#xff1a;optim.SGD 任务描述…

RV1126-OPENCV Mat理解和AT函数

一.Mat概念 Mat 是整个图像存储的核心也是所有图像处理的最基础的类&#xff0c;Mat 主要存储图像的矩阵类型&#xff0c;包括向量、矩阵、灰度或者彩色图像等等。Mat由两部分组成&#xff1a;矩阵头&#xff0c;矩阵数据。矩阵头是存储图像的长度、宽度、色彩信息等头部信息&a…

DeepSeek R1-0528模型:五大升级亮点,引领AI推理新高度

在AI技术迅猛发展的浪潮中&#xff0c;模型的迭代升级不断推动着行业的进步。DeepSeek R1-0528模型的推出&#xff0c;犹如一颗重磅炸弹&#xff0c;在AI领域激起千层浪。它究竟有何神奇之处&#xff1f;下面为你揭秘其五大全新升级亮点。 深度思考能力显著提升 DeepSeek R1-05…

司机缺氧离世有5个上学孩子 家庭重担引关注

近日,46岁的河南卡车司机常志荣在青藏高原离世,卡友团队一同将其骨灰接回老家。6月1日,常志荣已经在老家安葬。他去世后,留下了重组家庭的6个孩子,其中5个孩子还在上学。车友任先生透露,常大哥出发青藏线运输前,同行曾建议他至少携带两罐氧气,但他为省下30元费用,最终…

迪士尼情侣和一家三口打架 拍照争执引发冲突

6月1日,浦东公安分局接到报警称迪士尼乐园内发生打架事件。初步调查显示,闫某某(男,22岁)与女友在拍照时,因刘某某(男,36岁)夫妻的女儿进入拍摄画面,双方发生口角并引发肢体冲突,造成闫某某和刘某某互有皮外伤,小女孩未受伤。目前,调查处理工作正在进行中。当天,…

温度计“液泡”是什么,温度计为什么能测温?

温度计“液泡”是什么&#xff0c;温度计为什么能测温&#xff1f; 液体膨胀式温度计介绍 最近&#xff0c;有位小朋友说&#xff0c;他看的一本科普书上说&#xff1a;把温度计插在水里&#xff0c;水分子就会对液泡产生撞击&#xff0c;液泡里面的分子就会跟着动起来&#x…

C++学习过程分享

空指针&#xff1a;int *p NULL; 空指针&#xff1a;指针变量指向内存中编号为0的空间&#xff1b;用途&#xff1a;初始化指针变量注意&#xff1a;空指针指向的内存不允许访问注意&#xff1a;内存编号为0-255为系统占用空间&#xff0c;不允许用户访问 野指针&#xff1a;…

【IC】RTL功耗高精度预测

介绍 美国能源部&#xff08;DOE&#xff09;的一份综合报告“半导体供应链深度潜水评估”&#xff08;2022年2月&#xff09;呼吁将能源效率提高1000倍&#xff0c;以维持未来的需求&#xff0c;因为世界能源产量有限。能源效率是当今设计师的首要任务。能源效率的整体方法必…

美国要求澳大利亚上调军费 提升至GDP的3.5%

当地时间6月1日,美国国防部长赫格塞思在新加坡会见了澳大利亚副总理兼国防部长理查德马尔斯。双方讨论了美澳联盟的关键优先事项。赫格塞思在会谈中建议澳大利亚尽快将国防开支提高到国内生产总值的3.5%。尽管澳大利亚不是北约成员国,美国总统特朗普此前曾多次要求北约成员国…

高反缺氧去世卡友已回老家下葬 留下6个孩子引关注

近日,46岁的河南卡车司机常志荣在青藏高原不幸离世。他的卡友团队一同将其骨灰接回老家,并于6月1日在老家安葬。常志荣去世后,留下了重组家庭的六个孩子,其中五个孩子还在上学。车友任先生透露,常志荣出发前曾被建议至少携带两罐氧气,但他为了节省30元费用,最终只购买了…

亚历山大本赛季两战步行者场均39分 雷霆双胜步行者

NBA总决赛的对阵双方是雷霆和步行者。本赛季两队交手两次,雷霆分别以120-114和132-111取胜。这两场比赛中霍姆格伦都没有出战。亚历山大在这两场比赛中的表现非常出色,场均能够贡献39分、7篮板、8助攻、1抢断和1盖帽,场均罚球次数达到11.5次,真实命中率为71.1%。在面对步行…

六地将有大到暴雨 端午出行需谨慎

中央气象台今日6时继续发布暴雨蓝色预警和强对流天气蓝色预警。福建、广东、广西等六个地区将出现大到暴雨,多地还将遭遇8级以上的雷暴大风或冰雹天气。正值端午假期最后一天,出行前请务必关注天气情况。责任编辑:zhangxiaohua

017搜索之深度优先DFS——算法备赛

深度优先搜索 如果说广度优先搜索是逐层扩散&#xff0c;那深度优先搜索就是一条道走到黑。 深度优先遍历是用递归实现的&#xff0c;预定一条顺序规则&#xff08;如上下左右顺序&#xff09; &#xff0c;一直往第一个方向搜索直到走到尽头或不满足要求后返回上一个叉路口按…

举办中国户外运动展哪个城市较理想

杭州&#xff1a;强劲经济引擎&#xff0c;中国户外运动展的理想之选&#xff01; 为什么是杭州&#xff1f;—— 硬核实力&#xff0c;无可争议&#xff01; 经济活力领跑&#xff1a; 浙江人均GDP超2.5万美元&#xff0c;人均收入与消费全国TOP 1&#xff01;2024年省外人口…