1,因为企业级项目一般都用公有云让设备与云端建立连接,所以我打算先写写这一部分内容,基于阿里云的物联网平台,让STM32与云端建立连接,协议采用的是基于TCP协议进一步封装的MQTT协议。
首先在阿里云物联网平台创建产品
创建完产品之后,我们去创建并添加云端的设备与我们的本地设备绑定
获取设备证书(三元组),包含(ProductKey,DeviceName,DeviceSecret),还有个华东二(上海),这个地区要记一下,这些比较重要,后面写程序也要用到。
2.然后,我们用一个MQTT.fx这个软件模拟一下连接过程,方便后面我们理解与写程序。
在这里我们可以参考一下阿里的帮助文档。善于利用关键资源。
我们能看见如下界面
参考文档来一步步填入关键信息
这里有个地域和可用区,我们之前记下了华东二(上海),现在点进去看看Region ID。
所以我的Broker Address为: a1JOSzpWdAq.iot-as-mqtt.cn-shanghai.aliyuncs.com
Broker Port为:1883,这个基本是MQTT固定的端口
继续往下看Clinet ID
我的Client ID为 : MQTT_01|securemode=3,signmethod=hmacsha1|
采用TCP直连模式 算法类型hmacsha1
然后单击软件第二项User Credentials,去设置User Name和Password。
我的User Name为 : MQTT_01&a1JOSzpWdAq
继续看文档设置我们的密码。
这里一定要注意大小写,因为是不可逆加密算法,我把ID都打成大写会出错(一切认真对照文档,这一步很重要)。
可以用文档给的工具先连接,对照一下,因为这个加密不可逆,解密不了。要先保证能连接上。
然后我们到平台上看看设备有没上线
3.最后我们测试一下通信。
主题在阿里云上可以用自定义的。说白了就是自带的。
订阅了之后我们测下下行数据,就是云端发数据给设备(现在接着网线或者WIFI的是我的电脑设备,单片机同理)
然后我们测一下上行数据,设备端传数据给云端。
发完之后我们去云端的日志看一下是否收到这个消息。
到了最后我们就可以按照这个思路让STM32去连接阿里云平台了。
举部分栗图
后面会详细写连接过程如何实现,这个设备密钥就不打码了,我会删除,因为阿里云物联网平台一个月内使用超过一定数量的消息是要收费的,小于256个字节为一条消息。
Fighting!