阿里云物联网对接指导文档

这篇具有很好参考价值的文章主要介绍了阿里云物联网对接指导文档。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.平台介绍

阿里云物联网平台是一个集成了设备管理、数据安全通信和消息订阅等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过调用云端API将指令下发至设备端,实现远程控制。

物联网平台与设备、服务端、客户端的消息通信流程如下。

阿里云物联网对接指导文档,物联网,阿里云,物联网

数据通信说明:

上行通信设备通过MQTT协议与物联网平台建立连接,上报数据到平台;平台通过AMQP将数据流转到客户的服务器。

下行通信:通过业务应用下发指令,使业务服务器调用基于HTTPS协议的API接口Pub,给Topic发送指令,将数据发送到物联网平台;平台通过MQTT协议,推送数据到设备端。

2.基本概念介绍

实例、产品和设备类型、认证方式、物模型相关概念详见阿里云官方文档。

阿里云物联网平台的基本概念_物联网平台(IoT)-阿里云帮助中心

阿里云物联网平台常见的认证方式分为一机一密一型一密,具体可参考下图。

阿里云物联网对接指导文档,物联网,阿里云,物联网

图1 一机一密

阿里云物联网对接指导文档,物联网,阿里云,物联网

图2 一型一密

3.对接阿里云物联网流程

本章主要介绍物联网平台的基础能力,包括设备上云、设备上报消息、云端订阅设备消息、云端下发指令到设备等。主要分为以下几个步骤:

  • 创建产品与设备
  • 为产品定义物模型
  • 接入云平台
  • 创建产品与设备

创建产品和设备的前提是创建实例,目前个人账户可以免费创建一个公共实例,创建后界面如下。

阿里云物联网对接指导文档,物联网,阿里云,物联网

点击进入公共实例,左侧的设备管理中可以看到产品和设备两个条目,在左侧导航栏选择设备管理 > 产品,单击创建产品

阿里云物联网对接指导文档,物联网,阿里云,物联网

产品具体的参数选择和范围设置详情可参见阿里云官方文档

如何在物联网平台创建产品_物联网平台(IoT)-阿里云帮助中心

创建产品后在左侧导航栏,选择设备管理 > 产品,在产品列表中,单击产品对应的查看,进入产品详情页。单击相应页签,查看产品信息、Topic类列表,设置自定义Topic、功能定义(物模型)、数据解析脚本、服务端订阅等。

阿里云物联网对接指导文档,物联网,阿里云,物联网

产品是设备的集合,通常指一组具有相同功能的设备。创建产品完成后,需在产品下添加设备,获取设备证书。创建产品同样在左侧导航栏,选择设备管理 > 设备。在设备页面,单击添加设备。在添加设备对话框中,输入设备信息,单击确认。

阿里云物联网对接指导文档,物联网,阿里云,物联网

  • 为产品定义物模型

物模型是阿里云物联网平台为产品定义的数据模型,用于描述产品的功能。主要分为属性(Property,一般用于描述设备运行时的状态)、服务(Service,设备可被外部调用的能力或方法)、事件(Event,设备运行时的事件)三种类型。物模型是产品的概念,定义后该产品下所有设备共享物模型的定义内容,在产品详情页—功能定义—编辑草稿,可以自定义物模型属性也可选择现有模型,配置完成后选择发布生效。

阿里云物联网对接指导文档,物联网,阿里云,物联网

接入云平台

接入云平台的方式可以用模组现有的功能模块连接,也可以通过集成阿里云官方提供的SDK来对接云平台,两种方式均支持MQTT与HTTP协议连接。

  • 利用模组现有功能接入云平台

    • MQTT接入

首先介绍如何利用现有模组的MQTT功能连接阿里云平台,连接MQTT服务器至少需要五个参数,分别是客户端ID、用户名、密码、服务器地址与端口号。如果使用一机一密的方式连接,则上述五个参数可以直接在对应设备详情页查看;若使用一型一密的方式连接(前提是在产品详情页开启动态注册功能),服务器地址与端口号不变,前三个参数需要构造,具体构造方法如下图。

阿里云物联网对接指导文档,物联网,阿里云,物联网

图3 动态注册获取MQTT连接参数

由图可知,连接流程主要分为两个步骤,第一步建立动态注册连接获取到deviceSecret相关参数,第二步是通过获取到的deviceSecret相关参数构造MQTT连接参数接入云平台。

获取deviceSecret

第一步的连接参数构造如下:

mqttClientId: clientId+"|securemode=-2,authType=xxxx,random=xxxx,signmethod=xxxx,instanceId=xxxx|"

mqttUserName: deviceName+"&"+productKey

mqttPassword: sign_hmac(productSecret,content) 

对于mqttClientId,其中clientId为自定义字符串,控制在64个字符以内;securemode为一型一密的安全模式,预注册取值为2,免预注册取-2;authType为一型一密认证方式,register:一型一密预注册认证方式,返回DeviceSecret,regnwl:一型一密免预注册认证方式,返回DeviceToken、ClientID;random为自定义随机数;signMethod签名算法,目前支持hmacmd5、hmacsha1、hmacsha256;instanceId实例ID,请登录物联网平台控制台,在实例概览页面查看。

示例:

mqttClientId:ailink|securemode=2,authType=register,random=789,signmethod=hmacsha1,instanceId=

iot-06z00ez08936hvm|

对于mqttUserName,deviceName和productKey均可从设备详情页获取。

示例:mqttUserName: hello&ggrycEBOq8u

对于mqttPassword,productSecret可在产品详情页获取,而content的值是提交给服务器的必需参数和值(deviceName、productKey、random)按照字母顺序排序、拼接(无拼接符号)的字符串,其中random与mqttClient中配置保持一致。然后,将content的值通过mqttClientId中的signMethod指定的算法,进行签名计算,可利用在线校验计算出mqttPassword。在线计算工具链接https://1024tools.com/hmac

示例:hmac_sha1(Rhkkj6K6BhlhyUW7, deviceNamedevice1productKeyxxxrandom789)

根据上述可计算出mqttPassword,并配置CA证书,下载路径见

使用TLS加密设备和物联网平台的MQTT通信_物联网平台(IoT)-阿里云帮助中心,配置完成后利用模组现有的AT^AIMQTTCFG命令分别配置clientid、username和password,再利用AT^AIMQTTOPEN连接云平台,连接成功后云平台会向Topic为/ext/register主动推送如下格式的数据

{

  "productKey" : "xxx",

  "deviceName" : "xxx",

  "deviceSecret" : "xxxxxx"

}

获取MQTT连接云平台的必要参数

记录第一步获取到的deviceSecret,来进行第二步的MQTT连接参数的构造,格式如下:

mqttClientId: clientId+"|securemode=3,signmethod=hmacsha1,timestamp=132323232|"

mqttUsername: deviceName+"&"+productKey

mqttPassword: sign_hmac(deviceSecret,content)

对于mqttClientId,其中clientId为自定义字符串,控制在64个字符以内;securemode表示目前安全模式,可选值有2(TLS直连模式)和3(TCP直连模式),目前阿里云已不支持非加密,所以此项只能取2;signMethod签名算法,目前支持hmacmd5、hmacsha1、hmacsha256;timestamp为时间戳,可以省略。

示例:mqttClientId:ailink|securemode=2,signmethod=hmacsha1|

对于mqttUserName,同第一步。

示例:mqttUserName: device1&ggryrtlgSWt

对于mqttPassword,deviceSecret即第一步连接获取值,而content的值是提交给服务器的必需参数和值(clientId,deviceName、productKey)按照字母顺序排序、拼接(无拼接符号)的字符串,其中clientId与mattClientId中配置保持一致。然后,将content的值通过mqttClientId中的signMethod指定的算法,进行签名计算,可利用在线校验计算出mqttPassword。

示例:hmac_sha1("deviceSecret", clientIdailinkdeviceNamedevice1productKeyxxx)

利用上述操作可获取到mqttPassword,至此,我们已经获取到MQTT连接云平台需要的所有必须参数,利用现有的AT命令即可完成配置、连接、订阅、发布等操作。

  • HTTP接入

HTTP接入与MQTT类似也分为两步,第一步获取token,第二步利用获取到的token连接云平台通信。获取token的前提是获取到设备的deviceSecret。同理若通过一机一密方式则在设备详情页可以直接查看,若通过一型一密方式则需先获取设备deviceSecret。

HTTP获取deviceSecret,构造请求格式如下:

POST /auth/register/device  HTTP/1.1

Host: iot-auth.cn-shanghai.aliyuncs.com

Content-Type: application/x-www-form-urlencoded

Content-Length: 123

productKey=xxx&deviceName=xxx&random=xxx&sign=xxx&signMethod=Hmacmd5

其中productKey和deviceName可通过设备详情页获取;random为自定义随机数;signMethod为签名方法,目前支持hmacmd5、hmacsha1、hmacsha256;sign类似上文中mqttPassword的构造,通过signmethod中指定的方法利用productSecret和content(包括productKey、devicename、random,构造格式同MQTT配置)计算。请求成功收到如下格式数据:

{

  "code": 200,

  "data": {

    "productKey": "xxx",

    "deviceName": "xxx",

    "deviceSecret": "xxxxxx"

  },

  "message": "success"

}

获取token

记录下上文获取到的deviceSecret为获取token,构造POST请求数据格式如下:

POST /auth HTTP/1.1

Host: ${YourEndpoint}

Content-Type: application/json

Content-Length: 192

body: {"version":"default","clientId":"xxx","signmethod":"hmacsha1","sign":"xxxxxxx","productKey":"ZG1EvTE****","deviceName":"device1","timestamp":"1501668289957"}

Host可在实例详情页面右上角查看开发配置获取,body构造,clientId同MQTT配置,signmethod算法类型,支持hmacmd5和hmacsha1,若不传入默认为hmacmd5;sign类似上文中mqttPassword的构造,通过signmethod中指定的方法利用deviceSecret和content(包括productKey、deviceName、clientId,构造格式同MQTT)计算;productKey和deviceName在设备详情页获取;timestamp为时间戳,可不传入。若认证成功可获取到如下格式返回数据

{

          "code": 0,

          "message": "success",

          "info": {

          "token":  "6944e5bfb92e4d4ea3918d1eda39****"

          }

}

上报数据

上报数据格式如下:

POST /topic/${topic} HTTP/1.1

Host: ${YourEndpoint}

password:${token}

Content-Type: application/octet-stream

Content-Length: 53

body: ${mqtmqttt物联网your_data}

Topic为/${YourProductKey}/${YourDeviceName}/pub,假设当前设备名称为device1,产品的ProductKey为xxx,那么您可以调用

https://iot-as-http.cn-shanghai.aliyuncs.com/topic/xxx/device1/pub地址来上报数据

  • 集成SDK接入云平台

详见阿里云官方文档中MQTT与HTTP接入示例

https://help.aliyun.com/document_detail/256389.html文章来源地址https://www.toymoban.com/news/detail-814122.html

到了这里,关于阿里云物联网对接指导文档的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 国际站阿里云物联网云端部署方案!!

    iHC-3308GW阿里云物联网云端部署。阿里云物联网云端部署方案具有以下特点:支持RS485、CAN、RS232多种通讯方式;支持Modbus标准工业协议转MQTT协议;云端支持阿里云和私有云部署。通过温湿度传感器的技术案例,我们可以进行云端部署。 ·硬件包括一台iHC-3308GW工业4G智能网关和

    2024年02月10日
    浏览(58)
  • 阿里云物联网流转表格存储Tablestore

    首先简单的介绍下这两个阿里云的产品功能吧 阿里云物联网:物联网平台提供安全可靠的设备连接通信能力,支持设备数据采集上云,规则引擎流转数据和云端数据下发设备端。此外,也提供方便快捷的设备管理能力,支持物模型定义,数据结构化存储,和远程调试、监控、

    2024年02月07日
    浏览(47)
  • 1-基本控制篇(阿里云物联网平台)-C#,网页,android,微信小程序,单片机等使用MQTT接入阿里云物联网平台

    \\\"ProductKey\\\": \\\"a1m7er1nJbQ\\\", \\\"DeviceName\\\": \\\"Mqtt\\\", \\\"DeviceSecret\\\": \\\"7GUrQwgDUcXWV3EIuLwdEvmRPWcl7VsU\\\" 如何使用MQTT协议模拟设备快速接入物联网平台_物联网平台(IoT)-阿里云帮助中心    阿里云的说明文档 a1m7er1nJbQ.iot-as-mqtt.${region}.aliyuncs.com a1m7er1nJbQ.iot-as-mqtt.cn-shanghai.aliyuncs.com 112233445566|securemode=3,s

    2024年04月12日
    浏览(131)
  • 搭建阿里云物联网平台实现MQTT通信

    1,点击进入阿里云官方网站:阿里云-上云就上阿里云 (aliyun.com) 2,注册登录并且进行实名认证; 如下图: 点击右上角 控制台,进入如图界面:  3,在阿里物联网云平台创建设备:   首先创建产品:大致过程如下(多图预警)    添加自定义功能:  发布上线后,就成为了

    2024年02月08日
    浏览(60)
  • 阿里云物联网平台专用工具详细说明

    为了更便捷的使用阿里云物联网平台和更好的让YFIOs数据组态和阿里云物联网平台对接,开发了一款阿里云物联网平台专用工具-AliIoTTools。 AliIoTTools物联网平台专用工具第一版开发完毕的时候,阿里云物联网平台相关的API为151个(目前已经超过该数字),该工具共采用了77个

    2024年02月02日
    浏览(54)
  • 【Android+物联网】Android封装MQTT连接阿里云物联网平台

    前言: 亲测可行,本文实现Android封装MQTT连接阿里云物联网平台。将MQTT协议和连接阿里云平台的操作通过Android studio写入APP中,并简单设计UI。实现手机APP远程控制单片机LED灯亮灭的功能。 关于《 Android软件开发 》,见如下专栏 https://blog.csdn.net/m0_61712829/category_12455686.html?sp

    2024年02月01日
    浏览(76)
  • 基于阿里云物联网平台的Android物联网软件框架(快速开发)

    提示:该工程是连接阿里云物联网平台的模板代码,将MQTT连接、JSON数据的订阅发布等操作封装,并且能够迅速将获取到的数据显示到手机界面上。使用了Servier进行网络连接的逻辑操作,并且使用自定义控件,绑定对用标识符的数据对象,实现了数据自动实时更新等操作,并

    2024年02月06日
    浏览(51)
  • MQTT连接阿里云物联网上报物模型数据

    目录 1. 创建产品(物联网平台 - 产品 - 创建产品) 2. 为产品添加设备 3. 添加物模型 4. mqtt.fx连接测试 5. 调试物模型 6. 使用mqtt.fx上报温度数据  我这里再新建一个名为 \\\"Test01\\\" 的产品作为演示 选择 \\\"添加自定义功能\\\" 添加 温度 属性: 创建好后,点击 发布上线 MQTT.fx是一款基

    2024年04月12日
    浏览(44)
  • 探究阿里云物联网开发板1-Haas 100

    已经很久没写博客了,昨天接触了下阿里云的物联网开发板haas 100。之前玩过树莓派,但是说实话我之前玩的树莓派和嵌入式还是有区别,我是直接远程连接上树莓派,在树莓派的操作系统上进行操作,而昨天接触的Haas 100更多的是嵌入式编程即在我的Win10系统上完成代码编写

    2024年01月16日
    浏览(30)
  • 物联网点灯项目:阿里云物联网平台+ESP32IDF+uniapp

    首先看效果(不太清晰)   视频演示效果 其次我讲一下大概的实现过程:前端用uniapp,(后来软工学长告诉我如果不是跨端开发的话完全可以不用uniapp,如果你要开发微信小程序就用微信开发者工具,如果你要开发移动端app就用安卓studio,因为我是自己琢磨的,当时只知道

    2024年01月21日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包