003-STM32+ESP8266+Air302基本控制篇(阿里云物联网平台)-在阿里云物联网平台上一型一密动态注册设备(STM32+Air302)

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_A/aly.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

说明

此章节代码涉及到SSL加密通信, 用户一定要看完了前面使用SSL通信的章节!

如果设备成批量的出售,谁也不想,一个一个的在网页上添加上设备

然后再一个一个的把设备信息(三元组)烧录到设备!!!!

这节呢就是不需要再烧录或者配置什么三元组,

所有的设备都是一个程序.

设备连接上网络以后自己去注册.

然后设备的名字我规定的是:

如果是WiFi或者以太网设备,就用MAC地址作为设备名字

如果是GPRS设备,就用IMEI作为设备的名字.

 

动态注册的方式(咱使用的是,一型一密免预注册)

先解释几个名词:一机一密 ;一型一密(预注册) ;一型一密(免预注册)

 

一机一密:

就是咱原先测试的在网页上去手动注册设备,然后把ProductKey、DeviceSecret、DeviceName

给设备,然后设备根据这三个信息组合计算下得到mqtt的连接参数,然后就连接通信了

https://help.aliyun.com/document_detail/74005.html?spm=a2c4g.11186623.6.585.3bb41114l1EN77

 

 

一型一密(预注册):

需要咱先在网页上注册上设备,然后把ProductKey、ProductSecret、DeviceName

给设备,然后设备通过https或者mqtt获取DeviceSecret

然后设备根据ProductKey、DeviceSecret、DeviceName这三个信息组合计算下得到mqtt的连接参数,然后就连接通信了

https://help.aliyun.com/document_detail/132111.html?spm=a2c4g.11186623.2.18.59863f82PBOpQr#task-1545804

 

 

 

一型一密(免预注册): 免预注册就是不用在云端自己注册设备,设备连接上网络以后设备自己去注册.

这样子的话,每个设备烧录同样的程序就可以.

不过每个设备程序里面的需要写上产品的ProductKey 和 ProductSecret  的值,这两个值是固定的.

主要是区分开你注册的时候注册到哪个产品下.

然后设备通过https或者mqtt接口注册设备,

注册的时候服务器会返回ClientID和DeviceToken 等参数

最后按照平台规定的组合MQTT参数

MQTT连接的方式注册设备:

https://help.aliyun.com/document_detail/132111.html?spm=a2c4g.11186623.2.18.59863f82PBOpQr#task-1545804

 

 

 

拼接注册返回的参数连接MQTT:

https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11186623.2.16.1c99426ff6ECtQ#concept-mhv-ghm-b2b

 

测试本节一型一密(免预注册)程序

1.打开本节的单片机程序

 

2.登录自己的云平台打开动态注册

注:选择哪个产品,设备就会注册到哪个产品下

 

 

 

打开动态注册

 

 

3,查看并替换自己产品的ProductSecret; ProductKey;

 

 

 

 

 

4,查看并替换自己instanceId

提示:在2021年7月30日之前购买的实例是没有 instanceId 的, 单片机程序里面可保持空

如果有, 则需要填写上.

 

 

 

 

5.编译下载后测试(可以观察日志口)

 

 

 

 

 

 

6.在物联网平台上刷新一下设备列表,会看到注册了一个新设备

 

 

 

 

单片机程序说明

1. 先浏览下阿里云文档

https://help.aliyun.com/document_detail/132111.html?spm=a2c4g.11186623.2.18.59863f82PBOpQr#task-1545804

 

 

 

2.初始化MQTT,注册相应的回调函数

 

 

 

 

 

3.连接阿里云的TCP服务器(MQTT服务器)

先连接TCP服务器(MQTT服务器); 

 

 

 

 

 

上面还使用IMEI作为了, 设备的名字 DeviceName

 

 

 

 

 

3.根据阿里云的文档,组合发送注册设备消息给MQTT服务器

注册设置需要SSL方式通信, 所以需要启用SSL

 

 

 

 

 

发送注册协议

 

 

 

 

 

使用MQTT发送完以后, 服务器会把注册信息通过MQTT发送给设备, 所以咱直接在MQTT接收回调函数里面获取就可以

 

 

 

把获取到的设备注册信息存储到flash, 然后重启

 

 

 

 

4.重启之后呢判断下已经注册了

 

 

 

 

5.设备还是先使用TCP连接服务器,然后使用注册的信息连接MQTT服务器

提示:设备连接通信可以使用SSL也可以不使用SSL

 

 

如果使用SSL, 发送MQTT连接协议之前先初始化好SSL

 

 

根据设备信息,组合发送连接MQTT协议

 

 

 

 

如果是SSL就从SSL里面提取数据, 然后传递给MQTT处理函数处理

 

 

如果不是SSL方式就直接提取网络数据, 然后传递给MQTT处理函数处理

 

 

 

 

结语

有了动态注册以后,咱的设备就可以烧录一个程序

然后只要设备可以连接网络,那么注册的事情就交给设备去做了.

 

posted on 2022-04-10 18:05  广源时代  阅读(174)  评论(0编辑  收藏  举报

导航

支付宝 QQ群