002-STM32+ESP8266+AIR202/302基本控制方案(阿里云物联网平台)-设备连接阿里云物联网平台使用自定义Topic实现数据上报和数据下发

<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当前并没有什么实际的应用.

后面章节使用物联网平台提供的其它功能以后便会有实际的应用.

原文地址:https://www.cnblogs.com/yangfengwu/p/13561018.html