6 votos

¿Cómo puedo crear un puente en serie utilizando dos dongles Bluetooth?

Tengo dos de los Módulos bluetooth SparkFun BlueSmirf y me gustaría conectarlos entre sí, uno como maestro y otro como esclavo. Es fácil emparejarlos usando un PC con Putty como maestro, pero algunos de los comandos para el módulo requieren un retorno de carro para enviar un comando.

¿Cómo puedo emparejar estos módulos bluetooth entre dos Arduinos sin utilizar un PC para enviar la señal de comando de transporte desde Putty mientras se configura el dispositivo?

He revisado a fondo el hoja de datos y hoja de comandos para el propio módulo, pero no incluye información de cómo superar este problema.

3voto

ScottStonehouse Puntos 6513

Explico la forma de hacerlo en esta entrada del blog o en grandes detalles en este Instructable . Por ahora, este es el código básico que puedes poner en el dispositivo maestro y en el esclavo.

//Master code
void setup() {
  Serial.begin(115200);
  Serial.print("$$$");
  delay(100);
  Serial.println("SM,1");  delay(100);
  Serial.println("C,000666123ABC");
  delay(100);
  Serial.println("---");
}

//Slave code
void setup() {
  Serial.begin(115200);
  Serial.print("$$$");
  delay(100);
  Serial.println("SM,0");
  delay(100);
  Serial.println("---");
}

Y algunos consejos antes de seguir con Bluesmirf:

  1. Leer el manual de usuario
  2. Velocidad Serial: Por defecto, BlueSmirf está configurado a 115200 por lo que es necesario llamar a Serial.begin(115200); antes de enviar el primer comando.
  3. El "$$$" es el único que no va seguido de un retorno de carro. ¿Por qué? Para complicar las cosas, por supuesto. Utilice print() para el "$$$" comando y println() para todos los demás comandos.
  4. Leer y validar todas las respuestas que se envían de vuelta.
  5. Espera 100ms de retraso después de cada comando que envíes y antes de intentar leer la respuesta. Esto dará a Bluesmirf el tiempo necesario para procesar el comando.
  6. No olvides salir del modo de comandos (usando “---” ). Algunos comandos no son efectivos hasta que no se sale del modo de comandos (por ejemplo, el comando MS).

2voto

g-man Puntos 31

Bluetooth utiliza un modelo de host y dispositivo. Un dispositivo necesita un host para comunicarse.

Los módulos que estás utilizando son dispositivos mientras que tu PC es un host.

No es posible que dos dispositivos Bluetooth, con el perfil de puerto serie (SPP), se emparejen entre sí. Sólo pueden emparejarse con un host.

2voto

cavver Puntos 397

Puedes enviar un retorno de carro a través del Serial haciendo algo así:

Serial.print("\r");

También puedes incluir el comando (o lo que sea que estés enviando) y el retorno de carro en la misma cadena de impresión, así:

Serial.print("Everybody Dance Now\r");

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X