“华为云:基于示例代码体验物联网上云”的版本间的差异
第28行: | 第28行: | ||
[[文件:cloud2023041801.png|600px]] | [[文件:cloud2023041801.png|600px]] | ||
+ | |||
+ | ==创建设备== | ||
+ | 选择设备接入服务左侧导航栏的“设备 > 所有设备”,单击右上角“注册设备”。 | ||
+ | |||
+ | |||
+ | 在弹出的窗口中,可以参考图中的内容填写(所属产品需要选择上述步骤创建的产品,密钥不填写,则由平台自动生成,这里是由平台自动生成)然后单击“确定”。 | ||
+ | |||
+ | |||
+ | 设备创建成功后,需要保存一下设备ID和密钥(后续设备连接的时候需要用到)。 | ||
+ | |||
+ | |||
+ | ==导入代码样例== | ||
+ | |||
+ | 下载JAVA样例。 | ||
+ | |||
+ | 打开IDEA开发者工具,点击“ Import Project”。 | ||
+ | |||
+ | 选择步骤1中下载的样例,然后根据界面提示,单击“next”。 | ||
+ | |||
+ | [[文件:cloud2023041803.png|600px]] | ||
+ | |||
+ | 完成代码导入。 | ||
+ | |||
+ | [[文件:cloud2023041804|600px]] | ||
+ | |||
+ | ==建立连接== | ||
+ | 设备或网关在接入物联网平台时首先需要和平台建立连接,从而将设备或网关与平台进行关联。开发者通过传入设备信息,将设备或网关连接到物联网平台。 | ||
+ | 在建立连接之前,先修改以下参数: | ||
+ | //IoT平台mqtt对接地址 | ||
+ | static String serverIp = "iot-mqtts.cn-north-4.myhuaweicloud.com"; | ||
+ | //注册设备时获得的deviceId,密钥(要替换为自己注册的设备ID与密钥) | ||
+ | static String deviceId = "yourDeviceID"; //device_id, 在创建设备时获得 | ||
+ | static String secret = "yourSecret"; //secret,在创建设备时获得 | ||
+ | |||
+ | serverIp为物联网平台设备接入MQTT协议的地址,详细获取方式请参考资源获取。 | ||
+ | device_id和secret为设备ID和密钥,在成功创建设备后获取。 | ||
+ | 完成上述信息的修改后,运行程序,在平台可以看到设备显示在线。 | ||
+ | 点击放大 | ||
+ | |||
+ | 属性上报 | ||
+ | 属性上报是指设备主动向平台上报自己的属性(该示例代码已实现自动定时上报功能,可参考下一节在iot平台查看设备上报的数据内容)。 | ||
+ | |||
+ | //上报json数据,注意serviceId要与产品模型中的定义对应 | ||
+ | String jsonMsg = "{\"services\":[{\"service_id\":\"BasicData\",\"properties\":{\"luminance\":32},\"eventTime\":null}]}"; | ||
+ | |||
+ | 消息体jsonMsg组装格式为JSON,其中service_id要与产品模型中的定义对应,properties是设备的属性; | ||
+ | luminance表示路灯亮度; | ||
+ | event_time为可选项,为设备采集数据UTC时间,不填写默认使用系统时间。 | ||
+ | 设备或网关成功连接到物联网平台后,即可调用MqttAsyncClient的publish(String topic,MqttMessage message)方法向平台上报设备属性值。 | ||
+ | |||
+ | 查看上报数据 | ||
+ | 运行main方法成功启动后,即可在设备详情页面查看上报的设备属性数据。详细接口信息请参考设备属性上报。 | ||
+ | |||
+ | 点击放大 | ||
+ | |||
+ | 说明: | ||
+ | 如果在“设备详情”页面没有最新上报数据,请修改产品模型中服务和属性的内容,确保设备上报的服务/属性和产品模型中的服务/属性一致(如果不一致,则历史数据中看不到设备上报的数据),或者进入“产品 > 模型定义”页面,删除所有服务。 | ||
+ | |||
+ | 命令下发 | ||
+ | 在控制台界面点击左侧菜单栏的“API检索和调试”。 | ||
+ | 点击放大 | ||
+ | |||
+ | 找到“设备命令”一栏,下发的参数请参考图片内容(跟产品模型中保持一致),然后点击“调试”按钮即可发送命令。 | ||
+ | 点击放大 | ||
+ | |||
+ | service_id表示服务ID,例如:BasicData。 | ||
+ | command_name表示命令名称,例如:lightControl。 | ||
+ | paras表示下发参数,例如:{"switch":"ON"}。 | ||
+ | 设备侧可查看已收到命令(示例代码已实现接收命令topic的订阅)。 | ||
+ | |||
+ | 点击放大 | ||
+ | |||
+ | 通过云端获取设备上报的数据 | ||
+ | 本文以AMQP为例,获取设备上报到云端的数据。 | ||
+ | |||
+ | 点击这里获取Java AMQP接入示例。 | ||
+ | 登录管理控制台,选择“规则 > 数据转发”,创建数据转发规则。 | ||
+ | 点击放大 | ||
+ | |||
+ | 设置转发数据, 填入参数,创建规则。 | ||
+ | 点击放大 | ||
+ | |||
+ | 参数名 | ||
+ | |||
+ | 参数说明 | ||
+ | |||
+ | 规则名称 | ||
+ | |||
+ | 创建的规则名称,可自定义。 | ||
+ | |||
+ | 规则描述 | ||
+ | |||
+ | 对该规则的描述。 | ||
+ | |||
+ | 数据来源 | ||
+ | |||
+ | 选择“设备属性” | ||
+ | |||
+ | 触发事件 | ||
+ | |||
+ | 设备属性上报 | ||
+ | |||
+ | 资源空间 | ||
+ | |||
+ | 选择所有资源空间 | ||
+ | |||
+ | 设置转发目标(注意:需要点击“预置服务接入凭证”按钮,获取下载文件)。 | ||
+ | 点击放大 | ||
+ | |||
+ | 参数名 | ||
+ | |||
+ | 参数说明 | ||
+ | |||
+ | 转发目标 | ||
+ | |||
+ | AMQP推送消息队列 | ||
+ | |||
+ | 接入凭证 | ||
+ | |||
+ | 单击“预置服务接入凭证”,保存下载的文件(包含access_key和access_code | ||
+ | |||
+ | 消息队列 | ||
+ | |||
+ | DefaultQueue | ||
+ | |||
+ | 点击启动规则。 | ||
+ | 点击放大 | ||
+ | |||
+ | 修改步骤1获取的AMQP代码样例中的参数。 | ||
+ | 点击放大 | ||
+ | |||
+ | yourAccessKey:连接凭证接入键值,参考步骤4获取。 | ||
+ | yourAccessCode:连接凭证接入码,参考步骤4获取 | ||
+ | yourAMQPUrl:amqp域名,请前往控制台-总览页面-平台接入地址获取,如下图: | ||
+ | 点击放大 | ||
+ | |||
+ | yourQueue:队列名,使用默认队列DefaultQueue。 | ||
+ | AMQP数据成功接收。 | ||
+ | 点击放大 | ||
+ | |||
+ | 更多 | ||
2023年4月18日 (二) 15:11的版本
https://support.huaweicloud.com/qs-iothub/iot_05_00122.html
https://github.com/huaweicloud/huaweicloud-iot-device-sdk-python/blob/main/README_CN.md#6
概述
本文基于Java代码演示设备通过MQTTS/MQTT协议接入华为云物联网平台,通过平台接口实现南向“数据上报”、“命令下发”的功能,通过应用侧的示例代码接收北向服务端订阅的消息示例。以智慧路灯为例,设备将光照强度等信息上报到IoT平台,应用服务器再接收从平台推送来的设备数据。
前提条件
确保开发环境为JDK 1.8及以上版本。
已安装IntelliJ IDEA开发工具。如未安装请访问IntelliJ IDEA官网下载并安装。
上传产品模型
产品模型是用来描述设备能力的文件,通过JSON的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备的功能。
操作步骤
访问设备接入服务,单击“控制台”进入设备接入控制台。
选择左侧导航栏的“产品”,单击右上角“创建产品”。
在弹出的窗口中,可以参考图中的内容填写。
下载模型文件,该模型文件已开发完毕(由开发产品模型开发完毕的产品模型导出)。详细开发过程指导请参考在线开发产品模型。
创建成功后,单击刚创建的产品,然后单击上传模型文件(无需解压,并且压缩包的名称不能有括号),上传刚下载的模型文件
创建设备
选择设备接入服务左侧导航栏的“设备 > 所有设备”,单击右上角“注册设备”。
在弹出的窗口中,可以参考图中的内容填写(所属产品需要选择上述步骤创建的产品,密钥不填写,则由平台自动生成,这里是由平台自动生成)然后单击“确定”。
设备创建成功后,需要保存一下设备ID和密钥(后续设备连接的时候需要用到)。
导入代码样例
下载JAVA样例。
打开IDEA开发者工具,点击“ Import Project”。
选择步骤1中下载的样例,然后根据界面提示,单击“next”。
完成代码导入。
建立连接
设备或网关在接入物联网平台时首先需要和平台建立连接,从而将设备或网关与平台进行关联。开发者通过传入设备信息,将设备或网关连接到物联网平台。 在建立连接之前,先修改以下参数: //IoT平台mqtt对接地址 static String serverIp = "iot-mqtts.cn-north-4.myhuaweicloud.com"; //注册设备时获得的deviceId,密钥(要替换为自己注册的设备ID与密钥) static String deviceId = "yourDeviceID"; //device_id, 在创建设备时获得 static String secret = "yourSecret"; //secret,在创建设备时获得
serverIp为物联网平台设备接入MQTT协议的地址,详细获取方式请参考资源获取。 device_id和secret为设备ID和密钥,在成功创建设备后获取。 完成上述信息的修改后,运行程序,在平台可以看到设备显示在线。 点击放大
属性上报 属性上报是指设备主动向平台上报自己的属性(该示例代码已实现自动定时上报功能,可参考下一节在iot平台查看设备上报的数据内容)。
//上报json数据,注意serviceId要与产品模型中的定义对应 String jsonMsg = "{\"services\":[{\"service_id\":\"BasicData\",\"properties\":{\"luminance\":32},\"eventTime\":null}]}";
消息体jsonMsg组装格式为JSON,其中service_id要与产品模型中的定义对应,properties是设备的属性; luminance表示路灯亮度; event_time为可选项,为设备采集数据UTC时间,不填写默认使用系统时间。 设备或网关成功连接到物联网平台后,即可调用MqttAsyncClient的publish(String topic,MqttMessage message)方法向平台上报设备属性值。
查看上报数据 运行main方法成功启动后,即可在设备详情页面查看上报的设备属性数据。详细接口信息请参考设备属性上报。
点击放大
说明: 如果在“设备详情”页面没有最新上报数据,请修改产品模型中服务和属性的内容,确保设备上报的服务/属性和产品模型中的服务/属性一致(如果不一致,则历史数据中看不到设备上报的数据),或者进入“产品 > 模型定义”页面,删除所有服务。
命令下发 在控制台界面点击左侧菜单栏的“API检索和调试”。 点击放大
找到“设备命令”一栏,下发的参数请参考图片内容(跟产品模型中保持一致),然后点击“调试”按钮即可发送命令。 点击放大
service_id表示服务ID,例如:BasicData。 command_name表示命令名称,例如:lightControl。 paras表示下发参数,例如:{"switch":"ON"}。 设备侧可查看已收到命令(示例代码已实现接收命令topic的订阅)。
点击放大
通过云端获取设备上报的数据 本文以AMQP为例,获取设备上报到云端的数据。
点击这里获取Java AMQP接入示例。 登录管理控制台,选择“规则 > 数据转发”,创建数据转发规则。 点击放大
设置转发数据, 填入参数,创建规则。 点击放大
参数名
参数说明
规则名称
创建的规则名称,可自定义。
规则描述
对该规则的描述。
数据来源
选择“设备属性”
触发事件
设备属性上报
资源空间
选择所有资源空间
设置转发目标(注意:需要点击“预置服务接入凭证”按钮,获取下载文件)。 点击放大
参数名
参数说明
转发目标
AMQP推送消息队列
接入凭证
单击“预置服务接入凭证”,保存下载的文件(包含access_key和access_code
消息队列
DefaultQueue
点击启动规则。 点击放大
修改步骤1获取的AMQP代码样例中的参数。 点击放大
yourAccessKey:连接凭证接入键值,参考步骤4获取。 yourAccessCode:连接凭证接入码,参考步骤4获取 yourAMQPUrl:amqp域名,请前往控制台-总览页面-平台接入地址获取,如下图: 点击放大
yourQueue:队列名,使用默认队列DefaultQueue。 AMQP数据成功接收。 点击放大
更多
IoT Device SDK(Python)提供设备接入华为云IoT物联网平台的Python版本的SDK,提供设备和平台之间通讯能力,以及设备服务、网关服务、OTA等高级服务,并且针对各种场景提供了丰富的demo代码。
前言
iot-device-sdk-python(以下简称SDK)提供设备接入华为云IoT物联网平台的Python版本的SDK,提供设备和平台之间通讯能力, 以及设备服务、网关服务、OTA等高级服务,并且针对各种场景提供了丰富的demo代码。 IoT设备开发者使用SDK可以大大简化开发复杂度,快速的接入平台。
本文通过实例讲述SDK帮助设备用MQTT协议快速连接到华为物联网平台。
华为云官网:https://www.huaweicloud.com/
点击华为云官网右上角“控制台”进入管理控制台,在页面上方搜索“IoTDA”进入设备接入服务控制台。
SDK简介
SDK面向运算、存储能力较强的嵌入式终端设备,开发者通过调用SDK接口,便可实现设备与物联网平台的上下行通讯。SDK当前支持的功能有:
- 支持设备消息、属性上报、属性读写、命令下发
- 支持OTA升级
- 支持密码认证和证书认证两种设备认证方式
- 支持设备影子查询
- 支持网关服务、子设备管理、子设备消息转发
- 支持面向物模型编程
- 支持自定义topic
- 支持文件上传/下载
- SDK目录结构
iot_device_sdk_python:sdk代码
iot_device_demo:demo演示代码
iot_gateway_demo:网关与子设备管理demo演示代码