Mi primer proyecto IoT con Wemos y Blynk (how to create my first Iot Project)
Abstract
We are going to use a Wemos D1 mini (nodemcu
alternative based in ESP-8266) module and a blynk platform to create our first
Iot (Internet of things) creation. This is a simple (easy), confidence and
cheap way to do it.
In our example we don’t need anything more
because we use only one element of hardware.
We gonna use blynk app to control (turn
on-off) the Wemos build-in LED (onboard led).
Blynk is an app multiplatform (works with
Arduino and IOS) that allows you to connect and control your device by internet
(the cloud). It is one of a lot of apps to IoT.
With this project
you learn enough to start with the IoT applications.
Introducción / Intro or Summary
En este artículo vamos a crear nuestra primera aplicación IoT
o nuestro primer proyecto de internet de las cosas (internet of things).
Vamos a necesitar solamente un elemento de hardware (Wemos d1
mini)y una aplicación en el celular (blynk).
Nuestra aplicación permitirá encender y apagar un led a
distancia mediante internet o la nube. Es decir controlar, en resumidas
cuentas, un dispositivo. En este caso, para el ejemplo, utilizamos el mismo led
que trae la placa del Wemos.
Wemos D1 mini es una placa muy compacta pero poderosa que nos
permitirá introducirnos en el mundo del IoT. Está basado en el famoso chip
esp-8266 que nos permite conectarnos a internet vía WiFi.
Por otro lado Blynk es una aplicación multiplataforma, es
decir que la podemos utilizar en nuestro dispositivo con Android o en cualquier
dispositivo IOS como nuestro iPhone. Esta es una de las muchas aplicaciones que
existen que nos permiten utilizar nuestro celular como medio de control y
monitoreo de nuestro dispositivo conectado a la nube. En este caso me gusta
porque puedes crear de manera sencilla tu aplicación e incluso publicarla para
poder comercializarla si ese es el caso. Esto lo convierte en una plataforma
muy atractiva. Para un usuario común es gratis.
Este proyecto te servirá para comenzar con tus aplicaciones
IoT y a partir de aquí ir desarrollando nuevas y mejores aplicaciones.
Hardware:
·
Wemos
D1 mini Board u otro dispositivo similiar como ser Nodemcu.
Software (gratuito):
·
Arduino
IDE.
·
Blynk App (Android/IOS).
Herramientas:
·
Computadora
personal o notebook.
·
Teléfono
Smart con Android o IOS.
Desarrollo
1)
Instalar y configurar Blynk
El primer paso es instalar la aplicación de Blynk en nuestro
teléfono. En internet hay varios tutoriales, necesitaremos un mail para
registrarnos. Luego añadiremos un dispositivo nuevo, en este caso que
llamaremos “My first Iot App”. Y lo asociaremos a la placa que vamos a usar,
Esp8266 y WiFi para conectarnos a la red.
En internet hay varios tutos para poder crear cuenta de Blynk
y que muestra cómo usarlos, a nosotros
nos interesa porque es fácil para comenzar, es gratis y no necesitas saber
mucho más de programación. Cualquier persona lo puede usar.
Blynk al igual que otras aplicaciones similares utiliza un
“token” que es un código único largo que nos da identidad dentro de la
aplicación y también es único lo que nos da seguridad.
En nuestro proyecto, que vamos a llamar “LedOnBard” nuevo
utilizaremos un botón que ubicaremos en la pantalla de la manera que más nos
guste. Y también un led. El botón lo vamos a utilizar para ejecutar la acción
de “prender el led” y el led es para que cuando el hardware “esp8266” detecte
que la salida está en alto, nos de la confirmación “feedback” que el led está
encendido. De otra manera no sabríamos si se encendió o no el led. Es decir el
esp8266 nos da una suerte de retroalimentación para saber el estado del led.
Esto es muy importante en los proyectos electrónicos de control.
Ahora tenemos que configurar los elementos que utilizaremos
para el control de nuestro proyecto, primero el led. En este caso vamos a asignar
a este elemento una variable virtual o pin virtual. Es decir que el valor que
toma el led está relacionado con el valor que guardamos en esta variable. En
este caso elegimos la variable “V3”. Que es tomada como “input”.
Luego el botón, el botón lo asociamos a un pin Virtual “V2” y
es una salida “output”. En este caso puede tomar los valores 1 o 0.
Hasta aquí solo hemos configurado la aplicación pero no hemos
visto nada del Hardware, es decir no hemos configurado el esp8266 por lo que la
aplicación aparece como desconectada. Esto se ve en la parte superior del Dashboard.
2)
Wemos D1 mini “Esp8266”
Ahora vamos a proceder a configurar
el hardware. Utilizamos una placa “board” que lleva integrada el “esp8266”. En
esta caso el Wemos pero puede ser un “Nodemcu”. Esta placa nos permite
conectarnos a internet vía WiFi.
Básicamente tememos que cargar a la
placa un programa. Este programa utiliza una librería que nos permite por un
lado conectarnos a la nube de internet y
por el otro relacionarnos con la app que usamos para el control, en este
caso Blynk.
Antes de poder cargar el programa o
código de programa tenemos que instalar un IDE, es decir un entorno de
desarrollo que nos permita interactuar con la placa. En este caso utilizamos el
IDE de Arduino, debemos instalarlo e instalar unas librerías así como un
interpretador para la placa o board “shield” que usamos. El Wemos, para que
pueda ser leído por nuestro puerto usb necesita un interpretador.
Pasos:
a.
Visitar página del fabricante de la página Wemos d1
mini. En esta página tendrán toda la información de relevancia de la placa.
Link: https://wiki.wemos.cc/products:d1:d1_mini
b.
Deberán descargar
e instalar de esta página el driver o interpretador que nos permite que
la computadora se comunique con la placa mediante el puerto USB. EL chip que
utiliza la placa es llamado CH341, es el chip que realiza este trabajo. Una vez
instalado el driver, cuando conectamos la placa la computadora lo vera como un
periférico conectado a uno de los puertos COM de comunicaciones.
c.
Tenemos que instalar el BoardManager para
wemosd1mini. Esto lo hacen desde la página de github. Hay que descargar la última
actualización y probar. Puede ser que no funcione, en ese caso hay que instalar
una versión anterior que funcione. A veces no funciona y hay que probar varias
veces. Link: https://github.com/esp8266/Arduino
d.
Y luego debemos instalar las librerías de Blynk y de
esp8266 en Arduino IDE. Si hay problemas de compatibilidad de versiones puede
que genere errores, eso se soluciona probando las librerías sino usando las
anteriores. También podemos descargar las librerías desde https://github.com/blynkkk/blynk-library/releases.
También podemos ver ejemplos de código de Blynk en https://examples.blynk.cc/.
Código:
Una vez que pudimos completar los
pasos anterior podemos conectar el Wemos a nuestro puerto USB y abrir el IDE de
Arduino para empezar a trabajar. Nos fijamos en que puerto esta la placa COM1,
COM2, COM3, etc. Y luego de la lista elegimos la placa Wemosd1mini y hay una
serie de parámetros a configurar. Si todo va bien no habría que tocar más nada,
sino funciona hay que empezar a buscar que error puede ser con la ayuda del
código que nos tira el IDE.
A nosotros nos funcionó con esta configuración
pero a veces cambian las librerías y hay que probar hasta que funcione:
Bueno dicho lo anterior, el código:
------Inicio Código----
/************************************************************* Arduinominilabs Encendido apagado led de placa wemos *************************************************************/ //Librerias //link: https://github.com/esp8266/Arduino /* Comment this out to disable prints and save space */ #define BLYNK_PRINT Serial #include <Blynk.h> #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "3b1a6ae00f5740a0bf0a7a589e644155"; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "WiFi-Arnet-630l"; char pass[] = "KC025702Z7"; const int ledAzul=2; int ledAzulState=LOW; WidgetLED led1(V3); //register to virtual pin 1 BLYNK_CONNECTED(){ Blynk.syncVirtual(V2); //sincronizo los dos pin virtuales que en este caso corresponden a dos botones en blynk. } BLYNK_WRITE(V2){ //lee el estado del servidor y sincroniza al ultimo estado ..es decir "V2 escribe sobre el nodemcu". TRANSMITE AL NODECMU ledAzulState=param.asInt(); digitalWrite(ledAzul,ledAzulState); } void setup() { // Debug console Serial.begin(9600); pinMode(ledAzul,OUTPUT); Blynk.begin(auth, ssid, pass); // You can also specify server: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442); //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442); Blynk.notify("Sistema Iniciado"); } void loop() { Blynk.run(); if (digitalRead(ledAzul)==LOW) { led1.on(); }else{ led1.off(); } }
-----fin código------
3)
Funcionamiento.
Si todo salió bien deberíamos
conectar la placa “Wemos”, deberíamos ir a Blynk y veríamos que se realizó con
éxito la conexión.
Ahora el funcionamiento es el
siguiente:
·
Con el botón On/Off de Blynk enviamos la señal vía
internet a Wemos para que encienda y/o apague el led integrado a la placa.
·
Para tener una confirmación de que se envió el dato
al pin en el que está conectado el led ponemos un led virtual que se enciende
cuando la placa envía la confirmación.
·
Si
por algún motivo la placa se desconecta, cuando vuelva a iniciar va a buscar el
último estado que teníamos en Blynk y se va a sincronizar con él.
Como ven es bien sencillo el
funcionamiento pero es una aplicación completa para nuestro primer proyecto y lo
que sirve es el concepto.
Conclusiones:
En resumen, en los proyectos Iot es muy importante
interactuar con la aplicación, placa en este caso, pero es también muy
importante tener feedback del estado de la placa o de los pines o de las
variables. De otra manera podemos creer que enviamos un dato y que la placa lo
recibe pero no tenemos confirmación de ello. Es muy importante la
retroalimentación.
En este artículo vimos algo muy simple pero es fácil
convertirlo en una aplicación, encender el led representa controlar cualquier
pin de salida de la placa. Así podemos controlar ya sea leds, relés, etc. De
esta manera podemos controlar cualquier elemento o máquina que queramos. O
crear una aplicación personalizada.
Referencias:
A continuación, dejamos una lista de enlaces con otros
proyectos similares que hemos encontrado.
·
The Ultimate Guide To Starting Your
First IoT Project - https://hackernoon.com/the-ultimate-guide-to-starting-your-first-iot-project-8b0644fbbe6d
·
My First IOT (Internet Of Things)
project - https://medium.com/@mr_prateekjain/my-first-iot-internet-of-things-project-42acf93fb03d
·
Create your first Internet of Things
application in under 30 minutes with IBM Bluemix - https://yourstory.com/2015/03/internet-of-things-application
·
Wemos
D1 ESP8266 WIFI - https://www.prometec.net/wemos-d1-esp8266-wifi
·
Blink a LED With Blynk
App (Wemos D1 Mini Pro) - https://www.instructables.com/id/Blink-a-LED-With-Blynk-App-Wemos-D1-Mini-Pro/
Keys:
·
Mi
primera aplicación de internet de las cosas
·
Mi
first Iot Application.
·
Controlar
placa vía internet
·
Control
electrónico a través de internet.
·
Mi
primera aplicación usando Wemos o Nodemcu.
·
Create
Your First IoT Application easely
·
Build your first IoT application
·
smart home application iot
Comentarios
Publicar un comentario