-stark 发表于 2017-2-27 17:54:17

基于xbee的多点无线通信(API模式)

      1、下载XCTU软件并安装:http://pan.baidu.com/s/1jIpwGNc      2、arduino三块主控板(注意版型的选择)都下载如下串口转换代码:
void setup()
      
{
      
Serial.begin(9600);   //初始化usb串口并设置波特率为9600
      
Serial1.begin(9600);//初始化xbee串口并设置波特率为9600
      
      
}
      
      
void loop()
      
{
      
if(Serial1.available()>0)//串口1有数据测发送到串口0
      
   {
      
       Serial.write(Serial1.read());
      
   }
      
   if(Serial.available()>0)//串口0有数据则发送到串口1
      
   {
      
       Serial1.write(Serial.read());
      
   }
      
}      
PS:由于usb口为串口0(Serial),而xbee连接口为串口1(Serial1),因此想使用电脑上的SCTU调试xbee模块,需要将Serial接收的数据传给Serial1,Serial1收到的数据转发给Serial。      如示意图中红色数据部分的传输由此代码实现:
            
3、运行xctu      添加xbee模块:                  
      参数设置:      
1、首次使用,用右侧上方的“Default”按钮加载模块的默认参数,并按“Write”写入模块,使模块恢复出厂的配置,确保不会因为之前使用时的不恰当参数影响通信效果。写入默认值后,再按“Read”按钮重新加载一下参数到XCTU右侧的参数栏上。      点击左侧其他模块,用同样的方式恢复一下模块的出厂设置。

2、开启协调器(主站点)      进入参数设置界面,将mega2560上的xbee模块对应的参数中的      CE改为 1,      AP改为 2,      点击write按钮写入参数。
PS:打开“设备管理器”中的“端口”可看到哪个才是mega2560上的xbee。
            
      3、开启路由器(子站点)      进入数据调试界面,选择leonardo上的xbee模块,点击open打开串口,命令窗口中输入+++,稍等模块会自动返回 ok,代表进入AT调试模式,此时再输入 ATNR0,再按回车,此时会自动返回ok       PS:xbee模块如果加入过其他的zigbee网络,则会记住此网络,因此此处使用此命令清除以前连接过的网络记录,从而加入新协调器建立的网络。若有多个子站,此处同样操作其他子站
         4、将leonardo上的xbee模块对应的参数中的
AP改为2,
点击write写入参数。
            PS:若有多个子站,此处同样操作其他子站
5、查看网络连接情况
打开网络工作模式界面,点击协调器,点击scan,开始搜索网络,如图当出现与其他的模块连接上时表示已成功建立网络及搜索到网络!            图形显示界面中间的一长串即为MAC地址,可对比此MAC地址以确定是否连接到了正确的网络中。
如现场同时几个网络创建,为防止连接到别人的网络中,可一组一组的创建网络,当一组创建完毕后,关机,再创建下一组的网络。      若连接到了错误的协调器,则可将路由器恢复默认设置,然后使用ATNR0 命令来退出以前连接的网络

iooops 发表于 2017-2-28 19:30:06

沙发

iooops 发表于 2017-2-28 19:30:10

板凳

iooops 发表于 2017-2-28 19:30:14

地板

iooops 发表于 2017-2-28 19:30:41

虽然没怎么看懂= = 但还是决定来占个楼

iooops 发表于 2017-2-28 19:30:48

{:5_172:}

Robert_Shuai 发表于 2017-4-19 14:17:15

设置子站点那块,为什么输入 ATNR0后显示ERROR

gada888 发表于 2017-4-19 21:27:11

好贴。{:5_128:}
页: [1]
查看完整版本: 基于xbee的多点无线通信(API模式)