“组网实验”的版本间的差异
853387039@qq.com(讨论 | 贡献) (Created page with "{| style="width: 800px;" |- | ==目的== 本教程展示了Microduino-Zigbee模块的组网透传,本实验将采用Core+进行实验。 ==简介== *Zigbee网络的设备类...") |
853387039@qq.com(讨论 | 贡献) (→调试) |
||
第104行: | 第104行: | ||
*打开三个开发环境的串口监视器,选择好波特率,这里是9600,你得知道哪个监视器对应的是协调器的,哪个个对应的是路由器,哪个对应的是节点。也可通过+++进入AT模式,再通过AT+SRST复位来查看类型。如果复位的是路由器和节点,并且看到协调器上返回了数据,就可以直接通讯了。 | *打开三个开发环境的串口监视器,选择好波特率,这里是9600,你得知道哪个监视器对应的是协调器的,哪个个对应的是路由器,哪个对应的是节点。也可通过+++进入AT模式,再通过AT+SRST复位来查看类型。如果复位的是路由器和节点,并且看到协调器上返回了数据,就可以直接通讯了。 | ||
− | [[File: | + | [[File:Zigbee_style_1.jpg|800px|center|thumb]] |
*节点、路由器给协调器发送数据: | *节点、路由器给协调器发送数据: | ||
**节点和路由器发送给协调器的格式是一样的 | **节点和路由器发送给协调器的格式是一样的 | ||
**数据输入框中写入你想发送的数据,如Hello Microduino!,然后发送,可以看到协调器接收到: +ZBD=XXXX, Hello Microduino!,XXXX为你的路由器或节点的短地址。 | **数据输入框中写入你想发送的数据,如Hello Microduino!,然后发送,可以看到协调器接收到: +ZBD=XXXX, Hello Microduino!,XXXX为你的路由器或节点的短地址。 | ||
− | [[File:Zigbee_01_00_Network.jpg| | + | [[File:Zigbee_01_00_Network.jpg|800px|center|thumb]] |
*协调器给路由器发送数据: | *协调器给路由器发送数据: | ||
**数据输入框中输入数据,注意格式为:+ZBD=XXXX,YYYY,XXXX为你的路由器或节点的短地址,YYYY为你想发送的数据,这样路由器和节点才能接收。 | **数据输入框中输入数据,注意格式为:+ZBD=XXXX,YYYY,XXXX为你的路由器或节点的短地址,YYYY为你想发送的数据,这样路由器和节点才能接收。 | ||
− | [[File:Zigbee_00_01_Network.jpg| | + | [[File:Zigbee_00_01_Network.jpg|800px|center|thumb]] |
*当你断开路由器,节点也可以给协调器通讯,是因为近距离,可以组成星形网络,节点和协调器之间通信不通过路由,距离远,节点要通过路由给协调器通信(mesh网络)。 | *当你断开路由器,节点也可以给协调器通讯,是因为近距离,可以组成星形网络,节点和协调器之间通信不通过路由,距离远,节点要通过路由给协调器通信(mesh网络)。 |
2014年11月19日 (三) 14:27的版本
目的本教程展示了Microduino-Zigbee模块的组网透传,本实验将采用Core+进行实验。 简介
在Zigbee网络中,有三种不同类型的设备,分别叫做:协调器(Coordinator)、路由器(Router)和终端节点(End Device),如图所示:
设备
配置你需要通过AT命令配置一个模块为协调器,一个模块为路由器,另一个为节点。AT命令使用参考: 多种AT命令调试方式
硬件搭建
将Microduino-USBTTL、Microduino-Zigbee与Microduino-Core+三个模块直接叠加 调试串口工具调试这里使用Core+调试
String myStringSerial1="";
String myStringSerial="";
void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() // run over and over
{
while (Serial.available() > 0)
{
myStringSerial += char(Serial.read());
delay(2);
}
if(myStringSerial!="")
Serial1.println(myStringSerial);
myStringSerial="";
while (Serial1.available() > 0)
{
myStringSerial1 += char(Serial1.read());
delay(2);
}
if (myStringSerial1.length() > 0)
{
Serial.print(myStringSerial1);
myStringSerial1="";
}
delay(100);
}
注意
|