1,因为企业级项目一般都用公有云让设备与云端建立连接,所以我打算先写写这一部分内容,基于阿里云的物联网平台,让STM32与云端建立连接,协议采用的是基于TCP协议进一步封装的MQTT协议。

      首先在阿里云物联网平台创建产品

 

python 连接阿里物联网平台 连接阿里云物联网_物联网

 

python 连接阿里物联网平台 连接阿里云物联网_python 连接阿里物联网平台_02

 

python 连接阿里物联网平台 连接阿里云物联网_数据_03

 

python 连接阿里物联网平台 连接阿里云物联网_python 连接阿里物联网平台_04

创建完产品之后,我们去创建并添加云端的设备与我们的本地设备绑定

python 连接阿里物联网平台 连接阿里云物联网_python 连接阿里物联网平台_05

 

python 连接阿里物联网平台 连接阿里云物联网_数据_06

  

python 连接阿里物联网平台 连接阿里云物联网_python 连接阿里物联网平台_07

 

python 连接阿里物联网平台 连接阿里云物联网_User_08

获取设备证书(三元组),包含(ProductKey,DeviceName,DeviceSecret),还有个华东二(上海),这个地区要记一下,这些比较重要,后面写程序也要用到。

python 连接阿里物联网平台 连接阿里云物联网_User_09

python 连接阿里物联网平台 连接阿里云物联网_User_10

2.然后,我们用一个MQTT.fx这个软件模拟一下连接过程,方便后面我们理解与写程序。

python 连接阿里物联网平台 连接阿里云物联网_数据_11

在这里我们可以参考一下阿里的帮助文档。善于利用关键资源。

python 连接阿里物联网平台 连接阿里云物联网_物联网_12

我们能看见如下界面

 

python 连接阿里物联网平台 连接阿里云物联网_物联网_13

 参考文档来一步步填入关键信息

python 连接阿里物联网平台 连接阿里云物联网_物联网_14

 这里有个地域和可用区,我们之前记下了华东二(上海),现在点进去看看Region ID。

python 连接阿里物联网平台 连接阿里云物联网_数据_15

 所以我的Broker Address为:  a1JOSzpWdAq.iot-as-mqtt.cn-shanghai.aliyuncs.com

Broker Port为:1883,这个基本是MQTT固定的端口

继续往下看Clinet ID

 

python 连接阿里物联网平台 连接阿里云物联网_物联网_16

 我的Client ID为 :  MQTT_01|securemode=3,signmethod=hmacsha1|

采用TCP直连模式  算法类型hmacsha1

然后单击软件第二项User Credentials,去设置User Name和Password。

python 连接阿里物联网平台 连接阿里云物联网_数据_17

 

python 连接阿里物联网平台 连接阿里云物联网_数据_18

 我的User Name为 :  MQTT_01&a1JOSzpWdAq

 继续看文档设置我们的密码。

python 连接阿里物联网平台 连接阿里云物联网_物联网_19

这里一定要注意大小写,因为是不可逆加密算法,我把ID都打成大写会出错(一切认真对照文档,这一步很重要)。

 

python 连接阿里物联网平台 连接阿里云物联网_物联网_20

可以用文档给的工具先连接,对照一下,因为这个加密不可逆,解密不了。要先保证能连接上。

 

python 连接阿里物联网平台 连接阿里云物联网_数据_21

 

python 连接阿里物联网平台 连接阿里云物联网_数据_22

然后我们到平台上看看设备有没上线

python 连接阿里物联网平台 连接阿里云物联网_数据_23

 3.最后我们测试一下通信。

python 连接阿里物联网平台 连接阿里云物联网_数据_24

主题在阿里云上可以用自定义的。说白了就是自带的。

python 连接阿里物联网平台 连接阿里云物联网_物联网_25

 订阅了之后我们测下下行数据,就是云端发数据给设备(现在接着网线或者WIFI的是我的电脑设备,单片机同理)

python 连接阿里物联网平台 连接阿里云物联网_User_26

 

python 连接阿里物联网平台 连接阿里云物联网_数据_27

python 连接阿里物联网平台 连接阿里云物联网_User_28

 然后我们测一下上行数据,设备端传数据给云端。

python 连接阿里物联网平台 连接阿里云物联网_python 连接阿里物联网平台_29

 

python 连接阿里物联网平台 连接阿里云物联网_物联网_30

 发完之后我们去云端的日志看一下是否收到这个消息。

 

python 连接阿里物联网平台 连接阿里云物联网_User_31

 

python 连接阿里物联网平台 连接阿里云物联网_User_32

 

python 连接阿里物联网平台 连接阿里云物联网_数据_33

 到了最后我们就可以按照这个思路让STM32去连接阿里云平台了。

举部分栗图

python 连接阿里物联网平台 连接阿里云物联网_物联网_34

python 连接阿里物联网平台 连接阿里云物联网_python 连接阿里物联网平台_35

 

python 连接阿里物联网平台 连接阿里云物联网_python 连接阿里物联网平台_36

 后面会详细写连接过程如何实现,这个设备密钥就不打码了,我会删除,因为阿里云物联网平台一个月内使用超过一定数量的消息是要收费的,小于256个字节为一条消息。

Fighting!