OTA设计思路

什么是 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 就能实时控制灯具状态

戳视频,可了解最后实际照明产品效果👇:

,时长01:10

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,对老人和小孩来说有操作难度;

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

图片

(无线开关内部结构,支持4路按键)

特点:

  • 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

2TuyaOS-Zigbee 设备开发论坛

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

-END-

如需咨询其他商务合作或智能产品开发方案,可点击【阅读原文】,填写表单后,将有专人与您进行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESP32 OTA(Over-The-Air)升级是指通过无线网络对设备进行远程升级的方式。下面是一个简单的ESP32 OTA升级程序设计步骤: 1. 配置Arduino IDE环境,安装ESP32开发板库和OTA库。 2. 在代码中添加OTA库的头文件和OTA配置信息,如下所示: ```C++ #include <WiFi.h> #include <ESPmDNS.h> #include <WiFiUdp.h> #include <ArduinoOTA.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Connection Failed! Rebooting..."); delay(5000); ESP.restart(); } ArduinoOTA.setHostname("ESP32"); ArduinoOTA.setPassword("your_OTA_password"); ArduinoOTA.onStart([]() { Serial.println("Start OTA"); }); ArduinoOTA.onEnd([]() { Serial.println("\nEnd OTA"); }); ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { Serial.printf("Progress: %u%%\r", (progress / (total / 100))); }); ArduinoOTA.onError([](ota_error_t error) { Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) { Serial.println("OTA Auth Failed"); } else if (error == OTA_BEGIN_ERROR) { Serial.println("OTA Begin Failed"); } else if (error == OTA_CONNECT_ERROR) { Serial.println("OTA Connect Failed"); } else if (error == OTA_RECEIVE_ERROR) { Serial.println("OTA Receive Failed"); } else if (error == OTA_END_ERROR) { Serial.println("OTA End Failed"); } }); ArduinoOTA.begin(); } void loop() { ArduinoOTA.handle(); // Your code here. } ``` 3. 上传代码到ESP32设备并连接到WiFi网络。 4. 在Arduino IDE的“工具”菜单中,选择“ESP32 Sketch Data Upload”选项,上传OTA需要的固件文件。 5. 在Arduino IDE的“工具”菜单中,选择“串口监视器”,打开串口监视器,可以看到OTA的进度。 6. 在Arduino IDE的“工具”菜单中,选择“ESP32 Sketch Data Upload”,上传新的OTA固件文件。 7. 等待ESP32设备重启,并自动连接到WiFi网络。 8. 在串口监视器中,可以看到OTA升级的进度和状态。 通过以上步骤,您就可以实现ESP32 OTA升级程序设计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值