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 una PC con Putty como maestro, pero algunos de los comandos del módulo requieren un retorno de carro para enviar un comando.
¿Cómo puedo emparejar estos módulos bluetooth entre dos Arduinos sin usar una PC para enviar la señal de comando de carro desde PuTTY mientras se configura el dispositivo?
Revisé detenidamente la hoja de datos y la hoja de comandos del módulo en sí, pero no incluye información sobre cómo superar este problema.
Explico la forma de hacerlo en esta publicación de blog o con gran detalle en este Instructables . Por ahora, aquí está el código básico que puede poner 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:
"$$$"
comando es el único que no va seguido de 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.“---”
). Algunos comandos no son efectivos hasta que haya salido del modo de comando (por ejemplo, comando MS).Puede enviar un retorno de carro a través de la serie 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");
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 emparejarse con un host.
Anindo Ghosh
\n
,\n\r
oa\r\n
través de unSerial.print()
? Según el protocolo utilizado, algunos dispositivos serie requieren un retorno de carro, un salto de línea o un par CR-LF como delimitador de fin de línea.bob esponja
kevin marca