TuyaLink 快速入门

更新时间:2023-02-17 07:27:48下载pdf

通过本入门教程,您能了解如何在涂鸦 IoT 开发平台上使用 TuyaLink 完成智能设备接入。并通过 Java 程序,在 IntelliJ IDEA 中使用 TuyaLink 的 GitHub Demo 工程,对一个电工开关设备,实现基本的数据上报下发功能。

准备工作

注册一个涂鸦开发者账号,用来创建和管理您的云端设备。

第一步:生态设备接入

步骤一:创建产品

产品是涂鸦定义一类设备的抽象描述,用于对同类设备进行管理。例如,如果您有一台具备蓝牙控制能力的跑步机,需要接入涂鸦 IoT 开发平台完成设备监控,则您可以定义它为一个 智能跑步机 产品。本步骤介绍如何创建一个智能化方式为 生态设备接入 的产品:

  1. 登录 涂鸦 IoT 开发平台

  2. 单击 创建产品

  3. 根据您已有的智能设备分类选择产品类目,确定具体产品。例如 电工 > 开关

  4. 选择智能化方式 处,选择 生态设备接入

    TuyaLink 快速入门

  5. 默认选择 TuyaLink 自定义方案

  6. 根据页面提示,完善产品基本信息。

步骤二:功能定义

创建产品后,您会进入 功能定义 菜单,您可以根据设备的已有功能进行添加。

  1. 单击 添加功能 按钮,定义一个最基本的功能,如调光开关 1。

  2. 单击 确定,添加完成。

    TuyaLink 快速入门

步骤三:设备开发和激活验证

  1. 切换至 设备开发 菜单,选择 开放协议接入,单击 下一步

  2. 根据接入指南的内容说明,您可以选择 Tuya MQTT 标准协议 或 Tuya IoT Core SDK。本文介绍 Tuya MQTT 标准协议 接入方式。

    TuyaLink 快速入门

  3. 进入激活验证流程,您可以选择免费领取授权码或购买授权码,来激活您的设备。本步骤选择 免费领取授权码

    TuyaLink 快速入门

  4. 等待 1 分钟左右,获取到免费的授权码后,您可以单击 注册设备 来生成一个可用于测试验证的设备。

  5. 注册设备 页面,选择注册方式,并分配注册 ID。

    TuyaLink 快速入门

  6. 设备注册成功后,您可以在激活验证页面获取设备的标识信息。

    TuyaLink 快速入门

    标识 示例
    注册 ID nFUDM2LnPFuL5jTrW***
    ProductID gmabzdwevsvlt***
    DeviceID 6cc87b39369b6fb754i***
    DeviceSecret *****************
    • 以上标识示例值仅用于举例,请不要直接使用。
    • 设备的标识信息是设备连接涂鸦 IoT 开发平台的唯一凭证,请妥善保管,不要随便泄露给任何人。

对于一般的物联网场景,获取到设备的 ProductIDDeviceIDDeviceSecret 便可以满足设备上报数据到云端的需求,也就是通常意义的设备数据采集。TuyaLink 通过 MQTT 上报设备数据。

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于 TCP/IP 协议簇上。MQTT 最大优点在于,支持通过极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

第二步:下载和适配 Demo

接下来,您将通过 Java 代码的方式,接入涂鸦 IoT 开发平台,实现设备的数据上报功能。Java 代码运行在相应实体主机上,即可代表真实设备。

  1. 前往 GitHub 下载 Tuyalink Demo

  2. 将下载的示例代码,解压导入到 IntelliJ IDEA。

  3. 进入核心示例代码 TuyaMQTT3ClientDemo

    TuyaLink 快速入门

    其他您需要关注的目录如下:

    • sign:存放涂鸦 MQTT 连接相关签名逻辑。
    • listener:存放 MQTT 消息监听 Listener。
    • resources:存放证书。
  4. 将您在 上文 获取的 ProductIDDeviceIDDeviceSecret 信息,替换到 TuyaMQTT3ClientDemo 如下位置:

    TuyaLink 快速入门

    // TuyaLink device configuration is as follows, you must change it
    String productId = "dsadus***";
    String deviceId = "6cc87b393436fb754i***";
    String deviceSecret = "ffad8e******8c717";
    
    • 以上标识示例值仅用于举例,请不要直接使用。
    • 其他代码均不需要改动。示例代码已经实现了订阅基础的设备属性值上报 topic。

第三步:设备上报数据

设备属性上报

topictylink/${deviceId}/thing/property/report

{
    "msgId":"45lkj3551234***",
    "time":1626197189638,
    "data":{
        "switch_led_1":{
            "value":true,
            "time": 1626197189638
        }
    }
}

参数说明

参数 类型 说明 必选 备注
${deviceId} string 设备 ID 要查询设备模型的具体设备。
version string 协议版本 默认值为 1.0,且仅有 1.0。
msgId string 消息 ID 总长度不超过 32 位的字符,请求和响应消息通过该值建立应答关系。
time number 消息时间戳 消息发送时的 Unix 时间戳,10 位秒级或 13 位毫秒级。
data object 上报的属性值集合 key 为属性 code,value 为属性值和属性变更时间戳。
data.${key} object 属性上报对象 key 为属性 code。
data.${key}.time number 属性变更时间戳 Unix 时间戳,10 位秒级或 13 位毫秒级。
data.${key}.value object 属性上报值 具体的属性值。

代码示例如下:

 //****************************************device property report********************************************

 // Property report topic
 String topic = "tylink/" + deviceId + "/thing/property/report";
 // Current timestamp
 long timestamp = System.currentTimeMillis();
 // Property report content
 String content = "{\n" +
         "\t\"msgId\":\"45lkj3551234002\",\n" +
         "  \t\"time\":" + timestamp + ",\n" +
         "\t\"data\":{\n" +
         "    \t\"switch_led_1\":{\n" +
         "        \t\"value\":true,\n" +
         "        \t\"time\": " + timestamp + "  \n" +
         "        }\n" +
         "\t}\n" +
         "}";

 MqttMessage message = new MqttMessage(content.getBytes());
 message.setQos(1);
 sampleClient.publish(topic, message);
 System.out.println("publish topic: " + topic);
 System.out.println("publish content: " + content);

此处的设备属性字段需要跟涂鸦 IoT 开发平台功能定义对应的标识符一致。

TuyaLink 快速入门

在线调试

  1. 代码调整好后,打开涂鸦 IoT 开发平台,在接入使用流程中选择 在线调试

    TuyaLink 快速入门

    (可选)或者在产品开发页面,直接跳转到 在线调试 页面,然后单击 前往设备调试

    TuyaLink 快速入门

  2. 选择需要调试的设备,可以选择跟上述代码配置中一致的设备 ID。

  3. 选择设备后,可以实时看到设备的在线状态,也可单击 手动刷新 获取最新的状态。

    TuyaLink 快速入门

  4. 至此,准备工作完毕,右键 TuyaMQTT3ClientDemo 文件,单击 Run 运行代码。

    TuyaLink 快速入门

  5. 可以看到控制台属性已上报成功。

    TuyaLink 快速入门

  6. 此时,切换到涂鸦 IoT 开发平台的 设备调试 页面,可以看到设备上报的数据日志。
     TuyaLink 快速入门

第四步:向设备下发消息

上一步您已经体验了设备上报数据到云端,本小节将演示如何向设备下发消息。

  1. 返回 涂鸦 IoT 开发平台
  2. 前往 设备调试 页面。
  3. 调整为您分配了授权码的设备。
    TuyaLink 快速入门
  4. 在属性调试对应参数中,填入参数值,单击 设置。此时云端的指令会下发到设备,您可以看到日志区域已经显示下发给到设备的内容。
    TuyaLink 快速入门
  5. 返回还在运行中的 Java 代码中,IDEA 的控制台输出如下内容。
    TuyaLink 快速入门

下一步

您已经通过 Java 代码运行的程序,模拟了真实设备和云平台之间设备上报下发的全流程。基于您下载的 Demo 程序,您可以快速验证您项目所需的业务场景。

接下来,可根据您的设备分类继续 创建产品