Skip to main content

XBee 扩展板

XBee 扩展板允许 ArduinoSeeeduino 板通过 Bee 兼容模块(如 Zigbee 或 BlueTooth Bee)进行无线通信。它专为 MaxStream 的 XBee 模块设计,可用作 串口 / USB 替代品。它可以用于通过 Zigbee / Bluetooth Bee 连接两个 Seeeduino,或无线连接 Seeeduino 与 PC。两个拨动开关决定 Bee 模块的 RxdTxd 引脚如何连接到 Seeeduino 引脚。这两个开关提供了将 Bee 模块的 RxDTxD 线路连接到 Seeeduino 硬件串口数字引脚 11 和 12FTDI RxD 和 Txd 引脚的选项。

型号:WLS114A0P

Seeed Studio 的 XBee® 扩展板源自 Arduino XBee 扩展板,具有以下特点:

  • 更小的尺寸
  • 大部分组件采用 SMT 封装
  • 低成本

要使用 X-CTU 配合 Seeeduino,请上传以下代码:

void setup()
{
DDRB=0;
DDRC=0;
DDRD=0;
}

void loop()
{

}

特点

  1. 31mm X 41mm 的板子尺寸。

  2. 与 Arduino/Seeeduino 通信

    • 通过引脚 11、12 的软件串口,或
    • 通过硬件串口
  3. XBee 模块可以通过 USB 使用 X-CTU 配置

  4. 所有引脚均有引出

应用场景

  • 使用 Bee 模块无线连接 Seeeduino / Arduino 与 PC。
  • GPS Bee 连接到 Arduino / Seeeduino。

注意事项

  • 在连接 Bee 模块或 Arduino 之前,请将拨动开关设置到正确位置。

原理图

规格

请参阅 特点

机械尺寸

XBee® 扩展板的尺寸为 3.1cm X 4.1cm。

使用方法

通过 XBee 扩展板将 Bee 模块连接到 Arduino / Seeeduino。如果使用 Seeeduino,请将工作电压开关设置为 3.3V 位置。通常情况下,通过设置拨动开关(TOG_1TOG_2)到 左侧位置,Bee 模块通过软件串口连接。请参考以下表格了解不同配置。

硬件安装

XBee 扩展板外观及拨动开关位置

Arduino
TOG_1TOG_2XBee Tx 连接到XBee Rx 连接到
数字引脚 11数字引脚 12
FT232 RxDFT232 TxD
数字引脚 11数字引脚 12
Atmege RxDAtmege TxD
Arduino Mega
TOG_1TOG_2XBee Tx 连接到XBee Rx 连接到
数字引脚 51数字引脚 50
FT232 RxDFT232 TxD
数字引脚 51数字引脚 50
Atmege RxD0Atmege TxD0

测试 Bee 的 AT 指令

创建一个新代码,并将以下代码下载到 Arduino 板中。

//串口中继 - Arduino 将在计算机和 Bee 扩展板之间建立
//一个串口连接,速率为 9600 bps 8-N-1
//计算机连接到硬件 UART
//Bee 扩展板连接到软件 UART

#include <NewSoftSerial.h>
#define RxD 11
#define TxD 12

NewSoftSerial mySerial(RxD,TxD);

void setup()
{
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
mySerial.begin(9600); // Bee 的波特率
Serial.begin(9600); // 终端的波特率
}

void loop()
{
if(Serial.available())
{
mySerial.print((unsigned char)Serial.read());
}
else if(mySerial.available())
{
Serial.print((unsigned char)mySerial.read());
}

}

之后,启动您喜欢的串口终端软件,选择 Arduino 的 COM 端口,将其设置为 Bee 的默认波特率(XBee 默认是 9600 8-N-1),连接并发送指令。尝试向 Arduino 板发送 "+++"(不带引号)给 XBee 模块,XBee 应该会回复 "OK"。

发送 AT 指令的更新版本(适用于 V 1.0)

上述代码可能适用于早期版本,但 SoftwareSerial 库现在已成为核心的一部分。以下代码几乎直接取自 Arduino SoftwareSerial 手册

/*
来自 Arduino SoftwareSerial 教程的示例
*/
#include <SoftwareSerial.h>

SoftwareSerial mySerial(11, 12); // RX, TX

void setup()
{
// 打开串口通信并等待端口打开:
Serial.begin(9600);
mySerial.begin(9600);
}

void loop() // 不断运行
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}

将以下内容翻译为简体中文:


将此代码上传到安装了 Xbee Shield 的 Arduino,启动串行监视器,此时 Arduino 串行端口将通过无线电连接到任何其他正在运行的 Xbee 无线电设备——您在串行监视器中输入的任何内容都将发送到其他无线电设备,反之亦然。

编程

以下代码将 Bluetooth Bee 配置为 从设备,并等待来自 PC 或其他主设备的连接请求。Bluetooth Bee 通过 XBee®_Shield 连接到 Seeeduino,如上图所示。

/*
BluetoothBee 示例代码 - 基于流控制的实现
2010,2011 版权所有 (c) Seeed Technology Inc. 保留所有权利。

作者: Visweswara R

此示例代码是免费软件;您可以根据 GNU 较小通用公共许可证的条款重新分发和/或修改,
该许可证由自由软件基金会发布;可以是版本 2.1,也可以是任何更高版本。

此库分发的目的是希望它能发挥作用,
但不提供任何保证;甚至没有隐含的适销性或特定用途的适用性保证。
有关详细信息,请参阅 GNU 较小通用公共许可证。

您应该已经收到与此库一起分发的 GNU 较小通用公共许可证副本;如果没有,请联系自由软件基金会,
地址:51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

有关产品的更多详细信息,请访问 https://www.seeedstudio.com/depot/

将此代码上传到 Seeeduino 并按下复位按钮*/

#include <NewSoftSerial.h> //软件串行端口
#define RxD 11
#define TxD 12
#define DEBUG_ENABLED 1

NewSoftSerial blueToothSerial(RxD,TxD);

void setup()
{
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
setupBlueToothConnection();
}

void loop()
{
//典型的蓝牙命令 - 响应模拟:
//从 PC 蓝牙串行终端输入 'a'
//请参阅 Wiki 获取说明

if(blueToothSerial.read() == st0">'a')
{
blueToothSerial.println(st0">"You are connected"); //您可以在此处编写蓝牙通信逻辑
}
}

void setupBlueToothConnection()
{
blueToothSerial.begin(38400); //将 BluetoothBee 波特率设置为默认波特率 38400
delay(1000);
sendBlueToothCommand(\r\n+STWMOD=0\r\n");
sendBlueToothCommand(\r\n+STNA=SeeeduinoBluetooth\r\n");
sendBlueToothCommand(\r\n+STAUTO=0\r\n");
sendBlueToothCommand(\r\n+STOAUT=1\r\n");
sendBlueToothCommand(\r\n +STPIN=0000\r\n");
delay(2000); // 此延迟是必要的。
sendBlueToothCommand(\r\n+INQ=1\r\n");
delay(2000); // 此延迟是必要的。
}


//检查是否收到响应 "OK"
void CheckOK()
{
char a,b;

while(1)
{
if(blueToothSerial.available()) { a = blueToothSerial.read(); if(st0">'O' == a)
{

// 等待下一个字符 K。在某些情况下需要 available(),因为 K 并不是立即可用。
while(blueToothSerial.available())
{
b = blueToothSerial.read();
break;
}

if('K' == b)
{
break;
}
}
}
}

while( (a = blueToothSerial.read()) sy3">!= sy2">-1)
{
//等待直到接收到所有其他响应字符
}
}


void sendBlueToothCommand(char command[])
{
blueToothSerial.print(command);
CheckOK();
}

请参阅 Bluetooth Bee 编程 以获取更多信息。

常见问题

请在此列出您的问题(如果有)。

支持

如果您有任何问题或更好的设计想法,可以前往我们的 论坛许愿 页面进行讨论。

版本追踪

版本描述发布日期
XBee® Shield V1.1Seeedstudio 发布的新版本2009年7月6日

Bug追踪

Bug追踪是您提交在使用过程中发现的任何问题的地方。请写下您的意见,您的反馈将帮助我们改进产品。

额外创意

额外创意是您可以写下关于该产品的项目想法或其他用途的地方。您也可以将它们写在项目页面上。

如何购买

点击此处购买:https://www.seeedstudio.com/depot/xbee%C3%82%C2%AE-shield-v11-by-seeedstudio-p-419.html?cPath=104_109

许可

本文档采用 Creative Commons Attribution-ShareAlike License 3.0 授权。源代码和库采用 GPL/LGPL 授权,详情请参阅源代码文件。

参见

Bluetooth Bee 文档 展示了 XBee®_Shield 的使用方法。

外部链接

链接到提供更多应用创意、文档/数据表或软件库的外部网页。

在线原理图查看器

资源

技术支持与产品讨论

感谢您选择我们的产品!我们提供多种支持渠道,确保您使用我们的产品时体验顺畅。我们提供以下沟通方式以满足不同的需求和偏好。

Loading Comments...