App Inventor 2 es una plataforma en línea de código abierto que permite crear aplicaciones para dispositivos Android sin necesidad de conocimientos avanzados de programación. F
App Inventor 2 fue desarrollado por Google y posteriormente transferido al MIT (Instituto Tecnológico de Massachusetts).
Para este proyecto se creará una aplicación en App Inventor que se conecte a un slider a través de Bluetooth y lo controle desde un dispositivo programado con Arduino IDE
Aplicación en App Inventor que se conecte a un slider a través de Bluetooth y se controle desde un dispositivo Arduino con un ESP32, puedes seguir estos pasos generales:
Lado de la Aplicación en App Inventor:
1. Crear la Interfaz Gráfica:
2. Comienza un nuevo proyecto
3. Componentes Bluetooth: Añadir el componente Bluetooth al diseño.
4. Configurar Bluetooth:
Configurar el componente Bluetooth para buscar dispositivos y establecer la conexión.
Programar la Interacción con el Slider:
Programar la lógica que enviará los datos del slider a través de Bluetooth al dispositivo Arduino cuando se modifique su valor.
Manejar la Conexión y Desconexión:
Implementar lógica para gestionar la conexión y desconexión con el dispositivo Bluetooth.
Diseñar la Interfaz de Usuario:
Diseñar la interfaz de usuario para mostrar el estado de la conexión y otra información relevante.
En la pantalla de diseño, agrega un componente Slider desde la paleta de componentes.
Manejo del Slider y envío de datos:
En el bloque "BluetoothClient1.SendText", el valor del slider se convierte a una cadena (Text), ya que el módulo Bluetooth envía datos como texto.
Asegúrate de configurar correctamente el BluetoothClient1.Address con la dirección Bluetooth de tu dispositivo.
Conecta tu dispositivo Android a tu Arduino mediante Bluetooth.
Lado del Dispositivo Arduino (ESP32):
Preparar todo para poder configurar el ESP32 con Arduino IDE.
Programar la Lógica del ArduinoControlar el Slider (recibir datos)
Escribe un programa para el ESP32 que escuche los datos enviados por la aplicación a través de Bluetooth.
Implementa la lógica que ajustará el valor del slider según los datos recibidos a través de Bluetooth.
Controlar un slider en App Inventor 2 y enviar los datos al ESP32 a través de Bluetooth
Asegurarse tener un módulo Bluetooth conectado al microcontrolador.
// Importar la librería para el módulo Bluetooth
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
}
void loop() {
if (BTSerial.available()) {
int valor = BTSerial.parseInt();
if (valor >= 0 && valor <= 255) {
// Aquí puedes utilizar el valor recibido como desees
analogWrite(9, valor); // Por ejemplo, controlar un LED con el valor del slider
}
}
}
Este código utiliza la librería SoftwareSerial para comunicarse con el módulo Bluetooth en los pines 10 y 11. Luego, lee el valor entero enviado desde la aplicación y lo utiliza para controlar un LED conectado al pin 9 (se puede ajustar esto según tu configuración).
Primeros pasos con ESP32 Bluetooth Low Energy (BLE) en Arduino IDE – Bluetooth de Bajo Consumo de Energía
El ESP32 cuenta con con Bluetooth Clásico y Bluetooth Low Energy (BLE)
Esta publicación es una introducción a BLE con el ESP32.
En esta sección: ¿Qué es BLE y para qué se puede usar?
También algunos ejemplos con el ESP32 usando Arduino IDE.
¿Qué es Bluetooth de baja energía?
Bluetooth Low Energy, BLE para abreviar, es una variante de ahorro de energía de Bluetooth. La aplicación principal de BLE es la transmisión a corta distancia de pequeñas cantidades de datos (bajo ancho de banda).
A diferencia de Bluetooth Clásico, que siempre está activado, BLE permanece en modo de suspensión constantemente, excepto cuando se inicia una conexión.
Comparado con Bluetooth clásico, Bluetooth Low Energy está diseñado para proporcionar un bajo consumo de energía, manteniendo un rango de alcance de comunicación similar.
Esto hace que consuma muy poca energía. BLE consume aproximadamente 100 veces menos energía que Bluetooth (según el caso de uso).
Además, BLE admite no solo la comunicación punto a punto, sino también el modo de transmisión y la red de malla.
Servidor y cliente BLE
Con Bluetooth Low Energy, hay dos tipos de dispositivos: el servidor y el cliente.
El ESP32 puede actuar como cliente o como servidor. El servidor anuncia su existencia, por lo que otros dispositivos pueden encontrarlo y contiene datos que el cliente puede leer. El cliente escanea los dispositivos cercanos y, cuando encuentra el servidor que está buscando, establece una conexión y escucha los datos entrantes. Esto se llama comunicación punto a punto.
Hay otros modos de comunicación posibles, como el modo de transmisión y la red de malla.
GATT
GATT significa Atributos Genéricos y define una estructura de datos jerárquica que está expuesta a los dispositivos BLE conectados. Esto significa que GATT define la forma en que dos dispositivos BLE envían y reciben mensajes estándar. Comprender esta jerarquía es importante porque facilitará la comprensión de cómo usar BLE con el ESP32.
Perfil: colección estándar de servicios para un caso de uso específico;
Servicio: recopilación de información relacionada, como lecturas de sensores, nivel de batería, frecuencia cardíaca, etc.;
Característica: es donde se guardan los datos reales en la jerarquía (valor);
Descriptor: metadatos sobre los datos;
Propiedades: describe cómo se puede interactuar con el valor característico. Por ejemplo: leer, escribir, notificar, difundir, indicar, etc.
En nuestro ejemplo, crearemos un servicio con dos características.
Uno para la temperatura y otro para la humedad.
Las lecturas reales de temperatura y humedad se guardan en el valor bajo sus características. Cada característica tiene la propiedad de notificación, de modo que notifique al cliente cada vez que cambien los valores.
UUI
Cada servicio, característica y descriptor tiene un UUID (Universally Unique Identifier). Un UUID es un número único de 128 bits (16 bytes).
Por ejemplo:
55072829-bc9e-4c53-938a-74a6d4c78776
Hay UUID abreviados para todos los tipos, servicios y perfiles especificados en el SIG (Bluetooth Special Interest Group).
Si su aplicación necesita su propio UUID, puede generarlo utilizando este sitio web generador de UUID.
En resumen, el UUID se utiliza para identificar información de manera única. Por ejemplo, puede identificar un servicio particular proporcionado por un dispositivo Bluetooth.
Conectando el ESP32
Este ejemplo funcionaría para cualquier placa de desarrollo actual con ESP-32. En este caco se utilizaron las siguientes placas: