<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/aly.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
前言
这一节使用真实的设备接入阿里云物联网平台,然后使用自定义topic实现数据上报和下发.
测试(ESP8266)
1.打开工程
2.根据自己的设备修改如下信息
3.设置连接的路由器
4.别忘了
(STM32) PA3 -- TX (WiFi)
(STM32) PA2 -- RX (WiFi)
5.下载后测试(可以观察日志口)
① 发送连接MQTT协议
② 订阅主题:/a1m7er1nJbQ/Mqtt/user/get (阿里云规定的自定义主题)
③ 这是OTA远程升级信息,这是因为我测试过远程升级,大家应该没有.
④ 每隔一段时间发送温湿度数据给阿里云服务器
发布的主题:/a1m7er1nJbQ/Mqtt/user/update
消息:{"data":"TH","bit":1,"temperature":30,"humidity":68}
6.用户可以在日志服务里面看到上报的数据
7.下发数据给设备
可以发送控制继电器的协议控制继电器
{"data":"switch","bit":"1","status":"1"} //控制继电器吸合
{"data":"switch","bit":"1","status":"0"} //控制继电器断开
测试(Air202)
1.打开工程
2.根据自己的设备修改如下信息
我还是使用的同一台设备的信息.
在阿里云上申请了一台设备以后,就相当于阿里云平台给咱分配了一个MQTT客户端
咱可以拿着这个客户端的信息随意用本地的设备去连接(同一时间只能一个使用).
3, 别忘了用杜邦线连接:
(STM32) A3 --- TX (Air202)
(STM32) A2 --- RX (Air202)
4.下载后按照上面的测试WiFi模块步骤测试即可
源码说明
1.首先大家只要明白这就是一个MQTT客户端连接通信而已.
只要是MQTT连接,其实也就那几个参数
服务器IP地址,端口号,ClientID,用户名,密码,订阅/发布的主题.
只不过在阿里云平台上面把各种信息都固定了,
2.控制WiFi或Air202连接通信的程序基本上完全一样
1.WiFi需要连接路由器
2.然后还有一个是控制连接TCP服务器的指令不一样.
我就拿WiFi代码为例子说明一下通信过程
1.根据阿里云的说明组合下IP地址,ClientID,用户名,密码,订阅的主题,发布的主题,组合计算密码
2.连接TCP服务器(MQTT服务器),发送MQTT连接协议
3.连接成功以后执行连接成功回调函数,订阅主题
4,接收处理消息
5.发布消息
结语
这节演示了下设备使用自定义Topic实现数据上报和数据下发.
不过自定义Topic当前并没有什么实际的应用.
后面章节使用物联网平台提供的其它功能以后便会有实际的应用.