Comenzar a diseñar aplicaciones para la Internet de las cosas (IoT) puede ser difícil debido a la multitud de opciones y posibilidades, tanto a nivel de hardware como de software, así como en lo que respecta a protocolos de comunicación y aplicaciones. Afortunadamente tenemos a Blynk, que nos facilita enormemente la tarea y nos permite introducirnos en esta tecnología de una forma simple y sencilla.
HTTP, MQTT, REST, GET, JSON… la tecnología de IoT puede ser apabullante para quien recién se inicia debido al amplio abanico de posibilidades que tiene el desarrollador para llevar a la realidad su proyecto. Sin embargo, no es imprescindible zambullirse a fondo en este mar de siglas y acrónimos para poner en marcha un sencillo proyecto de IoT y comenzar a adquirir los conceptos fundamentales de la tecnología. Por suerte, podemos contar con herramientas muy sencillas de utilizar que nos permiten poner en funcionamiento un proyecto en muy poco tiempo, sin necesidad de adentrarnos en los detalles finos. Una de estas herramientas es Blynk.
¿Qué es Blynk?
Blynk es una plataforma que provee soluciones para el desarrollo de aplicaciones de IoT. Su funcionamiento se basa en una app, que puede utilizarse tanto en teléfonos Android como iOS, que se comunica con el hardware a través de los servidores de Blynk. La app permite diseñar un “panel de control” con una amplia variedad de elementos que posibilitan enviar y recibir información hacia y desde el hardware, el que debe incluir alguna de las numerosas librerías especiales provistas por Blynk, disponibles para múltiples dispositivos tales como Arduino, Raspberry o placas basadas en ESP8266 y ESP32. Estas librerías resuelven la mayor parte de los detalles de la comunicación con la app, permitiendo que el desarrollador se enfoque en los detalles de su proyecto.
¿Cómo se crea una aplicación con Blynk?
Crear una aplicación IoT con Blynk es simple. A modo de ejemplo vamos a realizar un pequeño proyecto en el que controlaremos el encendido y apagado de una lámpara desde nuestro teléfono a través de Internet. Esto podría servirnos para controlar la iluminación de una zona de nuestra casa (el jardín por ejemplo) mientras estamos fuera, en el trabajo o en cualquier otra ubicación.
El circuito para resolver esto es mínimo, contiene solamente una placa Wemos D1, que contiene un ESP8266 que nos provee de conectividad WiFi y un módulo de relé para poder controlar luces que funcionan con 220 Voltios:
Veamos ahora los pasos a completar para crear la aplicación en Blynk y cómo vincularla a nuestro circuito:
Paso 1: Instalar la app Blynk
Para ello debemos ir a la tienda de apps correspondiente a nuestro teléfono (Android o iOS), descargar e instalar la app.
Paso 2: Crear una cuenta en Blynk
Una vez descargada e instalada la app, la abrimos y creamos una cuenta, con una dirección de email a la que podamos acceder y una contraseña
Paso 3: Crear un proyecto
Vamos ahora a crear un proyecto que contenga los elementos necesarios para controlar nuestro hardware. Como vimos antes, este contiene un relé para prender y apagar la lámpara, así que nos alcanza con un “botón” para controlar al relé. En la parte superior de la app tocamos el símbolo “+” para crear el proyecto. Debemos darle un nombre y configurarlo según los detalles del hardware que utilicemos. En este caso en particular usamos la placa Wemos D1 R1 que se conecta a WiFi a través del ESP8266, así que definimos esos valores y pulsamos “Create”.
Una vez hecho esto, Blynk nos enviará un mail a la cuenta ingresada al principio con un “token”, una clave que vinculará la app con el hardware y que deberemos copiar luego en nuestro programa.
Paso 4: Diseñar la interfaz
Debemos ahora construir la interfaz de la app, agregando el botón necesario para activar el relé. Pulsando el símbolo “+” podremos ver todos los elementos que podemos utilizar. Algo importante es que cada uno tiene un costo de “energía”. Al comienzo tenemos 2000 unidades que se van descontando a medida que agregamos elementos. Si borramos un elemento recuperaremos la energía correspondiente. En general el crédito inicial alcanza para hacer aplicaciones medianamente complejas, de todos modos podemos comprar energía adicional si fuera necesario.
¿Es Blynk gratuito?
Blynk es gratuito para un uso básico y no comercial. El uso comercial o funciones mas avanzadas como crear una app independiente a partir de un proyecto están disponibles sólo en planes pagos.
Siguiendo con nuestro ejemplo, elegimos el primer elemento, llamado “Button” y lo ubicamos en algún lugar de la pantalla:
Al tocar el botón podemos acceder a sus propiedades: el nombre (Button) que podemos cambiar por algo que indique su función, el Pin de la placa que controla y los valores posibles (Output), el modo de funcionamiento (Mode), las etiquetas que muestra el botón (On/Off labels) y el tamaño y color del texto (Design). También tenemos la opción de eliminarlo (Delete)
Nuestro circuito tiene conectado el relé a la salida D3 de la placa, la cual es una salida digital. Esto se configura en la misma pantalla tocando sobre “PIN”
Con esto quedaría terminado el proyecto del lado de la app.
Paso 5: Instalamos la librería para la placa Wemos
El otro eslabón fundamental de esta cadena, además de la App, es la librería que nos provee Blynk para instalar en nuestra placa. Como ya dijimos, hay varias librerías, para las plataformas y lenguajes mas utilizados. En este ejemplo vamos a programar la Wemos con el IDE de Arduino, configurado como ya vimos en este otro artículo, así que debemos descargar e instalar la librería para C++. Se instala siguiendo los procedimientos habituales. Aquí a modo de ejemplo lo haré con el Gestor de Librerías incluido en el IDE :
Paso 6: Escribir el programa
El último paso sería escribir el código en la placa Wemos, como el que se vé mas abajo.
Lo primero que hace es incluir dos librerías imprescindibles:
ESP6266WiFi para que la placa Wemos pueda conectarse a WiFi y así a Internet y
BlynkSimpleEsp8266, la librería que instalamos en el paso 5, que contiene todas las funciones que necesita Blynk para conectarse con la App.
A continuación debemos declarar tres variables: una con el token que nos envió Blynk cuando comenzamos al principio de este proyecto (y que nos envió al mail que introdujimos al crear la cuenta), otra con el SSID de la red Wifi que vamos a utilizar (el nombre de la red) y la última con la contraseña de esta red.
Luego, en setup nos conectamos a la red con Blynk.begin y en loop invocamos a la función Blynk.run, que se encarga de toda la comunicación con la app.
//Control de luces con Blynk
//Incluir librerías
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
//Token generado por Blynk
char auth[] = "**************************************";
//Información de la red WiFi a utilizar
char ssid[] = "********"; //Cambiar por el nombre de la red WIFI
char pass[] = "******"; //Cambiar por la contraseña de la red WIFI
void setup()
{
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
Resultados
En el siguiente video pueden ver el proyecto funcionando. Lo conecté a una lámpara, pero la carga podría ser cualquier otra cosa que funcione con 220V, como una bomba de agua o cualquier otro equipo eléctrico.
En próximos artículos les compartiré otros proyectos para seguir profundizando en el potencial de Blynk. Como siempre, espero que el material les haya sido de utilidad y cualquier duda la pueden dejar en la sección de comentarios.