如何使用Beetle ESP32-C6實(shí)現(xiàn)基本的Zigbee網(wǎng)絡(luò),創(chuàng)建一個(gè)具有開(kāi)/關(guān)開(kāi)關(guān)和燈的功能性智能照明系統(tǒng)
使用Zigbee,使用ESP32-C6構(gòu)建您自己的無(wú)線智能照明系統(tǒng),實(shí)現(xiàn)可靠、低功耗的通信。
Zigbee是智能家居生態(tài)系統(tǒng)中最流行的無(wú)線通信協(xié)議之一,以其可靠性、低功耗和強(qiáng)大的網(wǎng)狀網(wǎng)絡(luò)功能而聞名。在本教程中,我們將探討如何利用Zigbee在強(qiáng)大而緊湊的DFRobot Beetle ESP32-C6微控制器上創(chuàng)建一個(gè)簡(jiǎn)單但功能強(qiáng)大的智能照明系統(tǒng),具有開(kāi)/關(guān)開(kāi)關(guān)和燈。
無(wú)論您是家庭自動(dòng)化愛(ài)好者還是希望擴(kuò)展物聯(lián)網(wǎng)技能的開(kāi)發(fā)人員,該項(xiàng)目都將為您構(gòu)建基于zigbee的應(yīng)用程序提供堅(jiān)實(shí)的基礎(chǔ)。
你會(huì)學(xué)到什么
?Zigbee是什么,為什么它對(duì)物聯(lián)網(wǎng)應(yīng)用很重要
?如何設(shè)置BeetleESP32-C6用于Zigbee開(kāi)發(fā)
?實(shí)現(xiàn)一種Zigbee開(kāi)/關(guān)燈裝置
?創(chuàng)建Zigbee開(kāi)/關(guān)開(kāi)關(guān)控制器
?測(cè)試設(shè)備間的通信
?實(shí)際應(yīng)用和下一步
硬件需求
?2塊甲殼蟲ESP32-C6開(kāi)發(fā)板
?編程用USB線
?LED(或控制實(shí)光的繼電器模塊)
?按鈕(或內(nèi)置啟動(dòng)按鈕)
?面包板和跳線
?可選:外部供電
軟件需求
?Arduino IDE
?ESP32- c6單板支持包(ESP32 Core V 3.x)。x在Arduino IDE上)
什么是Zigbee,為什么它很重要
了解Zigbee技術(shù)
Zigbee是一種基于IEEE 802.15.4標(biāo)準(zhǔn)的低功耗無(wú)線網(wǎng)狀網(wǎng)絡(luò)協(xié)議。它工作在2.4 GHz頻段(全球可用),專為個(gè)人局域網(wǎng)(pan)中的低數(shù)據(jù)速率、短距離通信而設(shè)計(jì)。
Zigbee的主要優(yōu)點(diǎn)
?網(wǎng)狀網(wǎng)絡(luò):Zigbee設(shè)備可以相互傳遞消息,在不需要額外基礎(chǔ)設(shè)施的情況下擴(kuò)展網(wǎng)絡(luò)范圍。
?低功耗:Zigbee被設(shè)計(jì)為非常節(jié)能,使其成為需要運(yùn)行數(shù)月或數(shù)年而無(wú)需更換電池的電池供電設(shè)備的理想選擇。
?可靠性和安全性:Zigbee包括AES-128加密和網(wǎng)絡(luò)身份驗(yàn)證等強(qiáng)大的安全功能,確保您的智能家居設(shè)備安全通信。
?互操作性:來(lái)自不同制造商的設(shè)備在遵循Zigbee標(biāo)準(zhǔn)的情況下可以相互通信。
?可擴(kuò)展性:?jiǎn)蝹€(gè)Zigbee網(wǎng)絡(luò)可以支持超過(guò)65,000個(gè)設(shè)備,使其既適合簡(jiǎn)單的家庭設(shè)置,也適合大規(guī)模部署。
為什么ESP32-C6是Zigbee的完美選擇
甲殼蟲ESP32-C6是Zigbee開(kāi)發(fā)的絕佳平臺(tái),因?yàn)椋?
?它具有對(duì)802.15.4無(wú)線電的內(nèi)置支持,這是Zigbee的基礎(chǔ)
?它的雙核處理器為處理網(wǎng)絡(luò)任務(wù)提供了足夠的處理能力
?低功耗模式允許節(jié)能運(yùn)行
?緊湊的外形使其適合集成到小型設(shè)備中
?它還支持Wi-Fi、藍(lán)牙和Thread,支持多協(xié)議應(yīng)用
設(shè)置您的開(kāi)發(fā)環(huán)境
安裝必備軟件
?從Arduino .cc安裝最新版本的Arduino IDE
?為Arduino IDE添加ESP32板支持:
?開(kāi)放Arduino IDE
?轉(zhuǎn)到File > Preferences
?在“附加董事會(huì)管理器url”中,
?進(jìn)入Tools > Board > Boards Manager
搜索“esp32”并安裝最新版本
?配置甲殼蟲ESP32-C6
?通過(guò)USB連接ESP32-C6到計(jì)算機(jī)
?在Tools中選擇正確的單板> board > ESP32 Arduino >Beetle ESP3C6或ESP32C6 Dev Module
?在“Tools > port”中選擇正確的端口
構(gòu)建Zigbee開(kāi)/關(guān)燈
電路連接
對(duì)于照明設(shè)備,我們將使用一個(gè)簡(jiǎn)單的LED電路:
?將LED連接到ESP32-C6的GPIO引腳4(使用限流電阻220Ω)
?將LED(陰極)負(fù)支接至GND
?ESP32-C6 GPIO4—> 220Ω電阻—> LED—> GND
Zigbee光設(shè)備的代碼
這段代碼可以找到導(dǎo)航到文件>示例> Zigbee > Zigbee_On_Off_Light
我們將使用GPIO 4,確保led引腳定義為4,如下所示,并且打開(kāi)或關(guān)閉它的按鈕是BOOT_PIN(內(nèi)置引導(dǎo)引腳),您可以使用外部按鈕,但您必須在這里定義它
上傳代碼前,請(qǐng)確保選擇的單板正確,并勾選以下設(shè)置
選擇協(xié)調(diào)器Zigbee模式:Tools > Zigbee模式:Zigbee ED(終端設(shè)備)
選擇“Zigbee分區(qū)方案:Tools >”分區(qū)方案:Zigbee 4MB with spiffs。
構(gòu)建Zigbee開(kāi)/關(guān)開(kāi)關(guān)
在這種情況下,我們將使用內(nèi)置的啟動(dòng)按鈕作為我們的開(kāi)關(guān),你也可以使用外部按鈕,但要確保你在代碼中添加了它
Zigbee交換設(shè)備的代碼
這段代碼可以找到導(dǎo)航到文件>示例> Zigbee > Zigbee_On_Off_Switch
上傳代碼前,請(qǐng)確保選擇的單板正確,并勾選以下設(shè)置
選擇協(xié)調(diào)器Zigbee模式:Tools > Zigbee模式:Zigbee ZCZR (Coordinator /router)。
選擇“Zigbee分區(qū)方案:Tools >”分區(qū)方案:Zigbee 4MB with spiffs。
搭建網(wǎng)絡(luò)
創(chuàng)建Zigbee網(wǎng)絡(luò)
?首先,將光器件代碼上傳到ESP32-C6
?然后,將交換設(shè)備代碼上傳到第二臺(tái)ESP32-C6
?兩個(gè)設(shè)備都上電
通電時(shí):
?光設(shè)備將創(chuàng)建一個(gè)Zigbee網(wǎng)絡(luò)作為協(xié)調(diào)器
?交換設(shè)備將掃描可用的網(wǎng)絡(luò)并自動(dòng)加入
?一旦連接上,開(kāi)關(guān)將發(fā)現(xiàn)光裝置
測(cè)試系統(tǒng)
?按下與交換設(shè)備相連的按鈕
?連接到照明設(shè)備的LED應(yīng)處于開(kāi)/關(guān)狀態(tài)
?串行監(jiān)視器將顯示有關(guān)正在發(fā)送和接收的命令的調(diào)試信息
了解守則
Zigbee網(wǎng)絡(luò)構(gòu)成
?所述光設(shè)備配置為作為協(xié)調(diào)器啟動(dòng)Zigbee網(wǎng)絡(luò)
?交換機(jī)作為終端設(shè)備加入網(wǎng)絡(luò)
這兩個(gè)設(shè)備都實(shí)現(xiàn)了家庭自動(dòng)化配置文件,具有特定的設(shè)備類型(開(kāi)/關(guān)燈和開(kāi)/關(guān)開(kāi)關(guān))。
命令處理
?當(dāng)按下開(kāi)關(guān)設(shè)備上的按鈕時(shí),它發(fā)出開(kāi)/關(guān)命令
?該命令專門針對(duì)光設(shè)備的端點(diǎn)
?照明設(shè)備接收到命令并相應(yīng)地更新其LED狀態(tài)
?兩個(gè)設(shè)備都使用標(biāo)準(zhǔn)Zigbee集群庫(kù)(ZCL)命令進(jìn)行通信
設(shè)備發(fā)現(xiàn)
?交換機(jī)使用Zigbee設(shè)備對(duì)象(ZDO)匹配描述符請(qǐng)求來(lái)查找具有開(kāi)/關(guān)集群的設(shè)備
?當(dāng)它發(fā)現(xiàn)光設(shè)備時(shí),它會(huì)存儲(chǔ)其通信地址
?這樣可以實(shí)現(xiàn)自動(dòng)發(fā)現(xiàn),而無(wú)需對(duì)設(shè)備地址進(jìn)行硬編碼
現(xiàn)實(shí)世界的應(yīng)用程序
這個(gè)簡(jiǎn)單的項(xiàng)目展示了Zigbee設(shè)備交互的基礎(chǔ),可以擴(kuò)展到:
?智能家居集成:通過(guò)Zigbee網(wǎng)關(guān)將您的設(shè)備連接到流行的平臺(tái),如Home Assistant,三星SmartThings或亞馬遜Alexa。
?多設(shè)備網(wǎng)絡(luò):添加更多的燈和開(kāi)關(guān),以創(chuàng)建一個(gè)完整的家庭照明系統(tǒng)。
?傳感器集成:結(jié)合運(yùn)動(dòng)傳感器,光傳感器,或門/窗傳感器自動(dòng)觸發(fā)照明。
?能源監(jiān)控:增加電力監(jiān)控,跟蹤連接燈的能源使用情況。
?場(chǎng)景控制:實(shí)現(xiàn)不同燈光場(chǎng)景的多按鈕控制器。
故障排除
常見(jiàn)問(wèn)題及解決方案
未連接的設(shè)備:
?確保兩臺(tái)設(shè)備使用相同的頻道
?請(qǐng)檢查ESP32-C6 Zigbee射頻初始化是否正確
?檢查設(shè)備是否通電并在彼此的范圍內(nèi)
編譯錯(cuò)誤:
?確保您安裝了最新版本的ESP32 Core
?確認(rèn)ESP32-C6單板選擇正確
結(jié)論
在本教程中,我們探討了如何使用BeetleESP32-C6實(shí)現(xiàn)基本的Zigbee網(wǎng)絡(luò),創(chuàng)建一個(gè)具有開(kāi)/關(guān)開(kāi)關(guān)和燈的功能性智能照明系統(tǒng)。本項(xiàng)目演示了Zigbee通信的基本概念,包括網(wǎng)絡(luò)形成、設(shè)備發(fā)現(xiàn)和命令處理。
ESP32-C6是Zigbee開(kāi)發(fā)的優(yōu)秀平臺(tái),在緊湊的外形中提供內(nèi)置802.15.4無(wú)線電支持和強(qiáng)大的處理能力。通過(guò)了解這些基礎(chǔ)知識(shí),您可以擴(kuò)展您的項(xiàng)目,包括更復(fù)雜的功能,并與現(xiàn)有的智能家居生態(tài)系統(tǒng)集成。
本文編譯自hackster.io