4 BLYNK LEGACY Conseguir la App BLYNK LEGACY La APP de BLYNK LEGACY no la encontramos en el buscador de Google Play de forma tradiccional, pues está sin mantenimiento, tenemos varias opciones para descargar la APP. OJO no confundir Blynk (legacy) que es el que vamos a trabajar con Bynk IoT que  sí que lo encuentras en el buscador de Google Play OPCIÓN A Desde Google Play En este enlace aún tiene la APP antigua, pero es de propiedad de Blynk Inc luego no es de extrañar que desaparezca. https://play.google.com/store/apps/details?id=cc.blynk OPCION B Fuera de Google Play OPCIÓN B: ANTES DE LA INSTALACIÓN No nos tenemos que fiar de descargar APK de repositorios fuera de Google Play , luego una vez descargado, pasamos el fichero por una página de Antivirus, por ejemplo  https://www.virustotal.com/gui/home/upload No nos tiene que dar ningún virus Para instalarlo en tu móvil: Primero, tenemos que llevar el fichero .apk a tu dispositivo, recomendamos usar email, por ejemplo enviándote a ti mismo un correo electrónico y lo consultas desde el móvil. Segundo, tenemos que instalarlo y para ello hay que decirle que confiamos con apps instaladas fuera del repositorio oficial (Google Play), como depende las pantallas del modelo de tu móvil, puedes encontrar cualquier tutorial en internet cómo se hace pero prácticamente es llegar a la misma pantalla en seguridad/privacidad- permitir apps de orígenes desconocidos. Tercero instalarlo Cuarto, deshacer el segundo paso OPCIÓN B DESCARGA  Puedes buscar en un navegador esta APP, encontraras varios sitios para descargarla, por ejemplo aquí:  https://blynk.uptodown.com/android/descargar  https://blynk.en.uptodown.com/android/download/3921223 Github: https://github.com/BlynkMobile Desde este repositorio nuestro Crear cuentas Antes se creaban cuentas en Blynk usando el correo electrónico: Cada usuario en la APP de Blynk podía crearse una cuenta, enviando un email. El servidor local Blynk puede enviar correos electrónicos si tiene configurado un fichero que se llama mail.properties y se envía el correo con las credenciales. No obstante esta opción de crear cuenta ha desaparecido de la APP (En CATEDU ya barruntábamos esto, que Blynk Inc al quitar crear nuevos usuarios es que pensaba quitar este servicio Blynk legacy). No obstante, la creación de usuarios mediante emails era un problema pues menores de 16 años no pueden tener emails ni redes sociales, ni whatsapps (¿oigo risas?). En el curso vas a utilizar los servidores de CATEDU luego tendrás asignado 12 cuentas de alumnos + un profesor  Recibirás un email con los nombres de usuario y las contraseñas ¿Y fuera del curso?  En este caso necesitarás tener un servidor Blynk legacy local que tal y como lo explicamos en los siguiente capítulos, montado en una Raspberry. Entramos en la carpeta de Blynk en nuestra Raspberry , ya sea por VNC, o con una pantalla, teclado y ratón o por SSH y lo que hay que hacer es crear unos ficheros texto que se llamen emailusuario.Blynk.user los emails de los usuarios pueden ser inventados, por ejemplo en la figura puedes ver que en la raspberry hay dos usuarios user1@yo.es user2@yo.es luego los ficheros textos son user1@yo.es.Blynk.user y el otro es user2@yo.es.Blynk.user . Entrando por VNC o pantalla, teclado y ratón: Entrando por SSH El contenido por ejemplo del fichero user2@yo.es.Blynk.user es: {"name":" user2@yo.es ","email":" user2@yo.es ","appName":"Blynk","region":"local","ip":"ip_local_raspberry","pass":"uffzlHwvejaeZZz2PzqmKuB22OACUDRLWvKEl7RCDQI=","lastModifiedTs":1663010486621,"lastLoggedIP":"192.168.1.73","lastLoggedAt":1635057921978,"profile":{},"isFacebookUser":false,"isSuperAdmin":false,"energy":99600,"id":" user2@yo.es-Blynk "} Luego lo único que tienes que hacer para crear nuevos usuarios es  crear ficheros texto que se llamen userx@yo.es.Blynk.user y con contenido igual que el anterior pero cambiando el numero 2 por x  (si quieres respetar userx@yo.es pero puedes inventarte cualquier email ficticio) ¿Por qué puede ser que el contenido de  un fichero pueda tener más información o menos que otros? Porque en esos ficheros txt tiene la información de los proyectos creados por el usuario  ¿Entonces si el fichero user1@yo.es.Blynk.user tiene toda la información del usuario y todas sus proyectos... si ese usuario quiere llevarse sus proyectos a otro servidor Blynk sólo tiene que copiar y pegar es fichero texto? Respuesta : SI , así de sencillo, ese fichero texto (por lo tanto libre de virus) tiene toda la información. ¿En la APP no se almacena ningún proyecto? Ninguno, todos los proyectos están almacenados en esos ficheros txt si no hay conexión con el servidor, en la APP no aparece NADA Vale, ya sé crear los nombres de usuarios ¿Y las contraseñas? En teoría están encriptadas en el fichero texto, como puedes ver, sale uffzlHwvejaeZZz2PzqmKuB22OACUDRLWvKEl7RCDQI= eso significa alcorisa Pero tranquilo, luego veremos en el panel de control cómo se pueden poner las contraseñas sin encriptar +información aquí Entrando en el Blynk Legacy: El panel de control Como entro en el panel de control En el curso de CATEDU Habrás recibido un email con la URL para entrar en la administración web del Blynk Legacy, con usuario y contraseña Fuera del curso de CATEDU usando tu servidor local Desde cualquier ordenador conectado en la misma red local que la raspberry, ejecutas en un navegador la siguiente dirección: Si la IP de la Raspberry es 192.168.1.112 entonces entramos en: https://192.168.1.112:9443/admin Vale, ya estoy ¿y ahora qué? Seguramente te saldrá la siguiente advertencia por el certificado SSL, dale a Configuración avanzada y luego a Acceder a (la IP del servidor Blynk Legacy) sitio no seguro Luego entramos con el usuario y contraseña que nos han proporcionado Cambiando las contraseñas de los alumnos Y podemos ver los usuarios creados con los ficheros textos mencionados anteriormente Entrando en un usuario PODEMOS GENERARLE UNA CONTRASEÑA, por supuesto la pones normal, sin encriptar También puedes borrar el usuario si no nos interesa este usuario. En la APP Conectar con el nuevo usuario Entramos en la APP de Blynk que hemos visto anteriormente como descargarla e instalara y entramos en Log In  Y ponemos el nombre de usuario que hemos creado anteriormente, y la contraseña, la que hayamos definido en el panel de control IMPORTANTE : Entra en CUSTOM y pon LA DIRECCIÓN IP DEL SERVIDOR BLYNK LEGACY Si es dentro del curso de CATEDU habrás recibido un email de las IPs y de los puertos que hay que poner en esta APP de Blynk Legacy Si es fuera del curso, la IP DE LA RASPBERRY, O SEA DEL SERVIDOR LOCAL BLYNK y puerto 9443 Crear un nuevo proyecto Podemos ver los proyectos que hay ya almacenados, vamos a crear un nuevo proyecto: Nos preguntará por el DEVICE: En Arduinoblocks en el Aula , la placa es el TDR STEAM colocado en un Arduino con el ESP01 conectado, luego DEVICE Arduino Uno CONNECTION TYPE Wifi En Rover con Arduino , la placa es un NodeMCU v2, luego DEVICE NodeMCU  CONNECTION TYPE Wifi En ESP32 en el Aula , la placa es un ESP32 con el Imagina TDR STEAM, luego DEVICE ESP32 DevBoard  CONNECTION TYPE Wifi Empieza un nuevo proyecto, tienes un montón de energía y widgets para hacerlo: Crea un nuevo proyecto , y así se crea en el servidor Blynk local un TOKEN que ahora veremos qué es Aquí tienes la captura de un proyecto o dashboard creado para el kit Imagina TDR Steam Poner el TOKEN en ARDUINOBLOCKS ¿Cómo  conseguir el TOKEN? OPCION A: QUE LO HAGA EL ALUMNO En la APP Es la opción más sencilla, entrar en Devices  pulsar en el Token y se copiará en el portapapeles del móvil, luego ir a cualquier aplicación para poder enviarla al PC (email, whatsapp...) y pegarla en Arduinoblocks en la instrucción que luego veremos. OPCION B: QUE LO HAGA EL PROFESOR En el panel de control Entramos en el panel de control del servidor Blynk y podemos ver en los usuarios creados los tokens Entrando en un usuario PODEMOS VER SUS PROYECTOS Y LOS TOKENS RECUERDA: UN PROYECTO UN TOKEN ¿Qué se hace con ese TOKEN? Se pone en ARDUINOBLOCKS: Entramos en ArduinoBlocks y vamos al bloque de comunicaciones IoT - Blynk legacy ATENCIÓN:  ARDUINOBLOCKS CONNECTOR tiene que estar actualizado, al menos v5 (octubre 2022) Tenemos que poner los datos de la IP servidor BLYNK LOCAL , y el TOKEN del proyecto DENTRO DEL CURSO CATEDU Habrás recibido un email con las IPs y los puertos a poner en Arduinobloks SI ES EN TU SERVIDOR BLYNK LOCAL  Hay que poner la IP de la Raspberry o tu servidor local y EL PUERTO 8080 En el caso de que es un proyecto con ARDUINO o TDR-STEAM- ARDUINO con ESP01 sale : En el caso de sea un proyecto con NodeMCU o ESP32 como en el curso del Rover con Arduino o IoT en el aula sale : Endender LED Vamos a empezar a hacer algo.... Si antes hicimos un intermitente por D4 , ahora vamos a encender el LED en D0: Y el servidor BLYNK hará de puente entre nuestra App y el NodeMCU : Primer programa con Blynk: Encender D0 : 1 Conseguir el Token Empezamos en la APP Blynk creamos un nuevo proyecto: En la siguiente pantalla pregunta por el dispositivo, le decimos ESP8266 y le ponemos un nombre: Y nos dice que el Token nos lo ha enviado por correo electrónico MENTIRA , el token lo vemos tal y como hemos visto anteriormente. Recuerda : Un proyecto en BLYNK = Un Token Primer programa con Blynk: Encender D0 : 2 Poner los controles Una vez dentro del proyecto de la App aparece todo un panel si nada, añadimos controles apretando al + que hay en la parte superior Seleccionamos el botón Nos aparece el botón Pulsamos sobre él para entrar en sus propiedades y cambiamos que vaya de 1 a 0 pues recuerda que este pin va al revés RECUERDA QUE EL NODEMCU TRABAJA CON LOGICA INVERSA Pulsamos en PIN y le decimos que sea el GP16  ¿Pero no era el D0? ¿Qué es eso del GP16? La nomenclatura de los pines cambia, el D0 es el GP16, viene de GPIO General Port Input Output. El D4 es el GP2 ¿Por qué los fabricantes nos lían? 🤔 Primer programa con Blynk: Encender D0 : 3 ARDUINOBLOCKS Ahora le tenemos que decir a nuestro NodeMCU la configuración de la Wifi, y el Token que hemos recibido, ¿cómo? muy fácil, con ARDUINOBLOCKS Abrimos un proyecto y ponemos esta instrucción : EL TOKEN ES EL QUE HEMOS CONSEGUIDO Novedad: las capturas a veces cambian, ahora el nombre de la wifi y la clave está en el mismo bloque de Blynk Iniciar Donde : WIFI SSID el nombre de la Wifi donde queremos que se conecte nuestro rover WIFI CLAVE la contraseña de la WIFI IP Servidor PONEMOS LA IP del servidor Blynk Legacy. En el curso CATEDU habrás recibido un email con las IPs y el puerto Fuera del curso, tendrás que poner la IP local de tu servidor y el puerto 8080 Codigo Auth es el TOKEN que has conseguido ¿Nada más? Nada más !! así de sencillo. Le damos a subir (teniendo el programa Arduinoblocks conector minimizado, eso lo podemos ver enseguida pues detecta en que COM está conectado, en la figura sale COM5) Vamos a la APP de BLYNK, Pulsamos al botón de play ▶ de arriba arriba y vemos el estado NO TIENE QUE APARECER UN PUNTO ROJO si aparece es que nuestra placa no está conectada  Luego al botón: Y podemos ver cómo se enciende y apaga el led D0 Recuerda : Un proyecto en BLYNK = Un Token RETO: AHORA CON D4 Encender gradualmente LED Para ello vamos a incorporar un Slider Y de propiedades que vaya al GP2 y que vaya al revés de 1023 a 0 El programa en ARDUINOBLOCKS es el mismo !!! no hace falta tocar nada de lo visto anteriormente !!!  O sea el nombre de la wifi, su contraseña, la IP del servidor Blynk Legaci, y el token, que es el mismo pues estamos en el mismo proyecto o dashboard. Medir la luz del LDR Ahora añadimos otro control Gauge Elegimos de PIN el analógico (sólo hay uno). Recuerda que el LDR está conectado al pin analógico. Y como va al revés, vamos a poner el medidor al revés: de 1023 a 0 ¿Y en Arduinoblocks? Es el mismo !!!! no hay que tocar nada !!! Medir Temperatura y Humedad con el DHT22 Este caso es distinto, pues En el Rover marciano con Arduino el DHT22 está conectado al pin D5 digital del NodeMCU En el Arduinobloks en el aula , el DHT11 de la placa Imagina TDR Steam está conectado al pin D4 digital del Arduino En el IoT en el Aula  el DHT11 de la placa Imagina TDR Steam está conectado al pin D4 digital del ESP32 Pero los dos miden dos variables Temperatura Y Humedad 🤔😳¿Cómo hacemos para medir dos variables en un sensor que está conectado a un sólo PIN?🤔😳 Solución PINES VIRTUALES: si, has leído bien, vamos a utilizar pines virtuales . En ARDUINOBLOCKS Vamos a ARDUINOBLOCKS y establecemos dos pines virtuales, uno para la temperatura y otro para la humedad, arbitrariamente he puesto V2 y V3 pero puede ser cualquiera. Para el kit de ROVER MARCIANO CON ARDUINO poner pin D5  Si el sensor es AZUL entonces DHT11 si el sensor es BLANCO entonces DHT22 Para el kit que tenga la placa TDR STEAM IMAGINA   es decir los cursos ARDUINO BLOCKS EN EL AULA y ESP32 EN EL AULA poner pin D4  Si el sensor es AZUL entonces DHT11 si el sensor es BLANCO entonces DHT22 Fíjate que hay dos maneras de programar estos eventos: - en el primero, utilizamos un bucle propio de Blynk que simplemente cada segundo lee el sensor y los almacenan los pines virtuales V2 y V3 - en el segundo no se ha utilizado ese bucle propio de Blynk sino simplemente dentro de Bucle hemos puesto otro bucle que se ejecuta cada 2 segundos, y dentro una funciona que se llama LECTURAS. dentro de lecturas esta la lectura de los pines virtuales V2 y V3 Da igual. Nosotros tenemos preferencia por el segundo método, nos parece más elegante y más controlable. En la APP de Blynk Y en Blynk incorporamos un Gauge que sea al PIN VIRTUAL V2. Modificamos también los límites, pues por defecto sale 0 a 1023 y se vería muy bajo la temperatura, ponemos -10 a 30. Si es para el Rover marciano de Arduino, allí se puede llegar a -50ºC y si es para el TDR Steam será en Aragón, el récord lo tiene Fuentes Claras con -30ºC. Para la humedad hacemos lo mismo: Pin virtual V3 Límites 0% a 100% Resultado : Medir el campo magnético El programa en ARDUINOBLOCKS es: (no cambiamos el bloque iniciar con el nombre de la wifi, su contraseña, la IP del servidor Blynk Legacy y el Token pues estamos añadiendo Gadgets al mismo proyecto o dashboard : Y el programa en Blynk Ten en cuenta que va al revés, cuando hay un imán, se pone a 0 NODE MCU TRABAJA CON LÓGICA INVERSA El resultado es (acercando un imán): Reto: Escribir un programa que encienda el pin D4 cuando se acerque un imán A por los motores Cambiamos nuestro programa de ARDUINOBLOCKS utilizando unos pines virtuales para controlar los motores, arbitrariamente le hemos puesto V1 y V2 de tal manera que cuando se reciba un valor de estos pines virtuales, fijan la potencia de los motores: Ponemos dos sliders verticales Y configuramos uno para V5 y otro para V6: No te olvides de pulsar el botón de la Shield para que le de energía a los Motores A divertirnos con un Joystick Este elemento es muy gamificador y nos posibilitará ir hacia atrás Hay que tener en cuenta que los valores del Joystick son los siguientes : Luego la programación en Arduinoblocks es la siguiente : Proyecto final Vamos a juntarlo todo : En Arduinoblocks Creamos una función SENSORES que lee los tres sensores digitales en tres pines virtuales Unas funciones adelante , atrás derecha e izquierda (he multiplicado el valor de la potencia por dos para que sea más sensible el Joystick) Configuramos Blynk Legacy para que nos lea nuestra Wifi, nuestro Token la IP de nuestro servidor Blynk Legacy y si se recibe los valores V0 y V1 del Joystick que vayan a las variables X e Y Y finalmente el programa principal El proyecto es público y lo tienes en este enlace (hay que estar logueado en Arduinoblocks) http://www.arduinoblocks.com/web/project/486534 La APP Blynk Ponemos los siguiente controles El Joystick con los pines virtuales V0 y V1 El Gauge de Temperatura a V2 El Gauge de Humedad a V3 El Gauge de efecto Hall a V4 El Gauge de Luz al analógico Un botón al D4 El panel está completo :