蓝牙 Bee

将你闲置的 Arduino 留给其他项目吧,这款两合一设备已经内置了 Arduino。带有 Arduino 的蓝牙 Bee 是蓝牙 Bee 的增强版。我们在其上添加了一个板载 ATMEGA168,使其成为一个功能齐全的 Arduino,同时保持与蓝牙 Bee 相同的尺寸和指令集。此外,它仍然可以堆叠在 XBee Carrier、XBee® Shield 和 UartSBee 上进行扩展或重新编程。
特性
- 小尺寸
- 与蓝牙 Bee 相同的设置和配对方法
- 在蓝牙模块和 ATMEGA168 之间采用软件串口
- 兼容 XBee Carrier、XBee® Shield 和 UartsBee,用于扩展
硬件特性
- 典型 -80dBm 灵敏度。
- 高达 +4dBm 的 RF 发射功率。
- 完全符合 Bluetooth V2.0+EDR 3Mbps 调制标准。
- 3.3V 电源。
- 集成 PCB 天线。
- 可通过软件断开和监控蓝牙连接。
- xBee 兼容的接头。
软件特性
- 使用 SoftSerial 程序进行通信。
- 默认波特率:38400,数据位:8,停止位:1,无校验位,数据控制:有。
- 支持的波特率:9600、19200、38400、57600、115200、230400、460800。
- 使用 CTS 和 RTS 控制数据流。
- 通过 PC2 的上升沿断开蓝牙连接。
- 状态指示端口 PB2:低-未连接,高-已连接。
- PIO10 连接到红色 LED,PIO11 连接到蓝色 LED。当主设备和从设备配对时,红色和蓝色 LED 每 2 秒闪烁一次;未连接时,仅蓝色 LED 每秒闪烁两次。
- 默认情况下,通电后自动连接上次设备。
- 默认允许匹配设备连接。
- 默认 PINCODE:“0000”。
- 当因超出连接范围而断开时,30 分钟内自动重新连接。
应用场景
- 兼容 Arduino 的模块,支持蓝牙通信。
caution
- 需要 3.3V 电源。
- 使用 UartSBee 时,请将工作电压设置为 3.3V。
- 更改波特率的命令在复位后仍然有效,因此请记住下次使用的波特率。
引脚定义和额定值
底视图:

- 
PD4 - PD7 = Arduino IDE 数字引脚 4 - 7 (5,6 PWM) 
- 
PB0 , PB1 = Arduino IDE 数字引脚 8 , 9 (9 PWM) 
- 
PC0 - PC3 = Arduino IDE 模拟引脚 0 - 3 (注意:PC2 通过上升沿断开蓝牙连接) 
使用方法
- 第一步
将 Grove-Red_LED 和 Bluetooth Bee-Standalone 模块连接到 XBee 扩展板,如下图所示。

- 第二步
使用 Arduino-IDE 编写程序,从 Bluetooth Softserial 端口读取信息,并识别以关闭或打开 LED。
/*
BluetoothBee 示例代码 - 基于流控制的实现
2010,2011 版权所有 (c) Seeed Technology Inc. 保留所有权利。
作者: Visweswara R      修改: Joinj
此示例代码是免费软件;您可以根据 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 2
#define TxD 3
#define DEBUG_ENABLED  1
NewSoftSerial blueToothSerial(RxD,TxD);
void setup()
{
    pinMode(RxD, INPUT);
    pinMode(TxD, OUTPUT);
    pinMode(5,OUTPUT);
    setupBlueToothConnection();
}
void loop()
{
    unsigned char control;
    unsigned char temp;
    while(temp!='4')  {
        temp=blueToothSerial.read();
    }
    Serial.println("您已连接");
    blueToothSerial.print("您已连接");      //您可以在此处编写蓝牙通信逻辑
    while(1)  {
        temp=blueToothSerial.read();
        switch(temp)  {
            case 'O':{while(temp!='N')  {temp=blueToothSerial.read();}  digitalWrite(5,HIGH);break;}
            case 'S':{while(temp!='H')  {temp=blueToothSerial.read();}  digitalWrite(5,LOW);break;}
            default:break;
        }
    }
}
void setupBlueToothConnection()
{
    blueToothSerial.begin(38400); //将 BluetoothBee 波特率设置为默认波特率 38400
    delay(1000);
    sendBlueToothCommand("\r\n+STWMOD=0\r\n");
    sendBlueToothCommand("\r\n+STNA=SeeedBluetooth-st\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('O' == a)
            {
                // 等待下一个字符 K。某些情况下需要 available(),因为 K 并不是立即可用。
                while(blueToothSerial.available())
                {
                    b = blueToothSerial.read();
                    break;
                }
                if('K' == b)
                {
                    break;
                }
            }
        }
    }
    while( (a = blueToothSerial.read()) != -1)
    {
        //等待接收所有其他响应字符
    }
}
void sendBlueToothCommand(char command[])
{
    blueToothSerial.print(command);
    CheckOK();
}
- 第三步
使用 USB 数据线将 XBee 扩展板连接到电脑,并将程序上传到 ATMEGA168 上的 Bluetooth Bee-Standalone。
- 第四步
从 XBee 扩展板移除 USB 数据线,并将 3.7V 电池连接到 XBee 扩展板,如下图所示。

- 第五步

其他想法
在线原理图查看器
资源
技术支持与产品讨论
感谢您选择我们的产品!我们致力于为您提供各种支持,确保您使用我们的产品时体验顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。
