Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Serie Advantech: conectar el gateway IoT ECU-1051 a Ubidots usando MQTT
Serie Advantech: conectar el gateway IoT ECU-1051 a Ubidots usando MQTT

Aprende a conectar el gateway IoT ECU-1051 de Advantech y simular datos para enviarlos a Ubidots a través de MQTT.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de una semana

Requisitos

1. Configura el gateway y el entorno de desarrollo

  • Conecta la ECU-1051 a la fuente de alimentación.

  • Conecta la ECU-1051 a tu router (LAN) usando un cable Ethernet.

  • Descarga e instala Advantech EdgeLink Studio desde el enlace proporcionado en la sección de Requisitos.


Consejo: cada puerto LAN en el gateway tiene un LED de estado que confirmará si el dispositivo está correctamente conectado al router y si está correctamente alimentado.


2. Crea el Proyecto

Abre la utilidad Advantech EdgeLink Studio. Busca el ícono que se asemeja a una pantalla de computadora en la parte inferior izquierda de la pantalla, haz clic en él y luego dirígete a la opción "Buscar":

Una vez que el gateway haya sido encontrado, la utilidad la mostrará junto con su dirección IP. Copia esta dirección para usarla más tarde. Se verá así:

Dirígete al ícono que se asemeja a un martillo y luego a la esquina superior izquierda a la opción "Crear Proyecto"; aparecerá una ventana donde debes poner el nombre de tu proyecto, autor y descripción, dejando la ruta en su configuración predeterminada. Cuando hayas terminado de llenar los campos, presiona el botón "OK" para guardar los cambios.

El proyecto se mostrará en la pestaña "Configuración del Proyecto". Haz clic derecho sobre él y luego haz clic en "Agregar Dispositivo".

Luego aparecerá una nueva ventana donde deberás configurar los siguientes parámetros:

  • Nombre: Nombre del proyecto actual.

  • Modelo: Selecciona ECU-1051TL-R10A de la lista que se mostrará.

  • Contraseña: No cambies nada en este campo.

  • Identidad: Cambia de "Node ID" a "Dirección IP".

  • Dirección IP: Ingresa la dirección IP que copiaste anteriormente (al buscar el dispositivo).

  • Zona Horaria: Configura la zona horaria según tu ubicación geográfica.

  • Descripción (opcional): Establece una descripción significativa para tu proyecto.

Cuando hayas terminado, presiona el botón "Aplicar" para guardar los cambios.

Las dos imágenes siguientes muestran los pasos mencionados anteriormente:

Como notarás, todas las carpetas del proyecto se muestran ahora en la pestaña "Configuración del Proyecto":

3. Crea las etiquetas I/O para enviar datos simulados

Esta guía simulará tres dispositivos diferentes que transmiten datos a el gateway utilizando la funcionalidad "Etiqueta de Usuario": un sensor de temperatura, un sensor de humedad y el estado de un motor.

Para hacerlo, dirígete a "Centro de Datos" → "Etiqueta de Usuario" → "Agregar...". Allí, deberás configurar:

  • Nombre: boilerTemperature

  • Tipo de Datos: Analógico.

  • Valor Inicial: Puedes establecer cualquier valor.

  • Lectura/Escritura: Deja esta opción como está por defecto.

  • Descripción: Esto es opcional.

Después de llenar los campos, presiona el botón "Ok" para guardar los cambios.


[Opcional]

Crea las otras dos variables:

Nombre de la variable

Tipo de Datos

motorStatus

Discreto

boilerHumidity

Analógico

Puedes establecer cualquier valor inicial que desees y también dejar "Lectura/Escritura" como está.

4. Envía datos a Ubidots

Es hora de manipular el endpoint al que el gateway está publicando para analizar los datos. Dirígete a tu cuenta de Ubidots → "Dispositivos" → "Funciones" y crea una nueva UbiFunction haciendo clic en el ícono "+". La ventana debería verse así:

Edita el nombre de la función a "mqttadvantech", establece el "Método" en POST, selecciona "Python 3.7" como tiempo de ejecución y en la sección de "Token" establece "Token Predeterminado". Finalmente, elimina todo el código y pega el siguiente teniendo en cuenta que debes editar la variable "token" para que coincida con tu Token de Ubidots:

import requestsfrom datetime import datetime as dtBASE_URL = "https://industrial.api.ubidots.com"token = 'PON-TU-TOKEN-AQUÍ'def main(args: dict = {}):    data = args["payload"]["d"]    date_str = args["payload"]["ts"]    timestamp = int(dt.strptime(date_str, "%Y-%m-%dT%H:%M:%S%z").timestamp()*1000)        device_label = args["topic"].split("/")[4]    payload = parse_advantech_data(data)                print(device_label)    res = send_data(device_label, payload, token, **{"timestamp":timestamp})    return {"status": res.status_code, "text": res.text}def parse_advantech_data(data):    payload = {}    for tag in data:        var_label = tag["tag"]        value = tag["value"]        payload[var_label] = {            "value": value        }      return payloaddef send_data(device, payload, token, **params):    url = f"{BASE_URL}/api/v1.6/devices/{device}/"    headers = {"X-Auth-Token": token, "Content-Type": "application/json"}    res = make_request("post", url, headers=headers, params=params, body_json=payload, attempts=5)    return resdef make_request(    method,    url,    params=None,    headers=None,    body=None,    body_json=None,    attempts=1,    timeout=10,):    """    Function to make a request with timeout and retries    """    req_session = requests.Session()    req_adapter = requests.adapters.HTTPAdapter(max_retries=attempts)    req_session.mount("https://", req_adapter)    response = req_session.request(        method=method.upper(),        url=url,        params=params,        headers=headers,        data=body,        json=body_json,        timeout=timeout,    )    req_session.close()    response.raise_for_status()    return response

5. Configura el MQTT

El siguiente paso es configurar los parámetros MQTT y para hacerlo, dirígete a "Cloud" → "SimpleMQTT". Luego aparecerá una nueva pestaña y en ella tendrás que desplazarte hacia abajo y editar los siguientes ajustes:

  • Habilitar: Marca la casilla para habilitar la configuración de MQTT.

  • Host: functions.ubidots.com

  • Nombre de Usuario: El nombre de usuario de tu cuenta de Ubidots.

  • Contraseña: Tu Token de Ubidots.

  • Tópico de Datos: /prv/<tu-nombre-de-usuario-ubidots>/mqttadvantech/gatewayadvantech

  • Período de Publicación: Cualquier período de publicación que desees, ten en cuenta que esta variable se expresa en segundos.

Después de llenar todos los campos mencionados, dirígete a "Nombre de la Etiqueta" y, justo debajo, encontrarás un texto que dice "Haz doble clic para editar". Hazlo y luego aparecerá una pantalla donde deberás seleccionar qué etiquetas se van a publicar a través de MQTT: dirígete a la sección de "Etiquetas de Usuario" y selecciona todas las etiquetas que creaste para este propósito, luego presiona el botón "OK" y luego "Aplicar".

Como se mencionó antes, esta guía emula tres variables diferentes, por lo que esta parte podría diferir un poco de la tuya:

Después de aplicar la configuración de MQTT, puedes colapsar todas las subcarpetas del proyecto mientras dejas seleccionada el gateway. Luego presiona "Guardar", seguido de "Descargar Proyecto" para cargar el firmware en el gateway:

Aparecerá la siguiente ventana. En ella, selecciona "Forzar Descarga", presiona "Descargar" y el firmware comenzará a cargarse en el gateway. Es posible que aparezca un mensaje emergente preguntando sobre la instalación de controladores de hardware adicionales, acéptalo y deja que finalice la carga.

Eso es todo en el lado del hardware. Ahora vamos a programar un poco.

6. Visualiza los datos en Ubidots

Dirígete a la sección de "Dispositivos" en tu cuenta de Ubidots, donde verás un dispositivo etiquetado como "gatewayadvantech" con datos ingresando.

¿Ha quedado contestada tu pregunta?