Campamento de Programación - Parte 12: Comunicación Serial a través de Bluetooth

En este artículo, llevaremos a cabo una conexión inalámbrica a nuestro smartphone utilizando el protocolo RFCOMM de Bluetooth.

(Figura 1 - Enviar mensaje a ODROID-GO) (Figura 2 - Recibir mensaje desde ODROID-GO)

Antes de empezar, asegúrate de haber seguido las guías de Primeros Pasos con Arduino and Arduino para ODROID-GO - Hello World. Además, siempre puedes consultar la documentación oficial de Arduino. Esta nos proporciona muchas funciones comunes que son muy útiles con excelentes instrucciones en https://www.arduino.cc/reference/en/. La guía de programación oficial de ESP32 también es un buen sitio para obtener información, la mayoría de las funciones específicas de ESP32 las puedes encontrar en https://esp-idf.readthedocs.io/en/v3.0/. Por último, el original de esta guía la tienes en la página wiki de ODROID-GO en https://wiki.odroid.com/odroid_go/arduino/07_bluetooth_serial.

Bluetooth Serial

El ESP32, que se usa en ODROID-GO, es compatible con Bluetooth 4.2, por lo que podemos programar las funciones de Bluetooth con las tan útiles librerías de Arduino. En esta guía, vamos a utilizar la librería BluetoothSerial.h:

#include "BluetoothSerial.h"

BluetoothSerial serialBT;

void setup() {
Serial.begin(115200);

serialBT.begin("ODROID-GO");
Serial.println("The device started, now you can pair it with bluetooth!");
}

void loop() {
if (Serial.available()) {
serialBT.write(Serial.read());
}
if (serialBT.available()) {
Serial.write(serialBT.read());
}
delay(20);
}
Define una instancia para BluetoothSerial como una variable global llamada serialBT. Para configurarla, usamos la función begin() que tiene un parámetro que indica el nombre del dispositivo Bluetooth para los escáner Bluetooth y lo llamamos ODROID-GO. En la función loop(), si hay un mensaje del monitor Serie disponible, envía ese mensaje al dispositivo conectado a través del Bluetooth Serial. Por otro lado, si hay un mensaje del Bluetooth serie disponible, lo envía al host.

Monitor Serial

Puedes usar un monitor serie para ver los mensajes de depuración desde el puerto serie, que se pueden asignar con el menú Tools → Serial Monitor. Otra posibilidad es presionar CTRL-SHIFT-M para abrirlo rápidamente. Para mostrar el mensaje correctamente, debe fijar el ancho de banda en 115200 baudios. Esta podría ser una herramienta de depuración muy útil. En esta guía, estamos usando esta herramienta para comunicarnos con el dispositivo conectado.

Figure 3- The Serial Monitor
Figura 3- El Monitor Serial

Conectar y comunicar

Probamos con la aplicación Serial Bluetooth Terminal de Android Playstore, en un Galaxy Note 8. Ésta encuentra un dispositivo Bluetooth llamado ODROID-GO y puede conectarse a este.

Figure 4 - Bluetooth Pairing with a Smartphone
Figura 4 - Emparejamiento Bluetooth con un teléfono inteligente

Y en la aplicación, seleccionamos ODROID-GO en la pestaña de Dispositivos.

Figure 5 - Bluetooth Serial App Pairing
Figura 5 - Emparejamiento de la aplicación Bluetooth Serial

Presiona el botón de conexión de la parte superior de la pantalla en la pestaña Terminal, de esta forma podrán comunicar entre sí.

Figure 6 - Serial App After Pairing
Figura 6 - Aplicación Serial tas el emparejamiento

Figure 7 - Serial App Showing Text To and From the ODROID-GO
Figura 7 - Aplicación Serial que muestra el texto hacia y desde el ODROID-GO

Por supuesto, también puedes hacer esto utilizando iOS o un PC/Portátil, si disponen de función Bluetooth.

Un ejemplo completo

El ejemplo completo está disponible para importar el código haciendo clic en el menú Files → Examples → ODROID-GO → BT_Serial, luego presiona CTRL-U para compilar/cargar.

Figure 8 - Loading the Bluetooth Example
Figura 8 - Cargando el ejemplo de Bluetooth

Be the first to comment

Leave a Reply