以下部分内容参考:
MQTT使用指导https://support.huaweicloud.com/devg-iothub/iot_02_2200.html
润和MQTT直播视频
http://t.elecfans.com/live/1398.html?room=1
连老师的demo https://bbs.elecfans.com/jishu_2000820_1_1.html
感谢各位老师
本文主要介绍如何配置华为云,以及如何通过润和的DEMO连接华为云。由于华为云上传数据比较大,需要将mqtt-test.c中sendbuf和readbuf改大。我这里从80改到了300。
1、登录华为云,并进入IoT物联网,选择设备接入IoTDA
下图是华为云提供开发者免费测试的地址。我们的设备端就连接到这个地址。
2、当我们需要在华为云上开发一个物联网设备时,首先需要新建一个产品。在左侧选择“产品”
然后右侧红框选择“创建产品“。
产品的基本信息根据自己的需要填写,这里选择的通信协议是MQTT,由于工业物联网设备要求的资源比较有限,所以我选择“二进制码流“的数据格式,产商名字、所属行业、设备类型随意。
3、有了产品之后就需要创建设备,在左侧点选“设备“,点击下面的所有设备就出现当前的设备列表,右侧点选”注册设备“
然后弹出下面这个框,选择刚刚的资源空间,所属产品选择刚刚新建的那个,设备标识码和设备名称任意起,但是需要符合规则,不符合规则也不允许通过。最后填写密钥。
最后会弹出设备创建成功的提示框,这个框不用记,把密钥记住就行了。
确定后设备ID就是刚刚那个框的内容,未激活表示我们的没有连接过。
4、下面就是要获取生成连接信息三要素,(ClientId、Username、Password)。下面这个网址就可以通过我们的“设备ID”和”密钥”生成连接信息。
https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/
连接鉴权接口文档:https://support.huaweicloud.com/api-iothub/iot_06_v5_3009.html
不同的云这个连接鉴权是不同的。
生成的连接信息是设备上要用的,但是现在还不能连接,因为我们的云上还没有
5、使用MQTT的demo后,用串口调试助手发送连接WiFi。连接成功后,使用AT+MQTT_CONN连接华为云,命令如下:
AT+MQTT_CONN=iot-mqtts.cn-north-4.myhuaweicloud.com,1883,ClientID,Username,Password
其中,ClientID,Username,Password这三个参数是上面步骤4生成的。
6、因为我们打算用二进制流的方式,需要在云上进行转换,回到产品界面,点刚刚新建的产品。
(1)首先进行模型定义,下面对话框随意填写,个人认为在数据格式为“二进制流模式”下不是很重要,在“json模式”下比较重要。
(2)弹出的界面添加属性,我添加了两个属性分别为Cond和Temp。
(3)点击“插件开发”选择“图形化开发”
(4)在出现的界面中,选择“新增消息”,消息名称也是随便填写以下
添加了两个字段
添加结果如下,然后点确定
(5)将右侧的两个命令拖拽出来后,会自动连接刚刚的消息,如下图,然后点击右上角的“部署”
至此,云上配置完成,可以回到设备界面,监测上传数据了。
7、MQTT设备想要向云上传数据,需要“发布主题”信息。向华为云上传数据发布的主题格式如下“$oc/devices/", username, "/sys/properties/report”,如何需要自行替换username。关于华为云的Topic,参考https://support.huaweicloud.com/api-iothub/iot_06_v5_3004.html
发送命令
我发了20,由于串口调试助手53实际是按照字符串发的,实际上就是ASCII码值,50和48。这时看云上的数据