ESP-IDF 例程——Zigbee
8. zigbee 目录
8.1 例程概述
Zigbee是一种低功耗、短距离无线通信技术,广泛应用于物联网设备。ESP-IDF提供了多个Zigbee例程,涵盖网关、协调器和终端设备等不同角色。
8.2 详细分析
| 例程名称 | 所在文件夹路径 | 核心功能说明 | 主要调用的内部/外部函数或模块 | 输入输出参数说明 | 适用场景及典型应用案例 |
|---|---|---|---|---|---|
| Zigbee网关示例 | examples\zigbee\esp_zigbee_gateway | 构建Zigbee网关设备,连接Wi-Fi网络并通过UART与OT-RCP通信形成Zigbee网络 | - esp_zigbee_stack_init - esp_zigbee_network_form - esp_zigbee_network_steering - example_connect |
输入:Wi-Fi配置、UART引脚配置 输出:Zigbee网络信息(Extended PAN ID、PAN ID、Channel) |
适用于构建智能家居网关,连接Zigbee设备到互联网 |
| HA开/关灯泡示例 | examples\zigbee\light_sample\HA_on_off_light | 配置Zigbee终端设备,作为HA开/关灯泡,响应开关控制命令 | - esp_zigbee_stack_init - esp_zigbee_network_steering - esp_zb_on_off_server_cb |
输入:Zigbee网络配置 输出:灯泡状态(开/关) |
适用于智能灯泡等Zigbee终端设备,接收来自协调器或网关的控制命令 |
| HA开/关开关示例 | examples\zigbee\light_sample\HA_on_off_switch | 配置Zigbee协调器,作为HA开/关开关,控制灯泡设备 | - esp_zigbee_stack_init - esp_zigbee_network_form - esp_zigbee_network_steering - esp_zb_on_off_client_send_cmd |
输入:Zigbee网络配置、按钮输入 输出:控制命令(开/关切换) |
适用于智能开关等Zigbee协调器设备,控制其他Zigbee终端设备 |
8.3 构建和运行说明
Zigbee网关示例
- 配置RCP:在构建ot_rcp示例时,通过menuconfig选择OPENTHREAD_NCP_VENDOR_HOOK
- 配置项目:使用
idf.py set-target <chip_name>设置正确的芯片目标 - 擦除NVRAM:
idf.py -p PORT erase-flash - 构建和烧录:
idf.py -p PORT flash monitor
HA开/关灯泡示例
- 配置项目:使用
idf.py --preview set-target TARGET设置正确的芯片目标 - 擦除NVRAM:
idf.py -p PORT erase-flash - 构建和烧录:
idf.py -p PORT flash monitor
HA开/关开关示例
- 配置项目:使用
idf.py --preview set-target TARGET设置正确的芯片目标 - 擦除NVRAM:
idf.py -p PORT erase-flash - 构建和烧录:
idf.py -p PORT flash monitor
8.4 硬件要求
Zigbee网关示例
- 两个SoC:一个ESP32系列Wi-Fi SoC(ESP32, ESP32-C, ESP32-S等)和一个ESP32-H2 802.15.4 SoC
- 通过UART连接两个SoC(默认GPIO4=RX, GPIO5=TX)
HA开/关灯泡示例
- 一个ESP32-H2开发板作为Zigbee终端设备
- 另一个ESP32-H2作为Zigbee协调器(加载HA_on_off_switch示例)
HA开/关开关示例
- 一个ESP32-H2开发板作为Zigbee协调器
- 另一个ESP32-H2作为Zigbee终端设备(加载HA_on_off_light示例)
8.5 典型应用场景
- 智能家居系统:使用Zigbee网关连接多个Zigbee设备(灯泡、开关、传感器等)到互联网
- 照明控制系统:通过Zigbee开关控制多个Zigbee灯泡
- 物联网设备网络:构建低功耗、可靠的Zigbee设备网络,适用于工业自动化、智能农业等场景
8.6 注意事项
- 对于同时支持Wi-Fi和Zigbee的单SoC(如ESP32-C6),由于只有一个RF路径,Wi-Fi和Zigbee不能同时接收,会对性能产生显著影响,建议使用双SoC解决方案
- 在构建ot_rcp示例时,必须选择OPENTHREAD_NCP_VENDOR_HOOK选项
- 在烧录新固件前,建议擦除NVRAM以清除之前的配置信息
- Zigbee网络形成后,会开放180秒允许新设备加入
8.7 扩展阅读
ESP-IDF 例程——Zigbee
https://blog.zhaosn.top/ESP32-examples/08.zigbee/