Giter VIP home page Giter VIP logo

lorawan4dummies's Introduction

Taller de Internet de las cosas y LoRa para principiantes. Construye tu sensor

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.

En este taller vamos a

  • 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

Necesitarás

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:

¿Que es LoRaWAN y para que sirve?

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.

¿Por qué TTN?

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.

¿Cómo funciona todo esto

¿tengo cobertura?

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.

1º Conectamos todo

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.

Ejercicio 1: "Hola mundo"

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.

Registro del sensor en la nube 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:

Registro de la aplicación

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.

Registro del dispositivo

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.

Bloque de datos

Ahora ya podemos añadir algo de información para transmitir:

Formato de la trama

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:

Ejercicio 2: Sensor de movimiento

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.

Ejercicio 3: Alertas en el el móvil.

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.

lorawan4dummies's People

Contributors

mcorts avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.