<>一,设备端(下位机)与用户端(上位机)一对一

* 很明显,我们在用开发板学习的时候是这种情况。一个开发板对应一个自己编写的用户端,通过三元组信息进行连接阿里云物联网平台。
* 用户端我采用的是TCP直连的方式,通过MQTT协议,解析connect报文发送给物联网平台,之后再订阅和发布消息。
* 设备端我采用的是STM32的开发板,利用sim800c模块连接阿里云平台。
<>二,如何进行一对多或多对多通信?

*
首先,我们得创造产品和设备,在对规则引擎理解
<https://blog.csdn.net/weixin_44101331/article/details/86244697>一文中,1.3
转发数据这一段中需要把转发的topic定义为无固定的deviceName,这样就可以让一个上位机通过选择目标设备进行发布消息。具体请参考该链接文章:
https://blog.csdn.net/weixin_44101331/article/details/86244697
<https://blog.csdn.net/weixin_44101331/article/details/86244697>

*
然后,在阿里云产品文档:
https://help.aliyun.com/document_detail/96598.html?spm=a2c4g.11186623.6.546.631c279fk47Ddl

<https://help.aliyun.com/document_detail/96598.html?spm=a2c4g.11186623.6.546.631c279fk47Ddl>

中发现,为保障设备安全,物联网平台为设备颁发证书,包括产品证书(ProductKey和ProductSecret)与设备证书(DeviceName和DeviceSecret)。其中,设备证书与设备一一对应,以确保设备的唯一合法性。设备通过协议接入IoT
Hub之前,需依据不同的认证方案,上报产品证书和设备证书,云端通过认证后,方可接入物联网平台。针对不同的使用环境,物联网平台提供了多种认证方案。可以采用一机一密和一型一密的方式。

<>1,一机一密

* 一机一密指每个设备在出厂前已经在设备上烧写了设备三元组,设备使用设备的三元组来连接阿里云IoT物联网平台并进行设备的身份认证。
<>2,一型一密

* 一型一密指设备在出厂前只需要烧写ProductKey和ProductSecret,然后设备连接阿里云IoT物联网平台并进行设备身份认证。
<>3,两者之间的区别

* 设备烧写内容不同:
*
由于每个设备的DeviceName和DeviceSecret都是不一样的,这意味着在产线上生产时每个设备上烧写的身份信息都不同,需要对产线进行一定的改造,确保每个设备的三元组不一样。
*
一型一密烧写的是ProductKey和ProductSecret,这两个参数对于同一个型号的所有设备都是一样的,这意味着在产线上向每个设备烧写的身份信息是一样的,因此烧写过程稍微简单一些
* 过程不同:
* 一机一密在设备上烧写三元组即可;
*
一型一密需要把厂家为每个设备定义设备唯一标识,比如MAC地址或者序列号。然后厂商需要将该唯一标识上传到阿里云IoT物联网平台,当设备连接阿里云IoT物联网平台时,云平台需要判断设备的唯一标识是否在云端已登记,如果没有那么认证将失败。

注:产品使用一型一密认证方式认证成功后,云端将为这个设备生成DeviceSecret并传输到设备,设备需要将该密码保存起来,即使设备reset也不能清除。因为之后的SDK将会调用该DeviceSecret进行后续的认证。
<>三,一机一密和一型一密怎么操作?

阿里云产品文档有具体操作,如下链接:

* 一机一密 :
https://help.aliyun.com/document_detail/74005.html?spm=a2c4g.11186623.6.638.434f1a42dMtYkH

<https://help.aliyun.com/document_detail/74005.html?spm=a2c4g.11186623.6.638.434f1a42dMtYkH>
* 一型一密 :
https://help.aliyun.com/document_detail/74006.html?spm=a2c4g.11186623.6.639.76155483V4JZIO

<https://help.aliyun.com/document_detail/74006.html?spm=a2c4g.11186623.6.639.76155483V4JZIO>
<>对一型一密的进一步划重点

显然,对于许多工厂的流水线产品,对于安全性要求又不高,设备数量又大,此时采用一型一密最为简便。

* 在已创建产品的产品详情页面,开启动态注册开关。
* 在该产品下,添加设备。添加成功的设备状态为未激活。
因设备激活时会校验DeviceName,建议采用可以直接从设备中读取到的ID,如设备的MAC地址、IMEI或SN号等,作为DeviceName使用。
对于sim800c,在模块上面有IMEI号。或者找模块厂商咨询。
* 使用设备端SDK,设置好了之后,填入ProductKey和ProductSecret,可以测试,自己在产品下创建一个设备A,编译程序后得到Device
Secret。即验证成功,后续将连接云平台。
在云端接口说明
<https://code.aliyun.com/edward.yangx/public-docs/wikis/user-guide/linkkit/Cloud_Interface#%E7%9B%B4%E8%BF%9E%E8%AE%BE%E5%A4%87%E5%8A%A8%E6%80%81%E6%B3%A8%E5%86%8C%28%E4%B8%80%E5%9E%8B%E4%B8%80%E5%AF%86%29>
中,C.1设备身份注册,我们可以看到具体的操作过程。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信