Primeros pasos con los dispositivos de IoT DIY simples de Blynk
Blynk es un servicio de Internet de las cosas (IoT) diseñado para que el control remoto y la lectura de los datos de los sensores de sus dispositivos sea lo más rápido y fácil posible. En este artículo, cubriremos exactamente qué es Blynk, cómo funciona, y proporcionaremos dos proyectos de ejemplo breves sobre diferentes usos del servicio con las placas de desarrollo NodeMCU y Raspberry Pi.
Nunca ha sido tan fácil comenzar a desarrollar objetos inteligentes con microcontroladores, y los dispositivos IoT han crecido rápidamente en popularidad en los últimos años. Las placas de desarrollo como Arduino o Raspberry Pi se pueden usar para controlar todo desde las tomas de corriente. Cómo controlar las tomas de corriente de RF baratas de OpenHAB. ¿Con ésos? Puede vincularlos a su sistema de casa inteligente de bricolaje con solo alrededor de $ 10 en partes. Lea más en su casa para decoraciones navideñas activadas por movimiento Mejore su corona navideña con una matriz LED activada por movimiento Mejore su corona navideña con una matriz LED activada por movimiento Esta corona navideña DIY utiliza una matriz de Arduino y LED para producir una increíble pantalla iluminada que Impresionarás a tus amigos y familiares. Lee mas .
Un área que puede plantear un problema para los no iniciados es la codificación y las redes. Blynk tiene como objetivo eliminar la necesidad de una codificación extensa y facilitar el acceso a sus dispositivos desde cualquier lugar en su teléfono inteligente. El uso es gratuito para aficionados y desarrolladores, aunque también está disponible para su uso comercial por una tarifa: las empresas pueden usar Blynk para crear sus propias aplicaciones y sistemas y luego venderlos con su propia marca..
Blynk usa su propio servidor y biblioteca para hacer que el servicio funcione, pero es la aplicación Blynk la que parece ser su principal fortaleza.
Entra en la aplicación Blynk
La aplicación Blynk está disponible de forma gratuita en Android y iOS. Es el punto de partida para sus proyectos, con un sistema de arrastrar y soltar fácil de usar para crear controles personalizados para su configuración de IoT. El flujo de trabajo es rápido: al iniciar un nuevo proyecto, se le solicita que elija su placa de desarrollo de una lista extensa y también su método de conexión. La aplicación luego envía un token de autorización por correo electrónico para conectarse a su dispositivo a través del servidor Blynk.
Se llaman elementos de control. Widgets: varios tipos de métodos de entrada y pantallas de salida que incluyen botones, controles deslizantes, un joystick, gráficos y comentarios de texto. También hay componentes específicos para los componentes, con controles estilizados para LEDS, pantallas LCD e incluso videos transmitidos en vivo. También son notables los widgets que agregan funciones, como publicaciones automáticas en Twitter y notificaciones personalizadas..
Si bien la aplicación es gratuita, limita la cantidad de widgets que puedes usar a la vez, dándoles a todos un “Energía” costo. La aplicación te da un saldo de 2,000 para jugar, con la opción de comprar más si es necesario.
Descubrí que el saldo inicial proporcionado era más que suficiente para los proyectos de ejemplo que se enumeran aquí, aunque si su configuración es más complicada, es posible que se quede sin energía bastante rápido..
Cada widget tiene un menú de edición que le permite cambiar el nombre y el color. A continuación, elija qué pin afectará (ya sea un pin en su tablero o uno de los pines virtuales de Blynk) junto con el rango de valores a enviar. Para pantallas de salida, como gráficos y cuadros de texto, también puede elegir la frecuencia con la que desea que se actualice, lo que puede ahorrar un valioso ancho de banda..
Blynk también cuenta con la capacidad de asignar instrucciones a “virtual” Pines, que son conexiones configuradas por el usuario entre la aplicación y el hardware. Por lo tanto, se puede usar un solo botón en la aplicación para desencadenar muchos eventos diferentes en el dispositivo. Cubriremos cómo usar esto más adelante en el artículo..
La aplicación te da la opción de compartir tu proyecto con otros. Se genera un código QR que se puede enviar por correo electrónico o escanear directamente, y puede ser utilizado por cualquier persona que también tenga la aplicación Blynk. Quienquiera con quien compartas no puede realizar cambios en el proyecto, por lo que es una forma rápida y conveniente de compartir el control de tus dispositivos. Vale la pena señalar, sin embargo, que su proyecto en la aplicación debe estar ejecutándose para que otros tengan acceso al hardware..
También puede compartir el proyecto sin permitir el acceso a su hardware, que es una excelente manera de enseñar a las personas cómo usar la aplicación sin permitirles encender y apagar las luces.!
Encontré la creación de una aplicación muy rápida e intuitiva. Una vez creado, puedes comenzar a usarlo inmediatamente presionando el símbolo de reproducción en la esquina superior derecha. Si necesita hacer cambios más tarde, simplemente presione el mismo botón para volver al modo de edición.
El Servidor Blynk
Una vez que haya creado una aplicación para controlar su dispositivo, tiene dos opciones para comunicarse con él..
El servidor en la nube de Blynk es rápido, sensible y de uso gratuito. Conectarse a un dispositivo Wi-Fi es tan fácil como copiar el código de autorización generado en su croquis de Arduino y proporcionar sus detalles de Wi-Fi. Para Raspberry Pi, Blynk proporciona un script de prueba que puede ejecutar con su código de autorización para el mismo efecto. Más adelante en este artículo, crearemos nuestro propio script utilizando la biblioteca Blynk para conectarnos con el servicio.
La segunda opción es alojar su propio servidor Blynk. Blynk proporciona un servidor Java de código abierto basado en Netty que puede ejecutarse desde su computadora, o incluso una Raspberry Pi. Esto tiene varios beneficios para algunos usuarios en términos de funcionalidad y seguridad, aunque para nuestros ejemplos aquí nos concentraremos en el uso del servidor en la nube Blynk provisto.
La biblioteca de blynk
El tercer y último elemento de Blynk es la biblioteca Blynk. Esta biblioteca trabaja con una gran lista de paneles de desarrollo para permitir la comunicación entre la aplicación y su hardware.
En su forma más simple, todo lo que se requiere es instalar la biblioteca y cargar uno de los bocetos de ejemplo bien anotados que se proporcionan.
Blynk: configuración inicial
Instale la aplicación Blynk en su teléfono inteligente y cree una cuenta. Asegúrese de utilizar una dirección de correo electrónico a la que pueda acceder, ya que es allí donde se enviarán los tokens de autorización. Ahora cree un proyecto, seleccionando qué tablero usará y cómo se conectará a él. Ambos ejemplos se conectan a través de Wi-Fi, aunque también son posibles las conexiones a través de Bluetooth, Ethernet e incluso GSM..
Crea tu proyecto. Esto enviará automáticamente un token de autorización. Si no lo recibe, puede reenviarlo seleccionando el icono de configuración del proyecto (la pequeña tuerca), seleccionando su dispositivo y seleccionando “Email”.
A continuación, instale las bibliotecas Blynk desde el sitio web de Blynk. Para Arduino, instale la biblioteca copiando los archivos en su Arduino> bibliotecas carpeta. Si eres nuevo en Arduino, aquí hay una guía para comenzar Cómo comenzar con Arduino: una guía para principiantes Cómo comenzar con Arduino: una guía para principiantes Arduino es una plataforma de creación de prototipos de electrónica de código abierto basada en hardware flexible y fácil de usar. software. Está dirigido a artistas, diseñadores, aficionados y cualquier persona interesada en crear objetos o entornos interactivos. Lee mas .
Para Raspberry Pi, primero debe asegurarse de tener instalado Node.js. Hay una guía para instalar Node.js en este artículo Cómo hacer una luz de Wi-Fi controlada por Siri DIY Cómo hacer una luz de Wi-Fi controlada por Siri DIY En esta guía, aprenderá cómo crear una Wi-Fi controlable por luz, y lo controla con Siri. Lea más si lo necesita.
Primero, asegúrese de que su Pi esté actualizado y tenga instalado el paquete build-essential.
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential
Luego instale el Gestor de paquetes del nodo, la Encendido apagado biblioteca, y la Blynk biblioteca escribiendo esto en su ventana de Terminal.
sudo npm install -g npm sudo npm install -g onoff sudo npm install -g blynk-library
Puede comprobar que todo ha funcionado ejecutando el script de prueba de Blynk:
blynk.js [YourAuthorizationTokenHere]
Siempre que todo funcione, debería verse así:
Si recibe algún error, asegúrese de que su Pi esté actualizado y tenga instalada la versión más reciente de Node.js, antes de volver a instalar las bibliotecas NPM, OnOff y Blynk.
Configuración rápida con NodeMCU
Este primer ejemplo muestra lo rápido que es configurar sistemas simples utilizando Blynk. No requiere codificación, y una vez que se configura, es completamente independiente. Siempre que la placa tenga acceso a su conexión Wi-Fi, puede acceder a ella desde cualquier lugar con su teléfono inteligente.
Para empezar, configura un circuito simple en una placa de pruebas. Pin de conexión D0 a la pata positiva de un LED, y de vuelta al pin de GND a través de una resistencia de 220 Ohmios.
Abra su proyecto NodeMCU en la aplicación Blynk. En el lado derecho, seleccione la Botón Widget del menú. Seleccione su botón en su proyecto para abrir su menú de propiedades. Aquí puede nombrarlo y elegir el pin en su tarjeta NodeMCU que debería afectar. Seleccionar pin D0 de la lista de salida, y cambie el modo para convertirlo en un interruptor de encendido y apagado, en lugar de un interruptor de impulso momentáneo.
Presiona atrás (todos los cambios se guardan automáticamente), luego presiona el ícono de reproducción en la esquina superior derecha para iniciar tu aplicación. Puede presionar este mismo botón en cualquier momento para volver a editar su proyecto..
A continuación, abra el IDE de Arduino y elija su tarjeta y puerto NodeMCU en el menú de herramientas. Si no ves tu tablero en este menú, es posible que necesites instalar las bibliotecas ESP8266 (esta guía debería ayudar a Conocer al asesino de Arduino: ESP8266 Conocer al asesino de Arduino: ESP8266 ¿Qué pasa si te digo que hay un tablero de desarrollo compatible con Arduino? con Wi-Fi incorporado por menos de $ 10? Bueno, sí. Lea más).
Ahora abra el script independiente ESP8266 que Blynk proporcionó en su biblioteca navegando a Archivo> Ejemplos> Blynk> Boards_WiFi> ESP8266_Standalone. Reemplace el marcador de posición del token de autorización con el que recibió por correo electrónico e ingrese sus detalles de Wi-Fi.
char auth [] = "YourAuthToken"; char ssid [] = "YourNetworkName"; char pass [] = "YourPassword";
Guarda el boceto con un nuevo nombre y cárgalo en tu tablero. Ahora, cuando presiona el botón en la aplicación, el LED debería encenderse y apagarse. Si no funciona, comprueba que hayas pulsado el icono de reproducción en la aplicación.
En casos simples como estos, Blynk es increíblemente rápido de configurar.
También vale la pena señalar que, dado que utiliza el servidor Blynk, puede controlar su placa desde cualquier lugar, siempre y cuando la placa tenga acceso a la conexión Wi-Fi de su hogar y su teléfono inteligente tenga acceso a datos móviles..
Blynk en la Raspberry Pi
Puede usar Blynk exactamente de la misma manera que en el ejemplo anterior en la Raspberry Pi usando el script de prueba de Blynk, pero hay algunas funcionalidades más profundas que los pines virtuales de Blynk proporcionan, que veremos ahora.
Blynk trabaja con Node.js, por lo que el código que escribiremos hoy estará en Javascript. Si es nuevo en el idioma, este debe ser un excelente manual para comenzar Comience a codificar JavaScript ahora mismo con estos 5 grandes recursos gratuitos Comience a codificar JavaScript ahora mismo con estos 5 grandes recursos gratuitos Leer más .
Utilizaremos la biblioteca Blynk para crear una aplicación que informe si un sensor de puerta está abierto o cerrado, y envía un correo electrónico y una notificación de inserción a su teléfono móvil cuando se abre la puerta.
Necesitará:
- Interruptor de imán de puerta (también conocido como interruptor de lámina)
- 1x 1k? resistor
- 1x 10k? resistor
- 1x 220? resistor
- 1x LED
- Breadboard y cables de conexión.
Configura tu tablero como este:
Tenga en cuenta que la biblioteca de Blynk utiliza los números GPIO de los pines de los Pi, por lo que los usaremos en este proyecto. Conecte los pines 5V y GND a los rieles de alimentación en el tablero. ¿Conectar el pin GPIO 22 en la Raspberry Pi al ánodo LED, y conectar el cátodo a la línea de tierra a través del 220? resistor. ¿Conecta el pin GPIO 17 a un lado del 1k? resistencia, y conectar el 10? Resistencia al otro lado, y el lado de 5V del riel de alimentación. Finalmente, conecte su interruptor de láminas al lado de GND del riel de alimentación en un lado, y en la línea donde está el 1k? y 10k? resistencias se encuentran en el otro. Esta configuración de resistencia de pull-up hará que el voltaje en el pin 17 tenga una lectura alta cuando se abre el interruptor.
Cree un nuevo proyecto en la aplicación Blynk y seleccione su tablero Raspberry Pi. Desde el menú del widget, seleccione un Valor etiquetado, Correo electrónico y un Widget de notificación
Seleccione el Valor etiquetado, asígnele un nombre y elija pin virtual V0 ya que es pin de entrada. También puede cambiar cómo se muestra la información. En este caso añadir “La puerta es ” Antes / pin / en la pestaña Etiqueta. Podemos dejar el valor de Frecuencia de lectura en su configuración predeterminada, aunque puede cambiarlo para enviar datos a su aplicación a una velocidad diferente.
Vale la pena señalar que en realidad no tiene que ingresar una dirección de correo electrónico en el widget del correo electrónico, ya que lo agregaremos al código más adelante, aunque el widget debe estar presente para que funcione..
Una vez que estés satisfecho con el aspecto de tu aplicación, presiona el botón Reproducir en la esquina superior derecha.
Ahora crea un nuevo script llamado blynkdoor.js. El código completo está disponible completamente anotado aquí..
sudo nano blynkdoor.js
Debemos comenzar importando la biblioteca de Blynk, agregando nuestra clave de autorización y creando una instancia de Blynk para usar en nuestro script.
var blynklib = require ('/ usr / local / lib / node_modules / blynk-library'); var AUTH = 'PasteAuthorizationCodeHere' var blynk = new blynklib.Blynk (AUTH);
También debemos importar la biblioteca OnOff y declarar las variables que configuran nuestro interruptor de reed y LED. También crearemos una variable para el pin virtual que configuramos en la aplicación Blynk..
var Gpio = require ('onoff'). Gpio, reed = new Gpio (17, 'in', 'both'), // registra los cambios 'both' cuando el interruptor se abre y cierra led = new Gpio (22, 'out '); var virtualPin = 0;
Ahora vamos a utilizar el reloj Función de la biblioteca OnOff para observar los cambios en nuestro interruptor de lengüeta. El interruptor de la puerta está en 0 o 1, y cada vez que cambie ese valor, escribimos ese cambio en el pin LED..
reed.watch (función (err, valor) led.writeSync (valor);
Podemos usar el valor para enviar también datos a la aplicación Blynk. Si la puerta está cerrada, queremos poder ver eso en su widget de Valor etiquetado. Si la puerta se abre, queremos recibir una notificación y un correo electrónico informándonos. Hacemos esto con una sentencia if, y usando escritura virtual, notificar, y correo electrónico Funciones de la biblioteca Blynk. La documentación completa de Blynk se puede encontrar aquí..
if (valor == 0) blynk.virtualWrite (virtualPin, "Closed"); console.log ('Door Closed'); ; if (valor == 1) blynk.notify ("¡La puerta se acaba de abrir!"); blynk.email ("[email protected]", "Front Door", "La puerta principal acaba de abrirse."); blynk.virtualWrite (virtualPin, "Abrir"); console.log ('Door Open'); ; );
Ahora, cada vez que el interruptor de láminas registra un cambio de valor, los datos se envían a nuestro pin virtual y, en el caso de que la puerta se abra al widget de notificación en la aplicación, y se escriba en la consola. Tenga en cuenta que las llaves finales son de donde empezamos el reloj función arriba.
Finalmente, necesitamos reiniciar el pin cuando el programa termine. Esto es lo mismo que el GPIO.cleanup () probablemente ya estés familiarizado con.
process.on ('SIGINT', function () led.unexport (); reed.unexport (););
Ahora guarda tu código y sal. Ejecuta tu script usando el nodo.
nodo sudo blynkdoor.js
Ahora, cuando retire el imán del sensor de láminas, debería recibir una notificación que le informa que la puerta se abrió y que la pantalla etiquetada debería cambiar. Vuelva a cerrar el interruptor y verá que la pantalla etiquetada cambia nuevamente..
Vale la pena señalar que la aplicación Blynk debe estar ejecutándose en su teléfono para recibir las notificaciones push, aunque los correos electrónicos funcionan si la aplicación se está ejecutando o no..
En el corto tiempo que pasamos hasta ahora con Blynk, parece un servicio muy fácil de usar. En su forma más simple, las personas sin conocimientos de codificación pueden construir fácilmente sistemas de automatización doméstica DIY. Con un poco de conocimiento de codificación adicional, se vuelve aún más poderoso, permitiendo sistemas mucho más complejos y múltiples activadores de eventos con solo presionar un botón en la aplicación.
Este proyecto fue una introducción básica a Blynk, aunque lo que hemos cubierto aquí podría modificarse fácilmente para casi cualquier proyecto de domótica o microcontrolador..
¿Has usado Blynk? ¿Tiene un sistema complejo loco que usa el servicio que le gustaría compartir con nosotros? Háganos saber en los comentarios a continuación.!
Crédito de la imagen: Giuseppe Caccavale a través de YouTube.com
Obtenga más información sobre: Arduino, Electrónica, Domótica, Internet de las cosas, Raspberry Pi.