当前位置: 首页 > news >正文

如何低门槛开发有趣实用的ZigBee产品?

一、什么是 Zigbee 协议?

Zigbee 技术是一种连接距离短、功耗低、复杂程度低、数据传输量低的无线通信技术,其命名灵感源自于蜜蜂在群体中的信息传输。它主要通过网关与互联网进行通信,并嵌入各种智能设备,最终实现自动控制和远程控制。

同一个 Zigbee 网络内的设备之间也可以直接发送消息,在网络离线时实现本地控制。例如:照明遥控器和照明设备,窗帘遥控器和窗帘电机等,可以脱离网关使用。

二、涂鸦 Zigbee 开发框架简介

为了给开发者提供简单易用、接口统一的开发环境,涂鸦重磅推出 TuyaOS Zigbee 子设备开发框架,它是属于 TuyaOS 系统的一个子集,该框架基于业务包的概念所设计,提供了产品级的能力,同时高度封装 Zigbee 协议栈。这意味着开发者无需关心具体的实现原理,使用业务接口即可快速开发 Zigbee 产品。

基于涂鸦提供标准的 API 开发,开发者可以在不同平台之间实现应用代码的无缝移植,从而加速产品落地。本开发框架提供了路由设备(Router)和终端设备(End Device)两种 Zigbee 3.0 标准设备类型的开发,接下来为大家具体介绍下。

三、重点功能介绍

1、设备配网方式更丰富

一个 Zigbee 设备要想加入到另一个 Zigbee 网络中进行数据交互,必须先进行配网操作。而 Zigbee 设备的入网流程,大体包括:发现网关—请求关联—交换密钥—更新链接密钥。

针对设备使用场景的不同,涂鸦 Zigbee 子设备框架还提供了多种设备配网方案:

- 普通配网

最常见的就是用户在设备上进行操作后(设备上电、按键),触发子设备进入配网状态,开始进行扫网,在发现网关后自动进入后续流程。

- 扫码配网

在某些施工场景下,施工人员无法直接对子设备进行操作。针对这类场景,该框架提供了扫码配网的方案。

即用户可以通过 App 扫描子设备上的二维码,然后通知网关开启配网,并主动搜寻 Zigbee 子设备。一旦搜寻到子设备,就与其进行数据交互,协助子设备入网。

- TouchLink

TouchLink 字面意思即接触式连接,是 Zigbee 3.0 标准中 ZLL(Zigbee Light Link)协议定义的一种组网方式。早期主要用于照明场景,之后逐步演化为一种标准的配网方式。

Touchlink 其实是一种近距离组网方式:一个设备被定义为发起者(Initiator),另一个设备被定义为目标者(Target)。发起者和目标者直接建立连接,全程都无需网关和 App 参与,配网速度更快更便捷。

①发起者的职责是扫描目标设备。通常情况下终端设备(End Device)会被定义成发起者。

②目标者的职责是等待附近发起者的扫描请求。通常情况下,路由设备(Router)会被定义成目标者,在配置时主要存在以下两种情况:

—若得知发起者不存在网络,则目标者需要建立一个新的网络;

—若得知发起者有网络,则目标者自动加入发起者的网络。

框架支持 ZLL 发起者角色开发,也支持目标者角色开发。且支持配置 TouchLink 时的信号强度,以调整 TouchLink 时两个设备之间的最大距离。

举个例子:照明遥控器其实相当于是发起者角色,灯具相当于是目标者角色,通过 App 就能实时控制灯具状态。

2、OTA时间更短

OTA 即 Over-the-Air,是一种通过无线通讯进行固件升级的技术。TuyaOS 支持设备 OTA 升级能力:通过搭配涂鸦网关和云端方案,可以远程为设备固件进行软件升级,降低退货返工等生产成本。

- 全量 OTA

一般 OTA 传输的固件包是完整的固件包,也称全量 OTA 。全量 OTA 升级是 Zigbee 规范的标准用法。固件包的大小不同,整个 OTA 过程大约需要10~15分钟,传输时间相对较长。

- 差分 OTA

为了缩短 OTA 的时长,该框架为开发者提供了差分 OTA 升级方式。差分升级又叫增量更新,是将老版本固件与新版本固件做对比差分,得到升级部分的补丁即差分包。

设备下载了差分包后,将老版本固件与差分包进行组合,以得到新版本的固件。当 OTA 固件与设备当前运行固件差异较小时,差分 OTA 包也会很小,可极大缩短传输时间,整个 OTA 过程可以缩短至 1 分钟以内。

- 群组 OTA

当一个群组内有多个相同的设备需要升级时,如果逐个进行升级会非常耗时。针对这个问题,该框架提供了群组 OTA 方案,支持同时对群组内的相同设备统一进行固件升级,从而缩短总体时长。群组内相同设备数量越多,效果越明显,且差分 OTA 和群升 OTA 可以同时使用。

三、产品应用实例

1、无线开关

如今,控制智能产品的外部媒介越来越多样化,如 App、智能音箱、语音控制等,已经成为相当主流的控制方式。而由于设备众多且使用对象各异,控制媒介在实际应用中常常存在许多痛点,比如:

  • 不方便掏出手机控制;

  • 部分智能场景需要配置 App,对老人和小孩来说有操作难度;

  • 一些商业场合需要产品互联,但通过总线配置的方案太复杂,因此无线开关应运而生,化繁为简。

在这里插入图片描述

特点:

-DIY 联动动作

通过按键可自定义配置单击、双击、长按等动作,并一键唤醒专属场景联动。

  • 反转双控

支持你在配置场景开关时一键取反,快速让无线开关和被控设备组成双控联动。

  • 步进调节

选择调高/调低,即可通过无线开关调节档位、亮度。

  • 自发电

依托 Zigbee 标准 green power 技术,无线开关可摆脱电池供电的模式,通过按键按下的动能就能持续供电,用户不用再为突然没电而烦恼。

目前,同样应用该技术的,还有自发电智能门铃,产品已经相当成熟。不耗一度电,也能时刻保持在线工作。即使你不在家,也能通过手机 App 实现远程呼叫提醒,可以一键开锁,并在进门后联动其他智能设备来丰富应用场景。

在这里插入图片描述

  • 场景联动

支持在 Wi-Fi 离线的环境下,网关能联动家中所有 Zigbee 产品;并在网关和 Wi-Fi 都在线的环境下,按下按键,动态场景就会联动调光开关、窗帘开关,对灯具的亮度或窗帘开合百分比进行自动调整。

在这里插入图片描述

2、智能门锁

忘带钥匙一直是大家的日常痛点,但有了智能锁就能完美解决这个问题。涂鸦智能锁方案支持指纹、密码、门卡、人脸、指静脉等多种解锁方式。基于每个用户的自定义设置,门锁开门后可联合全屋其他智能设备,触发对应联动场景,满足居家不同需求。

比如开门后联动灯具自动打开,对于老人非常方便,可以有效避免摸黑开灯导致的意外。

特点:

  • 解锁方式多元

支持手机、指纹、密码、门卡、人脸、指静脉等多种解锁方式,无需钥匙就能轻松出门。

在这里插入图片描述

  • 开门记录查询

智能锁可以成为你的管家,告知你家门口发生的一切动静,包括实时开门记录、门铃呼叫、家人回家提醒等。

在这里插入图片描述

  • 可视对讲联动

当访客到家时,主人可以在线通过智能可视门铃来进行可视对讲,支持一键为访客开门,且涂鸦生态内所有可视门铃与智能门锁均可支持联动功能。

在这里插入图片描述

  • 第三方语音控制

智能锁支持接入 Amazon Alexa、Google Assistant 两大主流智能音箱。语音控制支持以下三个核心功能:语音检查门锁状态、语音控制开锁和关锁。

在这里插入图片描述

四、资料下载

开发者可登录 Tuya Wind IDE,在资源中心搜索当前已经发布的 Zigbee 子设备的信息。根据自己开发需求来下载对应的框架。

在这里插入图片描述

Tuya Wind IDE 安装操作指南:
https://developer.tuya.com/cn/docs/iot-device-dev/tuyaos-wind-ide?id=Kbfy6kfuuqqu3

五、技术支持

开发过程中,如有遇到任何问题,欢迎登录文档中心查看完整开发攻略,或登录TuyaOS-Zigbee 设备开发论坛进行提问,将有开发小哥哥随时为你解答~

1、文档中心

https://developer.tuya.com/cn/docs/iot-device-dev/TuyaOS-frame_dev_Zigbee?id=Kc6f834uhpetq

2、TuyaOS-Zigbee 设备开发论坛

https://www.tuyaos.com/viewforum.php?f=18&sid=0df22e69b1370e1988f2dc36286ec47f

相关文章:

如何低门槛开发有趣实用的ZigBee产品?

一、什么是 Zigbee 协议? Zigbee 技术是一种连接距离短、功耗低、复杂程度低、数据传输量低的无线通信技术,其命名灵感源自于蜜蜂在群体中的信息传输。它主要通过网关与互联网进行通信,并嵌入各种智能设备,最终实现自动控制和远程…...

ChatGPT和API发生重大中断!

11月9日凌晨,OpenAI在官网发布,ChatGPT和API发生重大中断,导致全球所有用户无法正常使用,宕机时间超过2小时。 目前,OpenAI已经找到问题所在并进行了修复,但仍然不稳定,会继续进行安全监控。 …...

SQL第五次上机实验

1.向图书表(Book)插入以下记录 USE TSGL GO INSERT INTO Book VALUES(7-5402-1800-3,文学类,边城,沈从文,燕山出版社,10,5,5)2.向借阅表插入以下两条记录 USE TSGL GO INSERT INTO Lend VALUES(201207034201,7-5402-1800-3,00366240,2013-04-22),(2012…...

Matplotlib数据可视化综合应用Matplotlib图形配置在线闯关_头歌实践教学平台

Matplotlib数据可视化综合应用图形配置 第1关 配置颜色条第2关 设置注释第3关 自定义坐标刻度第4关 配置文件与样式表 第1关 配置颜色条 任务描述 本关任务:使用colorbar绘制一个热成像图。 编程要求 在右侧编辑器Begin-End处补充代码,根据输入数据绘制…...

CSS实现瀑布流的两种方式

column 多行布局实现瀑布流 1.column 实现瀑布流主要依赖两个属性。 2.column-count 属性&#xff0c;是控制屏幕分为多少列。 3.column-gap 属性&#xff0c;是控制列与列之间的距离。 <!DOCTYPE html> <html lang"en"> <head><meta charset&q…...

Hadoop 视频分析系统

视频分析系统 业务流程 原始数据 vedio.json {"rank":1,"title":"《逃出大英博物馆》第二集","dzl":"77.8","bfl":"523.9","zfl":"39000","type":"影视",&quo…...

Flutter android和ios闪屏页配置

一.概念理解 闪屏页 1.当点击app开始的一瞬间&#xff0c;所呈现出来的页面就是闪屏页。 2.为什么会有闪屏也&#xff0c;由于app启动需要加载代码&#xff0c;这个过程需要耗时&#xff0c;在没有加载完成之前&#xff0c;是看不到app真正的页面。所以app在没有完全加载完时…...

30道高频Vue面试题快问快答

※其他的快问快答&#xff0c;看这里&#xff01; 10道高频Qiankun微前端面试题快问快答 10道高频webpack面试题快问快答 20道高频CSS面试题快问快答 20道高频JavaScript面试题快问快答 30道高频Vue面试题快问快答 面试中的快问快答 快问快答的情景在面试中非常常见。 在面试过…...

vue-前端实现模糊查询

vue-前端实现模糊查询 开始觉得前端的模糊查询肯定是非常难实现的&#xff0c;但后来发现还是很容易的&#xff0c;几行代码就可以搞定。 原理 从后端获取到所有数据后&#xff0c;将数据存储于两个变量中&#xff0c;目的是为了其中一个作为模糊查询的对照组&#xff0c;用…...

QT:tcpSocket 报错The proxy type is invalid for this operation

调用connectToHost时会先检查代理情况。Qt 程序默认使用系统的代理设置会导致这个问题导致&#xff0c;只要关闭系统的代理设置就可以解决这个问题&#xff1a; &#xff08;1&#xff09;添加头文件&#xff1a; #include <QNetworkProxy> &#xff08;2&#xff09;添加…...

PostgreSQL 技术内幕(十一)位图扫描

扫描算子在上层计算和底层存储之间&#xff0c;向下扫描底层存储的数据&#xff0c;向上作为计算的输入源&#xff0c;在SQL的执行层中&#xff0c;起着关键的作用。顺序、索引、位图等不同类型的扫描算子适配不同的数据分布场景。然而&#xff0c;扫描算子背后的实现原理是怎样…...

C# WebSocket 服务器

*******************websocket服务器************************************** 第一步&#xff1a;创建HttpListener类&#xff0c;并启动监听&#xff1a; var listener new HttpListener(); listener.Prefixes.Add("http://10.10.13.140:8080/"); …...

自动化实战 - 测试个人博客系统

前言 本篇使用Selenium3Junit5对个人博客进行自动化测试&#xff0c;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录 前言一.web自动化测试用例二.测试准备1.注册界面自动化测试测试过程中遇到的Bug: 2.登录界面自动…...

TCP/IP详解

TCP/IP详解 一、网络基础1.TCP/IP网络分层2.IP地址和端口号3.封装与分用4.客户-服务端模型 二、链路层1.以太网IEEE802封装2.环回接口 Loopback Interface3.最大传输单元MTU和路径MTU 三、网络层 - IP1.IP首部的关键信息2.IP路由选择3.子网寻址和子网掩码4.ICMP和IGMP 四、传输…...

2023年的低代码:数字化、人工智能、趋势及未来展望

前言 正如许多专家预测的那样&#xff0c;低代码平台在2023年将展现更加强劲的势头。越来越多的企业正在纷纷转向低代码开发&#xff0c;他们希望能够快速开发内部应用程序&#xff0c;并在经济衰退可能出现的情况下保持灵活性。在这个大背景下&#xff0c;低代码平台为企业软件…...

【gogogo专栏】golang并发编程

golang并发编程 并发编程的工具goroutine介绍协程管理器sync.WaitGroup channel介绍readChannel和writeChannelclose的用法select的用法 通讯示例总结 并发编程的工具 在golang中&#xff0c;并发编程是比较简单的&#xff0c;不像java中那么麻烦&#xff0c;golang天然的支持协…...

深入理解JVM虚拟机第二十二篇:详解JVM当中与操作数栈相关的字节码指令

大神链接&#xff1a;作者有幸结识技术大神孙哥为好友&#xff0c;获益匪浅。现在把孙哥视频分享给大家。 孙哥链接&#xff1a;孙哥个人主页 作者简介&#xff1a;一个颜值99分&#xff0c;只比孙哥差一点的程序员 本专栏简介&#xff1a;话不多说&#xff0c;让我们一起干翻J…...

Vue报错解决Error in v-on handler: “Error: 无效的节点选择器:#div1“

因为我们在创建元素之前用了#div1"所有它会报错&#xff0c;解决方案简单粗暴咱们直接用 setTimeout(createEdit, 1)解决问题了 原理&#xff1a;vue的虚拟dom创建完成以后再调用真是dom就没啥问题 function createEdit() {const editor new E(#div1)editor.config.hei…...

R | R包安装报错-github连接速度慢或无法访问 | metaboanalystR | Retip | rJava安装

R | R包安装报错-github连接速度慢或无法访问 | metaboanalystR | Retip | rJava安装 一、metaboanalystR 安装1.1 Bioconductor报错&#xff0c;无网络连接1.2 github520-修改hosts文件 二、retip安装2.1 rJava包加载报错及安装2.2 安装Retip包 三、从Bioconductor安装Rdisop报…...

博阳精讯、凡得科技访问上海斯歌:共探BPM流程服务新高地

10月27日下午&#xff0c;来自博阳精讯、凡得科技的流程领域专家、领导一行参观访问了上海斯歌总部。三方举行了深度交流会谈&#xff0c;分享了彼此对流程领域的前沿洞察和技术实践&#xff0c;共同探索了BPM流程服务科技力与价值力的新高地。 本次研讨会上&#xff0c;博阳精…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...