Ir al contenido principal

Enviar datos desde computadoras ALPON Edge a Ubidots usando MQTT

Sergio M avatar
Escrito por Sergio M
Actualizado ayer

Esta guía te guía a través del proceso de integración de las Computadoras ALPON Edge de Sixfab con Ubidots usando MQTT. Siguiendo los pasos, podrás implementar una configuración de transmisión de datos en contenedores que permita la visualización y el análisis en tiempo real de datos IoT en tu cuenta de Ubidots. Ya sea que trabajes con una Raspberry Pi o con un dispositivo edge industrial, esta integración te ayuda a enviar datos sin problemas desde el campo hacia la nube.

Requisitos Previos

  1. Cuenta de Ubidots – Si aún no tienes una cuenta, regístrate aquí para acceder a tu panel personalizado.

  2. Dispositivo Ubidots – Crea un dispositivo virtual en Ubidots para representar tu ALPON X4. Las instrucciones paso a paso se pueden encontrar aquí.

  3. Token del Dispositivo – Necesitarás un token de dispositivo para autenticar tu conexión. Obténlo siguiendo esta guía.

Una vez completados estos pasos, estaremos listos para construir la conexión.


Primeros Pasos

Para asegurar un inicio fluido, todo lo necesario debe prepararse con anticipación. Aquí está lo que se requiere:

Qué Necesitarás

Ubidots es una plataforma potente y fácil de usar para gestionar dispositivos IoT (Internet de las Cosas), visualizar datos y realizar análisis. Para integrar tu dispositivo ALPON X4 con Ubidots, primero debes crear un dispositivo en la plataforma. Este dispositivo representará los datos enviados por tu ALPON X4 y te permitirá visualizarlos a través de paneles.

1. Inicia Sesión en tu Cuenta de Ubidots

  • Abre tu navegador y ve al sitio web de Ubidots.

  • Inicia sesión con tu nombre de usuario y contraseña. Si no tienes una cuenta, puedes crear una gratis.

  • Una vez dentro, serás dirigido al panel de control de Ubidots.

Nota: Ubidots ofrece un plan gratuito, pero puedes explorar planes pagos para acceder a funciones adicionales según las necesidades de tu proyecto.

2. Navega a la Sección de Dispositivos

  • En el panel de Ubidots, localiza la pestaña "Dispositivos" en el menú superior y haz clic en ella.

  • Esto te llevará a una página que muestra los dispositivos existentes (si los hay). Para crear un nuevo dispositivo, haz clic en el botón "Crear Dispositivo" o en el ícono "+" en la esquina superior derecha.


3. Selecciona el Tipo de Dispositivo

  • Después de hacer clic en "Crear Dispositivo", Ubidots te pedirá elegir un tipo de dispositivo. Para tu ALPON X4, selecciona "Dispositivo en Blanco" ya que te permite enviar datos sin requerir una plantilla predefinida.

  • Haz clic en "Dispositivo en Blanco" y continúa.

A continuación se muestra una guía paso a paso para crear un dispositivo virtual en Ubidots. Para más detalles, consulta la guía oficial aquí: Guía de Creación de Dispositivos de Ubidots.


4. Ingresa los Detalles del Dispositivo

  • En el formulario, asigna un nombre a tu dispositivo (por ejemplo, "ALPON X4").

  • Establece una etiqueta única para la API (por ejemplo, "alpon-x4"), que se genera automáticamente pero puede editarse.

  • Haz clic en "Siguiente" para finalizar.


5. Verifica y Configura el Dispositivo

  • Después de crear el dispositivo, Ubidots te redirigirá a su página, donde podrás ver su información básica (nombre, etiqueta, fecha de creación, etc.).

  • Dependiendo de los datos que envíe tu ALPON X4, deberás definir variables. Por ejemplo, si envía datos de temperatura y humedad, crea dos variables separadas:

    1. Desde la página de Dispositivos, haz clic en tu dispositivo ALPON X4 para abrir sus detalles.

    2. Haz clic en el botón "+ Agregar Variable" o en el ícono "+" en la esquina superior derecha, luego selecciona "+ Agregar Variable" para añadir una variable Raw.

    3. Aparecerá una nueva variable llamada "Nueva variable". Haz clic en su nombre para editarla:

      • Asigna un nombre (por ejemplo, "Temperatura" para una, "Humedad" para la otra).

      • Opcionalmente, actualiza la descripción, color o etiqueta de API según sea necesario.

    4. Repite para crear ambas variables ("Temperatura" y "Humedad").

    5. Guarda los cambios, y el dispositivo estará listo para recibir datos.

6. Obtén tu Token de API

Para permitir que tu ALPON X4 envíe datos de forma segura a Ubidots, necesitarás un token de dispositivo.

Sigue estos pasos:

  • En la barra superior, ve a Dispositivos > Dispositivos.

  • Haz clic en tu dispositivo ALPON X4 para seleccionarlo.

  • En las opciones del dispositivo, haz clic en el botón "Gestionar Tokens de Dispositivo".

  • Se desplegará un panel lateral. Haz clic en el botón "+ Agregar nuevo token".

  • Asigna un nombre al token del dispositivo y selecciona uno, ambos o ninguno de los permisos disponibles (déjalo en blanco si no deseas asignar permisos).

  • Haz clic en el ícono de verificación verde para confirmar.

🚧Nota de Seguridad

Mantén tu token de API confidencial y evita compartirlo. Si el token se ve comprometido, puedes generar uno nuevo.

Para más detalles sobre la gestión de tokens, consulta esta guía: Seguridad en Ubidots: Gestión de Tokens de Dispositivo.

Una vez completada la preparación, la conexión se podrá establecer fácilmente.



Paso 1: Crear la Imagen de Docker

Para asegurar que nuestro script se ejecute de forma consistente en diferentes entornos, usaremos Docker para empaquetarlo. Sigue estos pasos para crear un Dockerfile:

  1. Abre una terminal y crea un nuevo directorio para tu proyecto.

  2. Dentro del directorio, crea un nuevo archivo llamado Dockerfile y agrega el siguiente contenido:

    Dockerfile

    FROM python:3.11-slim

    RUN pip install --no-cache-dir paho-mqtt

    WORKDIR /app

    COPY send_to_ubidots.py .

    CMD ["python", "send_to_ubidots.py"]

Este archivo le indica a Docker que debe:

  • Usar una imagen ligera de Python 3.11

  • Instalar la librería MQTT (paho-mqtt)

  • Configurar un directorio de trabajo

  • Copiar nuestro script de Python dentro del contenedor

  • Ejecutar el script cuando se inicie el contenedor



Paso 2: Escribir el Script del Cliente MQTT

Ahora, vamos a crear el script en Python que enviará los datos a Ubidots.

  1. En el mismo directorio que tu Dockerfile, crea un nuevo archivo llamado send_to_ubidots.py.

  2. Copia y pega el siguiente código en el archivo:

    Python

    import time
    import os
    from paho.mqtt import client as mqtt_client

    broker = 'industrial.api.ubidots.com'
    port = 1883
    topic = f"/v1.6/devices/{os.getenv('DEVICE_NAME', 'default_device_name')}"
    client_id = "alpon_x4_client"
    username = os.getenv('API_TOKEN', 'default_api_token')
    password = ""

    def connect_mqtt():
    def on_connect(client, userdata, flags, rc):
    if rc == 0:
    print("¡Conectado al corredor MQTT!")
    else:
    print(f"Error al conectar, código de retorno {rc}\n")

    client = mqtt_client.Client(client_id)
    client.username_pw_set(username, password)
    client.on_connect = on_connect
    client.connect(broker, port)
    return client

    def publish(client):
    while True:
    time.sleep(2)
    msg = '{"temperature": 25, "humidity": 60}'
    result = client.publish(topic, msg)
    status = result[0]
    if status == 0:
    print(f"Enviado: {msg}")
    else:
    print(f"Error al enviar mensaje al tema {topic}")

    def run():
    client = connect_mqtt()
    client.loop_start()
    publish(client)

    if __name__ == '__main__':
    run()

Este script hará lo siguiente:

  • Conectarse al corredor MQTT de Ubidots

  • Enviar continuamente datos de temperatura y humedad cada 2 segundos

  • Imprimir un mensaje cada vez que los datos se envíen correctamente



Paso 3: Construir y Subir el Contenedor al Registro de Sixfab

Después de configurar el Dockerfile, usa el comando de compilación de Docker para crear la imagen del contenedor.

Para desplegar el contenedor en el ALPON X4, la imagen debe compilarse en tu computadora personal para la arquitectura ARM64.

Shell

docker buildx build --platform=linux/arm64 -t ubidots-mqtt-client:latest .

Esto creará una imagen llamada ubidots-mqtt-client, optimizada para la arquitectura ARM64 del ALPON X4.

Subir al Registro de Sixfab:

  • Inicia sesión en la plataforma Sixfab Connect y navega hasta la página del Registro de Sixfab

  • Haz clic en + Add Container y sigue las instrucciones para subir el contenedor al registro de Sixfab.

    📘Gestionar y Desplegar Aplicaciones

    Visita la página Gestionar y Desplegar Aplicaciones para todos los detalles necesarios sobre cómo subir tu imagen de contenedor al Registro de Sixfab.



Paso 4: Despliegue

Una vez que la imagen del contenedor esté cargada en el registro de Sixfab Connect, despliega de la siguiente manera:

  1. Ve a la sección Aplicación de tu activo en Sixfab Connect.

  2. Haz clic en el botón + Deploy para configurar y desplegar el contenedor.

  3. En la ventana Deploy Container, usa la siguiente configuración:

    • Nombre del Contenedor: Ingresa el nombre de la aplicación (por ejemplo, "ubidots-mqtt-client").

    • Imagen: Selecciona la imagen del contenedor de Ubidots y la etiqueta que subiste al Registro de Sixfab.

    • Entorno: Haz clic en "+ Add More" en la sección de entorno y agrega los siguientes valores:

      KeyValueAPI_TOKEN<tu-token-aquí>DEVICE_NAME<tu-nombre-de-dispositivo-aquí>


    • Haz clic en el botón "+ Deploy" para comenzar a ejecutar el contenedor en el ALPON X4.



Paso 5: Ver Datos en Ubidots

Ahora que todo está configurado, es momento de verificar que nuestro dispositivo esté enviando datos correctamente a Ubidots.

  1. Inicia sesión en tu cuenta de Ubidots.

  2. Ve a la sección de Dispositivos.

  1. Selecciona tu dispositivo (por ejemplo, ALPON_X4).

  2. Verifica si los datos de temperatura y humedad aparecen en tiempo real.

Si ves que los datos fluyen, ¡felicidades!🎉 Tu ALPON X4 ahora está conectado exitosamente a Ubidots.

¿Ha quedado contestada tu pregunta?