如何低门槛开发有趣实用的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 属性,是控制屏幕分为多少列。 3.column-gap 属性,是控制列与列之间的距离。 <!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开始的一瞬间,所呈现出来的页面就是闪屏页。 2.为什么会有闪屏也,由于app启动需要加载代码,这个过程需要耗时,在没有加载完成之前,是看不到app真正的页面。所以app在没有完全加载完时…...

30道高频Vue面试题快问快答
※其他的快问快答,看这里! 10道高频Qiankun微前端面试题快问快答 10道高频webpack面试题快问快答 20道高频CSS面试题快问快答 20道高频JavaScript面试题快问快答 30道高频Vue面试题快问快答 面试中的快问快答 快问快答的情景在面试中非常常见。 在面试过…...
vue-前端实现模糊查询
vue-前端实现模糊查询 开始觉得前端的模糊查询肯定是非常难实现的,但后来发现还是很容易的,几行代码就可以搞定。 原理 从后端获取到所有数据后,将数据存储于两个变量中,目的是为了其中一个作为模糊查询的对照组,用…...
QT:tcpSocket 报错The proxy type is invalid for this operation
调用connectToHost时会先检查代理情况。Qt 程序默认使用系统的代理设置会导致这个问题导致,只要关闭系统的代理设置就可以解决这个问题: (1)添加头文件: #include <QNetworkProxy> (2)添加…...

PostgreSQL 技术内幕(十一)位图扫描
扫描算子在上层计算和底层存储之间,向下扫描底层存储的数据,向上作为计算的输入源,在SQL的执行层中,起着关键的作用。顺序、索引、位图等不同类型的扫描算子适配不同的数据分布场景。然而,扫描算子背后的实现原理是怎样…...
C# WebSocket 服务器
*******************websocket服务器************************************** 第一步:创建HttpListener类,并启动监听: var listener new HttpListener(); listener.Prefixes.Add("http://10.10.13.140:8080/"); …...

自动化实战 - 测试个人博客系统
前言 本篇使用Selenium3Junit5对个人博客进行自动化测试,如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录 前言一.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年的低代码:数字化、人工智能、趋势及未来展望
前言 正如许多专家预测的那样,低代码平台在2023年将展现更加强劲的势头。越来越多的企业正在纷纷转向低代码开发,他们希望能够快速开发内部应用程序,并在经济衰退可能出现的情况下保持灵活性。在这个大背景下,低代码平台为企业软件…...

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

深入理解JVM虚拟机第二十二篇:详解JVM当中与操作数栈相关的字节码指令
大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻J…...
Vue报错解决Error in v-on handler: “Error: 无效的节点选择器:#div1“
因为我们在创建元素之前用了#div1"所有它会报错,解决方案简单粗暴咱们直接用 setTimeout(createEdit, 1)解决问题了 原理: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报错,无网络连接1.2 github520-修改hosts文件 二、retip安装2.1 rJava包加载报错及安装2.2 安装Retip包 三、从Bioconductor安装Rdisop报…...

博阳精讯、凡得科技访问上海斯歌:共探BPM流程服务新高地
10月27日下午,来自博阳精讯、凡得科技的流程领域专家、领导一行参观访问了上海斯歌总部。三方举行了深度交流会谈,分享了彼此对流程领域的前沿洞察和技术实践,共同探索了BPM流程服务科技力与价值力的新高地。 本次研讨会上,博阳精…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

路由基础-路由表
本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。 路由是数据通信网络中最基…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...