TTN Zaragoza, presentación

The Things Network, Zaragoza

Durante el último par de meses se ha venido fraguando la comunidad de TTN Zaragoza, y desde Zaragoza Maker Space hemos querido unirnos a la iniciativa. Pero empecemos por el principio…


¿Que es TTN?

TTN son las siglas de The Things Network, lo que en español se diría La Red de las Cosas. Formando parte del IoT que está empezando a ponerse ya tanto de moda por las prestaciones que ofrece. La idea es obtener datos de sensores de forma inalámbrica para poder almacenarlos, estudiarlos,  visualizarlos o tomar acciones en función de los mismos.

Fue creada con la intención de ofrecer una red de comunicación abierta para simplificar la conexión del internet de las cosas. Sus características serían:

  • Red abierta: cualquiera que se registre en TTN puede conectarse a la red para obtener los datos de sus nodos.
  • Medio/largo alcance: un gateway puede dar cobertura a varios kilómetros (dependiendo de su potencia, antena…), esto se debe a el uso de LoRa/LoRaWAN para realizar las comunicaciones con los nodos. Por ejemplo, la distancia máxima de Wifi ronda los 100 metros (igualmente depende de potencia, etc.).
  • Baja velocidad de transmisión: Como hemos dicho, está orientada al IoT de sensores principalmente. Y estos son elementos que, generalmente, producen pocos datos, por lo que no se necesita mucha velocidad de transmisión. Además, al ser una red compartida por todos los usuarios, una restricción es que solo podremos transmitir durante el 1% del tiempo.
  • Extensible: cualquiera puede instalar un gateway en una zona donde no haya cobertura para aumentar el espacio usable de la red.

Visitando su web (en inglés) podréis obtener mucha más información, y mejor explicada que aquí 😜, sobre todo lo que nos ofrece TTN.

 

TTN vs LoRaWAN

Como hemos hablado, TTN utiliza LoRaWAN para la comunicación. Entonces, ¿donde está la diferencia? muy sencillo, TTN pretende ser una red común para todos.

Tú puedes comprarte un gateway LoRaWAN, tus nodos y montarte tu servidor. En ese caso tendrás una red privada que solo tú podrás usar. Y que supone una gran inversión por tu parte.

¿Entonces TTN? Es una red LoRaWAN abierta, pues nos ofrece, de forma pública, el servidor y los gateways existentes (de otros usuarios, o nuestros), por lo que se reduce la inversión al tener que preocuparnos solo (en sitios con cobertura) por los nodos de nuestra aplicación.

¿Por qué una comunidad?

Como dice el eslogan al pie de su web «You are the network. Let’s build this thing together.«, es decir «Tú eres la red. Construyamos esto juntos.«, aunque quizás estaría mejor «Vosotros sois la red» pues you se emplea tanto para singular como plural de la segunda persona. Con esto nos animan a 2 cosas, a utilizar la red y a formar parte de ella de una forma más activa (p.e. instalando gateways).

Para que esto funcione hacen falta:

  • Un servidor (o red de servidores) en Internet, que sirva para distribuir la información a cada usuario. Al ser abierto y para todo el mundo, debe ser un servidor común para que pueda acceder a él cualquiera (con cuenta de usuario, claro).
  • Cobertura. necesaria para que los nodos puedan enviar sus datos. Esta cobertura es dada mediante los gateways que disponen de, por un lado, comunicación de radio Lora y por otro conexión a internet para  enviar a los servidores los datos recibidos.

De lo primero se encarga TTN y de lo segundo nosotros, ya que «Nosotros somos la red.«. Pensad que son necesarios muuuuuuchos gateways para poder dar cobertura a todo el mundo, y esto es «inviable» realizar por una sola empresa/persona (al menos sin cobrar por ese servicio), por lo tanto es de la colaboración de las personas/empresas donde surge el potencial.

Por eso la cobertura suele estar distribuida por zonas donde no hay nada (zonas despobladas) o donde hay varios gateways (principalmente núcleos urbanos) ya que la gente se agrupa en estas comunidades para ofrecer/compartir esta cobertura los unos a los otros en función de las necesidades, además de ayudarnos y aprender los unos de los otros. Por último, es más divertido que hacerlo solo!!!

Y bueno, estando en Zaragoza, nuestra comunidad no podría ser otra mas que TTN Zaragoza.

La comunidad ya es oficial

Pues sí. Según TTN, para ser reconocidos como una comunidad oficial, debe hacerse una presentación de la misma. La cual tuvo lugar el día 18 de mayo en el edificio Etopia.

Cursos realizados

Lo primero que se realizó fue la nombrada presentación en la cual se aprovechó la mañana y vinieron también compañeros de las comunidades TTN de Madrid y Cataluña para hablarnos del tema y enseñarnos algunas cosas (p.e. la realización de un mapa de cobertura). También nos presentaron el proyecto zaragozano Pájaros en la nube que usa la red TTN para el envío de los datos.

Posteriormente se han ido realizando algunos cursos, volviendo a venir en alguna ocasión gente de TTN Cataluña, donde se ha hablado de temas como la librería LMIC, Node-red, InfluxDB, Grafana o la construcción de un sensor de puerta abierta.

En el repositorio de la comunidad se intentan colgar las presentaciones de lo realizado.

¿Para qué puedo usar TTN?

Aquí podéis ver mi primera prueba juntando todo lo aprendido en estos cursos (los que pude ir). como se ve, es un nodo, en mi habitación, con un termómetro que envía los datos a un gateway que está a menos de un metro de distancia…

¿Necesito usar TTN para esto? pues… realmente no, con Wifi o Bluetooth tendría suficiente.

Pero imaginad ahora que ese termómetro en vez de estar situado en mi casa, está situado en un huerto a unos 3 o 4 kilómetros de distancia. O imaginad que va en un vehículo en movimiento por toda la ciudad.

Estos casos nos muestran nuevos escenarios donde el acceso a Internet puede resultar complicado o caro de realizar. Y aquí es donde TTN cobra sentido (sobre todo si es sobre una zona con una cobertura ya establecida), pues nos permite realizar la conexión de una forma más sencilla y barata.

 

Como veis, la temperatura es el ejemplo más empleado, pero esta infraestructura puede emplearse para enviar cualquier tipo de datos, siempre y cuando sean de baja velocidad, que necesite ser monitorizados. Humedad, presión, el estado de una puerta o ventana, si me he dejado la luz encendida, si hay un pájaro que ha hecho nido en la caseta, también vimos un ejemplo de un sistema que medía la distancia del agua de un rio hasta el puente para prever desbordamientos… Cualquier cosa que podáis imaginar.

 

Además de recibir datos de sensores, también se permite enviar comandos de acción a los nodos (p.e. abrir la compuerta de regadío si el terreno está muy seco), aunque de una forma más limitada.

Tecnologías

Veamos aquí el stack (se suele denominar stack al conjunto de aplicaciones/tecnologías que trabajan juntas para realizar una tarea, p.e. LAMP para aplicaciones web) empleado para conseguir nuestro propósito de obtener los datos de nuestros sensores IoT. Siendo esta una presentación, no entraremos en detalle y simplemente nombraremos el trabajo que realiza cada una de estas partes.

Arduino

En primer lugar tendríamos nuestro nodo, el cual consistiría en un sensor (p.e. temperatura, humedad…), una tarjeta de control (preferencia por Arduino pero no es obligatorio 😜) y un módulo de LoRa.

Entonces nuestro programa leería el sensor, empaquetaría los datos y los pasaría al módulo Lora para enviarlos.

LoRa/LoRaWAN

LoRa/LoRaWAN es la tecnología de radio para la transmisión y recepción de los datos. Se encontrarán presentes módulos LoRa en los nodos y en los gateways.

Gateway TTN

El gateway es quien recibe los datos del módulo vía Lora y los reenvía por Internet (Wifi, Ethernet, 4G, ect.) a los servidores de TTN. Es un elemento imprescindible que nos brinda la cobertura necesaria para que todo esto funcione.

TTN

El servidor TTN recibe los datos de los gateways y los reenvía a quien se haya suscrito para recibirlos (por temas de seguridad, solo podrá ser el dueño, o persona autorizada, del nodo/aplicación), mediante MQTT o integraciones con el servicio.

Node-Red

En este caso es Node-Red quien se ha suscrito para recibir estos datos. Node-Red lo podríamos definir como un servicio para establecer el flujo y tratamiento de datos, con un entorno de programación mayormente gráfica (y en parte textual con javascript). El ejemplo más sencillo sería leer los datos desde TTN, formatearlos adecuadamente y enviarlos a la base de datos. A partir de ahí se puede complicar todo lo que se quiera (p.e. si está instalado en una raspberry pi se tiene acceso a los GPIOs  y se podría realizar alguna acción en función de los datos recibidos, como encender un ventilador sí la temperatura sobrepasa los XX grados).

InfluxDB

En este punto tenemos la base de datos (DB) que se encarga de almacenar los datos recogidos en la red, permitiendo su posterior consulta. Será node-red quien se encargue de inyectarlos.

Grafana

Este sería el último paso donde se realiza la visualización de los datos. Grafana es un servicio web (por lo que accederemos vía nuestro navegador) para este propósito. Se conecta a la base de datos realizando la consulta necesaria para obtener los datos que se quieran mostrar.

Otros

Salvo LoRa y TTN (pues sino no sería TTN 😛), el resto de tecnologías mostradas aquí son solo un ejemplo de integración. Existen multitud de distintas tecnologías que nos servirán para el mismo propósito en cada una de las capas (p.e. en vez de utilizar Grafana, se podría utilizar ThingSpeak, Kibana, etc.).

Bufff, muchas cosas de por medio ¿solo para saber la temperatura? bueno, esto nos ofrece algunas ventajas:

  • Como se ha dicho en el párrafo anterior, se pueden cambiar los elementos de cada capa según gustos o necesidades.
  • Nos ofrece un entorno lo suficientemente abierto como para poder desarrollar aplicaciones muy diversas.
  • Podemos crear el sistema de forma distribuida, teniendo cada uno de los servicios en un ordenador distinto. Incluso cada uno de estos servicios podría atender a otros clientes que no formaran parte de TTN.
  • Relacionado con lo anterior, se puede «externalizar» parte de la cadena para ahorrarnos el trabajo. Por ejemplo, en vez de instalarnos, y mantener, nuestro propio servidor de Grafana, podemos crearnos una cuenta en su página web y utilizar su servidor (con mas o menos capacidades dependiendo del tipo de cuenta). Pensad que TTN es ya de por si un servicio externalizado.

 

 


 

Bueno, pues creo que como presentación, para la comunidad y la tecnología, queda clara la idea de lo que podemos encontrarnos. Así que si estáis interesados, no dudéis en apuntaros a la comunidad TTN Zaragoza o al menos pasaos por su canal de Telegram para saludar.

 

Intentaremos indagar (y de paso aprender) más a fondo sobre todo esto. Así que estáis invitados a acompañarnos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

3 + 16 =

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.