赞
踩
目录
前言 本次我们学习一下STM32F103驱动ESP8266去连接阿里云的实操过程,在次过程中我会详细讲解开发过程中遇到的问题以及面对问题的解决,希望大家在这篇博客里面也有所收获。
本章会从以下的几个方面去进行实操
本次实验板子使用的是野火霸道V2(STM32F103ZET6),
我这有全套资料,需要资料的小伙伴可以@我分享给你们。
本博客内容原创,创作不易,转载请注明
本次使用的模块是ESP8266(-01,-01s型号都适用),接线不用多说,接下来我们来讲解下固件库的刷新,出厂自带MQTT固件库的小伙伴可以跳过去看后面了,出厂没有MQTT库的小伙伴则需要下载自己flash大小的固件库,这样才可以使用MQTT指令去完成后面的操作。
在对固件库进行刷新下载的时候,同学们应该去弄清楚自己的模块Flash究竟是多大的,1M还是4M(可以找厂家去询问,个别的模块可以使用AT+RST的指令去查看)
弄清楚了Flash大小,我们接下来就可以对模块进行一个MQTT固件库的更新了,具体操作如下:
这里提供两种烧录工具的下载方式:
①:安信可科技官网的烧录工具
开发工具清单 | 安信可科技 (ai-thinker.com)
https://docs.ai-thinker.com/tools
②:ESP一键烧写工具(需要这个方法的同学评论区@我,找我拿。我在这里不多赘述)
安信可科技官网的固件库(1M和4M都有)
AT固件汇总 | 安信可科技 (ai-thinker.com)
https://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB
1)打开下载好的烧录工具,按照一下步骤进行操作
提示:如果按下START,一直显示正在等待,那么将你WIFI模块的RST引脚先接上GND再接上3.3V做一个复位操作即可成功烧录
至此,我们以及完成了MQTT固件库的更新,下面我们去进行AT指令的测试
更新好固件库后,我们编写一个简单的程序来测试AT指令,讲串口1和串口2(wifi的串口)进行一个数据的交互即可。(需要的@我拿)
1)重置wifi模块
- AT+RST
- 模块因回复OK,否则需检查
2)设置模块为STA模式
AT+CWMODE=1
3)使模块连接上wifi
AT+CWJAP="WIFI名称","WIFI密码"
注意:若你的模块连接不上wifi,回复EEROR,首先先判断你的wifi是否是2.4G的频段,5G频道ESP8266不可用
4)检查IP地址,看看是否正确连上wifi
- AT+CIFSR
-
- 应回复:+CIFSR:STAIP,"192.168.1.xxx"
- +CIFSR:STAMAC,"48:xx:xx:xx:xx:xx"
- xx:是自己的wifi属性
-
- OK
5)设置时区为:中国早上八点
AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com"
到此,ESP8266的基本配置以及完成,下面就是MQTT协议连接上云平台的操作。
具体的查看
这里有详细的设备创建流程。
在操作前点开自己的云平台——产品——选择设备——查看MQTT连接参数
1) 设置MQTT的登陆用户名与密码
AT+MQTTUSERCFG=0,1,"NULL","username","passwd",0,0,""
2) 设置MQTT的ClientID
AT+MQTTCLIENTID=0,"clientId"
注意:在自己的clientId中,需要在每个逗号前面加一个\符号,串口数据才能正确发送识别,否则会一直回复EEROR
3)设置MQTT接入地址
AT+MQTTCONN=0,"mqttHostUrl",port,1
完成以上三步,设备就连接到了云平台(设备更新为在线)
订阅Topic是指在一个订阅服务中,用户可以选择关注或订阅感兴趣的话题或主题。
通过订阅Topic,用户可以更加精准地获取自己的内容,提高信息的质量和效率。
订阅Topic(类似于公众号)我发的他收得到 他发的我也收得到
1)订阅平台消息
AT+MQTTSUB=0,"/ProductKey/DeviceName/user/get",1
完成订阅后,点击Topic列表,会显示已经订阅的
点击发送消息,串口会收到你发的消息
2)设备上报数据
AT+MQTTPUB=0,"/sys/ProductKey/DeviceName/thing/event/property/post","{params:{\"标识符\":你想要设置的数值}}",0,0
这里的标识符和你自己的设置数值,是你自己创建的,在产品的功能定义板块:
发送指令成功,返回OK后,可以去云平台查看数值是否上传成功:
数据更新成功,如果想看发了多少条数据,可以点击在线调试中的日志去观察
3)云平台对设备的数据的修改(这里我们用LED灯为例子)
这里点击设置:红灯亮,蓝灯灭,STM32串口接收如下:
-
- +MQTTSUBRECV:0,"/sys/ProductKey/DeveiceName/thing/service/property/set",110,{"method":"thing.service.property.set","id":"129111869","params":{"LED_BLUE":0,"LED_RED":1},"version":"1.0.0"}
随后STM32通过ESP8266接收到云平台的命令并响应,红灯亮,蓝灯灭。
串口测试没问题,下载代码到STM32,打开串口调试助手:
对数据进行解析处理(代码太多,需要的@我找我拿源码即可,评论区@我)
也可以GIT下载代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。