En este tutorial aprenderas como crear, desde cero, una aplicacion movil para Android utilizando App Inventor, la aplicacion gratuita de la MIT y Google, para prender y apagar leds a través de un modulo Bluetooth HC-05 y una placa Arduino Uno.
Hemos enfocado esta practica a velas para un pastel de cumpleaños «interactivo» con el fin de hacerlo más atractivo, siendo este, tan solo un ejemplo de los muchos en que podemos aplicar esta practica, otro de ellos puede ser focos inteligentes, llevando a «gran» escala con un ralay para encendido y apagado.
Materiales:
- 8 Velas de cera.
- Arduino UNO.
- Cables de red y cables para protoboard.
- 8 Leds.
- 8 resistencias 270Ω.
- Modulo de Bluetooth HC-06 u HC-05 (en modo esclavo).
- Cautin.
- Navaja o cuter.
*La cantidad de leds dependerá de los años que se cumpla, en esta ocasión aplique un sistema binario basado en 8 bits porque soy informática XD. En este pastel utilizare 3 leds que representaran 25 años por lo tanto el orden quedara de la siguiente manera: 10011000 , agregue los últimos 3 ceros para completar 8 bits por gusto.
Preparacion velas
Soldaremos con cautin dos cables de red a los extremos del led dejándolos con un largo de 10 cm cada uno, como se muestra en la primera imagen.
Después con una navaja cortaremos la vela hasta una profundidad donde nos permita pasar los cables soldados al led como se muestra en la imagen .
Por ultimo enredaremos cable del red al rededor de la vela dejándolo apretado para que sostenga el led y su cable en la vela como se muestra en la figura .
Programación diseño en App Inventor
El diseño de la app consta de 11 botones, modulo bluetooth client, varios label:
- 1 Encender velas.
- 1 Salir.
- 1 Conectarse al modulo bluetooth a traves de la dirección mac.
- 8 para las velas, recordemos que en este ejemplo solo aplicaremos 3 botones funcionales por lo mencionado en el paso anterior del código binario; 10011000.
- El bluetooth iniciara un servicio de cliente, no es visible como tal.
- 1 label se asociara al bluetooth para que nos indique si ya se conecto, los demás son estéticos.
- Contenedores e imágenes al gusto .
Al final se tendrá algo similar a la imagen 1.
Programación por bloques en APP Inventor
El diseño de los bloques quedara de la siguiente manera, cabe señalar que es necesario contar con la dirección de nuestro modulo bluetooth mismo que puede ser consultado al enlazarse con el celular, en el apartado de configuraciones, bluetooth, HC057HC06, detalles del dispositivo, o con alguna aplicación para ello, esta dirección se debe cambiar en el bloque señalado en la siguiente imagen.
Dirección del Bluetooth HC-05
Para saber la dirección de tu modulo bluetooth basta con enlazarlo a tu celular a través de configuraciones, bluetooth, agregar dispositivo, HC05, ingresar la contraseña que normalmente es: «1234» o «0000» y una vez agregado entrar a detalles del dispositivo.
NOTA:
*MIT App Inventor es una herramienta de programación basada en los bloques que permite a todos, incluso los principiantes, para iniciar la programación y construir aplicaciones totalmente funcionales para los dispositivos Android, tomado de la pagina oficial.
*Para poder iniciar con el desarrollo de la app es necesario contar con un correo en gmail y registrarse en App Inventor MIT.
Configuración modulo Bluetooth HC-05
*La conexión del modulo bluetooth puede cambiar dependiendo del modulo que se implemente, este diagrama esta basado en el modulo HC06, aunque también es posible utilizar un HC-05 en modo esclavo para ello debemos realizar estos pasos, utilizando los comandos AT.
En el caso del modulo HC06 no es necesario realizar ninguna configuración, para el modulo HC05 posiblemente requieras asignar el Rol a modo esclavo, consultar el PIN o contraseña, a continuación te dejo una lista de comandos que podrías necesitar.
- Regresar a opción Fabrica AT+RESET
- Saber el nombre del modulo: AT+NAME?
- Cambiarlo a “MINOMBRE”: AT+NAME=MINOMBRE
- Saber configuración: AT+ROLE?
- Cambiarlo al modo esclavo: AT+ROLE=0
- Cambiarlo al modo maestro: AT+ROLE=1
- Saber la contraseña: AT+PSWD?
- Cambiarlo a 0000: AT+PSWD=1234 según la Contraseña a Conectar (max 4 char.)
- Saber la velocidad (9600): AT+UART?
- Cambiarlo a 57600: AT+UART=57600,0,0
- Saber modo de Conexión: AT+CMODE? (0 Espesifico 1 General)
- A cualquier dispositivo: AT+CMODE=1
Para la programación, del arduino basta con insertar el siguiente código.
- Command Description *
- —————————————————————- *
- AT Check if the command terminal work normally *
- AT+RESET Software reboot *
- AT+VERSION Get firmware, bluetooth, HCI and LMP version *
- AT+HELP List all the commands *
- AT+NAME Get/Set local device name *
- AT+PIN Get/Set pin code for pairing *
- AT+BAUD Get/Set baud rate *
- AT+LADDR Get local bluetooth address *
- AT+ADDR Get local bluetooth address *
- AT+DEFAULT Restore factory default *
- AT+RENEW Restore factory default *
- AT+STATE Get current state *
- AT+PWRM Get/Set power on mode(low power) *
- AT+POWE Get/Set RF transmit power *
- AT+SLEEP Sleep mode *
- AT+ROLE Get/Set current role. *
- AT+PARI Get/Set UART parity bit. *
- AT+STOP Get/Set UART stop bit. *
- AT+INQ Search slave model *
- AT+SHOW Show the searched slave model. *
- AT+CONN Connect the index slave model. *
- AT+IMME System wait for command when power on. *
- AT+START System start working. *
- AT+UUID Get/Set system SERVER_UUID . *
- AT+CHAR Get/Set system CHAR_UUID . *
- AT+TYPE PIN/ 0=OFF 1= ON *
- —————————————————————–*
- Note: (M) = The command support master mode only.
Arduino: diagrama y programación
El modo de conexión quedara como se muestra en la imagen anterior (Imagen 3).
Código Arduino
Una vez realizada la conexión es momento de proceder a cargar el código de arduino, para ello es necesario mantener desconectado los cables RX y TX mientras se realiza la subida del código a través del IDE de arduino, una vez finalizada la carga basta con conectar nuevamente ambos cables.
Para este ejemplo utilizamos comenzamos declarando 3 variables de tipo led, para cada una de las velas que estaran encendidas, además utilizaremos el puerto serial para leer los datos que reciba el bluetooth, los cuales meteremos a un ciclo loop en el que constantemente estara preguntando el estado de los leds, en caso de que se realice la pulsacion de un boton en la app, el modulo recibira un dato, el cual en caso de ser un numero 3 ,7 u 8, se apagara el led, en caso contrario se mantendra encendido.
Para la versión corta, de un led, que esta en YouTube puedes descargar el código de este enlace. este enlace.