<!-- <p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLAir724UGA/hwy.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p> -->
<iframe frameborder="0" height="1500" name="ifd" scrolling="auto" src="https://mnifdv.cn/resource/cnblogs/ZLAir724UGA/hwy.html" width="100%"></iframe>
前言
这节测试下使用STM32+Air724UG 和 Android 和 微信小程序 接入华为云物联网平台
当前的各种物联网平台整体思想是提供一个网页端让用户去注册设备
这个设备就对应一个MQTT客户端,然后把这个设备的信息放到单片机/APP/微信小程序上使用.
单片机/APP/微信小程序等就作为了客户端接入了物联网平台.
物联网平台应该说是对设备进行管理的平台.
开通物联网平台
自行注册登录和实名认证.
1.产品 -- IOT物联网 -- 设备接入 IoTDA
2.立即使用
创建产品和设备
点击确定保存下设备ID和设备秘钥
这是我的
现在开始找MQTT的各个参数
1.说明
首先记住哈,在平台上注册一个设备,其实就是生成一个MQTT的客户端信息.
咱呢拿着这个信息就可以接入到它的MQTT服务器上.
然后MQTT的信息无非就是:
IP地址, 端口号, ClientID, 用户名, 密码
然后通信的时候还需要知道订阅发布的主题.
2,找找IP地址
https://support.huaweicloud.com/devg-iothub/iot_01_2127.html
所以我的MQTT服务器的IP地址就是
a160b63047.iot-mqtts.cn-north-4.myhuaweicloud.com
3,端口号
上面已经说了,走普通的连接是1883, 走SSL加密是8883
4,接着找,ClientID, 用户名, 密码
鼠标点击下打开在线计算工具
把第一开始添加完设备生成的device_id 和 secret 填写到下面,然后点击生成
现在连接信息齐全了
ClientId: 60b616bf58115902a5f972d1_1234567890_0_0_2021060113
Username(用户名): 60b616bf58115902a5f972d1_1234567890
Password(密码): eb1232f3c601ab4192b021e2ec6163ccc821d44ec290b00d1b7d93bf29bcd10c
使用调试助手作为MQTT客户端接入平台
使用单片机连接
1.关闭测试软件
注:一开始说了,一个设备就作为一个MQTT客户端,也只能一个设备使用.
2.打开这节的单片机程序
3.别忘了安装好手机卡和天线
4.串口1在程序里面作为了日志打印输出口
用户可以打开串口调试助手观察日志
5.修改自己设备的device_id, secret, MqttIp:服务器IP地址
注:hwy_this_time 只要保证是10个字符就可以,默认是不让服务校验时间.
6.然后下载程序到单片机,查看日志
单片机程序说明
1.整体概况
①:控制模块连接TCP服务器(MQTT服务器)
②:计算MQTT密码
③:MQTT消息处理封装包(缓存管理,支持消息等级0,1,2)
④:使用Mbedtls里面的sha256 计算密码文件
2.关于串口1
串口1作为日志打印,发送数据采用中断+环形队列,
在串口2和串口3发送数据的地方把相应数据发给串口1打印出来.
在串口2和串口3接收数据的地方把相应数据发给串口1打印出来.
3.串口2的空闲中断是使用定时器自定义的,为了兼容GSM模组程序
4.串口2接收的数据,传递给配置函数和MQTT数据处理函数
5.正常运行配置函数 ConfigModuleNoBlock
6.控制模组连接TCP服务器,然后发送连接MQTT协议
7.发送连接MQTT协议(关于组合计算密码在最后面会有详细说明)
8.然后就连接上了,并每隔一段时间发送心跳包和服务器保持连接.
关于单片机MQTT密码计算
1.密码计算需要sha256,我单片机移植了Mbedtls
2.密码计算
其实就是 hmacsha256(string data,string key)
data填写 device_secret ; key填写时间
下面的程序是我根据以往的经验写的,用户直接用就可以
该睡觉了.............明天接着写