LED IoT con Blynk y IFTTT
Se utilizaron los siguientes elementos.
- Una tarjeta programable ESP32D con Wifi.
- 1 Protoboards.
- 1 leds verde.
- 1 resistencias de 220 omnios.
- Varios cables para conectar los elementos.
- Un cable de datos USB a Micro USB para programar la placa.
Diagrama del proyecto
Montaje del proyecto
Parte 2: Programación de la placa
Se debe conectar la placa al ordenador, hay que descargar 2 librerías, las libreríaspara las placas
ESP32D, y las librerías para usar Blynk, también para ESP32D.
Luego hay que importarlas en el software de Arduino.
Luego hay que seleccionar la placa.
Y se selecciona el puerto en el que se conecta en ese mismo menú
Ahora se deja vacío el código de Arduino.
Parte 3: Configurar conexión con Blynk
Como esta placa debe ser controlada a través del teléfono, usaremos la plataforma Blynk, la cual
permite construir interfaces para controlar hardware desde un teléfono móvil o desde un
navegador.
En la página web blynk.cloud se crea una cuenta nueva , el sistema de inicio permite crear un
nuevo template automáticamente, y permite copiar y pegar el código, o se accede desde el botón
de Quickstart.
El sitio web de Blynk ofrece un asistente automático que nos ayuda con la implementación de la
herramienta en la placa ESP32, solo hay que seguir los pasos, el primer paso es seleccionar la
placa y el tipo de conexión.
Ahora se selecciona el IDE con el que programaremos la placa, se usó Arduino.
Aquí muestra la instalación de la librería, cosa que ya se hizo.
En la siguiente parte nos ofrece todo el código de manera automática, solo tenemos que colocar
el nombre y la contraseña del Wifi al que la placa se conectara.
Solo hay que copiar este código y pegarlo en el IDE.
Parte 4: Configuración de los Datastreams
Los Datastreams son los activadores de Blynk, es decir, son bloques de código los cuales
ejecutamos desde la plataforma de Blynk, estos bloques se configuran en el código de la placa y
en cada uno se puede configurar las distintas líneas de código que se van a usar.
Se van a crear un Datastreams, uno para prender y apagar el Led.
Estos se configuran de la siguiente manera.
Ahora hay que configurar el Datastream en el código. Cada Datastream se identifica con un pin
(V0), este pin se usa para identificarlos en el código, por defecto se tiene un Datastream V0, este
es el que configure para la prender el led, dentro de este se escriben los comandos que se cargaran
al ejecutar este Datastream.
Para el setup se agrega el siguiente código con el cual se configura el pinMode del LED
El código completo del circuito con sus respectivas librerías es el siguiente:
#define BLYNK_TEMPLATE_ID "TMPLDv0BtB88"
#define BLYNK_DEVICE_NAME "Led IOT"
#define BLYNK_AUTH_TOKEN "a4OZIo_Zceu17u98S_5tZKklgtNj8ev3"
#define LEDPIN 15
#define BLYNK_FIRMWARE_VERSION "0.1.0"
#define BLYNK_PRINT Serial
#define APP_DEBUG
// Comment this out to disable prints and save space
// #define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "josegonzal";
char pass[] = "airjordan23";
BLYNK_WRITE(V0){
int pinValue = param.asInt();
digitalWrite(LEDPIN,pinValue);
}
void setup()
{
// Debug console
Serial.begin(9600);
pinMode(LEDPIN, OUTPUT);
delay(100);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
Parte 5: Ejecución desde el teléfono usando Blynk IOT
Una vez creado el datastream y configurado el código
es momento de encender el led usando el teléfono. Lo
primero es instalar la aplicación de Blynk IoT, en este
caso desde la PlayStore, luego se ingresa con la cuenta
que se usó para las configuraciones anteriores.
Dentro de la aplicación se puede ver el dispositivo y podremos editar el boto desde el iconode la
llave en la parte superior derecha para poder poner el botón del datastream que creamos y
configuramos anteriormente para poder activarlo, también aparece un contador que contara el
tiempo que el dispositivo esta encendido, esto se configuro de forma automática.
Ahora podemos encender el Led usando el botón del celular.
Parte 6: Implementación de comandos de voz usando el Asistente de Google
Una vez configurado todo lo anterior solo queda implementar comandos de voz por medio del
Asistente de Google con el cual se podrá encender el Led, usando comando de voz. Para ello se
usa la plataforma de IFTTT (If this then that), es una plataforma la cual permite integrar
aplicaciones, dispositivos y servicios por medio de internet, con esta plataforma podremos
implementar comandos para el Asistente de Google para que pueda controlar el LED IOT, también
se pueden implementar otros asistentes virtualescomo Siri, Alexa, entre otros.
Lo primero es registrarse, podremos hacerlo con nuestra cuenta de Google.
Una vez dentro debemos crear los applets que nos permitirán hacer acciones por medio del
Asistente de Google. En mis applets damos en crear (Create) para crear uno nuevo.
En la acción de “If This” se pone la orden que recibe, en la acción de “Then That” se pone la acción
que realiza cuando recibe la orden anterior, en este caso primero recibe una acción por medio
del Asistente de Google de nuestra cuenta de Google, y luego realiza una petición a Blynk por
medio de un enlace especifico.
Primero la llamada por medio del Asistente de Google, se
puede configurar la frase de respuesta por parte del
Asistente de Google, y el idioma de la orden.
Ahora la orden de acción hacia Blynk por medio de un enlace, un enlace especial el cual permitirá
realizar una petición a un dispositivo especifico de Blynk. Para esta petición se usa el servicio de
WebHooks, el cual permite realizar peticiones por medio de enlaces.
Para las peticiones usaremos una API de Blynk que nos permite realizar peticiones por medio de
enlaces personalizados, la sintaxis del enlace es la siguiente:
Sintaxis: https://{server_address}/external/api/update?token={token}&{pin}={value}
En “server_addres” se especifica el servidor de Blynk de entre los siguientes:
fra1.blynk.cloud – Frankfurt
lon1.blynk.cloud – London
ny3.blynk.cloud – New York
sgp1.blynk.cloud – Singapore
blr1.blynk.cloud – Bangalore
En “token” se coloca el token de autorización que nos permitirá realizar peticiones
específicamente en nuestro dispositivo, este token se encuentra en el código de nuestro Arduino
en la parte superior:
|
En “pin” se especifica el datastream que se va a usar (V0), esta primera petición es
para poder encender el Led datastream V0.
Por último “value” permite el valor de la petición, en este caso solo permite 1 y 0, siendo 1 el que
nos permitirá encender el Led.
El enlace final a usar para poder encender el ventilador en velocidad máxima es el siguiente:
https://ny3.blynk.cloud/external/api/update?token=a4OZIo_Zceu17u98S_5tZKklgtNj8ev3&v0=
1
Ahora a configurar el WebHook que realizara la acción de encender el ventilador en velocidad
máxima.
Solo es necesario el enlace, en el método se usa el modo GET.
Y es todo lo que hay que hacer, ahora solo hay que actualizar la configuración y activar el applet.
Ahora solo queda configurar las otras ordenes de voz, la de apagar Led.
Por último, solo queda probar la acción por medio del Asistente de Google y ver la respuesta de
este.
Webgrafía:
https://www.hackster.io/techstudycell/esp01-project-using-blynk-ifttt-google-assistant-850aed
https://www.youtube.com/watch?v=IKbbvEzZ7wg
https://ifttt.com/explore/new_to_ifttt
https://docs.blynk.io/en/blynk.cloud/update-datastream-value
https://www.youtube.com/watch?v=wVRcAMWvWko