不能将mac和arduino fio与蓝牙蜜蜂配对

时间:2014-07-03 06:37:48

标签: macos bluetooth arduino

我无法通过与我的mac搭配的蓝牙蜜蜂获得我的arduino fio。我让我的应用程序使用不同的板(arduino uno)和USB连接。我上传到我的arduino fio的代码如下:

#include <SoftwareSerial.h>

SoftwareSerial softSerial(2, 3); // RX, TX


void setup() {

    // bluetooth bee setup
    softSerial.print("\r\n+STWMOD=0\r\n");     // set to slave
    delay(1000);
    softSerial.print("\r\n+STNA=MYAPP\r\n");     // set name
    delay(1000);
    //  Serial.print("\r\n+STAUTO=1\r\n");     // permit auto-connect of paired devices
    softSerial.print("\r\n+STOAUT=1\r\n");
    delay(1000);
    //Serial.print("\r\n +STPIN=0000\r\n");  // set PIN
    //delay(1000);
    softSerial.print("\r\n+STBD=9600\r\n");     // set baud
    delay(2000);  // required 
    // initiate BTBee connection
    softSerial.print("\r\n+INQ=1\r\n");
    delay(20000);   // wait for pairing
    // Start the software serial.
    softSerial.begin(9600);
    // Start the hardware serial. 
    Serial.begin(9600);
}

我认为针脚是正确的 - 2 and 3 seem to be the pins that connect to the bluetooth bee。我已经连续两天谷歌搜索,人们似乎没有配对问题。我做错了什么?

谢谢,

1 个答案:

答案 0 :(得分:0)

好的 - 这让我花了将近三天的Google-fu,我偶然发现了this page。显然,那个人在找到解决方案时遇到了很多麻烦,所以希望在StackOverflow上发布解决方案将有助于未来的询问者。

真的,有两件事是必要的。首先,无论出于何种原因,我不知道为什么,你不担心“软件序列”。只需解决“串行”问题。其次,如果你没有串口在38400的波特率它将无法工作。我实际上使用“软件串口”与另一台设备通话,而波特率为9600,但对于蓝牙串口,你想要它在38400。

如果您按如下方式定义“设置”,则BluetoothBee应闪烁红色和绿色,并且配对(mac与其无关):

long DATARATE = 38400;  // default data rate for BT Bee

char inChar = 0;
int  LED = 13;   // Pin 13 is connected to a LED on many Arduinos

void setup() {

  Serial.begin(DATARATE);

  // bluetooth bee setup
  Serial.print("\r\n+STWMOD=0\r\n");     // set to slave
  delay(1000);
  Serial.print("\r\n+STNA=myDeviceName\r\n");     // set the device name
  delay(1000);
  Serial.print("\r\n+STAUTO=0\r\n");     // don't permit auto-connect
  delay(1000);
  Serial.print("\r\n+STOAUT=1\r\n");     // existing default
  delay(1000);
  Serial.print("\r\n +STPIN=0000\r\n");  // existing default
  delay(2000);  // required

  // initiate BTBee connection
  Serial.print("\r\n+INQ=1\r\n");
  delay(2000);   // wait for pairing

  pinMode(LED, OUTPUT);
}

然后,在配对后你应该看到'tools - &gt;下的另一个串口。您的Arduino IDE中的串行端口。如果您选择并按如下方式定义“循环”功能,您应该能够发送这些命令并获得验证,实际上是与蓝牙蜜蜂交谈:

void loop() {

  // test app:
  //   wait for character,
  //   a returns message, h=led on, l=led off
  if (Serial.available()) {
    inChar = Serial.read();

    if (inChar == 'a') {
      Serial.print("connected");  // test return connection
    }

    if (inChar == 'h') {
      digitalWrite(LED, HIGH);   // on
    }

    if (inChar == 'l') {
      digitalWrite(LED, LOW);    // off
    }

  }

}