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

6

Soy dueño de dos de los módulos de bluetooth SparkFun BlueSmirf y me gustaría conectarlos entre sí, uno como maestro , y uno como el esclavo. Es fácil emparejarlos utilizando una 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 de bluetooth entre dos Arduinos sin usar una PC para enviar la señal de comando del carro desde la masilla mientras se configura el dispositivo?

He revisado detenidamente la hoja de datos y hoja de comandos para el módulo en sí, pero no incluye información sobre cómo superar este problema.

    
pregunta Sponge Bob

3 respuestas

3

Explico la forma de hacerlo en esta publicación de blog o en grandes detalles en este Instructables . Por ahora, aquí está el código básico que puede colocar en el dispositivo maestro y en el dispositivo 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 continuar con Bluesmirf:

  1. Lee el manual del usuario
  2. Velocidad de serie: de forma predeterminada, BlueSmirf está configurado en 115200, por lo que debe llamar a Serial.begin (115200); Antes de enviar el primer comando.
  3. El comando "$$$" es el único que no está seguido por un retorno de carro. ¿Por qué? Para complicar las cosas por supuesto. Use print () para el comando "$$$" y println() para todos los demás comandos.
  4. Lea y valide todas las respuestas que se devuelven.
  5. Espere 100 ms de retraso después de cada comando que envíe y antes de intentar leer la respuesta. Esto le dará a Bluesmirf el tiempo para procesar el comando.
  6. No olvide salir del modo de comando (usando “---” ). Algunos comandos no son efectivos hasta que haya salido del modo de comando (por ejemplo, comando de MS).
respondido por el pcantin
2

Puede enviar un retorno de carro a través del Serial haciendo algo como esto:

Serial.print("\r");

También puede incluir el comando (o lo que sea que esté enviando) y el retorno de carro en la misma cadena de impresión como esta:

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

    
respondido por el Kevin Mark
2

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

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

No es posible que dos dispositivos Bluetooth, con el perfil de puerto serie (SPP), se emparejen entre sí. Solo pueden vincularse a un host.

    
respondido por el baldengineer

Lea otras preguntas en las etiquetas