Skip to main content

Bluetooth Bee

Bluetooth Bee es un módulo Bluetooth Serial Port Profile(SPP) fácil de usar, compatible con sockets Xbee existentes, diseñado para configuración transparente de conexión serial inalámbrica. El módulo Bluetooth de puerto serial está completamente calificado con Bluetooth V2.0+EDR(Enhanced Data Rate) 3Mbps Modulation con transceptor de radio completo de 2.4GHz y banda base. Utiliza CSR Bluecore 04-External, sistema Bluetooth de chip único con tecnología CMOS y con AFH(Adaptive Frequency Hopping Feature). Tiene la huella más pequeña de 12.7mm x 27mm

Modelo:WLS125E1P

Características

Características de Hardware

  • Sensibilidad típica de -80dBm.

  • Hasta +4dBm de potencia de transmisión RF.

  • Bluetooth V2.0+EDR 3Mbps Modulation completamente calificado.

  • Operación de bajo consumo 1.8V, 1.8 a 3.6V I/O.

  • Control PIO.

  • Interfaz UART con velocidad de baudios programable.

  • Antena PCB integrada.

  • Conectores compatibles con xBee.

Características de Software

  • Velocidad de baudios por defecto: 38400, Bits de datos:8, Bit de parada:1, Paridad:Sin paridad, Control de datos: tiene.

  • Velocidades de baudios soportadas: 9600,19200,38400,57600,115200,230400,460800.

  • Usa CTS y RTS para controlar el flujo de datos.

  • Cuando se detecta un pulso ascendente en PIO0, el dispositivo se desconectará.

  • Puerto de instrucción de estado PIO1: bajo-desconectado, alto-conectado;

  • PIO10 está conectado al led rojo, PIO11 está conectado al led verde. Cuando maestro y esclavo están emparejados, los leds rojo y verde parpadean 1 vez / 2s en intervalos, mientras que desconectado solo el led verde parpadea 2 veces/ s.

  • Auto-conectar al último dispositivo al encender por defecto.

  • Permitir conexión de dispositivo emparejado por defecto.

  • PINCODE por defecto:"0000".

  • Auto-reconectar en 30 min cuando se desconecta como resultado de estar fuera del rango de conexión.

Ideas de Aplicación

  • Como Puerto Serial Inalámbrico para Arduino / Seeeduino y otros MCUs

  • Como Puerto Serial Bluetooth para PC cuando se conecta con UartSBee

Precauciones

  • Mientras se usa con Seeeduino / Arduino, configurar el voltaje de operación a 3.3V. De lo contrario usar un convertidor de nivel lógico apropiado.

  • Mientras se usa con UartSBee, configurar el voltaje de operación a 3.3V

  • El comando para cambiar la velocidad de baudios es persistente incluso después del reset. Por lo tanto recordar la velocidad de baudios para el próximo uso.

  • Cuando se usa SoftwareSerial, no configurar la velocidad de baudios por encima de 38400

Esquemático

Archivos de Esquemático y Placa de Bluetooth Bee en Formato Eagle sservicio de transporte refrigerado de la empresa de carga APS

Definición de pines y Clasificación

Vista inferior:

Pin#Tipo de PadDescripción
PI0929Bi-DireccionalLínea de entrada/salida programable
PI0828Bi-DireccionalLínea de entrada/salida programable
PIO727Bi-DireccionalLínea de entrada/salida programable
PIO626Bi-DireccionalLínea de entrada/salida programable
RTS25Salida CMOS, tri-estado con pull-up interno débilUART solicitud de envío, activo bajo
PIO524Bi-DireccionalLínea de entrada/salida programable
PI0423Bi-DireccionalLínea de entrada/salida programable
PCMSY22Bi-DireccionalDatos PCM síncronos
CTS21Salida CMOS, tri-estado con pull-up interno débilUART listo para enviar, activo bajo
PIO320Bi-DireccionalLínea de entrada/salida programable
PIO219Bi-DireccionalLínea de entrada/salida programable
USBDP18Bi-Direccional
USBDN17Bi-Direccional
CLK16Salida CMOS, tri-estado con pull-up interno débilReloj de SPI (Interfaz periférica serie)
MI15Salida CMOS, tri-estado con pull-up interno débilSalida de datos SPI
MO14Salida CMOS, tri-estado con pull-up interno débilSalida de datos SPI
CS13Salida CMOS, tri-estado con pull-up interno débilSelección de chip para interfaz periférica serie, activo bajo
AIO112Bi-DireccionalLínea de entrada/salida programable
AIO011Bi-DireccionalLínea de entrada/salida programable
GND10VSSPuerto de tierra
PCMIN9Entrada CMOEntrada de datos PCM síncronos
PCMOT8Salida CMOSEntrada de datos PCM síncronos
PCMCK7BidireccionalEntrada de datos PCM síncronos
PIO16BidireccionalLínea de entrada/salida programable
IRST5Salida CMOS, tri-estado con pull-up interno débilReinicio si está bajo, la entrada debe estar baja por >5ms para causar un reinicio
PIO04BidireccionalLínea de entrada/salida programable
RX3Salida CMOS, tri-estado con pull-up interno débilEntrada de datos UART
TX2Salida CMOS, tri-estado con pull-up interno débilEntrada de datos UART
3V313.3VSuministro integrado de 3.3v(+) con salida de regulador lineal en chip dentro de 3.15-3.3v

Dimensiones Mecánicas

La placa Bluetooth Bee tiene un tamaño de 12.7mm x 27mm.

Uso

Instalación de Hardware

Conectando a Arduino con XBee Shield

Usa un XBee® Shield para conectar Bluetooth Bee a Seeeduino / Arduino. Consulta la documentación del XBee® Shield sobre cómo configurar los interruptores de palanca en las posiciones correctas.

Conectando a PC con UartSbee

Usa un UartSBee para conectar Bluetooth Bee a PC. Configura el interruptor de selección de alimentación a 3.3V antes de conectar BlueTooth Bee.

Instrucciones de Software

Mapa de Esquema de Funcionamiento

El siguiente esquema presenta una visión general de la operación de Bluetooth Bee en modo maestro y esclavo.

Diagrama de Flujo

El siguiente diagrama de flujo proporciona una guía de inicio rápido para la programación de Bluetooth Bee.

Comandos para cambiar la configuración predeterminada

  1. Configurar MODO de trabajo

| \r\n+STWMOD=0\r\n | Configurar el modo de trabajo del dispositivo como cliente (esclavo). Guardar y Reiniciar. | |--||| | \r\n+STWMOD=1\r\n | Configurar el modo de trabajo del dispositivo como servidor (maestro). Guardar y Reiniciar. |

Nota:\r\n es necesario para la operación y el valor son 80x0D 0x0A en Hex. \r y \n representan retorno de carro y avance de línea(o siguiente línea),

2.Establecer BAUDRATE

\r\n+STBD=115200\r\nEstablecer baudrate 115200. Guardar y Reiniciar.
Baudrate soportado: 9600, 19200,38400,57600,115200,230400,460800.

3.Establecer NOMBRE del Dispositivo

\r\n+STNA=abcdefg\r\nEstablecer nombre del dispositivo como "abcdefg". Guardar y Reiniciar.

\r\n+STNA=abcdefg\r\n Establecer nombre del dispositivo como "abcdefg". Guardar y Reiniciar.

4.Conectar automáticamente el último dispositivo emparejado al encender

\r\n+STAUTO=0\r\nConexión automática prohibida. Guardar y Reiniciar.
\r\n+STAUTO=1\r\nPermitir conexión automática. Guardar y Reiniciar.

5.Permitir que el dispositivo emparejado se conecte conmigo

\r\n+STOAUT=0\r\nProhibido. Guardar y Reiniciar.
\r\n+STOAUT=1\r\nPermitir. Guardar y Reiniciar.

6.Establecer CÓDIGO PIN

| \r\n +STPIN=2222\r\n | Establecer código pin "2222", Guardar y Reiniciar. | |---| ||| |

7.Eliminar CÓDIGO PIN(introducir CÓDIGO PIN por MCU)

\r\n+DLPIN\r\nEliminar código pin. Guardar y Reiniciar.

8.Leer CÓDIGO DE DIRECCIÓN local

\r\n+RTADDR\r\nDevolver dirección del dispositivo.

9.Reconexión automática cuando el dispositivo maestro está fuera del rango válido (el dispositivo esclavo se reconectará automáticamente en 30 min cuando esté fuera del rango válido)

\r\n+LOSSRECONN=0\r\nProhibir reconexión automática.
\r\n+LOSSRECONN=1\r\nPermitir reconexión automática.

Comandos para Operación Normal

1.Consultar

a) Maestro

\r\n+INQ=0\r\nDetener Consulta
\r\n+INQ=1\r\nIniciar/Reiniciar Consulta

b) Esclavo

\r\n+INQ=0\r\nDeshabilitar ser consultado
\r\n+INQ=1\r\nHabilitar ser consultado

Cuando el comando +INQ=1 es exitoso, los LEDs rojo y verde parpadean alternativamente.

2.El módulo Bluetooth devuelve el resultado de la consulta

\r\n+RTINQ=aa,bb,cc,dd,ee,ff;name\r\nSe consulta el dispositivo Bluetooth serie con la dirección "aa,bb,cc,dd,ee,ff" y el nombre "name"

3.Conectar dispositivo

\r\n+CONN=aa,bb,cc,dd,ee,ff\r\nConectar a un dispositivo con dirección "aa,bb,cc,dd,ee,ff"

4.El módulo Bluetooth solicita ingresar PINCODE

\r\n+INPIN\r\n

5.Ingresar PINCODE

\r\n+RTPIN=code\r\n
Ejemplo: RTPIN=0000Ingresar PINCODE que son cuatro ceros

6. Desconectar dispositivo

Poner PIO0 en alto desconectará el dispositivo Bluetooth que esté funcionando actualmente.

7. Devolver estado

\r\n+BTSTA:xx\r\n

xx estado:

  • 0 - Inicializando

  • 1 - Listo

  • 2 - Consultando

  • 3 - Conectando

  • 4 - Conectado

(Nota: Este no es un comando, sino la información devuelta por el módulo después de cada comando)

Programación

Implementación Basada en Control de Flujo

El siguiente sketch configura Bluetooth Bee para Transportunternehmen como Dispositivo Esclavo y espera solicitud de conexión desde PC u otro dispositivo maestro. Bluetooth Bee está conectado a Seeeduino a través de XBee Shield como se muestra arriba. Bluetooth Bee está conectado a los Pines digitales 11 y 12 de Arduino / Seeduino. Usamos la librería NewSoftSerial para soportar comunicación serial en estos pines. El puerto serial por hardware de Arduino está disponible para cargar sketch o depurar. Este sketch usa un mecanismo de control de flujo usando CheckOK(). Evita usar retardo arbitrario entre cada comando. Si CheckOK() no es requerido, use un retardo de al menos 3 segundos entre comandos.

/*
BluetoothBee Demo Code - Flowcontrol Based Implementation
2010,2011 Copyright (c) Seeed Technology Inc. All right reserved.

Author: Visweswara R

This demo code is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

For more details about the product please check https://www.seeedstudio.com/depot/

*/


/* Upload this sketch to Seeeduino and press reset*/

#include <SoftwareSerial.h> //Software Serial Port
#define RxD 11
#define TxD 12

#define DEBUG_ENABLED 1

SoftwareSerial blueToothSerial(RxD,TxD);

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

}

void loop()
{
//Typical Bluetoth command - response simulation:

//Type 'a' from PC Bluetooth Serial Terminal
//See Bluetooth Bee - Wiki for instructions

if(blueToothSerial.read() == 'a')
{
blueToothSerial.println("You are connected");
//You can write you BT communication logic here
}

}


void setupBlueToothConnection()
{
blueToothSerial.begin(38400); //Set BluetoothBee BaudRate to default baud rate 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); // This delay is required.
sendBlueToothCommand("\r\n+INQ=1\r\n");
delay(2000); // This delay is required.
}

//Checks if the response "OK" is received
void CheckOK()
{
char a,b;
while(1)
{
if(blueToothSerial.available())
{
a = blueToothSerial.read();

if('O' == a)
{
// Wait for next character K. available() is required in some cases, as K is not immediately available.
while(blueToothSerial.available())
{
b = blueToothSerial.read();
break;
}
if('K' == b)
{
break;
}
}
}
}

while( (a = blueToothSerial.read()) != -1)
{
//Wait until all other response chars are received
}
}

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

Implementación Basada en Retardo

El siguiente sketch es una modificación del programa anterior usando delay() en lugar de CheckOK(). En este caso el puerto serie por hardware se usa para propósitos de depuración. Abre el monitor serie con configuración de 9600 baudios. La comunicación completa entre MCU y Bluetooth Bee será visible en el monitor serie.

/*
BluetoothBee Demo Code - Delay Based Implementaion
2011 Copyright (c) Seeed Technology Inc. All right reserved.

Author: Visweswara R

This demo code is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

For more details about the product please check https://www.seeedstudio.com/depot/

*/

/* Upload this sketch into Seeeduino and press reset*/

#include <SoftwareSerial.h> //Software Serial Port
#define RxD 11
#define TxD 12

SoftwareSerial blueToothSerial(RxD,TxD);

void setup()
{
Serial.begin(9600); //Serial port for debugging, Comment this line if not required
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
setupBlueToothConnection();

}

void loop()
{

if(blueToothSerial.read() == 'a')
{
blueToothSerial.println("You are connected to Bluetooth Bee");
//You can write you BT communication logic here
}
}

void setupBlueToothConnection()
{
Serial.print("Setting up Bluetooth link"); //For debugging, Comment this line if not required
blueToothSerial.begin(38400); //Set BluetoothBee BaudRate to default baud rate 38400
delay(1000);
sendBlueToothCommand("\r\n+STWMOD=0\r\n");
sendBlueToothCommand("\r\n+STNA=modem\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); // This delay is required.
blueToothSerial.print("\r\n+INQ=1\r\n");
delay(2000); // This delay is required.
Serial.print("Setup complete");

}

void sendBlueToothCommand(char command[])
{
char a;
blueToothSerial.print(command);
Serial.print(command); //For debugging, Comment this line if not required
delay(3000);

while(blueToothSerial.available()) //For debugging, Comment this line if not required
{ //For debugging, Comment this line if not required
Serial.print(char(blueToothSerial.read())); //For debugging, Comment this line if not required
} //For debugging, Comment this line if not required
}

Conectando Bluetooth Bee a PC (vía Dongle Bluetooth) bajo GNU/Linux

Este procedimiento demuestra cómo Bluetooth Bee puede conectarse a PC bajo el SO GNU/Linux. Se utiliza un Dongle Bluetooth USB en el lado del PC para comunicarse con Bluetooth Bee. El sketch de implementación de control de flujo se carga en Seeeduino.

  • Instalar gnome-bluetooth

sudo apt-get install gnome-bluetooth

  • Abrir la aplicación bluetooth-properties desde el shell

  • Hacer clic en Set up new device

y hacer clic en Forward

  • Abrir PIN options...

  • Establecer Fixed PIN 0000. 0000 es el pin predeterminado utilizado en el sketch anterior.

  • Se abre la ventana Device Setup

  • y se abre el diálogo Setup Completed. Hacer clic en Close.

  • La dirección del Bluetooth Bee 00:13:EF:00:00:24 se muestra en el shell.

  • Vincular el Bluetooth Bee al puerto rfcomm. Aquí la dirección del Bluetooth Bee se vincula a un dispositivo de puerto serie /dev/rfcomm0
user@user-desktop:~$ sudo rfcomm bind 0 00:13:EF:00:00:24 1
user@user-desktop:~$ ls /dev/rfcomm*
/dev/rfcomm0
  • Este puerto serie /dev/rfcomm0 puede ser accedido por cualquier terminal de puerto serie como cutecom.

  • Abrir /dev/rfcomm0 con velocidad de baudios: 38400, Bits de datos: 8, Bits de parada: 1 y Sin Control de Flujo

  • Enviar el carácter 'a'

  • Seeeduino + Bluetooth Bee responderá con "You are connected to Bluetooth Bee"

Conectando Bluetooth Bee a PC (vía Dongle Bluetooth) bajo Windows

  • Instalar los controladores predeterminados de Microsoft Bluetooth. Abrir Panel de Control -> Dispositivos Bluetooth

  • Hacer clic en el botón Agregar.

  • Marcar Mi dispositivo está configurado y listo para ser encontrado y hacer clic en el botón Siguiente

  • Seleccionar el dispositivo "SeeedBlueToothBee" y hacer clic en Siguiente.

  • Seleccionar Usar la clave de acceso encontrada en la documentación e ingresar 0000

  • Las claves de acceso se intercambian y se asigna un puerto serie saliente COM5 para nuestra comunicación.

  • Un globo de la barra de tareas muestra que se agregó un nuevo enlace de Puerto Serie Bluetooth.

  • COM5 se asigna para comunicación. Este puerto debe usarse para comunicar la PC con Bluetooth Bee.

  • Este puerto serie COM5 puede ser accedido por cualquier terminal de Puerto Serie.

  • Abrir COM5 con velocidad de baudios: 38400, Bits de datos: 8, Bits de parada: 1 y Sin Control de Flujo

  • Enviar el carácter 'a'

  • Seeeduino + Bluetooth Bee responderá con "You are connected to Bluetooth Bee"

Conectando Bluetooth Bee a PC usando UartsBee en Modo Maestro

Esta demostración usa la configuración de hardware descrita en [Instalación de Hardware - UartSBee. Conectar UartSbee a PC usando un cable mini USB.

  • Abrir una terminal serie y conectar al dispositivo de puerto serie UartSBee como COM1 en Windows o /dev/ttyUSB0 en GNU/Linux con velocidad de baudios: 38400, Bits de datos: 8, Bits de parada: 1 y Sin Control de Flujo

  • Enviar el comando \r\n+STWMOD=1\r\n. Esto configura el Bluetooth Bee en modo maestro.

  • Enviar el comando \r\n+INQ=1\r\n. Bluetooth Bee busca dispositivos Bluetooth disponibles en el vecindario y lista la dirección de los dispositivos. En este caso con +RTINQ=0,19,86,0,19,1E;desktop, donde desktop es una PC con interfaz Bluetooth. Mientras consulta, los leds rojo y verde parpadean alternativamente.

  • Enviar \r\n+CONN=0,19,86,0,19,1E\r\n donde 0,19,86,0,19,1E es la dirección de desktop.

  • Ingresar el pin 0000 en el lado de la PC y completar la conexión.

Lista de Materiales (BOM) /lista de partes

Soporte

Si tienes preguntas u otras mejores ideas de diseño, puedes ir a nuestro foro o wish para discutir.

Seguimiento de Versiones

RevisiónDescripcionesLanzamiento
v1.0Lanzamiento público inicial14 Dic, 2009
v1.1Modificar comando Inquire y añadir algunas notas15 Mar, 2010
v1.2Modificar características de Hardware y Software04 Abr, 2010
v1.3Actualizar el perfil, añadir el estado de retorno, eliminar comando ECHO.21 Abr, 2010
v2.0Actualizar el módulo como HM-01(El mismo que el shield Bluetooth más reciente). El comando AT no puede ser compatible con versiones anteriores.4 Dic, 2014

Rastreador de Errores

El Rastreador de Errores es el lugar donde puedes publicar cualquier error que creas haber encontrado durante el uso. Por favor escribe lo que tengas que decir, tus respuestas nos ayudarán a mejorar nuestros productos.

Idea Adicional

  • Implementar un Teclado / Mouse PS/2 inalámbrico.

  • Control inalámbrico de un robot de juguete desde PC.

Cómo comprar

Haz clic aquí para comprar:https://www.seeedstudio.com/depot/bluetooth-bee-p-598.html?cPath=139_142.

Licencias

Esta documentación está licenciada bajo Creative Commons Attribution-ShareAlike License 3.0 El código fuente y las librerías están licenciados bajo GPL/LGPL, consulta los archivos de código fuente para más detalles.

Proyectos Relacionados

Si quieres hacer algunos proyectos increíbles con Bluetooth Bee, aquí tienes algunos proyectos de referencia.

Seeed Pet

Esta es una demostración interesante hecha con seeduino y Grove (title=undefined). SEEED PET es una especie de mascota electrónica en nuestro estudio. Es una plataforma para que los ingenieros novatos se familiaricen con los productos de nuestra empresa y practiquen. Cada ingeniero novato añadirá algunas ideas nuevas o elementos al SEEED PET.

Quiero hacerlo.

Comparte Tus Proyectos Increíbles con Nosotros

Nacido con el espíritu de hacer y compartir, eso es lo que creemos que hace a un maker.

Y solo por esto, la comunidad de código abierto puede ser tan próspera como es hoy.

No importa quién eres y qué has hecho, hacker, maker, artista e ingenieros,

mientras comiences a compartir tus trabajos con otros,

estás siendo parte de la comunidad de código abierto y estás haciendo tus contribuciones.

Ahora comparte tus proyectos increíbles con nosotros en Recipe, y gana la oportunidad de convertirte en Usuario Principal de Seeed.

  • Los Usuarios Principales, son aquellos que muestran alto interés y contribuciones significativas en los productos de Seeed.

  • Cooperamos con nuestros Usuarios Principales en el desarrollo de nuestro nuevo producto, esto, en otras palabras, los Usuarios Principales tendrán la oportunidad de experimentar cualquier producto nuevo de Seeed antes de su lanzamiento oficial, y a cambio esperamos comentarios valiosos de ellos para ayudarnos a mejorar el rendimiento del producto y la experiencia del usuario. Y en la mayoría de los casos si nuestros Usuarios Principales tienen buenas ideas para hacer cosas, ofreceremos piezas de hardware, servicios de PCBA así como soporte técnico. Además, una mayor cooperación comercial con los Usuarios Principales es altamente posible.

Visor de Esquemas en Línea

Recursos

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...