TuyaLink 快速入门教程

通过本入门教程,大家能了解到如何在涂鸦 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 topicString topic = "tylink/" + deviceId + "/thing/property/report";// Current timestamplong timestamp = System.currentTimeMillis();// Property report contentString 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.rhkb.cn/news/136726.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jmeter基础压力教程

Jmeter基础压力测试教程 一、安装Jmeter; 安装需求:1. JDK 8.0.91安装包(最新即可,配置环境变量) 2. Badboy2.25脚本录制工具(注:Jmeter3.0与badboy2.0不兼容) Jmerter安装包…

【数据库系统概论】关系数据库中的关系数据结构

前言关系关系模式关系数据库关系模型的存储结构感谢 💖 前言 上一篇文章【数据库系统概论】数据模型介绍了数据库系统中的数据模型的基本概念。其中提到了关系模型是最重要的一种数据模型。下面将介绍支持关系模型的数据库系统——关系数据库。 按照数据模型的三大…

C++之std::holds_alternative、std::get、std::variant应用实例(二百一十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

阿里云产品试用系列-Serverless 应用引擎 SAE

Serverless 应用引擎 SAE(Serverless App Engine)是一个全托管、免运维、高弹性的通用 PaaS平台。SAE 支持 Spring Boot、Spring Cloud、Dubbo、HSF、Web 应用和 XXL-JOB、ElasticJob任务的全托管,零改造迁移、无门槛容器化、并提供了开源侧诸…

VUE3写后台管理(3)

VUE3写后台管理(3) 1.环境1.node2.vite3.Element-plus4.vue-router5.element icon6.less7.vuex8.vue-demi9.mockjs10.axios11.echarts 2.首页1.布局Main2.头部导航栏CommonHeader3.左侧菜单栏CommonLeft4.首页Home1.从后端获取数据显示到前端table的三种…

vue动态修改浏览器title和icon图标

vue动态修改浏览器title和icon图标 实例代码 setTitleIcon(){var link document.querySelector("link[rel*icon]") || document.createElement(link);link.type image/x-icon;link.rel shortcut icon;link.href /002.png; // 图片放public目录document.getElem…

SSM - Springboot - MyBatis-Plus 全栈体系(十)

第二章 SpringFramework 五、Spring AOP 面向切面编程 4. Spring AOP 框架介绍和关系梳理 AOP是一种区别于OOP的编程思维,用来完善和解决OOP的非核心代码冗余和不方便统一维护问题!代理技术(动态代理|静态代理)是实现AOP思维编…

红黑树的定义和性质以及插入、删除操作

1.红黑树发明的原因 分析二叉排序树,平衡二叉树,红黑树的算法效率: BSTAVL TreeRed-Black Tree时间196019621972时间复杂度(增删查) O ( n ) O(n) O(n) O ( l o g 2 n ) O(log_2n) O(log2​n) O ( l o g 2 n ) O(log…

激光雷达录制pcap类型的包

查看IP 上图中的eno1就是网卡名,就可以使用如下命令录制 sudo tcpdump -i eno1 host 192.168.1.200 -w lidar.pcap-i 后面是网卡名,host 后面是ip,-w后是pcap包名称。

Ubuntu 22.04安装过程

iso下载地址 Ubuntu Releases 1.进入引导菜单 选择Try or Install Ubuntu Server安装 2.选择安装语言 默认选择English 3.选择键盘布局 默认即可 4.选择安装服务器版本 最小化安装 5.配置网络 选择ipv4 选择自定义 DHCP也可 6.配置代理 有需要可以配置 这里跳过 7.软件源 …

群晖 Docker版qbittorrent 下载显示错误 解决方法

这些天在折腾AIO玩,PVE虚拟机底层,核显直通,群晖安装,免不了踩些坑。 今天写篇博客,讲述一下群晖 Docker版qbittorrent 下载显示错误的解决方法,顺便记录一下配置,以便日后折腾可以参考。 直接…

几个国内可用的强大的GPT工具

前言: 人工智能发布至今,过去了九个多月,已经成为了我们不管是工作还是生活中一个重要的辅助工具,大大提升了效率,作为一个人工智能的自然语言处理工具,它给各大行业的提供了一个巨大的生产工具&#xff0c…

机器学习算法基础--逻辑回归

目录 1.数据收集及处理 2.数据提取及可视化 3.逻辑回归训练样本并且测试 4.绘制散点决策边界 逻辑回归的方法已经在数学建模里面讲过了,这里就不多讲了。 本篇我们主要是利用逻辑回归的方法来求解分类问题。 1.数据获取及处理 import pandas as pd from sklearn…

【深度学习框架格式转化】【CPU】Pytorch模型转ONNX模型格式流程详解【入门】

【深度学习框架格式转化】【GPU】Pytorch模型转ONNX模型格式流程详解【入门】 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习框架格式转化】【GPU】Pytorch模型转ONNX模型格式流程详解【入门】前言PyTorch模型环境搭建(CPU)安装onn…

中国汽车供应商远赴德国,中国智驾方案能否远渡重洋?

作者|Amy 编辑|德新 今年的上海车展,中国智能汽车的进步有目共睹,吸引了大批外企高管和研发人员的关注,甚至引发了海外车企一系列的动作和调整。 而在刚刚结束的慕尼黑车展,中国车企及汽车供应链把「肌肉」秀到了现代汽车起源地…

大模型如何赋能智能客服

2022年,大模型技术的出色表现让人们瞩目。随着深度学习和大数据技术的发展,大模型在很多领域的应用已经成为可能。许多公司开始探索如何将大模型技术应用于自己的业务中,智能客服也不例外。 智能客服是现代企业中非常重要的一部分&#xff0…

Python 图形化界面基础篇:创建工具栏

Python 图形化界面基础篇:创建工具栏 引言 Tkinter 库简介步骤1:导入 Tkinter 模块步骤2:创建 Tkinter 窗口步骤3:创建工具栏步骤4:向工具栏添加工具按钮步骤5:处理工具按钮的点击事件步骤6:启动…

基于matlab实现的卡尔曼滤波匀加速直线运动仿真

完整程序: clear clc %% 初始化参数 delta_t 0.1; %采样时间 T 8; %总运行时长 t 0:delta_t:T; %时间序列 N length(t); %序列的长度 x0 0; %初始位置 u0 0; %初速度 U 10; %控制量、加速度 F [1 delta_t 0 1]; %状态转移矩阵 B …

【c#-Nuget 包“在此源中不可用”】 Nuget package “Not available in this source“

标题c#-Nuget 包“在此源中不可用”…但 VS 仍然知道它吗? (c# - Nuget package “Not available in this source”… but VS still knows about it?) 听起来您的公司有一个发布包的内部 NuGet feed,而不是公共 NuGet.org feed。您应该向您的同事询问…

CentOS 7 安装踩坑

CentOS与Ubuntu并称为Linux最著名的两个发行版,但由于笔者主要从事深度学习图像算法工作,Ubuntu作为谷歌和多数依赖库的亲儿子占据着最高生态位。但最近接手的一个项目里,甲方指定需要在CentOS7上运行项目代码,笔者被迫小小cos了一…