Ir al contenido principal
Todas las coleccionesConecta tus dispositivos
Conectando Azure IoT Hub con Ubidots. Parte I: Enviando datos desde IoT Hub a Ubidots
Conectando Azure IoT Hub con Ubidots. Parte I: Enviando datos desde IoT Hub a Ubidots

Este artículo explora cómo redirigir los datos de su dispositivo en Azure IoT Hub a Ubidots.

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de 2 meses
image.png

Requisitos

1. Crear una cuenta de Azure IoT Hub

  • Inicia sesión en tu cuenta de Microsoft Azure.

  • Haz clic en IoT Hub. Si no se muestra, puedes buscarlo en la barra de búsqueda en la parte superior de la pantalla.

Component 6(1).png
  • Haz clic en “Crear”.

Component 7.png
  • Completa los detalles del proyecto IoT Hub de la siguiente manera:

    • Suscripción: Selecciona tu suscripción de Azure.

    • Grupo de recursos: Haz clic en el botón “Crear nuevo”. Se mostrará una pequeña ventana, ingresa un nombre significativo y haz clic en el botón “OK”. Este es el grupo de recursos en el que colocarás todos los demás recursos, así que tenlo en cuenta. Lo nombramos como “UbidotsIoTHubResources”.

    • Nombre del IoT Hub: establece cualquier nombre que consideres apropiado. Lo nombramos "UbidotsIotHub".

    • Región: Elige cualquier región que se ajuste a tus necesidades. Lo único que debes tener en cuenta es que tendrás que crear todos los recursos posteriores en esta misma región. En este artículo, se seleccionó “Central US”.

    • Haz clic en “Revisar + crear”.

    • Haz clic en “Crear”.

      Component 8(1).png
  • Serás llevado a una nueva página, como la siguiente. Espera hasta que la implementación finalice y haz clic en el botón “Ir al recurso”, esto te llevará a tu IoT Hub recién creado.

    Component 9(1).png

2. Crear un dispositivo en Azure IoT Hub

  • Una vez en tu Azure IoT Hub recién creado, haz clic en “Dispositivos” en el lado izquierdo de la pantalla.

  • Haz clic en “+ Agregar dispositivo”.

    Component 10.png
  • Establece un nombre para tu dispositivo. Lo nombramos “raspberry-simulator”. Sin embargo, puedes elegir cualquier nombre.

  • Haz clic en el botón “Guardar”.

    Component 11(1).png
  • Se cargará una nueva página donde podrás ver todos tus dispositivos creados. Haz clic en el dispositivo que acabas de crear.

  • Copia la “Cadena de conexión primaria” en un bloc de notas o en cualquier lugar de fácil acceso.

    Component 12.png

3. Crear Azure Service Bus

  • Agrega el recurso “Service Bus” buscando en la barra de búsqueda en la parte superior de la pantalla o utilizando el botón “+ Crear un recurso”, tal como en el primer paso cuando creaste el IoT Hub.

  • Haz clic en “+Crear”.

    Component 13.png
  • Completa los siguientes campos de la siguiente manera:

    • Suscripción: Elige tu suscripción activa de Azure.

    • Grupo de recursos: Elige el mismo grupo de recursos que utilizaste para el recurso IoT Hub. Si has estado siguiendo la misma nomenclatura, entonces debería ser “UbidotsIoTHubResources”.

    • Nombre del espacio de nombres: establece cualquier nombre que consideres apropiado. En este artículo, se estableció como “UbiNameSpace”.

    • Ubicación: Elige la misma ubicación en la que colocaste tu primer recurso. En este caso, es “Central US”.

    • Nivel de precios: Elige cualquier plan que se ajuste a tus necesidades.

  • Haz clic en “Revisar + crear”.

  • Haz clic en “Crear”.

    Component 14.png
  • Espera a que la implementación finalice.

  • Haz clic en “Ir al recurso”.

Component 15.png
  • Haz clic en “+ Cola”.

  • Establece un nombre apropiado para tu Cola. En este artículo se estableció como “ubiqueue”, sin embargo, puedes elegir cualquier nombre que desees.

  • Establece “Máximo número de entregas” de acuerdo a tus necesidades de tráfico.

  • Deja todos los demás parámetros como sus opciones predeterminadas.

  • Haz clic en el botón “crear”.

  • Espera a que la Cola sea creada.

    Component 16.png
  • Desplázate hacia abajo hasta que encuentres tu Cola recién creada y haz clic en ella.

  • Haz clic en "Políticas de acceso compartido".

  • Haz clic en “+ Agregar”.

  • Establece un nombre para tu política.

  • Marca la opción “Administrar”.

  • Haz clic en “Crear”.

    Component 18.png

4. Crear un Endpoint y Regla de Enrutamiento

  • Ve a tu cuenta de Ubidots y crea una UbiFunction. Su método debe ser “POST” y el tiempo de ejecución “Python”. Puedes nombrarla como desees. Visita este enlace para saber más sobre esto.

  • Copia la “URL del endpoint HTTP de la función”. Esta información se utilizará en pasos posteriores.

  • Regresa a tu IoT Hub.

  • Busca “Enrutamiento de mensajes” en el menú del lado izquierdo de la pantalla.

  • Haz clic en la pestaña “Endpoints personalizados”.

  • Haz clic en “Agregar”.

  • Haz clic en “Cola de Service Bus”.

    Component 19(2).png
  • Establece un nombre para tu endpoint de acuerdo a tus necesidades.

  • Elige el “espacio de nombres de Service Bus” creado en los pasos anteriores.

  • Elige la “cola de Service Bus” creada en los pasos anteriores.

  • Deja todas las demás configuraciones como están y haz clic en “Crear”.

Component 20.png
  • Regresa nuevamente a Azure IoT Hub.

  • Haz clic en “Enrutamiento de mensajes”.

  • Haz clic en la pestaña “Rutas”.

  • Haz clic en “Agregar”.

    Component 21.png
  • Establece un nombre para la ruta.

  • En la sección “Endpoint”, elige el endpoint creado anteriormente.

  • Como “Fuente de datos” elige “Mensajes de telemetría del dispositivo”.

  • Asegúrate de que “Consulta de enrutamiento” esté configurado como “true”.

  • Haz clic en el botón “Guardar”.

    Component 22.png

5. Crear Azure Logic App

  • Ve a la barra de búsqueda en la parte superior de la pantalla y busca “Logic apps”.

  • Haz clic en “Agregar”.

    Component 23.png
  • Completa la siguiente información de acuerdo a:

    • Suscripción: Selecciona tu suscripción previamente utilizada.

    • Grupo de recursos: Elige el mismo grupo de recursos que en los pasos anteriores.

    • Nombre de la Logic App: Establece cualquier nombre que consideres apropiado.

    • Región: Selecciona la misma región que has estado eligiendo para todos los recursos anteriores.

    • Habilitar análisis de registros: Marca esta opción de acuerdo a tus necesidades.

    • Tipo de plan: Selecciona esta opción de acuerdo a tus necesidades.

  • Haz clic en “Revisar + crear”.

  • Haz clic en “Crear”.

    Component 24.png
  • Espera a que se complete la implementación del recurso.

  • Haz clic en “Ir al recurso”.

    Component 25.png
  • Desplázate hacia abajo hasta que encuentres el “Blank Logic App” y haz clic en él.

    Component 26.png
  • Usa la barra de búsqueda para buscar “Service Bus” y haz clic en él.

    Component 27.png
  • Selecciona la opción “Cuando uno o más mensajes lleguen a una cola”.

    Component 28.png
  • Para “Nombre de la cola”, selecciona la cola creada en los pasos anteriores. Si has estado siguiendo la nomenclatura de este artículo, debería ser “ubiqueue”.

  • Para “Número máximo de mensajes”, selecciónalo de acuerdo a tus necesidades.

  • Para “Con qué frecuencia deseas verificar elementos”, selecciona la frecuencia que se ajuste a tus necesidades.

  • Haz clic en “+ Nuevo paso”.

    Component 29.png
  • Usa la barra de búsqueda para buscar “HTTP" y haz clic en él.

    Component 30.png
  • Haz clic en la opción “HTTP”.

    Component 31.png
  • Selecciona el método HTTP como “POST”.

  • En el campo de URL, completa con la “URL del endpoint HTTP de la función”, como se obtuvo en el primer paso de esta sección.

  • Agrega tanto el encabezado “x-auth-token” como tu token de Ubidots en la sección correspondiente.

  • Haz clic en la sección “Cuerpo” y arrastra el bloque “Contenido” hacia ella.

  • Haz clic en “Guardar”.

    Component 32(1).png

6. Configurar el Decodificador de Ubidots

  • Ve a la UbiFunction creada en el paso 4, específicamente a su sección Decodificador.

  • Elimina todo el código allí y pega lo siguiente:

import requestsimport timeimport base64 import jsonBASE_URL = "https://industrial.api.ubidots.com"device = "Raspberry-pi-4-Azure"token = "BBFF-WEplLU79KGBNVrLUt3lGEFIuOviAOg"def main(args):        print(args)    base64_payload = args["body"]    decoded_payload = base64.b64decode(base64_payload)    decoded_payload = decoded_payload.decode('utf-8')    decoded_payload = json.loads(decoded_payload)    ubidots_payload = {}    ubidots_payload["temperature"] = decoded_payload["temperature"]    ubidots_payload["humidity"] = decoded_payload["humidity"]    timestamp = decoded_payload["timestamp"]    res = send_data(device, ubidots_payload, token, **{"timestamp":timestamp})    ##return {"status": res.status_code, "text": res.text}    return buildResponse(200,"successfull request")    return buildResponse(res.status_code, res.text)    def buildResponse(status_code, output_text):    return {                "status_code": status_code,                "headers": {"Content-Type": "plain/text"},                "body": f"{output_text}",            }          def 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 res      def 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
  • Haz clic en el botón “Hacerlo en vivo”.

7. Configurar el Simulador de Raspberry Pi

  • Ve al siguiente enlace.

  • Edita la línea 15 y, allí, establece la “Cadena de conexión primaria” de tu dispositivo como se obtuvo en la sección 2.

  • Agrega lo siguiente debajo de la línea 31: timestamp:

timestamp: Date.now(),
  • Debería verse así:

    Component 34.png
  • Haz clic en “Ejecutar” para comenzar a enviar datos a Azure y, en última instancia, a Ubidots.

8. Verificar la ingestión de datos tanto en Azure como en Ubidots

  • Ve a Azure.

  • Ve a la Logic App creada en el paso 5.

  • Haz clic en la pestaña “Historial de ejecuciones”.

  • Verifica que la aplicación haya sido activada.

    Component 35.png
  • Regresa a Ubidots → Dispositivos y podrás ver un dispositivo llamado “raspberry-pi-4-azure” (si seguiste la nomenclatura).

    Component 36.png

9. Comentarios, Sugerencias y Artículos Relacionados

No dudes en publicar preguntas o sugerencias en nuestro portal de la comunidad, o contáctanos a través de support@ubidots.com.


Otros usuarios también encontraron útil...

¿Ha quedado contestada tu pregunta?