<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLAir724UGA/aly.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
说明
如果设备成批量的出售,谁也不想,一个一个的在网页上添加上设备
然后再一个一个的把设备信息(三元组)烧录到设备!!!!
这节呢就是不需要再烧录或者配置什么三元组,
所有的设备都是一个程序.
设备连接上网络以后自己去注册.
然后设备的名字我规定的是:
如果是WiFi设备,就用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的连接参数,然后就连接通信了
一型一密(免预注册): 免预注册就是不用在云端自己注册设备,设备连接上网络以后设备自己去注册.
这样子的话,每个设备烧录同样的程序就可以,不用再配置什么三元组了!
不过每个设备程序里面的需要写上产品的ProductKey 和 ProductSecret 的值,这两个值是固定的.
主要是区分开你注册的时候注册到哪个产品下.
然后设备通过https或者mqtt接口注册设备,
注册的时候服务器会返回ClientID和DeviceToken 等参数
最后按照平台规定的组合MQTT参数
MQTT连接的方式注册设备:
拼接注册返回的参数连接MQTT:
测试本节一型一密(免预注册)程序
1.打开本节的单片机程序
2.登录自己的云平台查看自己产品的ProductSecret; ProductKey;
注:选择哪个产品,设备就会注册到哪个产品下
打开动态注册
3.替换自己的 ProductSecret; ProductKey;
4.编译下载后测试(可以观察日志口)
7.在物联网平台上刷新一下设备列表,会看到注册了一个新设备
单片机程序说明
1. 先浏览下阿里云文档
2.打开SSL,连接阿里云的MQTT服务器,发送注册协议
3.根据阿里云的文档,组合发送注册设备信息
注:DeviceName 是获取的模块的IMEI
4.解析处理数据,并把数据存储到flash
5.解析说明
//·µ»ØµÄÊý¾Ý+IPD,166:0?/ext/regnwl{"clientId":"RYzzfPbVqLE6J5H5dvSm000100","productKey":"a1m7er1nJbQ",
"deviceName":"862167052968868","deviceToken":"^1^1602183887248^35fa4b40451a986"}
服务器规定的组合:
mqttClientId: clientId+"|securemode=-2,authType=connwl|"
mqttUsername: deviceName+"&"+productKey
mqttPassword: deviceToken
连接地址: ${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com:1883
7.设备连接阿里云(设备就正常使用了)
结语
有了动态注册以后,咱的设备就可以烧录一个程序
然后只要设备可以连接网络,那么注册的事情就交给设备去做了.
设备的名字一般使用模组的IMEI