TuyaLink 快速入门教程

news2024/11/25 9:53:23

通过本入门教程,大家能了解到如何在涂鸦 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 快速入门

    标识示例
    注册 IDnFUDM2LnPFuL5jTrW***
    ProductIDgmabzdwevsvlt***
    DeviceID6cc87b39369b6fb754i***
    DeviceSecret*****************

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

第二步:下载和适配 Demo

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

  1. 前往 GitHub 下载 Tuyalink Demo。

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

  3. 进入核心示例代码 TuyaMQTT3ClientDemo

    TuyaLink 快速入门

  4. 将在上文获取的 ProductIDDeviceID 和 DeviceSecret 信息,替换到 TuyaMQTT3ClientDemo 如下位置:

    TuyaLink 快速入门

    // TuyaLink device configuration is as follows, you must change it
    String productId = "dsadus***";
    String deviceId = "6cc87b393436fb754i***";
    String deviceSecret = "ffad8e******8c717";
    

第三步:设备上报数据

设备属性上报

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

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

参数说明

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

代码示例如下:

 //****************************************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 程序,可以快速验证您项目所需的业务场景。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024150.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分类预测 | Matlab实现GA-RF遗传算法优化随机森林多输入分类预测

分类预测 | Matlab实现GA-RF遗传算法优化随机森林多输入分类预测 目录 分类预测 | Matlab实现GA-RF遗传算法优化随机森林多输入分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GA-RF遗传算法优化随机森林多输入分类预测(完整源码和数据&…

细说GNSS模拟器的RTK功能(四)应用实例02

在之前的文章中,我们详细介绍了什么是RTK,并且用一个基于RTCM插件的RTK使用实例,来模拟RTCM的使用,本期文章我们将通过另一种方式——基于多实例,来模拟两个同步的射频信号。 基于多实例 硬件设置 首先,需…

elasticsearch bulk 批量操作

1:bulk 是 elasticsearch 提供的一种批量增删改的操作API bulk 对 JSON串 有着严格的要求。每个JSON串 不能换行 ,只能放在同一行,同时, 相邻的JSON串之间必须要有换行 (Linux下是\n;Window下是\r\n&#…

zaabix实现对nginx监控

本文使用监控模板net.tcp.listen[port]实现监听端口 实验环境: 首先搭建好zabbix-server ,zabbix-agenthttps://mp.csdn.net/mp_blog/creation/editor/132622769?spm1001.2014.3001.9457 而后在zabbix-agent主机上下载一个nginx 登录zabbix网站创建主…

JavaWeb开发-06-SpringBootWeb-MySQL

一.MySQL概述 1.安装、配置 官网下载地址:https://dev.mysql.com/downloads/mysql/ 2.数据模型 3.SQL简介 二.数据库设计-DDL 1.数据库 官网:http:// https://www.jetbrains.com/zh-cn/datagrip/ 2.表(创建、查询、修改、删除) #…

vscode 插件配置推荐

VSCode汉化包插件 :Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code VSCode汉化包,原始默认是英文的所以我们需要下一个中文插件。 VSCode自动补全标签 :Auto Close Tag Auto Close Tag 对Html或Xml文件自动创建结…

【小程序】实现经典2048小游戏

概述 经典小游戏2048,2048小游戏对于逻辑要求还是很有技术含量的,有兴趣的可以看看 详细 以前学习时写的小游戏2048,技术含量还是不错的,有兴趣的可以看看 2048已经封装好了,在主页面直接引入文件可以直接调用 演…

SQLite 学习笔记2 - 常用命令和示例

———————————————— 版权声明:本文为CSDN博主「网易智企」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/netease_im/article/details/123741168 ————…

基于SpringBoot+Vue的健身房管理系统设计与实现

前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…

ASEMI代理瑞萨R7S721021VCFP#AA0芯片介绍

编辑-Z 型号:R7S721021VCFP#AA0 特性: 指令缓存大小:32 KB 数据缓存大小*2:32 KB TLB条目:128个条目 Jazelle架构扩展:完整 采用NEON技术的媒体处理引擎:包括在内 FPU:包括 PTM接口&am…

gpt扣款失败,openai扣款失败无法使用-如何解决gpt扣款失败的问题?

gpt扣款失败,openai扣款失败无法使用。毕竟你花了钱却无法使用你所期待的服务,这种情况确实令人不快。但是, 为什么gpt扣款失败? 可能是由于支付问题导致的扣款失败。这包括信用卡额度不足、支付信息错误等等。如果你的支付信息…

RocketMQ高性能核心原理与源码架构剖析(上)

这⼀部分主要是理解 RocketMQ ⼀些重要的⾼性能核⼼设计。我们知道,在 MQ 这个领域, RocketMQ 实际上是属于⼀个后起之秀。RocketMQ 除了能够⽀撑 MQ 的业务功能之外,还有更重要的⼀部分就是对于⾼吞吐、⾼性能、⾼可⽤的三⾼架构设计。这些设…

【Stm32】【Lin通信协议】Lin通信点亮灯实验

Lin通信点亮灯实验 通过STM32的串口发送数据,然后通过串口转换模块将数据转换成LIN(Local Interconnect Network)协议,最终控制点亮灯。需要工程和入门资料的可以私信我,看到了马上回。 入门书本推荐: 一…

spring boot 3 + spring cloud sleuth 无法注入Tracer问题

1.背景: 由于升级springboot版本到3.1.0后,导致原先的plumelog的traceId获取方式失败。 Autowiredprivate Tracer tracer; 项目启动报错,无法找到tracer bean实例。 2.解决: 前往spring cloud sleuth官网,发现此项…

Python入门自学进阶-Web框架——41、初步了解Celery 分布式队列、识堡垒机、自动发布、配置管理系统

Celery是一个基于Python开发的分布式异步消息任务队列,可以轻松的实现任务的异步处理 实例场景: 对100台机器执行一条批量命令,可能会花很长时间 ,但不想让你的程序等着结果返回,而是给你返回 一个任务ID,经过一段时间只需要拿着…

adb操作及常用命令

问题:no devices/emulators found:adb devices 没有连接的设备 解决方案: 大概率是因为usb调试功能没有打开,可以查看手机设备是否开启usb调试功能 Android若未开启,可通过设置-关于手机,连续点击版本号7…

以矩阵的形式,对点或线段或多边形绕固定点旋转方法

一、仅旋转 ,其中x,y旋转前横纵坐标,x’,y’为旋转后横纵坐标。θ旋转角度,单位为弧度。 等价于:x’ xcosθysinθ,y’-xsinθycosθ 注:此矩阵仅为旋转矩阵,不包含平移和缩放。 二、旋转平…

【IDEA】解决使用Terminal窗口按ESC键无法退出Vi的问题

背景 我们经常在IDEA中使用Terminal终端操作命令行,一般来说没问题,但使用与vi有关的命令时,需要按ESC键退出编辑,但在IDEA中会跳到编辑窗口,造成这个问题的原因是与IDEA的快捷键有关。 打开Setting设置 在左上角搜…

Spring Boot2.7生成用于登录的图片验证码

先在 pom.xml 注入依赖 <dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version> </dependency>然后 需要在配置文件中声明一下DefaultKaptcha 的 bean对象 然后 我们…

[NPUCTF2020]ReadlezPHP 反序列化简单反序列

题目还是挺简单的 看代码 访问一下 一看就是反序列化 看看执行主要是 echo $b($a) 那就是$b是命令 $a是参数 这里还要fuzz一下 因为system不能执行 所以我们可以使用其他命令执行 函数 例如 assert 我们看看如何构造 public $a;public $b;public function __construct(){…