建立设备与平台连接
更新时间:
复制为 MD 格式
本文主要介绍如何使用demo代码包将设备接入阿里云物联网平台。
前提条件
已为如下产品添加好设备,并获得各个设备的设备证书(ProductKey、DeviceName、DeviceSecret)。 详细内容请参见为产品添加设备。| 产品名称 | DeviceName |
| 温湿度传感器 | TH_sensor |
| 电参数测量仪 | Elec_instrument |
准备开发环境
本示例使用的开发环境如下。
- 操作系统:Windows
- JDK版本:JDK8
- Java语言开发环境
接入物联网平台
使用Demo代码程序接入物联网平台。
说明 以下步骤只在Windows操作系统上模拟操作。在实际应用中,您需要将配置好的SDK烧录到设备上,设备上电联网后即能实际上线。
- 下载Demo代码包,并解压缩。
- 打开eclipse,导入Demo包中的示例工程aiot-java-demo。
- 打开src/main/java/com.aliyun.iot/App.java文件,去除或注释掉以下代码段。
sampleClient.disconnect(); System.out.println("Disconnected"); System.exit(0); - 在src/main/java/com.aliyun.iot/下新建另一个.java文件:App1.java。
- 复制App.java中的代码到App1.java文件中,并对应修改App1.java文件中类的名称。
修改后代码如下:
package com.aliyun.iot; import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.*; class MqttPostPropertyMessageListener1 implements IMqttMessageListener { //此处将MqttPostPropertyMessageListener修改为MqttPostPropertyMessageListener1 @Override public void messageArrived(String var1, MqttMessage var2) throws Exception { System.out.println("reply topic : " + var1); System.out.println("reply payload: " + var2.toString()); } } public class App1 //此处将App修改为App1 { public static void main( String[] args ) { String productKey = "a1Nwknh****"; String deviceName = "Consumption"; String deviceSecret = "****"; // ...其余代码与App.java相同... } } } } - 执行以下操作,上线设备名称为TH_sensor的设备。
- 修改App.java中的代码并保存。
- 修改设备信息为温湿度传感器产品下设备的身份信息。
- 将productKey、deviceName和deviceSecret替换为您的设备证书信息。
- 将
String broker = "ssl://" + productKey + ".iot-as-mqtt.cn-shanghai.aliyuncs.com" + ":" + port;中的地域代码(cn-shanghai)替换为您的物联网平台设备所在地域代码。地域代码表达方法,请参见地域和可用区。
- 修改温度传感器产品下的物模型属性,修改后代码如下。
//Paho Mqtt 消息发布 String topic = "/sys/" + productKey + "/" + deviceName + "/thing/event/property/post"; String content = "{\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"Temperature\":27.46,\"Humidity\":58}}"; //温湿度传感器产品下的两个属性,上报物模型属性Temperature和Humidity MqttMessage message = new MqttMessage(content.getBytes());说明 修改温湿度产品下的物模型属性时,设定的值为各属性取值范围内的任意值。
- 修改设备信息为温湿度传感器产品下设备的身份信息。
- 运行App.java程序。
运行成功后,日志如下:
username: TH_sensor&a1xxx password: 7c0b9e6bc027dd2845ea52524c868e79 clientid: a1txxx.TH_sensor|timestamp=1579249394380,_v=paho-java-1.0.0,securemode=2,signmethod=hmacsha256| broker: ssl://a1txxx.iot-as-mqtt.cn-shanghai.aliyuncs.com:443 Connected subscribe: /sys/a1txxx/TH_sensor/thing/event/property/post_reply publish: {"id":"1","version":"1.0","params":{"Temperature":32.46,"Humidity":48}} reply topic : /sys/a1txxx/TH_sensor/thing/event/property/post_reply reply payload: {"code":200,"data":{},"id":"1","message":"success","method":"thing.event.property.post","version":"1.0"}
- 修改App.java中的代码并保存。
- 以相同方法修改App1.java中的代码并运行App1.java程序,上线设备名称为Elec_instrument的设备。
DeviceName .java文件 修改说明 Elec_instrument App1.java - 修改设备信息为电测量仪产品下设备的身份信息。
- 修改电参数测量仪产品下的物模型属性,修改后代码如下。
//Paho Mqtt 消息发布 String topic = "/sys/" + productKey + "/" + deviceName + "/thing/event/property/post"; String content = "{\"id\":\"1\",\"version\":\"1.0\",\"params\":{\"Ua\":220.00,\"WorkingCurrent\":160.32,\"LoadPower\":110.15}}"; //电测量仪产品下的一个属性,上报物模型属性UnitPowerConsumption MqttMessage message = new MqttMessage(content.getBytes());
说明 修改电参数测量仪产品下的物模型属性时,设定的值为各属性取值范围内的任意值。两个设备都上线成功后,您可以在物联网平台控制台上查看设备状态。
选择,可看到两个设备的状态都显示为在线。
运行两个设备的 Java 程序后,在物联网平台的设备列表中,Elec_instrument(电参数测量仪)和 TH_sensor(温湿度传感器)两个设备均显示为在线状态。
该文章对您有帮助吗?