Presentamos una plataforma de internet de las cosas para Android y iOS de control de sistemas desarrollados con Arduino y Raspberry Pi. Con esta herramienta de trabajo podrás diseñar una interface gráfica para tu proyecto dibujando y poniendo controles en la misma. Su nombre es Blink y puedes acceder al servicio en: Blynk . Este sistema no está limitado a ningún hardware específico. Solo se requiere que tu proyecto con Arduino o Raspberry Pi este linkeado a internet por medio de Wifi, Ethernet o un ESP8266. De esta manera, podrá conectarse con el servidor de Blynk y controlar tus sistemas.
Blynk es un proyecto realizado por personas en Nueva York, Kiev y Barsovia. Los costos en el modo de desarrollo son nulos, permitiendo esto tener un prototipo a un costo reducido. Luego de ello, se ofrecen diferentes planes del servicio dependiendo de las exigencias del mismo.
¿Cómo funciona Blynk?
Puede controlar hardware en forma remota, monitorear sensores, guardar datos y visualizarlos. Las partes principales que conforman el sistema son las siguientes tres:
-La aplicación Blynk App, la cual te permitirá crear las interfaces de control para tu proyecto.
-El servidor Blynk server responsable de todas las comunicaciones entre el teléfono celular y el hardware. Podrás utilizar el servidor online de Blynk o instalar tu propio servidor Blynk local. El servidor Blynk es una aplicación de código abierto.
Las librerías Blynk se encuentran disponibles para diferentes plataformas de desarrollo permitiendo la comunicación entre el servidor y los recursos del hardware. Por ejemplo cada vez que presiones un botón en la aplicación Blynk, se generará un mensaje que viajará por la nube Blynk encontrando su camino hacia tu hardware o viceversa.
Todas las interfaces a desarrollarse para diferentes dispositivos soportados tendrán la misma apariencia. Se podrá conectar a la red por medio de wifi, bluetooth y BLE, Ethernet, USB serial, GSM, etc…
Podrás acceder a todos los pines sin escribir código. Tendrás acceso a los datos guardados por medio de una herramienta gráfica para la visualización del historial de datos. También podrás compartir información entre los diferentes dispositivos asociados a tu aplicación.
La solución podrá enviar alertas vía email y tweeter.
Lo único necesario para realizar un sistema de internet de las cosas con este sistema es tener un kit de desarrollo basado en Arduino o Raspberry Pi. Como Blynk funciona por medio de internet, tu sistema de desarrollo deberá tener interface para conectarse a internet. Podría ser un Arduino Uno con una tarjeta de interface Ethernet o Wi-fi o sistemas con hardware de acceso a internet incluido como ser ESP8266, Raspberri Pi con WiFi, Particle Photon o SparkFun Blynk .
La aplicación podrá controlar múltiples controladores remotos al mismo tiempo.
Podrás controlar pines analógicos o digitales del hardware en forma directa, sin escribir código. Todo lo que conectes a tu hardware podrá dialogar con el sistema, podrás enviar cualquier valor desde la App para ser procesado por el microcontrolador, para luego, ser enviado nuevamente a la App en el celular. Podrás disparar funciones, leer dispositivos con interfaces I2C, convertir valores, controlar servos o motores, etc…
El sistema de desarrollo facilita varios tipos de controles. Los controles pueden interactuar con una o con dos variables según su tipo. Por ejemplo el control virtual del tipo Joystick genera variables de dos dimensiones. En la imagen podemos ver la pantalla de configuración del control:
Para la toma de datos del hardware hay dos métodos disponibles para su uso, uno es por medio de “pines virtuales” y otro es por medio de “los controles” existentes en Blynk.
Intercambio de datos utilizando virtual pins.
Se podría pensar que los pines virtuales son como canales para enviar datos. Hay que asegurarse al utilizarlos de diferenciarlos con los pines GPIO físicos del hardware. Los pines virtuales no tienen una representación física.
Los pines virtuales se usan comúnmente para interactuar con otras bibliotecas (Servo, LCD y otras) e implementar una lógica a medida de las necesidades de la aplicación. El dispositivo a su vez puede enviar datos a la aplicación en el celular utilizando Blynk.virtualWrite (pin, valor) y recibir datos de la aplicación mediante BLYNK_WRITE (vPIN). Los datos enviados a un pin virtual son enviados como strings ( cadena de caracteres de texto), sin embargo por supuesto hay una limitación dada por el hardware para la manipulación numérica. Por ejemplo en Arduino, los enteros son de 16 bits, con un rango de -32768 a 32767. Aquí mostramos diferentes maneras de enviar datos
// Enviar un string
Blynk.virtualWrite(pin, “abc”);
// Envía run entero
Blynk.virtualWrite(pin, 123);
// Envía run número flotante
Blynk.virtualWrite(pin, 12.34);
// Envía rmultiples valores en un Array
Blynk.virtualWrite(pin, “hello”, 123, 12.34);
// Envío de datos en bruto
Blynk.virtualWriteBinary(pin, buffer, length);
El set de funciones incluye una para el manejo de eventos de tiempo llamada BlynkTimer . Esta permite enviar datos en forma periódica. Un objeto del tipo Blynktimer permite manejar hasta 16 temporizadores, con una perfomance mayor a los temporizadores nativos de Arduino (librerías SimpleTimers). Cuando un temporizador intenta ejecutarse varias veces (debido a un bucle bloqueado), simplemente omite todos los intervalos perdidos y llama a su función solo una vez. Esto difiere de la rutina SimpleTimer, que podría llamar a su función varias veces en dicha situación. También existe una función llamada Blynk_Write la cual transmite los valores solo cuando estos reciben una actualización desde la aplicación en el celular o el servidor. Como complemento de esta se incluye la función Blynk_Read la cual se le pide al dispositivo que envíe el valor de un pin virtual. El sistema de desarrollo provee una amplia gama de funciones para pines virtuales. Permite configurar un tiempo de muestreo para un parámetro, y así hacer que con dicha frecuencia se consulte el estado de un parámetro del sistema. Veamos un ejemplo:
Si necesita actualizar el estado de un sensor u otros datos de su hardware a los controles en la aplicación, puedes escribir el algoritmo que desees para tal fin. Solo se necesitará que configures la frecuencia en el modo PUSH. Cualquier comando que el hardware envíe a la Nube de Blynk se almacenará automáticamente en el servidor y podrás recuperar esta información con el control History Graph o con la API HTTP. A continuación mostramos un ejemplo de cómo podría hacerse.
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
char auth[] = “YourAuthToken”;
// Pon tu clave de seguridad aquí BlynkTimer timer;
// Create a Timer object called “timer”!
void setup(){ Serial.begin(9600);
Blynk.begin(auth);
timer.setInterval(1000L, sendUptime);
// Se configure el intervalo (1sec) y la función a ser invocada} void sendUptime(){
// Esta función envía el tiempo de actividad de la aplicación Arduino cada 1 segundo a Virtual Pin (V5)
// En la aplicación, la frecuencia de lectura del Control se debe establecer en la opciónPUSH
// Puedes enviar cualquier dato cada un tiempo determinado usando este algoritmo
// No enviar más de 10 valores por segundo
Blynk.virtualWrite(V5, millis() / 1000);}
void loop(){ Blynk.run();
// Todo sucede aquí
timer.run();
// se active el BlynkTimer…}
Es posible ante una interrupción del servicio de internet o ante un reseteo del sistema recuperar los valores existentes en los controles. Esto es muy importante para las aplicaciones de control como ser domótica, robótica, etc…
Los controles pueden ser: botones, potenciómetros, temporizadores,Joystick, zeRGBa y control de pasos.
Para visualización posee las siguientes opciones: display de un valor, valor en etiqueta, LED, LCD, medidor porcentual, display de nivel, etc…
Los mensajes del sistema pueden realizarse por medio de: Twitter, Email y notificaciones.
Los sensores soportados son: acelerómetro, barómetro, sensor de presión, humedad, gravedad, humedad, luz, proximidad, temperatura y GPS.
Fuentes:
Esta nota fue publicada gracias a la autorización de Blynk inc.
hola solo nesecito saber si la app me puede identificarque celular activo la app o el control de mis luces se puede lograr eso ?
Te recomendamos consultar al soporte técnico de Blynk para este tipo de consultas. Sin embargo es claro que la app se encarga de asociar la aplicación en el hardware y en el celular.
hola necesito agregar mas botone en una aplicacion realizada.
me esta pidiendo una recarga de bateria o compra de energia.
la pregunta es si realizo esa carga el costo indicado es por unica vez o mensual.
muchas gracias
Buenas tardes,
Sinceramente no podemos contestarle esa pregunta este artículo fué publicado hace mucho y no tenemos actualmente contacto con Blynk: Te recomendamos consultar directamente con ellos.
Saludos