概述
Wi-Fi 低功耗设备开发包是基于 TuyaOS 系统裁剪得到的适用于 Wi-Fi 协议低功耗产品开发的开发包。开发包包含了设备配网、激活、安全、连接云端、设备控制、OTA 等核心能力,并提供相关函数。您无需关心各 Wi-Fi 芯片平台的设备功能的具体实现方式,只需要按照开发包提供的标准 API 进行适配,即可实现接入涂鸦开发者平台,完成设备智能化。
开发包特性
Wi-Fi 低功耗设备开发包用于长保活、单火等 Wi-Fi 低功耗设备开发,因为 Wi-Fi 低功耗对芯片有较高的要求,只有部分芯片支持,并且每个芯片平台适用的开发类型也会存在差异,具体要结合芯片特性来确定。
Wi-Fi 低功耗设备开发包也可以用于 Wi-Fi + 蓝牙的芯片平台上,也可以支持蓝牙功能,但仅限于蓝牙配网,不支持蓝牙控制、遥控等能力。
资源需求
Wi-Fi 低功耗设备开发包代码体积约占 250K 的 ROM 空间,正常运行需要约 50K RAM 空间。开发包根据不同芯片平台的占用情况不同,内存占用情况也差异较大。
能力地图
设备管理
能力 |
说明 |
初始化 |
初始化是指设备上电、启动之后,调用一系列接口,完成设备硬件环境的初始化、TuyaOS 软件的初始化、应用功能初始化等工作。应用初始化的时候,开发者需要根据自己的产品形态,提供一些回调函数,用于处理 TuyaOS 内部的状态变化、控制操作、升级等工作。 |
重置 |
设备重置是把设备恢复到配网、激活之前状态的操作。根据触发源不同,可以分为本地重置和 App 重置。根据重置后设备所处的状态,又可细分为普通重置(解除绑定)和恢复出厂重置(解绑并清除数据)。 |
授权 |
授权是通过将涂鸦产生的设备标识信息写入到设备的不易失存储期间之中,用于后续设备正常运行时的设备认证。授权方式有通过代码的方式授权和通过工具的方式授权,前者主要在调试阶段使用,后者主要在量产生成时使用。 |
配网和激活
能力 |
说明 |
AP 配网 |
通过设备生成一个 Wi-Fi AP 热点,App 连接此热点,建立 TLS 加密通道,传输配网路由器的 SSID、passwd 以及激活 Token。设备在获取到 SSID、passwd 之后,会去连接路由器,并使用授权信息和 Token,向云端进行设备认证、激活的操作。 |
闪电配网 |
通过同一 App 下,已经配网的 Wi-Fi 设备(server),使用 Wi-Fi beacon/prob request/prob response 帧,和待配网(client)的 Wi-Fi 设备之间进行发现、协商秘钥、建立连接, 传输 SSID、passwd 以及激活 Token。待配网设备在获取到 SSID、passwd 之后,会去连接路由器,并使用授权信息和 Token,向云端进行设备认证、激活的操作。 |
蓝牙配网 |
通过设备发送蓝牙广播,App 通过广播发现此设备,进行蓝牙配对、秘钥交换、连接,传输配网路由器的 SSID、passwd 以及激活 Token。设备在获取到 SSID、passwd 之后,会去连接路由器,并使用授权信息和 Token,向云端进行设备认证、激活的操作。 |
用户自定义配网 |
获取 SSID、passwd 的方式有很多种方式,如音频、视频、NFC 等。TuyaOS 提供了一个接口,用于写入开发者使用自己定义的形式获取到的 SSID、passwd 以及激活 Token。 在传入 SSID、passwd 和 Token 之后,设备会去连接路由器,并使用授权信息和 Token,向云端进行设备认证、激活。 |
设备配网模式 |
设备上电、进入配网模式但未配网(短期未配网防误触、长期未配网低功耗)、配网后重置等情况下,设备的具体行为在不同的场景下有不同的需求,为了满足这些场景下的需求,我们定义了 6 种设备配网模式,适用于不同类型的产品。 |
Wi-Fi 备份 |
通过 App 配置备用的 SSID、passwd 给设备,在当前连接的路由器断开之后,会自动连接备份 SSID、passwd 列表中信号最好的路由器,避免进行重新配网。 |
设备控制
能力 |
说明 |
DP 模型&控制协议 |
TuyaOS 设备模型描述,通过设备模型可以对设备进行控制。 |
局域网控制 |
当 App 和设备位于同一个局域网内,可以通过局域网协议对设备进行控制。 |
基础服务
能力 |
说明 |
安全存储 |
TuyaOS 提供的,使用 Key-Value 形式的,加密的数据存储功能,以及文件形式的,明文的数据存储功能。 |
健康检测 |
TuyaOS 提供的,定期执行对设备内存、无线信号、任务状态进行检测的功能,并支持应用自定义的检测指标。 |
日志服务 |
TuyaOS 提供的,用于记录设备运行过程的本地日志、记录异常并编码上报的日志序功能。 |
事件服务 |
TuyaOS 提供的,事件发布、订阅功能,通过订阅事件,可以感知内部变化的发送,并做相应的处理。 |
时间服务(时区、夏令时) |
TuyaOS 提供的,时间管理和维护功能,支持 UTC 时间和本地时间,本地时间由 UTC 时间、时区、夏令时等因素综合得来。 |
定时队器 |
TuyaOS 提供的,软件定时功能。 |
工作队列 |
TuyaOS 提供的,一种工作队列功能,用于处理低优先级的,可能存在阻塞的异步任务。 |
连接管理 |
TuyaOS 提供的,管理设备上各种连接方式的功能,如 Wi-Fi、Ethernet、Bluetooth 之类的。维护设备和网络直接的连接状态。 |
线程管理 |
TuyaOS 提供的,线程管理功能。 |
设备驱动
连接驱动
能力 |
说明 |
Wi-Fi |
Wi-Fi 驱动 |
Bluetooth |
蓝牙驱动 |
外设驱动
能力 |
说明 |
GPIO |
GPIO 驱动 |
ADC |
ADC 驱动 |
PWM |
PWM 驱动 |
I2C |
I2C 驱动 |
I2S |
I2S 驱动 |
UART |
UART 驱动 |
DAC |
DAC 驱动 |
SPI |
SPI 驱动 |
功耗管理
能力 |
说明 |
Wi-Fi 低功耗 |
Wi-Fi 低功耗管理 |
定时服务
能力 |
说明 |
本地定时 |
将定时任务规则下载到设备,本地计时并到期执行任务。 |
天文定时 |
本地定时的一种,通过设备所处区域日出日落时间规则设置定时任务。 |
日历定时 |
本地定时的一种,更加丰富的定时规则选择,可以使用周循环、奇偶日、隔天、隔小时等规则设置定时任务。 |
升级服务
能力 |
说明 |
静默升级 |
设备自动扫描云端升级配置,在不需要 App 感知的情况下对设备固件进行升级。 |
提醒升级/强制升级 |
云端配置升级,在 App 通过之后,通知设备对固件进行升级。 |
附属固件升级 |
对设备上的各种固件、文件进行升级。 |
设备配件
能力 |
说明 |
Wi-Fi FFC 遥控 |
通过私有的 Wi-Fi Mesh 协议对设备进行遥控。 |
设备安全
能力 |
说明 |
安全体系(安全级别,安全能力) |
设备身份认证、安全存储、安全通信、隐私数据合规。 |
网络
能力 |
说明 |
iot-dns |
服务域名配置、证书管理服务、域名解析服务。 |
https |
HTTPS 库。 |
mqtt over tls |
MQTT 库。 |
mbedTLS |
mbedTLS 库。 |
系统服务
能力 |
说明 |
内存管理(tuya heap6) |
TuyaOS 自研堆管理功能。 |
TCP/IP 协议栈(tuya lwip) |
TuyaOS 自维护的 lwIP 协议。 |
蓝牙协议栈(tuya Bluetooth) |
TuyaOS 自维护的蓝牙协议。 |
tuya wpa supplicant |
TuyaOS 自维护的 wpa_supplicant 组件。 |
支持与帮助
在开发过程遇到问题,您可以登录 TuyaOS 开发者论坛 联网单品开发版块 进行沟通咨询。