Bluetooth Bee - czyli BT z adapterami XBee

Kod:
MOD-224
Waga: Help
7 g
Dostawca:

Dodaj łączność BT do każdego shielda/adaptera XBee

W magazynie Help 10

PLN 94,00
PLN 76,42 bez VAT

OKAZJA

Wyprzedaż -50%

PLN 47,00
PLN 38,21 bez VAT

Etykiety: arduino, xbee, Bluetooth, modem

Moduł BT, który sprzedajemy dla początkujących elektroników ma wadę w postaci drobnych wyprowadzeń - 1.5 mm zamiast 2.54 mm sprawia trudności w lutowaniu komuś niewprawnemu. Rozwiązaniem jest Bluetooth Bee - ten sam moduł BT ale osadzony na przejściówce z wyprowadzeniami kompatybilnymi z XBee. Dzięki temu Bluetooth Bee będzie działało wszędzie tam gdzie możesz skorzystać z modemu XBee. Zapewni łączność serial z drugim urządzeniem (komputer z interfejsem BT lub drugi mikrokontroler z Bluetooth Bee) bez konieczności lutowania.

BT Bee nie połączy się z modemem XBee -  korzysta tylko z adapterów i shieldów XBee, nie oferuje też żadnych zaawansowanych właściwości XBee, jak sieci mesh czy gwiazda, przetworników analogowych czy wyjść PWM.

Skrócone info jak skorzystać np z XBee shielda i BT Bee:

  • Podłączyć shielda z BT Bee do Arduino
  • przełączyć zworki XBee/USB w tryb USB (bliżej krewędzi shielda)
  • zaprogramować Arduino, inicjując BT Bee komendami AT
  • przełączyć zworki w tryb XBee (dalej od krawędzi shielda)
  • po restarcie można sparować komputer z BT Bee
  • od tego momentu wszystko co Arduino pisze na Serial dociera do komputera

 

Wykorzystanie XBee explorera będzie zbliżone, tyle, że można skorzystać z innych pinów cyfrowych niż D0 i D1 i biblioteki programowego seriala. Dzięki temu UART Arduino zostaje wolny, co upraszcza programowanie Arduino (nie trzeba przełączać zworek jak w wypadku XBee Shielda).

Przykładowy kod na Arduino, dla wersji z XBee Shieldem oraz BT Bee:

void setup(){
  Serial.begin(38400);
  delay(1000);
  Serial.print("\r\n+STWMOD=0\r\n");
  Serial.print("\r\n+STNA=DIY_HA\r\n");
  Serial.print("\r\n+STPIN=0000\r\n");
  Serial.print("\r\n+STAUTO=0\r\n");
  Serial.print("\r\n+STOAUTO=1\r\n");
  
  delay(2000);
  Serial.print("\r\n+INQ=1\r\n"); 
};
void loop(){
Serial.println(millis());
delay(1000);
};

I tak kolejno komendy mają znaczenie:

  • STWMOD=0 - BT slave
  • STNA=DIY_HA - nazwa pod jaką urządzenie będzie widoczne w sieci BT
  • STPIN - ustaw PIN (bez tego PIN będzie 0000)
  • STAUTO=0 - nie łącz się automatycznie z ostatnim urządzeniem
  • STOAUTO=1 - pozwól się podłączać sparowanym urządzeniom
  • INQ=1 - pozwól się znaleźć urządzeniom

Na Ubuntu (lub inny linux) podłączenie się wygląda tak:

  • hcitool scan - dostajemy listę urządzeń
  • sudo hcitool cc AA:DD:RR:EE:SS oczywiście AA:DD:RR:EE:SS zastępujemy prawdziwym adresem tak jak zwrócony przez scan</li>
  • sudo hcitool auth AA:DD:RR:EE:SS - powinno pojawić się okienko pytające nas o PIN - uwaga często pojawia się pod innymi oknami.
  • nie próbuj odczytać danych przez SDP (sdptool) - połączenie zostanie zerwane. Dodaj do /etc/bluetooth/rfcomm.conf
    rfcomm0 {
    #       # Automatically bind the device at startup
            bind yes;
            device AA::DD:RR:EE:SS;
    #       # RFCOMM channel for the connection
            channel 1;
    }
    
    teraz:
    $ sudo rfcomm connect 0
    Connected /dev/rfcomm0 to AA::DD:RR:EE:SS on channel 1
    Press CTRL-C for hangup
    
    Można podłączyć się np minicommem do /dev/rfcomm0 i powinniśmy dostać kolejne wartości millis - łączność została nawiązana.
  • </ul>

    Więcej szczegółów na wiki modułu na SeeedStudio.