如何使用Beetle ESP32-C6实现基本的Zigbee网络,创建一个具有开/关开关和灯的功能性智能照明系统
扫描二维码
随时随地手机看文章
使用Zigbee,使用ESP32-C6构建您自己的无线智能照明系统,实现可靠、低功耗的通信。
Zigbee是智能家居生态系统中最流行的无线通信协议之一,以其可靠性、低功耗和强大的网状网络功能而闻名。在本教程中,我们将探讨如何利用Zigbee在强大而紧凑的DFRobot Beetle ESP32-C6微控制器上创建一个简单但功能强大的智能照明系统,具有开/关开关和灯。
无论您是家庭自动化爱好者还是希望扩展物联网技能的开发人员,该项目都将为您构建基于zigbee的应用程序提供坚实的基础。
你会学到什么
•Zigbee是什么,为什么它对物联网应用很重要
•如何设置BeetleESP32-C6用于Zigbee开发
•实现一种Zigbee开/关灯装置
•创建Zigbee开/关开关控制器
•测试设备间的通信
•实际应用和下一步
硬件需求
•2块甲壳虫ESP32-C6开发板
•编程用USB线
•LED(或控制实光的继电器模块)
•按钮(或内置启动按钮)
•面包板和跳线
•可选:外部供电
软件需求
•Arduino IDE
•ESP32- c6单板支持包(ESP32 Core V 3.x)。x在Arduino IDE上)
什么是Zigbee,为什么它很重要
了解Zigbee技术
Zigbee是一种基于IEEE 802.15.4标准的低功耗无线网状网络协议。它工作在2.4 GHz频段(全球可用),专为个人局域网(pan)中的低数据速率、短距离通信而设计。
Zigbee的主要优点
•网状网络:Zigbee设备可以相互传递消息,在不需要额外基础设施的情况下扩展网络范围。
•低功耗:Zigbee被设计为非常节能,使其成为需要运行数月或数年而无需更换电池的电池供电设备的理想选择。
•可靠性和安全性:Zigbee包括AES-128加密和网络身份验证等强大的安全功能,确保您的智能家居设备安全通信。
•互操作性:来自不同制造商的设备在遵循Zigbee标准的情况下可以相互通信。
•可扩展性:单个Zigbee网络可以支持超过65,000个设备,使其既适合简单的家庭设置,也适合大规模部署。
为什么ESP32-C6是Zigbee的完美选择
甲壳虫ESP32-C6是Zigbee开发的绝佳平台,因为:
•它具有对802.15.4无线电的内置支持,这是Zigbee的基础
•它的双核处理器为处理网络任务提供了足够的处理能力
•低功耗模式允许节能运行
•紧凑的外形使其适合集成到小型设备中
•它还支持Wi-Fi、蓝牙和Thread,支持多协议应用
设置您的开发环境
安装必备软件
•从Arduino .cc安装最新版本的Arduino IDE
•为Arduino IDE添加ESP32板支持:
•开放Arduino IDE
•转到File > Preferences
•在“附加董事会管理器url”中,
•进入Tools > Board > Boards Manager
搜索“esp32”并安装最新版本
•配置甲壳虫ESP32-C6
•通过USB连接ESP32-C6到计算机
•在Tools中选择正确的单板> board > ESP32 Arduino >Beetle ESP3C6或ESP32C6 Dev Module
•在“Tools > port”中选择正确的端口
构建Zigbee开/关灯
电路连接
对于照明设备,我们将使用一个简单的LED电路:
•将LED连接到ESP32-C6的GPIO引脚4(使用限流电阻220Ω)
•将LED(阴极)负支接至GND
•ESP32-C6 GPIO4—> 220Ω电阻—> LED—> GND
Zigbee光设备的代码
这段代码可以找到导航到文件>示例> Zigbee > Zigbee_On_Off_Light
我们将使用GPIO 4,确保led引脚定义为4,如下所示,并且打开或关闭它的按钮是BOOT_PIN(内置引导引脚),您可以使用外部按钮,但您必须在这里定义它
上传代码前,请确保选择的单板正确,并勾选以下设置
选择协调器Zigbee模式:Tools > Zigbee模式:Zigbee ED(终端设备)
选择“Zigbee分区方案:Tools >”分区方案:Zigbee 4MB with spiffs。
构建Zigbee开/关开关
在这种情况下,我们将使用内置的启动按钮作为我们的开关,你也可以使用外部按钮,但要确保你在代码中添加了它
Zigbee交换设备的代码
这段代码可以找到导航到文件>示例> Zigbee > Zigbee_On_Off_Switch
上传代码前,请确保选择的单板正确,并勾选以下设置
选择协调器Zigbee模式:Tools > Zigbee模式:Zigbee ZCZR (Coordinator /router)。
选择“Zigbee分区方案:Tools >”分区方案:Zigbee 4MB with spiffs。
搭建网络
创建Zigbee网络
•首先,将光器件代码上传到ESP32-C6
•然后,将交换设备代码上传到第二台ESP32-C6
•两个设备都上电
通电时:
•光设备将创建一个Zigbee网络作为协调器
•交换设备将扫描可用的网络并自动加入
•一旦连接上,开关将发现光装置
测试系统
•按下与交换设备相连的按钮
•连接到照明设备的LED应处于开/关状态
•串行监视器将显示有关正在发送和接收的命令的调试信息
了解守则
Zigbee网络构成
•所述光设备配置为作为协调器启动Zigbee网络
•交换机作为终端设备加入网络
这两个设备都实现了家庭自动化配置文件,具有特定的设备类型(开/关灯和开/关开关)。
命令处理
•当按下开关设备上的按钮时,它发出开/关命令
•该命令专门针对光设备的端点
•照明设备接收到命令并相应地更新其LED状态
•两个设备都使用标准Zigbee集群库(ZCL)命令进行通信
设备发现
•交换机使用Zigbee设备对象(ZDO)匹配描述符请求来查找具有开/关集群的设备
•当它发现光设备时,它会存储其通信地址
•这样可以实现自动发现,而无需对设备地址进行硬编码
现实世界的应用程序
这个简单的项目展示了Zigbee设备交互的基础,可以扩展到:
•智能家居集成:通过Zigbee网关将您的设备连接到流行的平台,如Home Assistant,三星SmartThings或亚马逊Alexa。
•多设备网络:添加更多的灯和开关,以创建一个完整的家庭照明系统。
•传感器集成:结合运动传感器,光传感器,或门/窗传感器自动触发照明。
•能源监控:增加电力监控,跟踪连接灯的能源使用情况。
•场景控制:实现不同灯光场景的多按钮控制器。
故障排除
常见问题及解决方案
未连接的设备:
•确保两台设备使用相同的频道
•请检查ESP32-C6 Zigbee射频初始化是否正确
•检查设备是否通电并在彼此的范围内
编译错误:
•确保您安装了最新版本的ESP32 Core
•确认ESP32-C6单板选择正确
结论
在本教程中,我们探讨了如何使用BeetleESP32-C6实现基本的Zigbee网络,创建一个具有开/关开关和灯的功能性智能照明系统。本项目演示了Zigbee通信的基本概念,包括网络形成、设备发现和命令处理。
ESP32-C6是Zigbee开发的优秀平台,在紧凑的外形中提供内置802.15.4无线电支持和强大的处理能力。通过了解这些基础知识,您可以扩展您的项目,包括更复杂的功能,并与现有的智能家居生态系统集成。
本文编译自hackster.io