La tecnología cada vez es más fácil de usar. Hasta hace poco, la construcción de un sensor típico de temperatura, su programación y la configuración de su conectividad era una tarea complicada. Pero ya existen tecnologías fiables y probadas; muy fáciles de usar como Micro:bit, Scratch y The Thing Networks.
- Saber qué son y para qué sirven las comunicaciones LoRaWAN.
- Montar un multisensor para que nos envíe a nuestro móvil datos de movimiento, temperatura, luz y posición desde casi cualquier parte del mundo y sin coste.
- Aprender a programar en Scratch
- Aprender a configurar un nodo en The Things Networks
- Aprender a enviar alertas a tu móvil
Si quieres participar plenamente en este taller y llevarte tu sensor funcionando. Te sugerimos que compres las siguientes placas con anticipación. Aquí tienes los sitios más baratos que hemos encontrado:
- IOT Micro: Bit Lora nodo (frecuencia EU 868 - 870 MHz)
- Cable micro-USB de datos.
Estamos hablando de un tipo de comunicación inalámbrica que permite transmitir datos a muy larga distancia y con bajo consumo de energía (~100mW). Es ideal para pequeños dispositivos que solo necesitan enviar información discreta como un dato de temperatura o una posición PGS.
LoRa es un tipo de modulación de señal de radio desarrollada entre 2008 y 2013 en Francia y adquirida y patentada por la compañía Semtech.
La señal LoRa alcanza fácilmente los 2km en área urbana y más de 10km en zonas rurales. Actualmente el récord tierra-tierra es de 210km con una shield de Arduino de 16$ (febrero 2017) y globo-tierra 832km a principios del 2020 desde Alemania a Países Bajos.
La vuelta de tuerca a esta solución de interconectividad de dispositivos la ha dado la red The Things Network. Que ha formado una comunidad abierta de gateways y nodos que permite la conectividad de dispositivos IoT sin 3G ni WiFi y sin coste. En realidad solo vamos a pagar el copywrite del chip LoRa de los dispositivos que compremos.
Existe un servicio que representa un mapa de alcance y intensidad de señal de los gateways públicos de TTN. Se llama TTNMapper y hay una aplicación móvil detrás para hacer este mapeo de alcance.
La única aplicación que necesitaremos en el ordenador es un navegador de internet para lo que se recomienda Google Chrome. Abrimos el buscador Google para encontrar la aplicación web: Makecode Microbit La dirección actual es https://makecode.microbit.org/
Una vez dentro de la aplicación podremos cambiar el idioma Desde el icono de configuración situado arriba a la derecha.
En esta pantalla principal seleccionaremos Nuevo Proyecto y elegimos un nombre.
Ahora es el momento de conectar todo incluyendo el cable USB con tu PC. IMPORTANTE Asegurate primero de tener la antena conectada a la placa LoRa. Emitir señal sin antena puede sobrecargar el circuito. Si al enchufarlo se te muestra algún mensaje de instalar o actualizar controladores (drives), acepta y continúa hasta completar la instalación.
Ahora es el momento de activar el dispositivo. De nuevo, desde en icono de configuración, selecciona la opción de emparejar dispositivo (Pair Device). Aparecerá una ventana con la misma opción de nuevo. Si la matriz de LEDs muestra muestra las letras "lora " desplaz'andose, tu MicroBit LoRa ya estará preparado para programarse.El lenguaje que vamos a utilizar es, posiblemente uno de los mas sencillos que existen, el Scratch. Que es un lenguaje de programación visual pero muy completo y orientado a la educación y a la robótica que ha sido desarrollado por el MIT Media Lab.
En la configuración inicial del nuestro entorno de programación no hay funciones de comunicación LoRa. Por lo que tendremos que añadir esta libreria. De nuevo desde el icono de configuración buscaremos:
Ahora ya podemos empezar a programar. Lo primero será añadir los proques para inializar e identificar nuestro dispositivo en la red LoRaWAn de TTN.Vamos a utilizar los servicios de TTN que enrutarán el mensaje desde el gateway que reciba por radiofrecuencia el paquete de datos hasta el endpoint que consumirá la aplicación que tome acción con la información contenida en la trama da datos.
Este dispositivo es del tipo ABP (Activation-by-personalisation) lo que significa que se identificará en la red con un DevAddr y una Session key preconfigurada. Para ello tenemos que completar el registro de una aplicación y un dispositivo. Previo, será necesario darse de alta en la consola de la plataforma de TTN. Y luego, estos son los pasos a seguir:
Nuestro dispositivo se comunicará con la aplicación en la que ha sido registrado. Para registrar un dispositivo por lo tanto, primero hay que añadir una aplicación.
En la consola, selecciona APPLICATION y pulsa add application en la siguiente pantalla.
- Para el Application ID, elige un identificador único, en minúsculas, puedes usar caracteres alfanuméricos peor no guiones ´-´ consecutivos.
- Para Description, elige la descripcion que prefieras.
- No hace falta poner nada en Application EUI
- En Handler registration deja el valor predeterminado: ttn-handler-eu
- Presiona Add Application para finalizar
Ahora seremos redirigidos a la página con la nueva aplicación añadida donde puedes encontrar la app EUI y el Access Keys generados.
En TTN un dispositivo (devide) representa la configuración de lo que también llama nodo (node) que a fin de cuentas es nuestro circuito. Al acceder al formulario de registro, únicamente tenemos que rellenar el Device ID que será el nombre único de este nodo. Es preferible pulsar el icono marcado en la imagen para que se genere automáticamente el Device EUI.
Ahora solo queda cambiar en settings los parámetros de:
- Poner a ABP el Activation Method
- Desmarcar Frame Counter Checks
Finalmente pulsaremos Register y pulsaremos el icono con el nombre de nuestro nuevo dispositivo para ver sus datos de configuración. Aquí encontraremos los parámetros que necesitamos por ser un dispositivo de tipo ABP que trasladaremos al bloque de configuraciób de Scratch.
En este punto debemos "Descargar" esta parte del programa en el Microbit para inicializar el dispositivo antes de añadir el bloque de datos a transmitir.
Ahora ya podemos añadir algo de información para transmitir:
La información contenida en la transmisión (payload) está empaquetada en un formato que debemos identificar a fin de poder visualizar los datos contenidos en ella. las librería que hemos usado utiliza un formato estándar llamado Cayenne LPP. Que permite multiples canales de transmisión de datos simultaneos. Esto lo veremos en el siguiente ejercicio. Para esto, tendremos que volver a la configuración de aplicación y pulsando en la pestaña de Payload Formats accedemos al formulario donde se permite cambiar esto:
Ahora ya podemos ver cómo llega la información al cloud de TTN con un formato legible donde veremos nuestro Hola Mundo en forma de un 1 (Verdadero), tal y como pusimos en el bloque del programa:
Gracias a la facilidad de programación en Scratch, añadir el resto de sensores de Microbit es sencillo. Utilizaremos un canal para cada uno de los sensores a la vez que mostramos información de alguno de estos valores en la matriz de LEDs. Ahora no tendremos un contador de tiempo para hacer los envios si no un patrón de gesto detectado por el acelorómetro de la placa.
La forma más fácil y Maker para llevar los mensajes de este dispositivo a nuestro móvil. Es utilizar los servicios de IFTTT (If This Then That). Para lo que tendremos, primero, que registrarnos.