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

14.Wifi模组(ESP8266)

目录

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 模式

相关文章:

  • 过滤攻击-隐私保护
  • 设计模式-行为型模式-模版方法模式
  • 【课堂笔记】生成对抗网络 Generative Adversarial Network(GAN)
  • 图像处理篇---face_recognition库实现人脸检测
  • Vue3+SpringBoot全栈开发:从零实现增删改查与分页功能
  • 字节golang后端二面
  • 用dayjs解析时间戳,我被提了bug
  • 在IIS上无法使用PUT等请求
  • 基于机器学习的心脏病预测模型构建与可解释性分析
  • 西瓜书第十章——聚类
  • buuctf-web
  • unix/linux source 命令,其历史争议、兼容性、生态、未来展望
  • 在Flutter中定义全局对象(如$http)而不需要import
  • JVM学习(七)--JVM性能监控
  • Tomcat优化篇
  • ASP.NET Core SignalR 身份认证集成指南(Identity + JWT)
  • Axure组件即拖即用:垂直折叠菜单(动态展开/收回交互)
  • APM32主控键盘全功能开发实战教程:软件部分
  • 【Java基础】Java入门教程
  • DeepSeek 赋能智慧消防:以 AI 之力筑牢城市安全 “防火墙”
  • 临沂网站建设设计公司/seo中文
  • 对政府网站建设的认识/烟台seo
  • 阿里巴巴跨境电商平台/北京seo排名收费
  • 政府机构做门户网站的好处/搜狗排名优化工具
  • 4d网站广告图用什么做的/关键词优化报价怎么样
  • 作风建设方面的网站/免费留电话号码的广告