使用IoT SDK快速体验燃气表云端控制
1 场景介绍
华为云物联网平台设备接入云服务(IoTDA)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,帮助您快速构筑物联网解决方案。
本次实验以“燃气表”为例,体验如何使用IoT Device SDK(C)将燃气表接入华为云IoTDA平台。并实现数据上报,获取使用燃气量。实现命令下发,对燃气表进行远程控制。
2 环境要求
2.1 开发环境要求:已安装JDK(版本1.8以上)和maven 或者有java的集成环境。
2.2 Windows环境验证JDK
Windows环境查看是否安装了JDK:
- cmd进入命令窗口。
- 输入java -version。若出现版本号,则有JDK。若无,请参考2.4安装
2.3 Windows环境验证Maven
- cmd进入命令窗口。
- 输入mvn -v。若出现版本号,则有Maven。若无,请参考2.4安装
2.4 安装配置开发环境
1.安装Java开发环境。
访问Java官网,下载并说明安装Java开发环境。注:华为云Java SDK支持Java JDK 1.8 及其以上版本
2.安装Maven软件。
3 华为注册账号
3.1 注册账户,登录控制台
3.2 开通设备接入服务
1.访问设备接入服务产品首页,单击“试用”。
2.进入IoTDA控制台后,点击“开通免费单元”。
3.选择“按需计费”,自定义输入实例名称,并单击“立即创建”,即可开通标准版实例免费单元。
注意:请确认开通区域是“华北-北京四”。
4.等待实例创建成功后,点击实例对应的卡片,即可进入使用。
4 创建产品及设备
4.1 创建产品及设备
1.进入实例后,在IoTDA控制台界面点击“产品>创建产品”。
2.按照下图填写产品信息。点击“确定”。
- 所属资源控制:选择默认资源空间
- 产品名称:自定义,如“燃气表模型”
- 协议类型:选择“MQTT”
- 数据格式:选择“JSON”
- 设备类型选择:选择“自定义类型”
- 设备类型:自定义,如“自定义燃气表模型”
3.弹窗提示“创建产品成功”,单击“查看详情”进入产品详情页。
4.在“基本信息”页签中,点击 “上传产品模型”,选择附件【自定义燃气表模型.zip】,然后点击“确定”完成上传。
添加完成,预览服务列表如下图所示:
4.2 注册设备
1.若是在产品页面,点击左上角箭头,返回主界面。
2.选择左侧导航栏“设备>所有设备”,单击页面右上角“注册设备”,填写参数并“确定”。
- 所属资源空间:选择默认资源空间
- 所属产品:选择上一步创建的产品“燃气表模型”
- 设备标识码:自定义,如“gasMeter01”
- 设备ID:由平台自动生成的字符串前缀+设备标识码组合而成,自动填充,无需修改
- 设备名称:自定义,如“燃气表ID”
- 设备认证类型:密钥
- 密钥/确认密钥:自定义,不少于8位,如12345678 (该密码在后续会用上)
3.弹窗提示“设备创建成功”,关闭弹窗返回设备列表,查看设备状态为“未激活”。(该页面后续会用到,可以先不关闭)
5 使用Java SDK接入平台(设备侧)
5.1 下载Java SDK
1.解压附件中的iot-java.zip包。进入iot-java目录:
2.若是有IDEA或其他java开发工具可用其打开。
5.2 修改代码
1、打开文件:D:\测试\iot-java\src\main\java\org\example\PropertySample.java。
2、修改设备初始化接入地址、设备id、密钥。将代码76行替换成对应设备的值,保存文件。
- 设备域名:设备接入华为云的地址,可参考5.2.1的步骤获取。
- 设备id:在创建设备中获取到的设备id,可参考5.2.1的步骤获取。
- 密钥:在创建设备中获取到的设备密钥。如12345678, 可参考5.2.1的步骤获取。
5.2.1 获取设备接入地址、设备id、密钥:
1.进入控制台,选择左侧导航栏“设备>所有设备”,点击上一步创建好的设备,进入设备详情页面。
2.点击“查看”,可以获得设备接入参数。
5.3 编译&运行
Ps: 若使用IDEA或其他java集成开发环境,可以编译后,运行PropertySample.java下的main函数。
1.回到根目录(D:\测试\iot-java)。
2.打开cmd。
3.在cmd中输入: mvn compile 并回车。(Ps:若是失败,请确定mvn配置是否正确,或者把附件repository.zip解压到mvn库中)
4.编译成功后输入:mvn exec:java -Dexec.mainClass="org.example.PropertySample" 并回车。
5.若运行成功,cmd显示:
5.4 验证
进入控制台,选择左侧导航栏“设备>所有设备”。可以在该界面看到设备已经在线。
6 实现属性上报
6.1 修改SDK
1.在上一步的基础上,继续修改SDK。打开文件:
D:\测试\iot-java\src\main\java\org\example\PropertySample.java。
2.修改代码 124到135行并保存修改。
修改成:
6.2 编译&运行
按照5.3步骤再次编译&运行一次即可(命令: mvn compile 和 mvn exec:java -Dexec.mainClass="org.example.PropertySample")。运行成功可以看到cmd界面显示:
6.3 验证
进入控制台,选择左侧导航栏“设备>所有设备”。点击之前创建的设备“gasMeter01”,进入设备详情页。可以在物模型数据中看到具体数据。
7 实现命令下发(进阶)
7.1 修改sdk代码
- 在上一步的基础上,继续修改SDK。打开文件:D:\测试\iot-java\src\main\java\org\example\PropertySample.java。
- 在main函数中,新增代码:(在设备初始化与init()之间新增这些代码)
device.getClient().setCommandListener(new CommandListener() {
@Override
public void onCommand(String requestId, String serviceId, String commandName, Map<String, Object> paras) {
log.info("onCommand, serviceId = {}", serviceId);
log.info("onCommand , name = {}", commandName);
log.info("onCommand, paras = {}", paras.toString());
// 用户可以在该处进行处理命令
// 发送命令响应
device.getClient().respondCommand(requestId, new CommandRsp(0));
}
});
7.2 编译&运行
按照5.3步骤再次编译&运行一次即可(命令: mvn compile 和 mvn exec:java -Dexec.mainClass="org.example.PropertySample")。可以看到代码运行界面如下图所示:
7.3 验证
1.进入控制台。选择左侧导航栏“设备>所有设备”, 点击之前创建的设备“gasMeter01”,进入设备详情页。
2.在详情页面点击“消息跟踪>启动消息跟踪>确定”。
3.在详情页面点击“云端下发 > 命令下发 > 命令下发”。在弹出的界面按照下图配置后点击确定。
4.在之前的消息跟踪页面可以看到响应成功:
8 后记
Java SDK源码可以在此获取:gitHub。点击“Code”-> “Download ZIP”获取java SDK文件。
完成本次体验即可参与抽奖,100%中奖!更有手表、开发板等你来拿!
活动时间:2024年9月10日~2024年10月13日
- 点赞
- 收藏
- 关注作者
评论(0)