IoT Hub 参考手册见 https://support.huaweicloud.com/iothub/index.html
IoT Hub 注册
注册 IoT Hub 之前,必须先注册华为云,并完成实名认证。认证完毕以后,访问 IoT平台基础版(IoT Hub),由页面引导注册。
注册完毕后,进入 IoT Hub 产品首页,点击“立即使用”,此时会提示平台的各种接入信息,需要记录下来:
点击“进入管理门户”即可以进入 IoT Hub 管理控制台。以后我们可以使用系统分配给我们的用户名和密码直接从 IoT Hub 管理控制台 入口登陆。
平台使用
平台使用的流程很简单,就如下图所示,先创建应用,然后创建产品模型,最后分两条线,一条线完成设备相关的开发和调试,另一条线完成应用的开发和调试。
创建应用和创建产品的操作,均是手动在 IoT Hub 管理控制台中完成。IoT Hub 只支持创建一个应用,可以参考 开发文档 操作,也可以随便创建:
产品模型也是,也可以参考 开发文档 来操作,也可以随便创建:
应用接入
使用应用模拟器模拟登陆,完成应用接入。应用模拟器是一个 Java 程序,基于 JDK1.8,因此事先需要安装 JDK1.8。JDK1.8 可以从 这里 下载,安装完 JDK 后,可以参考 这篇文章 配置 Java 环境变量。
JDK 环境安装配置完成后,可以从 这里 下载应用模拟器。模拟器运行后的界面如下。如果看不到输入框,把程序最大化即可。
属性 | 值 | 备注 |
---|---|---|
Platform IP | 49.4.80.153 | 上面记录的 |
Port | 8743 | 上面记录的 |
App ID | yIdtfm1fQ9uE2Jlk48zw708tf7Qa | 管理控制台进入应用列表,为“应用ID”字段的值 |
App Secret | urAOb19X7mX0ajvfTyXvwuZHIIEa | 系统自动生成的秘钥,如忘记可重置 |
注:登陆过程调用了 OceanConnect 的 北向鉴权 API,该 API 的输入参数包括
appId
和secret
。
登陆成功以后进入模拟器主界面:
注册设备
注册设备有两种方式,一种是直接在管理控制台里面操作,另外一种是调用北向 API。这里肯定是尝试调用 API:
属性 | 值 | 备注 |
---|---|---|
Product ID | 3a6e739b-28db-4e8e-83cc-b20c8b6d6896 | 从管理控制台进入产品模型,查看产品模型的“产品ID”字段 |
Node ID | TESTxxx | 需要构造一个全网唯一的号,作为设备的唯一标识 |
pre Secret | 111111 | 随便填,跟随设备的预置密钥,作为DTLS安全鉴权码 |
注:设备注册过程调用了 OceanConnect 的 注册直连设备 API,该 API 的必选参数为
nodeId
。
该设备注册成功后,将在“设备->所有设备”列表中显示出来。注意此时的这个设备,是我们虚拟的,目前还并不存在其实体。
设备接入
根据设备接入物联网平台的协议类型,划分为两种场景:
使用CoAP或LWM2M协议接入:在此场景下,设备可以通过集成NB-IoT模组实现与物联网平台的对接。在快速入门中,以CoAP设备模拟器(点击获取)为例进行说明。
使用MQTT/MQTTS协议接入:在此场景下,设备可以通过集成Agent Lite SDK实现与物联网平台的对接。在快速入门中,以MQTT设备模拟器(点击获取)为例进行说明。
因为上面创建的产品模型使用的是 CoAP 协议,因此下载 CoAP 模拟器。打开CoAP协议模拟器,根据提示,选择是否开启DTLS加密传输。
如果选择“是”,则需要在模拟设备接入时,填写“IP地址”、“设备标识码”、“设备密钥”。“IP地址”在IoT平台管理控制台查看(类型:设备对接信息,协议:coaps),“设备标识码”和“设备密钥”在注册设备时设置。
如果选择“否”,则需要在模拟设备接入时,填写“IP地址”、“设备标识码”。“IP地址”在IoT平台管理控制台查看(类型:设备对接信息,协议:coap),“设备标识码”在注册设备时设置。(注:按钮上写的是“注册设备”,实则这个设备之前已经注册过了。现在的操作实际上是设备接入 OceanConnect)
登录管理门户,选择“设备->所有设备”,查看设备状态是否已经转换为“在线”。
注:MQTT 设备接入,可以参考 在线文档。
数据上报
设备接入物联网平台后,可以向物联网平台上报数据。通过物联网平台的设备影子功能,可以查看设备最近一次上报的数据。
打开 CoAP 协议模拟器,在“数据”区域填写上报的数据,点击“发送数据”:
登录管理门户,选择“设备->所有设备”,在“设备影子”中查看CoAP设备模拟器上报的数据。
注1:因为 OceanConnect 并不知道上报数据的格式,因此显示出来就是一个 RawData 类型,其值也不是我们上传的数字。
注2:MQTT 设备上报数据,可以参考 在线文档。