“监视器透传实验”的版本间的差异
853387039@qq.com(讨论 | 贡献) (→串口工具调试) |
853387039@qq.com(讨论 | 贡献) (→配置) |
||
第33行: | 第33行: | ||
路由器必须reset才能给协调器发送消息,告诉协调器准备好了,同时会给发送数据给协调器。 | 路由器必须reset才能给协调器发送消息,告诉协调器准备好了,同时会给发送数据给协调器。 | ||
− | 非协调器设备加入网络之后自动发送包含自己IEEE地址和短地址的报告数据包到协调器,不需人工干预,格式为+ZBC=<logicalType>,<localshortddr>,<localieeeaddr><\r\n> | + | |
+ | '''非协调器设备加入网络之后自动发送包含自己IEEE地址和短地址的报告数据包到协调器,不需人工干预,格式为+ZBC=<logicalType>,<localshortddr>,<localieeeaddr><\r\n>''' | ||
==硬件搭建== | ==硬件搭建== |
2014年11月19日 (三) 14:19的版本
目的本教程展示了Microduino-Zigbee模块的数据透传,本实验将采用Core、Core+进行实验。 设备
配置你需要通过AT命令配置一个模块为协调器,另一个模块为路由器。AT命令使用参考: 多种AT命令调试方式
路由器必须reset才能给协调器发送消息,告诉协调器准备好了,同时会给发送数据给协调器。 非协调器设备加入网络之后自动发送包含自己IEEE地址和短地址的报告数据包到协调器,不需人工干预,格式为+ZBC=<logicalType>,<localshortddr>,<localieeeaddr><\r\n> 硬件搭建
将Microduino-USBTTL、Microduino-Zigbee与Microduino-Core(或Microduino-Core+)三个模块直接叠加 调试串口工具调试
协调器程序和路由节点是一样的,都是接收到串口监视器(Serial)的数据,再通过另一个串口转发出去,对于Core+来说就是串口1(Serial1),对于Core就是软串口(mySerial(2, 3))。
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);
}
/*
core hardware(RX0,TX1) =9600
core software(D2,D3)=9600 must match with cc2530 setup.when change cc2530 baud rate
*/
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
String myStringSoftCom="";
String myStringHardCom="";
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
}
void loop() // run over and over
{
while (Serial.available() > 0)
{
myStringHardCom += char(Serial.read());
delay(2);
}
if(myStringHardCom!="")
mySerial.println(myStringHardCom);
myStringHardCom="";
while (mySerial.available() > 0)
{
myStringSoftCom += char(mySerial.read());
delay (2);
}
if (myStringSoftCom.length() > 0)
{
Serial.print(myStringSoftCom);
myStringSoftCom="";
}
delay(100);
}
我们可以看到程序和AT命令调试的程序是一样的,但是AT模式要通过+++命令来实现。
注意
|