问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用ESP8266连接阿里云并实现数据的收发(完整版)

创作时间:
作者:
@小白创作中心

使用ESP8266连接阿里云并实现数据的收发(完整版)

引用
CSDN
1.
https://blog.csdn.net/qq_59029490/article/details/137987959

本文将详细介绍如何使用ESP8266模块连接阿里云平台,并实现数据的收发。内容包括硬件准备、固件烧录、阿里云平台配置以及实际数据收发的全过程。

一、ESP8266烧录固件

由于要连接阿里云平台需要使用到相关MQTT AT指令,而我们所购买的ESP8266模块都带了乐鑫官方的AT固件,发送与MQTT相关的AT指令均会返回ERROR。因此需要给ESP8266升级固件。

烧录固件参考:ESP8266如何使用MQTT协议连接阿里云平台-CSDN博客,需注意必须使用数据线,当数据线将esp8266与电脑usb连接后需能检测到COM口。(小编开始用的三合一数据线无法检测到COM口)

二、阿里云物联网平台产品及设备的创建

在浏览搜索阿里云并登录,在首页面选择产品-物联网-物联网平台即可进入物联网平台。

进入物联网平台后选择管理控制台

激活并进入公共实例

进入公共实例后选择设备管理-产品-创建产品

产品名称任意,所属品类为自定义品类,节点类型、连网方式、数据格式保持默认。然后确认

然后点击产品,找到对应的产品名称然后查看

点击功能定义-前往编辑草稿

第一步选择添加自定义功能,第二部按照自己的需求填写自定义功能的参数并确认,第三步发布上线(在弹窗中打勾并确认)

然后点击设备-添加设备,选取自己创建的产品名称,DeviceName按自己需求填写,然后确认并完成。

三、连接阿里云平台

通过ESP8266连接阿里云平台需要发送以下的AT指令,wi-fi名密码根据自己所连WiFi确认

AT+RST                       //重启模块
AT+CWMODE=1                  // 设置为Station 模式
AT+CWJAP="Wi-fi名","密码"    //连接Wi-fi
AT+MQTTUSERCFG=0,1,"NULL","username","passwd",0,0,"" 
                            //配置MQTT用户属性
AT+MQTTCLIENTID=0,"clientId"                     
                            //设置 MQTT 客户端 ID,"clientId"参数需在每一个逗号前加/
AT+MQTTCONN=0,"mqttHostUrl",1883,1
                            //连接 MQTT Broker  

其中的username、passwd、clientId及mqttHosturl参数在设备-设备信息-MQTT连接参数中找到

使用串口助手发送响应的AT指令

发送完上述AT指令后设备成功在线

四、阿里云实现数据的收发

4.1 阿里云实现数据的接收

通过MQTT协议收发数据需要配置相应的topic,可以在产品-Topic类列表-物模型通信Topic中进行查看。选择设备属性设置(订阅Topic)与设备属性上报(发布Topic)。需注意其中的${deviceName}需改为设备名称。

对应的MQTT上传数据的订阅与发布命令为:

AT+MQTTSUB=0,"订阅Topic类",1              //订阅 MQTT Topic
AT+MQTTPUB=0,"发布Topic类","数据",1,0     //发布 MQTT 消息(字符串)  

在设备-物模型数据可以看到上传的数据

4.2 阿里云实现数据的发送

4.2.1自定义Topic发送数据

在产品-Topic类列表-自定义Topic中找到订阅Topic

发送相应的订阅Topic的AT指令

在设备-Topic列表下,选择发布消息

填写消息内容,点击确认。串口助手会接收到数据。

4.2.2在线调试发送数据

在监控运维-在线调试中选取相应的设备,然后输入参数点击设置,即可发送数据。

AT指令参链接:MQTT AT Commands — ESP-AT 用户指南 文档 (readthedocs-hosted.com)

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号