华为云:基于示例代码体验物联网上云

来自CloudWiki
跳转至: 导航搜索

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的格式定义了设备的基本属性、上报数据和下发命令的消息格式。定义产品模型,即在物联网平台构建一款设备的抽象模型,使平台理解该款设备的功能。

操作步骤

访问设备接入服务,单击“控制台”进入设备接入控制台。

选择左侧导航栏的“产品”,单击右上角“创建产品”。

在弹出的窗口中,可以参考图中的内容填写。


下载模型文件,该模型文件已开发完毕(由开发产品模型开发完毕的产品模型导出)。详细开发过程指导请参考在线开发产品模型。

创建成功后,单击刚创建的产品,然后单击上传模型文件(无需解压,并且压缩包的名称不能有括号),上传刚下载的模型文件

600px

创建设备

选择设备接入服务左侧导航栏的“设备 > 所有设备”,单击右上角“注册设备”。


在弹出的窗口中,可以参考图中的内容填写(所属产品需要选择上述步骤创建的产品,密钥不填写,则由平台自动生成,这里是由平台自动生成)然后单击“确定”。


设备创建成功后,需要保存一下设备ID和密钥(后续设备连接的时候需要用到)。


导入代码样例

下载JAVA样例。

打开IDEA开发者工具,点击“ Import Project”。

选择步骤1中下载的样例,然后根据界面提示,单击“next”。

600px

完成代码导入。

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方法成功启动后,即可在设备详情页面查看上报的设备属性数据。详细接口信息请参考设备属性上报。


说明:

如果在“设备详情”页面没有最新上报数据,请修改产品模型中服务和属性的内容,确保设备上报的服务/属性和产品模型中的服务/属性一致(如果不一致,则历史数据中看不到设备上报的数据),或者进入“产品 > 模型定义”页面,删除所有服务。


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演示代码