本文主要介绍如何使用demo代码包将设备接入阿里云物联网平台。

前提条件

已为如下产品添加好设备,并获得各个设备的设备证书(ProductKey、DeviceName、DeviceSecret)。 详细内容请参见为产品添加设备
产品名称 DeviceName
温湿度传感器 TH_sensor
电参数测量仪 Elec_instrument

准备开发环境

本示例使用的开发环境如下。

  • 操作系统:Windows
  • JDK版本:JDK8
  • Java语言开发环境

接入物联网平台

使用Demo代码程序接入物联网平台。

说明 以下步骤只在Windows操作系统上模拟操作。在实际应用中,您需要将配置好的SDK烧录到设备上,设备上电联网后即能实际上线。
  1. 下载Demo代码包,并解压缩。
  2. 打开eclipse,导入Demo包中的示例工程aiot-java-demo
  3. 打开src/main/java/com.aliyun.iot/App.java文件,去除或注释掉以下代码段。
    sampleClient.disconnect();
    System.out.println("Disconnected");
    System.exit(0);
  4. src/main/java/com.aliyun.iot/下新建另一个.java文件:App1.java
  5. 复制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";
    ...
  6. 执行以下操作,上线设备名称为TH_sensor的设备。
    1. 修改App.java中的代码并保存。
      • 修改设备信息为温湿度传感器产品下设备的身份信息。
        • productKeydeviceNamedeviceSecret替换为您的设备证书信息。
        • 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());
        说明 修改温湿度产品下的物模型属性时,设定的值为各属性取值范围内的任意值。
    2. 运行App.java程序。
      运行成功后,日志如下:设备上线成功日志
  7. 以相同方法修改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());
    说明 修改电参数测量仪产品下的物模型属性时,设定的值为各属性取值范围内的任意值。

    两个设备都上线成功后,您可以在物联网平台控制台上查看设备状态。

    选择设备管理 > 设备,可看到两个设备的状态都显示为在线

    设备上线状态2