1. LoRaWan – Gateway esquema abierto

El esquema abierto para un gateway LoRa de bajo costo, desagrega e interconecta componentes de hardware y software.

El mini-gateway es modular, el componente de software para la gestión de gateways y paquete de datos se implementa sobre un Raspberry Pi, conectado por Ethernet a la red local y con dirección IP fija.

En el manejo de software se prioriza integrar la gestión de dispositivos usando mensajes MQTT y de esta manera simplificar la integración al broker del esquema IoT general.


Componentes

El punto de partida la propuesta  es gateway entre LoRa y Ethernet/Wifi. El fabricante Heltec presenta un «mini-Gateway» con el Módulo HT-M01. El módulo de hardware se conecta por medio del software «Packet-forwarder» (en un Raspbery Pi) hacia un administrador de gateways que puede estar en la red local (ChirpStack) o en la nube (The Things Network).

Componentes de Hardware

  • Heltec HT-M01 mini gateway conectado mediante SPI o cable USB. https://heltec.org/project/ht-m01/
  • Raspberry Pi. (pruebas con modelo 2 y 3 B+)
  • memoria SD de 8GB para almacenamiento

La conexión del módulo HT-M01 se puede realizar con SPI usando una placa de conexión hacia el Raspberry Pi. Si no se tiene la placa, también se la puede construir siguiendo las instrucciones en:

https://robotzero.one/heltec-lora-gateway-things-network/

En la documentación se recomienda verificar que el cable USB sea de buena calidad, pues también lleva la alimentación de energía del módulo.

Componentes de Software

  • Raspberry Pi OS de 32 bits
  • Balena Etcher para transferir la imagen el OS a la SD
  • Heltec Packet-forwarder
  • MQTT – Mosquitto
  • ChirpStack: Gateway-bridge, Network – Server, Application-Server.

El proceso de instalación del Raspberry Pi se encuentra descrito en la Raspberry Pi OS-Instalar.

Packet-forwarder se instala siguiendo las instrucciones del fabricante.

Inicialmente se usó USB como conexión del módulo Heltec HT-M01, luego se usó SPI solo para comprobar las modalidades de implementación. Se utiliza SPI en la versión de operación regular.

Conexión entre componentes

  • módulo Heltec HT-M01 y Raspberry, SPI o USB
  • Ethernet desde la Raspberry Pi , usando dirección fija

La conexión Ethernet facilita la comunicación con el esquema existente y en operación, facilitando la ubicación de los componentes de software en otros «servidores» en los Raspberry Pi.

Referencia: Heltec automation https://heltec-automation-docs.readthedocs.io/en/latest/gateway/ht-m01/qucik_start.html

Hardware con Raspberry pi Zero y adaptador Ethernet

Para el caso de usar mas de un Gateway LoRa con Raspberry Pi Zero que no tiene conector Ethernet, se requiere un adaptador USB a Ethernet.

Algunos adaptadores USB a Ethernet «económicos» tienen la misma dirección Mac que al utilizar varios en una red local (todos en el mismo segmento) genera inconvenientes en la comunicación.

La dirección MAC se puede revisar con la instrucción:

ipconfig

se obtiene el la MAC en funcionamiento:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.50  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::329:a9da:ae23:c663  prefixlen 64  scopeid 0x20
        ether 00:e0:4c:53:44:58  txqueuelen 1000  (Ethernet)

El asunto se resuelve cambiando la dirección MAC desde el sistema operativo, lo que requiere crear un archivo:

 sudo nano /etc/systemd/network/00-default.link

con los parámetros  a continuación, donde en [Match] tiene la MAC previa, y en [Link[ se ubica la MAC nueva:

[Match]
MACAddress=00:e0:4c:53:44:58

[Link]
MACAddress=00:e0:4c:53:44:01

Referencia: How to change your Ethernet’s Mac address on boot (Linux)

 

IoT LoRa – Integración con broker MQTT-HA

La cobertura de los dispositivos IOT con un rango mayor al alcance con WiFi se logra al cambiar o incorporar otra red inalambrica para implementación, por ejemplo LoRa.

https://www.semtech.com/lora/why-lora

La selección de tecnología LoRa responde al esquema de trabajo de Hardware y Software Abierto, la disponibilidad de componentes, que son la base para plantear esquemas de prueba de concepto, entrenamiento y desarrollo DIY.

De tener en operación la gestión de datos con un servidor MQTT y Home-Assistant, la integración con esta plataforma abierta simplifica los pasos al considerarse una extensión de lo implementado con redes locales con cobertura WiFi.

El uso de una plataforma abierta permite personalizar los dispositivos a requerimientos nuevos.

En el caso de solo realizar la conexión con «pocos» dispositivos, se puede recurrir a una conexión multipunto con LoRa. El esquema de integración simplificado se muestra en al figura.

Esquema LoRa: Dispositivo y Gateway Básico

La comunicación entre dispositivos y broker se simplifica considerando que:

  • Dispone de módulos Lora y/o Placas de Desarrollo
  • Implementa prototipos para una etapa inicial, no dispone de un gateway comercial y no requiere acceso directo a internet
  • Simplifica el esquema de comunicación entre pocos dispositivos, basado en direccionamiento
  • Interactúa con el Broker mediante MQTT, usando la red Ethernet o Wifi

En las siguientes secciones se describe en detalle los componentes básicos que se van implementando.

Esquema LoRaWAN

En caso de requerir una cobertura mayor se amplia el esquema para usar LoRaWAN e incorporar un LoRa Mini Gateway también en esquema abierto con ChirpStack. como gestor de Gateways-

Referencia: https://lora-developers.semtech.com/

1.1 IoT Esquema abierto por capas

Como una introducción para desarrollo IoT, Internet of Things,  se usa un esquema que agrupa los componentes en secciones y capas. Cada una de las secciones se encarga de una parte de todo el proceso, simplificando los pasos para tener componentes funcionales que interactúen como un todo.

El esquema básico presentado empieza con lo más tangible, las «cosas» («Things» en inglés) presentado en el bloque inferior en colorgris.

El «usuario» observa, controla y se beneficia del estado de las cosas representando una sección importante en el esquema en los bloques en azul.


1. La cosas (Things)

Las «cosas» representan el artefacto que se desea conocer o controlar su estado.

Para conocer el estado  por ejemplo abierto/cerrado, 0/1, se usan sensores.

Para controlar el estado de las cosas, por ejemplo un foco, se usan actuadores.


2. Usuario

El «usuario» observa, controla, se beneficia del estado de las cosas y accede a ellas en forma «presencial» o «virtual».

Para que usuario llegue hasta las cosas, se crea un camino con algunos componentes tecnológicos intermedios que son los que se tratan en cada página del blog.

 


3. Componentes o Capas

Cada componente añade una función específica a la infraestructura IoT.

Algunos componentes son de uso cotidiano y los dispone en el hogar, la oficina, el aula.

Por ejemplo, un teléfono móvil, tablets, PC, un «router Wifi», son componentes que se actualmente se encuentran muy difundidos.

La extensa adopción de estos componentes facilita el despliegue del Internet de las cosas (IoT).


4. Esquemas Abiertos de Hardware y Software

La infraestructura IoT se conforma de  Hardware y Software, ambos se pueden desarrollar e implementar con herramientas de esquema abierto conocidos como,

  • Open Hardware
  • Open Software

Para lo presentado en Girni IoT, se tiene preferencia en los esquemas abiertos.


5. Explorando un poco de IoT

Para explorar el esquema abierto IOT se revisa un ejemplo base, simplificado para incorporar un dispositivo sensor/actuador. El primer ejemplo a desarrollar es un  sensor de estado de Puerta-Ventana.

El estado de la «cosa«, puerta o ventana es cerrado o abierto. El estado se representa por un 1 o 0, ON/OFF, es también conocido como un estado binario.

Se usa un sensor tipo «interruptor magnético» con estados: abierto o cerrado, que permite determinar el estado de la puerta.

Un dispositivo registra el estado o lectura del sensor magnético, y genera un mensaje  de estado de «ON/OFF» para enviarlo a un punto central de gestión de la información (servidor o broker).

El dispositivo realiza las operaciones de revisión de sensor y envío de mensajes usando un «microcontrolador», como arduino, ESP8266, ESP32, etc.

El dispositivo usa una red de datos alámbrica o inalámbrica para enviar el mensaje al broker, por ejemplo WiFi.

El broker registra, gestiona y muestra el estado de la «puerta» al usuario. El broker realiza las funciones de servidor de mensajes y de página web, semejante a Twitter, facebook, etc.

El broker puede ser un servidor en la nube, o puede ser implemementado  de foma local con una PC o Raspberry Pi, lo que se tenga disponible.

Para que el mensaje del estado de la puerta se gestione en el broker, es necesario enviarlo por medio de una red de datos disponible.

La red de datos en la actualidad es muy común en su forma inalámbrica WiFi o cableada Ethernet, el uso de estas redes genera un escenario donde se facilita la implementación del internet de las cosas IoT.

El usuario puede revisar el estado de la «puerta» desde una página web, como un texto o símbolo, mostrado en la figura anterior.


Esquema por componentes y proceso por Bloques

La implementación e integración de éstos componentes se desarrolla paso a paso, empezando por los componentes más elementales y luego incorporando otros elementos que hacen de IoT un tema fascinante.

Un dispositivo IoT con Wifi  puede ser implementado con una placa de desarrollo con ESP8266/ESP32, inicialmente el proceso varía en detalles con la placa de desarrollo que tenga disponible. Las placas en la actualidad ya no presentan una diferencia muy grande en costos, por lo que el modelo depende más de la placa que tenga disponible para un primer ejercicio.

El proceso general para conectar un dispositivo IoT tiene varias fases o bloques:

  1. Conexión al router de una red WiFi.
  2. Envío de un mensaje de estado/acción de un sensor o actuador a un Gestor de mensajes (Broker) MQTT, por ejemplo Mosquitto.
  3. Registro el estado/acción de un sensor o actuador con un Gestor de dispositivos, entre ellos Home Assistant.

Las siguientes secciones desarrollan estos pasos