001-STM32F103+260Y基本控制篇(OneNET平台)-单片机使用MQTT接入OneNET-MQTT物联网套件(模组内置MQTT)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLBC26AA/onenet.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
前言
这节测试下使用STM32+BC260Y 接入接入OneNET|MQTT物联网套件(模组内置MQTT)
当前的各种物联网平台整体思想是提供一个网页端让用户去注册设备
这个设备就对应一个MQTT客户端,然后把这个设备的信息放到单片机/APP/微信小程序上使用.
单片机/APP/微信小程序等就作为了客户端接入了物联网平台.
物联网平台应该说是对设备进行管理的平台.
开通阿里云物联网平台
https://open.iot.10086.cn/
1.选择MQTT物联网套件(如果没有开通请自行开通)
创建产品(并在产品下面添加设备)
1.咱们做产品的时候,一般都是有个产品.
2.设置下产品的名称
3.产品弄好了,就要在产品下面挂上设备
4.设置下添加的设备的名字
使用单片机连接
1.安装好模组(单片机串口2和模组串口连接,PA8连接模组RST引脚)
2.单片机使用串口1打印串口日志(115200)
3,打开这节的单片机程序
4,需要修改下面的三个参数(设备名称,产品ID,设备秘钥)
提示:产品概况里面可以看到产品ID
提示:点击设备列表,点击详情,可以看到另外的两个参数
6.然后下载程序到单片机,查看日志
设备连接上以后每隔一段时间上报温湿度数据
7.平台端展示数据
点击一下那个控件,可以看到历史数据
8.平台端发送数据控制继电器
{"data":"switch","bit":"1","status":"1"} //我定义的单片机收到这个命令是控制继电器吸合
{"data":"switch","bit":"1","status":"0"} //我定义的单片机收到这个命令是控制继电器断开
OneNET - MQTT物联网套件接入说明(使用MQTT调试助手接入)
提示!先把开发板断电, 一个设备就作为一个MQTT客户端,也只能一个设备使用
提示!先把开发板断电, 一个设备就作为一个MQTT客户端,也只能一个设备使用
提示!先把开发板断电, 一个设备就作为一个MQTT客户端,也只能一个设备使用
1,点击开发文档
2,这是MQTT地址
3,这里说了一大通
实际就是 MQTT的ClientID使用的是设备名称
MQTT的用户名使用的是产品ID
MQTT的密码需要计算得到
4,下载个计算MQTT密码的软件
5,填写参数,生成密码
res这栏的拼接是这样子的 products/{pid}/devices/{device_name}
然后MQTT的参数就全了
MQTT的地址 : mqtts.heclouds.com 1883
MQTT的ClientID : test_mqtt
MQTT的用户名 : 573021
MQTT的密码 : version=2018-10-31&res=products%2F573021%2Fdevices%2Ftest_mqtt&et=4828478400&method=sha1&sign=YD94MjIqdzApUPbkjb08Lkpoqi0%3D
6,使用MQTT调试助手测试连接
填入相应的参数,点击连接
6,使用MQTT调试助手发送数据点给平台
发送的主题: $sys/替换为产品ID/替换为设备名字/dp/post/json
发送的消息: {"id":1,"dp":{"pm2.5":[{"v":50}]}} //格式可以看上面的官方文档解释
6,刚才控制继电器是使用的
这个不好测试, 控制继电器的时候可以看单片机里面的日志,就可以看到具体执行流程
单片机程序说明
1,串口2接收模组数据的时候,单独使用一个缓存,缓存了网络接收的数据
2.控制模组连接MQTT服务器
2.控制模组连接MQTT服务器,订阅主题
8.接收MQTT消息
用户可以在mqtt_into_data函数里面处理消息
9.发送MQTT消息
结语
再重复一句话,在物联网平台上面,一个产品就是一个MQTT客户端.
如果客户想多个设备连接云平台就需要自己多创建几个设备.