
ZigBee 是一种低功耗、低速率的无线通信协议,基于 IEEE 802.15.4 标准,适用于点对点、星型和网状网络结构。ZigBee 主要应用于传感器网络、智能家居和工业物联网等场景,支持多个设备间的高效通信。
#include <SoftwareSerial.h>
SoftwareSerial ZigBeeSerial(2, 3); // RX, TX
bool lightStatus = false; // 虚拟灯状态
void setup() {
Serial.begin(9600); // 主串口,用于调试
ZigBeeSerial.begin(9600); // ZigBee 串口通信
Serial.println("ZigBee 协调器已启动");
}
void loop() {
if (ZigBeeSerial.available()) {
String command = ZigBeeSerial.readString(); // 读取 ZigBee 数据
Serial.print("接收到命令: ");
Serial.println(command);
// 解析命令并控制灯状态
if (command.indexOf("ON") >= 0) {
lightStatus = true;
Serial.println("灯光已打开");
} else if (command.indexOf("OFF") >= 0) {
lightStatus = false;
Serial.println("灯光已关闭");
}
// 回复终端节点
String response = lightStatus ? "灯光状态: 开" : "灯光状态: 关";
ZigBeeSerial.println(response);
}
}#include <SoftwareSerial.h>
SoftwareSerial ZigBeeSerial(2, 3); // RX, TX
void setup() {
Serial.begin(9600); // 主串口,用于调试
ZigBeeSerial.begin(9600); // ZigBee 串口通信
Serial.println("终端节点 1 已启动");
}
void loop() {
// 按下按键(模拟),发送“开灯”命令
Serial.println("发送命令: 开灯");
ZigBeeSerial.println("ON");
delay(5000); // 每 5 秒发送一次命令
}#include <SoftwareSerial.h>
SoftwareSerial ZigBeeSerial(2, 3); // RX, TX
void setup() {
Serial.begin(9600); // 主串口,用于调试
ZigBeeSerial.begin(9600); // ZigBee 串口通信
Serial.println("终端节点 2 已启动");
}
void loop() {
// 按下按键(模拟),发送“关灯”命令
Serial.println("发送命令: 关灯");
ZigBeeSerial.println("OFF");
delay(5000); // 每 5 秒发送一次命令
}lightStatus 变量模拟灯的状态,未来可以扩展为控制实际的继电器或灯具。通过上述实现,我们展示了如何使用 ZigBee 协议构建一个简单的智能家居灯光控制系统。从代码中可以看出,ZigBee 的低功耗和网状网络特性使其非常适合物联网应用,尤其是在需要多设备通信的场景中。