阿里云物联网平台基于MQTT通道的设备动态注册

10 篇文章 1 订阅
订阅专栏
2 篇文章 0 订阅
订阅专栏

更新时间:2020-10-23 10:34:14

本页目录

直连设备可通过MQTT通道进行动态注册,即使用一型一密连接认证方式连接物联网平台。设备先基于TLS建立与物联网平台的连接,获取TCP连接所需信息,再断开连接,并重新建立TCP连接进行通信。下面介绍动态注册流程。

前提条件

已完成 一型一密文档中的以下步骤:

  1. 创建产品。
  2. 开启动态注册。
  3. 添加设备。
  4. 产线烧录。

动态注册流程

流程

  1. 设备发送CONNECT报文,报文中包含动态注册参数,请求建立连接。

    说明 目前,动态注册只支持使用TLS建立连接,不支持TCP直连;动态注册时,云端不会校验MQTT连接的Keep Alive(保活时间),因此可以不用设置Keep Alive时间。

    • MQTT连接域名:
      • 对于您购买的实例,接入域名请在 物联网平台控制台,找到对应的实例,单击实例进入实例详情查看。
      • 公共实例的连接域名为${YourProductKey}.iot-as-mqtt.${YourRegionId}.aliyuncs.com:1883。 其中:
        • ${YourProductKey}:请替换为设备所属产品的ProductKey。可登录 物联网平台控制台,在对应实例的设备详情页获取。
        • ${YourRegionId}:请参见 地域和可用区替换为您的Region ID。
    • CONNECT报文的动态注册参数:
      • 当设备属于您购买的实例,且使用 一型一密免预注册认证方式时,动态注册参数如下:
        mqttClientId: clientId+"|securemode=-2,authType=xxxx,random=xxxx,signmethod=xxxx,instanceId=xxxx|"
        mqttUserName: deviceName+"&"+productKey
        mqttPassword: sign_hmac(productSecret,content) 
      • 当设备属于公共实例,或使用 一型一密预注册认证方式时,动态注册参数如下:
        mqttClientId: clientId+"|securemode=2,authType=xxxx,random=xxxx,signmethod=xxxx|"
        mqttUserName: deviceName+"&"+productKey
        mqttPassword: sign_hmac(productSecret,content) 

      参数说明:

      • mqttClientId

        参数取值中包含的详细参数如下表所示。

         
        参数说明
        clientId客户端ID。建议使用设备的MAC地址或SN码,长度在64个字符内。
        securemode安全模式。
        • 一型一密预注册认证方式:固定取值为2。
        • 一型一密免预注册认证方式:固定取值为-2。
        authType一型一密认证方式,不同类型将返回不同的认证参数:
        • register: 一型一密预注册认证方式,返回DeviceSecret。
        • regnwl: 一型一密免预注册认证方式,返回DeviceToken、ClientID。
        random随机数。您自定义随机数。
        signMethod签名算法。目前支持hmacmd5、hmacsha1、hmacsha256。
        instanceId实例ID。请登录 物联网平台控制台,在实例概览页面查看。
      • mqttUserName

        组成结构:deviceName+"&"+productKey

        示例:device1&al123456789

      • mqttPassword

        计算方法:sign_hmac(productSecret,content)

        其中,content的值是提交给服务器的必需参数和值(deviceName、productKey、random)按照字母顺序排序、拼接(无拼接符号)的字符串。然后,将content的值通过mqttClientId中的signMethod指定的算法,使用产品的ProductSecret进行签名计算。

        示例:hmac_sha1(h1nQFYPZS0mW****, deviceNamedevice1productKeyal123456789random123)

  2. 物联网平台返回CONNECT ACK。

    返回0,则表示建连成功,即动态注册成功。

    建连失败,则需根据返回的错误码,确定错误原因。

    设备发送连接请求后,物联网平台返回的结果状态码和说明如下表。

     
    结果码消息说明
    0CONNECTION_ACCEPTED动态注册成功。
    2IDENTIFIER_REJECTED参数错误。原因可能是:
    • 必填参数缺失或格式错误。
    • 您使用了TCP直连注册。动态注册只能使用TLS通道。
    3SERVER_UNAVAILABLE云端错误。请稍后再试。
    4BAD_USERNAME_OR_PASSWORD动态注册失败,鉴权未通过。

    请检查传入的mqttUserName和mqttPassword取值是否正确。

  3. 建立连接后,物联网平台使用Topic:/ext/register,根据CONNECT报文中的authType,返回不同的认证参数:

    说明 设备无需订阅推送证书的Topic。

    • authType取值为register:一型一密预注册认证方式,返回DeviceSecret。

      物联网平台推送的消息Payload格式如下:

      {
        "productKey" : "xxx",
        "deviceName" : "xxx",
        "deviceSecret" : "xxx"
      }
    • authType取值为regnwl:一型一密免预注册认证方式,返回ClientID、DeviceToken。

      物联网平台推送的消息Payload格式如下:

      {
        "productKey" : "xxx",
        "deviceName" : "xxx",
        "clientId" : "xxx",
        "deviceToken" : "xxx"
      }
  4. 设备收到并保存DeviceSecret,或ClientID和DeviceToken的组合,断开当前MQTT连接。

    设备可以通过发送DISCONNECT报文或直接断开TCP连接,断开当前连接。

    如果设备未断开此连接,15秒之后,物联网平台会主动断开连接。

    如果您使用Eclipse Paho MQTT客户端,设置MqttConnectOptions.setAutomaticReconnect(false)关闭自动重连。否则,注册成功并TCP断连后,重连逻辑会发起新的动态注册请求。

  5. 设备使用DeviceSecret,或使用ClientID和DeviceToken的组合,再次发起MQTT连接请求,建立设备与物联网平台的连接,进行消息通信。详情请参见 MQTT-TCP连接通信。
阿里物联网套件MQTT设备自动注册的方法及流程
tina622的博客
05-23 5333
1. 首先在物联网控制台下面创建一个产品;产品类型选择“网关”;2. 通过控制台在网关下面先添加一个设备 DeviceName = devicename3. 获得设备的三元参数:   ProductKey    = pk;   DeivceName   = devicename;   DeviceSecret   =..........;4. 获得该设备的登录名及状态;  ClientID = d...
如何用MQTT网关快速接入阿里云IOT
yang53559409的博客
11-06 1913
深圳市钡铼技术有限公司推出的BL102,是采集西门子,欧姆龙,三菱,台达,AB,施耐德等主流PLC及Modbus,DT/L645协议设备数据,简易的操作后就能将这些设备数据接入阿里云IOT,项目集成商就可以调用阿里云IO的API获取数据,做云端应用,可以大大的减少数采解析在到平台设备接入的工作量,至少可以减少9/10的项目周期,是否心动了? 网关添加LAN口设备S7-200SMART (1)点击“LAN”,点击鼠标右键,点击“添加”,弹出设备配置框。(2)设备名称:命名设备,如:因采...
阿里云物联网平台MQTT设备接入
xue_nuo的博客
07-29 1930
从官网下载C Link SDK Linux示例 先拿到Linux平台去熟系一下功能,之后再考虑移植。 官方推荐Ubuntu16,我这里随便用的一个Linux发行版就可以兼容 64位和32位都一样 选择环境 SDK目录下,确定编译平台,不用每次都选 make reconfig 如下选择4)config.ubuntu…x86 编译Makefile make 如果脚本报错不能识别bc命令就去安装一下 sudo apt install bc 产物 demo程序路径 output/release/bin li
mqtt的消息处理通道没有注册成功
记录日常码代码的点点滴滴
04-19 97
配置mqtt时订阅发布等其它组件没有被spring管理
ML307S使用MQTT连接阿里云---动态注册连接教程
m0_56991046的博客
12-27 2312
在之前使用中国移动的ML307S物联网芯片去连接阿里云时,因为网上资料十分匮乏并且厂家提供的资料也十分有限,所以走了许多弯路,所以再此将自己的经历总结出来帮助大家动态注册又称为一型一密注册,是阿里云的物联网设备登录方式之一。一型一密认证方式下,同一产品下所有设备可以烧录相同的设备标志信息,即所有设备包含相同的产品证书(ProductKey和ProductSecret)。设备发送激活请求时,物联网平台会进行身份确认,认证通过后,下发设备接入所需信息。
MQTT连接阿里云IoT(四)
luoyayun361的专栏
03-18 2661
概述 前一篇文章我们介绍了设备密钥的认证方式,那么这里重点来看如何通过Qt的HTTP接口来实现一型一密动态注册的流程。 一型一密动态注册 【官网介绍】 直连设备使用一型一密动态注册的流程: 在物联网平台注册设备,并获取产品证书(ProductKey和ProductSecret)。预注册设备时,可以使用设备的MAC地址或SN序列号等作为DeviceName。 在控制台开启设备所属产品的动态注册开...
IoT 设备免烧录三元组快速上云——实践类
AIoT2688的博客
10-12 822
简介: 适用于:1.设备出厂免烧录,2.存量设备迁移场景,3.Android系统设备上云
04 阿里云物联网平台.pdf
09-10
阿里云物联网平台设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制。物联网平台消息通信流程图如下。实现在...
STM32连接阿里云代码
最新发布
05-30
2. MQTT或HTTP客户端代码:用于连接阿里云物联网平台并进行数据交互。 3. SSL/TLS安全相关代码:实现加密通信。 4. 数据处理函数:对收到的云端数据进行解析和处理,以及封装本地数据准备发送。 5. 示例应用程序:...
物联网平台具备哪些能力.pdf
03-16
它提供了丰富的设备端SDK、驱动和软件包,以便各种设备和网关轻松接入阿里云。针对不同的网络环境,平台提供了多种设备接入方案,如蜂窝网络(2G/3G/4G/5G)、NB-IoT、LoRaWAN和Wi-Fi等。同时,支持MQTT、CoAP和...
基于物联网的智能窗户系统设计实现.docx
12-08
ESP8266模块采用MQTT协议连接阿里云物联网平台,实现数据的上传和下载。用户端的微信小程序则实时显示环境信息,并接收用户的控制指令,通过ESP8266将指令转化为电机控制信号。 硬件设计方面,STM32F429微控制器因...
基于STM32和云平台的智能门锁控制系统的设计.rar
09-29
常见的云平台如AWS IoT、Azure IoT Hub或阿里云IoT,它们提供安全的身份验证、设备管理、消息传输和数据处理服务。通过MQTT、CoAP等物联网协议,STM32可以安全地连接到云端,实现远程解锁、状态查询等功能。 3. ...
EC20模块AT指令MQTT连接阿里云IoT,HTTP接口来实现一型一密动态注册的流程。
m0_37777700的博客
05-29 1万+
EC20模块AT指令MQTT连接阿里云过程 //阿里三元组信息 #define ProductKey "a1YjLdisiey" #define DeviceName "20173166054" #define DeviceSecret "t8OEnv0zL6Z9C01EYqnztN6OLWXE37nB" char MQTT_Land(void) { char flag=0; char AT_QISEND[120]; App_Printf("\r\nMQTT 开始配置\r\n");
广和通l610二次开发|广和通l610 CAT.1模组opencpu开发《三》阿里云物联网平台mqtt动态注册
SunnyBit的博客
08-21 3319
阿里云基于MQTT通道设备动态注册
基于MQTT通道设备动态注册
HaaS技术社区的博客
11-22 1773
物联网平台为产品开启动态注册功能后,直连设备可使用一型一密安全认证方式完成动态注册,通过MQTT通信协议连接物联网平台设备先基于TLS建立与物联网平台的连接,获取MQTT连接所需的设备密钥,再断开连接,然后重新建立MQTT连接进行通信。本文介绍动态注册流程。 前提条件 已完成一型一密文档中的以下步骤: 注意目前仅华东2(上海)地域支持设备进行一型一密免预注册认证。 创建产品。 开启动态注册。 添加设备。 产线烧录。 动态注册流程 设备发送CONNECT报文,报文中包含...
ESP8266在阿里云物联网实现动态注册的注意事项
ct_1994的专栏
10-24 1290
最近在做ESP8266的阿里云物联网连接,在动态注册这一块卡住了,因为动态注册要求必须使用TLS安全通道。我在这里分享一下在这一块踩的坑: 阿里云物联网TLS只需要单向认证。比起双向认证,单向认证可以省下大量内存,在烧录证书时只需要CA证书即可,espconn_secure_cert_req_enable这个函数就不需要打开了。证书在阿里云官网下载(根证书)。 安全通道使用缓存大小设置在6...
腾讯云,物联网通信产品,动态注册步骤
Ning的博客
07-06 1001
使用apipost,post方法。 test_sign.py脚本生成sign λ test_sign.py sign_content: POST ap-guangzhou.gateway.tencentdevices.com /device/register hmacsha256 1625543789 542787393 770efeee110dca75a929ceab8b94ff1c5b67351e6db8da1a01ad0a275ce22d93 sign_base64: b’VhXqxMUBJxx4F
阿里云IOT设备数据接入 (从阿里云IOT云平台获取设备数据)
菜鸟联盟
01-02 2万+
阿里云IOT云平台获取设备数据 前言: 这篇文档主要讲述的就是当设备的数据发送到物联网套件之后,用户的服务端如何获取设备 的数据。 通过阅读阿里云IoT文档,我们了解到队列中消息结构体如下: { "payload": "Base64 Encode的数据", "messagetype": "status", "messageid": 99...
MQTT学习】MQTT连接阿里云教程
热门推荐
冯宇的博客
06-03 5万+
打开阿里云官网https://www.aliyun.com/,注册并登录 找到右上角的控制台点进去 点击左侧的栏目找到“产品与服务”,在里面继续找到“应用与服务下面的”“物联网平台” 依次找到《设备管理》《产品》,然后“创建产品” 这里面有些内容需要根据自己的情况填写 主要的注意结点类型和联网里面的选项,产品名称,分类等都没什么说的,完成创建后就可以继续创建设备了。 这里提...
阿里云物联网平台 连接mqtt
04-25
阿里云物联网平台阿里云提供的一种物联网解决方案,用于连接和管理物联网设备。它支持多种通信协议,包括MQTT(Message Queuing Telemetry Transport)。 MQTT是一种轻量级的发布/订阅消息传输协议,适用于物联网...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 爱快软路由安装Docker插件 21893
  • C语言 汉字ASCII转Unicode 11618
  • Notepad++下载地址 10200
  • 嘉立创在线下单技术指导---AD输出Gerber文件步骤 9715
  • Node-Red的全局变量 9391

分类专栏

  • Node-Red 26篇
  • 经验 5篇
  • MDK 2篇
  • 合宙 17篇
  • lua 9篇
  • 物联网 10篇
  • Arduino 15篇
  • Nodemcu 14篇
  • STC8A 8篇
  • node 3篇
  • modbus 2篇
  • ubuntu 5篇
  • AIR724 5篇
  • PIO 4篇
  • ESP8266 16篇
  • onenet 6篇
  • 程序算法 2篇
  • STC15 7篇
  • EMQ 2篇
  • 阿里云 2篇
  • Blynk 3篇
  • MQTT 1篇
  • USB
  • CubeMx 4篇
  • LL 1篇
  • Rt-Thread 2篇
  • RT-THREAD Nano 4篇
  • 码云
  • Altium designer 1篇
  • A
  • GPS 4篇
  • LWIP 1篇
  • Notepad 1篇
  • wemos
  • JavaScript 1篇
  • express 1篇
  • JAVA 1篇
  • ESP32 1篇
  • PLC
  • 单片机 13篇
  • python 4篇
  • 树莓派 10篇

最新评论

  • Fusion360修改嘉立创EDA专业版生成的3D外壳文件

    ty_xiumud: 非常巧妙的想法,感谢博主表情包

  • Luatos Air700 改变BL0942串口波特率

    armcsdn: 这个函数是合宙luatos的函数,你要研究的话要看他们的源码。

  • Luatos Air700 改变BL0942串口波特率

    Disy-ycl: 大神你好就是bitRead这个函数您怎么实现的呢

  • PY32F002B从压缩包到实现串口printf输出

    armcsdn: 我用的Luatools_v2.exe。https://cdndownload.openluat.com/Luat_tool_src/last_release/Luatools_v2.exe 你也可以用SSCOM 链接 http://www.daxia.com/

  • PY32F002B从压缩包到实现串口printf输出

    weixin_73282065: 你好博主大大,请问你用的什么串口软件

大家在看

  • 嵌入式(肆)
  • 熵编码-熵编码概述 150
  • C++ | Leetcode C++题解之第260题只出现一次的数字III
  • 自学Java第11Day 148
  • Linux内核编译 459

最新文章

  • Fusion360修改嘉立创EDA专业版生成的3D外壳文件
  • CH32V003软件模拟SPI驱动XL2400P
  • PY32F002B从压缩包到实现串口printf输出
2024年2篇
2023年17篇
2022年47篇
2021年15篇
2020年70篇
2019年22篇
2017年3篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码大运建网站丹竹头网站搜索优化福田百度网站优化永湖英文网站建设塘坑网站搭建东莞企业网站改版双龙百度网站优化福永关键词按天计费观澜网站制作石岩网站推广工具吉祥百度爱采购爱联百度标王大鹏网站定制惠州关键词按天收费福田SEO按天收费爱联百度爱采购石岩网站改版大芬至尊标王龙华企业网站建设沙井网站优化荷坳网站制作西乡网站推广方案永湖SEO按天计费南澳网站优化排名大鹏英文网站建设惠州企业网站设计坂田网站制作设计福永网站搜索优化坂田英文网站建设平湖标王歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化