En este taller se demuestra como conectar el dispositivo de prototipado IoT Particle Photon con la herramienta de prototipado de aplicaciones móviles MIT AppInventor.
La intergración entre ambas plataformas se puede efectuar a través de la base de datos en tiempo real Firebase usando la siguiente arquitectura:
- 1 Partical Photon
- 1 Protoboard
- 1 PushButton
- 2 cables conectores
- (opcional) 1 led, una resistencia de 200Ohm y 2 cables adicionales
- Android smartphone con App Particle y opcional MIT AI2 Companion
- Cuenta en Particle
- Cuenta en Firebase
- Cuenta en MIT AppInventor
Particle Photon conectado así:
- Resetear el Wifi del Photon de fábrica para poder reconfigurar mediante el botón que dice RESET.
- Verificar que el led este parpadeando en azul, en caso de no parpadear en azul, tener presionado por 3 o 4 segundos el boton de SETUP. (Led parpadeo azul significa que esta activado el módulo wifi)
- Conectar el Photon al internet usando la aplicación de Particle
- Descargar el archivo html y abrirlo
- Conectar el wifi de la pc al wifi del proton llamado "Proton…".
-
El archivo html automaticamente se actualizará para conecta nuestro PHOTON a un wifi cercano.
-
Si nuestro led enciende con el color cyan, la conexión fue exitosa, en caso de que solo sea azul o verde, por favor repetir los pasos desde reabrir el archivo html y resetear el PHOTON.
-
El nombre del dispositivo lo pueden elegir
-
Verificar que el photon pueda ser controlado mediante el App de Particle (encender y apagar el LED azul en D7), para esto debe crear una nueva aplicación en el Web IDE de Particle y copiar el código de comled.ino
- Cargar o hacer Flash a la aplicación comled hacia el Photon
- Una vez termina el flashing, probar el botón físico en el Photon, debe de encender y apagar el LED azul en D7
- Ir a https://console.firebase.google.com/ e ingresar con una cuenta personal de Google.
- Iniciamos sesión y creamos un proyecto nuevo
Nombre: Photon | Le damos continuar hasta que nos avise que esta creado |
---|---|
Paso 2 | Paso 3 |
---|---|
Paso 4 | Paso 5 |
- Ir a la sección de la base de datos y copiar el enlace.
- Ir a la sección de reglas (Rules) y abrir la base de datos para uso sin autenticación. Aquí el antes y después:
Antes | Después |
---|---|
En el código en comled.ino cada vez que se actualiza el led, este evento es publicado a la nube de particle:
digitalWrite(led, ledStatus);
Particle.publish("ledstatus",String(ledStatus));
Es necesario crear un Webhook el cuál actualice Firebase cada vez que se genera este evento:
Ir a consola | Crear Webhook |
---|---|
Y finalmente editar el Webhook de la siguiente forma:
Verificar en Firebase que el campo respectivo en la base de datos se actualize cada vez que el led cambia:
Cuando esto este funcionando, se puede usar la extensión de Firebase en AppInventor para capturar eventos de cambios remotos en Firebase.
Iniciamos sesión en MIT AppInventor y creamos un nuevo proyecto.
Conectar la aplicación de MIT AppInventor a Firebase usando la extensión FirebaseDB:
En la configuración de la extensión de Firebase:
Para sacar la url y el token, nos vamos a configuración de nuestro proyecto en Firebase.
Para nuestra App, agregaremos un botón y una etiqueta
Nos vamos a la sección de bloques para realizar la programación de bloques ![Block_FireBase](/imagenes/App_Paso 1__Firebase.png)
Y tendremos que realizar nuestra programación de tal manera que queda asi ![Block_FireBase](/imagenes/App_Paso 2_Firebase.png) ![Block_FireBase](/imagenes/App_Paso 3_Firebase.png)
*En el primer bloque realizamos la llamada de la base de datos, cuando aplastamos el botón *En el segundo bloque comprobamos el estado del led
En el código en comled.ino la función "led":
Particle.function("led",ledCommand);
es registrada en la nube de Particle y por lo tanto se la pueda ejecutar remotamente usando un API request. Este es un ejemplo de un botón en AppIventor que al ser presionado, llama a esta función remotamente:
Ejemplo Método 1
Ejemplo Método 2
El campo debe de ser reemplazada por el Access Token de su aplicación:
Para que esto funcione, es necesario primero seleccionar el componente Web (agregarlo desde la sección Connectivity) en AppInventor:
Para configurar la extensión Web:
- En AppInventor, en la configuración de la extensión Web, en el campo URL usar:
https://api.particle.io/v1/devices/<Device ID>/led
- Buscar el número del Device ID de su Photon en la consola de Particle https://console.particle.io