Tutorial sobre cómo conectar a AWS IoT MQTT con un gateway de Teltonika

Back To Blog
Tutorial sobre cómo conectar a AWS IoT MQTT

Tutorial sobre cómo conectar a AWS IoT MQTT con un gateway de Teltonika

En este tutorial, veremos cómo podemos conectar un gateway del fabricante Teltonika, en particular el modelo TRB140, a la nube de AWS IoT mediante el protocolo MQTT. Mediante el uso de este protocolo, podremos utilizar una plataforma de IoT en la nube donde los datos se agregan y se presentan al operador con métricas de rendimiento y sugerencias de mantenimiento.

 

Introducción

MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería ligero y de bajo consumo de ancho de banda diseñado para ser utilizado en situaciones donde las redes son limitadas o la conectividad es intermitente. Fue desarrollado originalmente por IBM, pero ahora es un estándar abierto y ampliamente utilizado en el Internet de las cosas (IoT) y en aplicaciones de mensajería en tiempo real.

MQTT utiliza un modelo de publicación/suscripción, donde los dispositivos clientes se conectan a un servidor MQTT (llamado broker) y pueden suscribirse a ciertos temas (topics) para recibir mensajes, o publicar mensajes en esos temas para que otros dispositivos suscritos los reciban. Esto lo hace ideal para aplicaciones donde se necesita enviar datos de manera eficiente entre muchos dispositivos, como en sensores IoT, sistemas de monitorización remota y aplicaciones de mensajería instantánea.

Una de las ventajas clave de MQTT es su eficiencia en el uso de recursos, lo que lo hace adecuado para dispositivos con recursos limitados, como sensores y dispositivos IoT. Además, su capacidad para funcionar en redes con ancho de banda limitado y conexiones poco fiables lo hace ideal para aplicaciones en entornos donde la conectividad puede ser intermitente o poco confiable.

Caso de Uso

Los movimientos políticos y económicos a nivel global están generando un aumento en la búsqueda de alternativas energéticas. Entre las fuentes renovables, la energía solar ha destacado, y de acuerdo con la AIE, se espera que lidere el crecimiento en los próximos cinco años. Con importantes potencias económicas enfocadas en la expansión de las energías renovables, la energía solar sin duda se posicionará como una de las principales fuentes energéticas del futuro.

Planteamiento

La infraestructura de una planta de energía solar es altamente compleja, diseñada para operar en armonía y maximizar la producción eléctrica. Sus elementos principales incluyen paneles solares, inversores, reguladores solares y sistemas de transmisión o almacenamiento de energía. Es crucial supervisar de cerca el rendimiento de estas plantas para garantizar su máxima eficiencia y disponibilidad, asegurando así que todo funcione sin contratiempos y que la generación eléctrica se mantenga dentro de valores aceptables para cumplir con los plazos de retorno de la inversión del proyecto.

La supervisión remota es crucial para planificar el mantenimiento, incluyendo la sustitución de partes y la limpieza de paneles solares, acciones esenciales para asegurar el máximo rendimiento a largo plazo de la planta de energía. Sin embargo, dado que estas instalaciones suelen situarse en zonas remotas debido a su necesidad de gran extensión de terreno, la conectividad para la supervisión remota puede ser un desafío, ya que las conexiones de Internet por cable son poco frecuentes en tales lugares.

Solución

La siguiente descripción detalla un enfoque típico para la monitorización remota que involucra un dispositivo de conectividad celular como componente central. El regulador solar desempeña un papel crucial en el control de la operación de la planta de energía solar, con capacidad para transmitir datos del sistema mediante protocolos industriales como Modbus TCP. Dependiendo del tamaño de la planta, se instalan múltiples reguladores de carga solar para supervisar la generación eléctrica de diferentes conjuntos de paneles solares.

Una práctica recomendada para interpretar estos datos es utilizar una plataforma de IoT en la nube, donde se recopilan y presentan al operador con información sobre el rendimiento y sugerencias de mantenimiento. Se menciona el TRB140 como una opción común para este propósito, gracias a su conectividad segura a través de redes celulares 4G LTE y su interfaz de usuario intuitiva. Además, el TRB140 ofrece características avanzadas de RutOS, como servicios VPN múltiples y soporte para diversos protocolos industriales y de gestión remota como Modbus TCP, MQTT, entre otros.

Beneficios de usar el TRB140 de Teltonika

El TRB140 es un dispositivo IoT ultrapequeño, liviano y energéticamente eficiente que cuenta con opciones de conectividad LTE Cat 4 y Gigabit Ethernet, ideales para aplicaciones críticas. Con su entorno Linux, proporciona un alto nivel de personalización, convirtiéndolo en la opción perfecta para proyectos que requieren conectividad segura y confiable a Internet en un solo dispositivo.

  • Fácil de expandir: Con el Sistema de Gestión Remota (RMS) de Teltonika, es posible configurar un número ilimitado de dispositivos TRB140 en cuestión de minutos.
  • Bajo consumo energético: El TRB140 consume solo 2W de potencia durante la transmisión de datos a máxima velocidad y tan solo 0,4W en reposo con conexión de datos activa.
  • Gestión sencilla: A través de Teltonika RMS, puede mantener todos los TRBs actualizados con el firmware más reciente y supervisar y controlar las pasarelas cómodamente desde cualquier lugar, incluso sin necesidad de una IP pública.
  • Diseño industrial: Equipado con una carcasa robusta de aluminio, el TRB140 cuenta con un amplio rango de voltaje de alimentación soportado (9-30 VDC) y un amplio rango de temperatura de funcionamiento, desde -40°C hasta 75°C, convirtiéndolo en una opción óptima incluso en entornos adversos.

Puede consultar sus características en el siguiente enlace.

Conexión a AWS IoT

En los siguientes capítulos veremos las instrucciones sobre cómo configurar AWS IoT como Broker MQTT y cómo configurar un router o gateway como Publisher MQTT y enviar datos a este Broker AWS.

Con eso, seremos capaz de configurar cualquier otro dispositivo como un suscriptor MQTT, y escuchar cualquier información publicada por el router u otros dispositivos en este mismo broker.

Qué es AWS IoT

AWS IoT es un conjunto de servicios en la nube ofrecidos por Amazon Web Services (AWS) que facilita la conexión, el control y la administración de dispositivos IoT (Internet de las cosas). Permite a los desarrolladores crear soluciones IoT escalables y seguras al proporcionar herramientas para la recopilación, el almacenamiento y el análisis de datos generados por dispositivos conectados a Internet.

Algunas de las características principales de AWS IoT incluyen:

  1. Registro de dispositivos: Permite registrar dispositivos IoT y asignarles identidades únicas para facilitar la gestión y la autenticación.
  2. Comunicación segura: Proporciona protocolos de comunicación seguros como MQTT (Message Queuing Telemetry Transport) y HTTP, lo que garantiza la transferencia segura de datos entre dispositivos y la nube.
  3. Gestión de dispositivos: Permite la gestión remota de dispositivos IoT, lo que incluye la actualización de firmware, la configuración de parámetros y la monitorización del estado de los dispositivos.
  4. Análisis de datos en tiempo real: Permite analizar datos generados por dispositivos en tiempo real, lo que facilita la toma de decisiones rápidas basadas en información actualizada.
  5. Integración con otros servicios de AWS: Se integra con otros servicios de AWS como AWS Lambda, Amazon S3, Amazon Kinesis, Amazon DynamoDB, entre otros, para permitir el procesamiento y el almacenamiento de datos IoT de manera eficiente.

Configuración de AWS IoT

Configuración de la cuenta de AWS y los permisos

Primeramente debe configurarse la cuenta de AWS y asignarse los permisos necesarios.

 

Crear un Objeto

Un objeto IoT de AWS hace referencia a un dispositivo físico o virtual que se conecta a la plataforma de Internet de las cosas (IoT) de Amazon Web Services (AWS). AWS IoT ofrece servicios y herramientas para conectar, gestionar y controlar dispositivos IoT de manera segura y escalable en la nube.

Los objetos IoT de AWS pueden ser una amplia variedad de dispositivos, como sensores, actuadores, cámaras, medidores, vehículos, electrodomésticos inteligentes, entre otros. Estos dispositivos pueden recopilar datos del entorno físico, enviarlos a la nube y recibir comandos o actualizaciones desde la nube para realizar acciones específicas.

AWS ofrece una variedad de servicios diseñados para diferentes aspectos del desarrollo y operación de soluciones IoT, como AWS IoT Core para la conectividad segura de dispositivos, AWS IoT Device Management para la gestión remota de dispositivos, AWS IoT Analytics para el análisis de datos IoT, entre otros. Estos servicios permiten a los desarrolladores construir aplicaciones IoT robustas y escalables en la nube de AWS.

 

En primer lugar, abrir la consola de administración de AWS e inicia sesión con tus credenciales.

En la barra de búsqueda de la parte superior, busca «IoT Core» y haz clic en el primer resultado de la búsqueda. Verás una pantalla como la siguiente, abre la sección «Manage» y haz click en «Things».

A continuación, realice el siguiente procedimiento para crear un Objeto: haga clic en el botón «Create Things» → «Create single thing» → Nombre → «No shadow» →Auto-generate a new certificate (recommended)»  «Create thing».

Gestión de Certificados

Los certificados son utilizados por los Publicadores y Suscriptores para conectarse al Broker AWS MQTT.

Se le pedirá que descargue los certificados, descargue el «Device certificate», «Private key file, «Public key file» y «Amazon Root CA 1».

Mover los 4 archivos a una carpeta en la unidad C:\, para que sea fácil localizarlos. Luego, renómbralos como sigue: Mantén «AmazonRootCA1.pem» como está, el archivo xxxxx.pem.crt como device_certificate.pem.crt, el archivo xxxxx-private.pem.key como private_key.pem.key y el archivo xxxxx-public.pem.key como public_key.pem.key. Después de eso, tendrás lo siguiente:

Configuración de políticas

Las políticas son necesarias para permitir la entrada de datos en AWS.

Vuelve al HuB de AWS IoT, abre la pestaña «Secure» y haz clic en «Policies».

Realice el siguiente procedimiento: Haga clic en «Create policy» → Dele un nombre → Policy effect: allow → Policy action: * → Policy resource: * Create.

A continuación, en la misma pestaña «Secure», haz clic en certificados. Allí verás un certificado, el que has creado, selecciónalo marcando la casilla de verificación, luego ve a «Actions», y haz clic en «Attach policy».

A continuación, seleccione la política que ha creado anteriormente y haga clic en «Attach policies»

 

Obtención del endpoint

El endpoint es la dirección de host de su MQTT Broker, al que se conectarán los Publishers y Subscribers.

Puede encontrarla en la pestaña «Settings», copiarla y guardarla.

 

Con eso, el Broker MQTT está todo configurado, y puede empezar a configurar el TRB140 como Publisher.

TRB140 como Publisher MQTT

Dependiendo del modelo del equipo de Teltonika, se puede tener las siguientes opciones de fuentes de datos para enviar a través de MQTT:

  • Bluetooth
  • Wifi escáner
  • MODBUS

En esta aplicación se utilizarán los datos obtenidos a través del MODBUS.

Publicación de datos de MODBUS

Antes de enviar los datos de esas fuentes al MQTT Broker, el router/gateway necesita saber qué datos de cada fuente debe enviar:

  • Para Bluetooth, primero tienes que emparejar el dispositivo del que quieres obtener datos
  • Para los datos de WiFi escáner , primero tienes que habilitar la funcionalidad de escáner wifi
  • Para los datos MODBUS, tienes que configurar qué datos de qué esclavo MODBUS tiene que obtener el router/gateway.

Si necesitas ayuda para configurar cada funcionalidad, la Wiki de Teltonika tiene temas para cada una de ellas:  BluetoothWiFi ScannerMODBUS

A continuación, utilizará la funcionalidad «Data to server«, dentro del menú «Services».

Haga clic en el botón «Add» en la parte derecha de la página, verá el siguiente menú.

Los principales campos que tienes que rellenar son bastante sencillos, siendo los campos necesarios para la conexión con AWS MQTT Broker:

«URL / Host / Connection string» : Ahí pondremos tu AWS Endpoint

«Port» : 8883

«Topic» : Cualquier nombre que se desee

«Use TLS» : Activado

«TLS Type» : «Basado en certificado»

«CA File, Client certificate, Private key» : Ahí seleccionaremos los archivos que hemos descargado de AWS IoT HuB

Después de configurar todo, se debería tener algo similar a la pantalla de abajo. Haga clic en guardar y aplicar.

Para comprobar si la configuración está funcionando, podemos utilizar cualquier cliente MQTT, y suscribirnos al tema que hemos creado, y deberíamos ser capaz de ver los datos de la fuente que se ha seleccionado. Podemos utilizar el cliente de prueba AWS IoT MQTT para suscribirte al tema que el router/gateway estaba publicando.

 

Ejemplo: Publicación de RUT MODBUS en AWS IoT mediante MQTT

En este ejemplo el dispositivo RUT actuará como MODBUS TCP Maestro y MODBUS TCP Esclavo, por lo que el dispositivo realizará peticiones (Maestro) y se responderá a sí mismo (Esclavo). La respuesta recibida, será enviada a través de MQTT. También se pueden enviar datos desde otros dispositivos MODBUS Slave conectados al router/gateway.

Habilitación del MODBUS TCP Slave

Habilitar la opción MODBUS Esclavo en el router/gateway le permite responder a cualquier petición procedente de un MODBUS Maestro. Para ello, vaya a la página de configuración del router→Services→MODBUS→MODBUS TCP Slave. A continuación, marque la casilla «Enable» y guarde.

Habilitación de MODBUS TCP Master

Habilitar la opción MODBUS Master en el router/gateway le permite realizar peticiones específicas a cualquier esclavo de la red MODBUS. Para ello, vaya a la página de configuración del router→Services→MODBUS→MODBUS TCP Master. Haga clic en el botón «Add», y realice la siguiente configuración en la página:

«Name» : Cualquier nombre

«Slave ID» : El ID de esclavo que ha establecido en la configuración de esclavos, por defecto es 1

«IP Address»: La dirección IP LAN del router/gateway, por defecto es 192.168.1.1

«Port» : 502

«Period» : 10

«Timeout» : 5

A continuación, en la sección «Add new request», indicamos un nombre cualquiera a su solicitud y hacemos clic en el botón «Add». A continuación, realice la siguiente configuración

«Data type» : Tipo de datos de los datos que va a recibir, en este caso, el router/gateway informa de su nombre de dispositivo utilizando ASCII.

«Function» : Función del Protocolo MODBUS, en este caso, vamos a Leer registros de retención

«First register number» : Depende de su dispositivo MODBUS, en este caso, es 8

«Register count / Values» : Depende de su dispositivo MODBUS, en este caso, es 10

Guarde y aplique los ajustes.

Configuración de Datos al Servidor

Vaya a la página de configuración del router→Services→Data to server. Haz click en el botón «Add», y la configuración es básicamente la misma que la descrita en la sección «Publishing Bluetooth/Wifi scanner/Modbus data» de este artículo, sólo cambia la fuente de datos a «MODBUS data» y formatea los datos como deseemos. Deberíamos tener algo similar a esto.

 

Probando con el cliente de prueba

A continuación, puede utilizar el cliente de prueba AWS MQTT para comprobar si su configuración funciona, si todo se ha configurado correctamente, debería ver algo como esto.

 

Enlaces de interés

El presente tutorial está basado en las instrucciones originales del fabricante Teltonika para conectar al servidor de AWS IoT, que puede consultar en el siguiente enlace. Puede consultar también cómo poder conectar a otros servidores como por ejemplo Azure IoT Hub, Cumulocity o ThingWorx, en el siguiente enlace.

Además, en el siguiente enlace puede acceder a la wiki del modelo TRB140, con todos los tutoriales asociados a este dispositivo.

También puede consultar otros casos de éxito con los distintos equipos de Teltonika, enfocados en aplicaciones de energía, smart city, industria o transporte, en el siguiente enlace.

 

    Contacta con nosotros:


    Madrid: +34 91 366 01 59
    Barcelona: +34 93 224 02 83

    Bilbao: +34 94 463 60 66
    Portugal: +351 219 376 267