Ir al contenido principal
Todas las coleccionesGuías de desarrollador
Conectando Azure IoT con Ubidots (Parte I) [OBSOLETO]
Conectando Azure IoT con Ubidots (Parte I) [OBSOLETO]

Cómo configurar Azure IoT para enviar datos a Ubidots

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

NOTA IMPORTANTE

ESTE ARTÍCULO FUE DEPRIMIDO EL 5 DE ENERO DE 2023.


Ubidots tiene muchas características preconstruidas diseñadas para llevarte más rápido al mercado, incluyendo una interfaz de usuario que está lista para ser presentada a tus clientes finales. Si los requisitos de tu proyecto exigen una capa adicional de backend, entonces Microsoft Azure IoT ofrece herramientas adicionales para impulsar tu proyecto, incluyendo:

  • Gestión de dispositivos (Reiniciar, Restablecer, Configurar, Actualizar, Estado)

  • Conectividad de dispositivos incl. protocolos MQTT y AMQP

  • Procesamiento de datos y análisis predictivo

  • Automatizaciones de flujo de trabajo e integraciones

Antes de comenzar con Azure, te recomendamos que consultes la "Introducción del desarrollador a Azure IoT." Consulta esta referencia para la documentación de Azure.

En este artículo, mostraremos cómo se puede construir una solución IoT trabajando con la integración de recursos de Azure y Ubidots. Simularemos un dispositivo usando node.js como ejemplo. Recomendamos seguir todo este tutorial utilizando esta simulación y luego aplicar el conocimiento adquirido para conectar tu propio dispositivo a Azure.

Tabla de Contenidos

Configuración de Microsoft Azure...

  1. Grupo de Recursos

  2. Crear un IoT Hub

  3. Registrar un dispositivo

  4. Configurar tu dispositivo

  5. Crear un espacio de nombres de Service Bus y agregar una cola

  6. Agregar un endpoint y una regla de enrutamiento

  7. Crear y configurar una aplicación lógica

  8. Crear una solicitud HTTP

Enviando valores de Azure a Ubidots...

  1. Código del dispositivo de simulación Node.js

  2. Aplicación lógica

  3. Visualización

Configuración de Microsoft Azure

Azure IoT

La plataforma Azure es un servicio de computación en la nube creado por Microsoft para construir, probar, implementar y gestionar aplicaciones y servicios a través de una red global de centros de datos gestionados por Microsoft. Similar a muchos de los entornos de desarrollo que ya existen, Azure comienza con un panel de control que se adapta a tu trabajo y estilo, manteniéndote al tanto de las cosas que más importan al fijarlas en el panel de control.

Integración de Azure

Para comenzar la integración, tenemos que crear un "Grupo de recursos"; el grupo de recursos proporciona una forma de monitorear, controlar el acceso, aprovisionar y gestionar la facturación para colecciones de activos que son necesarios para ejecutar una aplicación.

  • Grupo de recursos

1.- Selecciona el ícono que se muestra en la imagen a continuación para crear el grupo de recursos:

2.- Presiona "agregar" para abrir el generador de grupos de recursos. A continuación, debes asignar un nombre al grupo de recursos, seleccionar la suscripción y la ubicación. Por favor, asigna "ubidots" como nombre; si deseas visualizar tus grupos de recursos en tu panel de control, selecciona "Fijar en el panel de control":

3.- Una vez que hayas creado el grupo de recursos, necesitas completar el proceso en la página siguiente haciendo clic en "Crear recursos". Para una mirada más profunda a los recursos, consulta este enlace a los recursos de Microsoft.

  • Crear un IoT Hub

El primer recurso que tenemos que agregar es el IoT Hub; el Azure IoT Hub es un servicio completamente gestionado que ayuda a habilitar comunicaciones bidireccionales confiables y seguras con dispositivos IoT.

1.- Busca "IoT Hub" dentro de la barra de búsqueda, luego selecciona la opción IoT Hub para abrir las opciones de creación.

En la siguiente ventana selecciona "Crear" para crear el IoT Hub:

2.- Una vez que se haya creado y abierto el generador de IoT Hub, asigna un nombre y establece los precios, unidades, grupo de recursos y ubicación de tu IoT Hub. Asegúrate de que el grupo de recursos seleccionado sea el que acabas de crear.

Consejo Profesional: consulta el siguiente enlace para la terminología específica de la configuración de Azure IoT Hub.

4.- Una vez que se haya creado el IoT Hub, copia el nombre de host y guárdalo en un bloc de notas separado para más tarde. El nombre de host crea una cadena de conexión que se comunica con tu IoT Hub. Consulta a continuación dónde identificar el nombre de host en tu Hub.

5.- A continuación, en el panel izquierdo de tu hub, encontrarás las categorías y propiedades de tu aplicación.

  • Selecciona la opción "Políticas de acceso compartido" y haz clic en la política "iothubowner".

  • Copia y guarda tu "Cadena de conexión" de tu IoT Hub en tu bloc de notas con nombre de host. Las cadenas de conexión definen los permisos para que los dispositivos y servicios se conecten a tu IoT Hub.

  • Registrar un dispositivo en el IoT Hub

1.- Abre tu IoT Hub y haz clic en "Explorador de Dispositivos" en el panel izquierdo.

Dentro de la ventana del Explorador de Dispositivos, haz clic en "Agregar" para agregar un dispositivo a tu IoT Hub; el Explorador de Dispositivos se ejecuta en tu máquina local y se conecta a tu IoT Hub en Azure. Se comunica con estos endpoints de IoT Hub.

2.- Después de seleccionar "+Agregar" (mostrado arriba), asigna los parámetros a continuación:

  • ID del dispositivo: mi-primer-dispositivo

  • Tipo de autenticación: selecciona "Clave simétrica"

  • Generar claves automáticamente: selecciona esta casilla de verificación

  • Conectar dispositivo al IoT Hub: haz clic en "Habilitar"

Consejo Profesional: Recomendamos usar la misma nomenclatura que este tutorial hasta que te sientas más cómodo asignando identificadores personalizados a tu IoT Hub. Una vez que te sientas más cómodo, siéntete libre de ajustar tu aplicación según sea necesario.

Una vez que hayas agregado todos los parámetros, presiona "Salvar."

3.- Después de que se haya creado el dispositivo, abre el Explorador de Dispositivos, selecciona el dispositivo en la parte inferior izquierda y copia la "Cadena de conexión - clave primaria" a tu bloc de notas separado. Al igual que con los identificadores anteriores, esta información será valiosa más adelante.

  • Configurar tu dispositivo

Ahora que has terminado la configuración de gestión de dispositivos en el portal de Azure de Microsoft, ahora puedes configurar un dispositivo real o simulado para verificar la comunicación D2C (dispositivo a nube).

1.- Para configurar tu dispositivo, instala los SDK de dispositivos de Azure IoT necesarios para tu dispositivo IoT elegido, ve a la documentación de Microsoft para descargar los SDK apropiados.

NOTA: Si no tienes un dispositivo IoT, no te preocupes, ya que este tutorial te guiará a través de una simulación de dispositivo usando node.js. Si deseas usar un dispositivo simulado, sigue los pasos en el enlace proporcionado a continuación y regresa a este tutorial una vez completado.

Ahora que has habilitado la aplicación de dispositivo simulado para enviar mensajes de dispositivo a nube con tu IoT Hub, ahora puedes escalar tu solución IoT.

  • Crear un espacio de nombres de Service Bus y agregar una cola

El segundo recurso que tenemos que agregar es el Service Bus. Cuando dos o más partes quieren intercambiar información, necesitan un facilitador de comunicación. Service Bus es un mecanismo de comunicación intermediado o de terceros. Siguiendo la documentación de Microsoft, el Service Bus es un servicio en la nube multi-inquilino. Cada usuario, como un desarrollador de aplicaciones, crea un espacio de nombres, luego define los mecanismos de comunicación necesarios dentro de ese espacio de nombres.

1.- Agrega un nuevo recurso en tu grupo de recursos previamente creado llamado "ubidots." Esto te llevará a una ubicación de búsqueda donde buscarás el recurso "Service Bus."

2.- Busca "Service Bus" dentro de la barra de búsqueda, luego selecciona la opción Service Bus para abrir el aviso de parámetros en el siguiente paso.

3.- Una vez que se abra el generador de Service Bus, asigna un nombre y establece los precios, suscripción, grupo de recursos y ubicación de tu IoT Hub. Asegúrate de que el grupo de recursos seleccionado sea el que se creó previamente.

  • Nombre: Decidimos llamarlo "ubidots-queue", pero la nomenclatura personalizada es apropiada cuando te sientes cómodo trabajando en el desarrollo de Azure.

  • Nivel de precios: Haz clic en Básico > Seleccionar. El nivel Básico es suficiente para este tutorial.

  • Grupo de recursos: Usa el mismo grupo de recursos que tu IoT Hub.

  • Ubicación: Usa la misma ubicación que tu IoT Hub.

Una vez que hayas asignado la información requerida, "Crea" tu Espacio de Nombres.

4.- A continuación, dentro del Service Bus presiona "+ Cola" para establecer la comunicación de datos entre el IoT Hub y una "Aplicación Lógica" que se agregará más adelante en este tutorial.

Asigna un nombre para la cola y luego haz clic en "crear" usando los parámetros apropiados de tu cola.


5.- Desde la pestaña de Recursos, abre la cola del bus de servicio y luego haz clic en Políticas de acceso compartido > + Agregar.

6.- A continuación, ingresa un nombre para la política, marca Gestionar, y luego haz clic en "Crear".

  • Agregar un endpoint y una regla de enrutamiento

La opción de endpoints y rutas contiene muchas características, pero con este tutorial la utilizaremos para integrarnos con otros servicios, como la aplicación lógica. Cuando IoT Hub recibe un mensaje, primero verifica si hay una ruta personalizada (endpoint con una regla de enrutamiento) disponible que coincida con una regla dada. Si hay una coincidencia, enviará el mensaje a ese endpoint y no al Event Hub predeterminado.

1.- Abre tu IoT Hub, haz clic en Endpoint, luego presiona "+ Agregar"

2.- En el generador de endpoints asigna los parámetros a continuación:

  • Nombre: El nombre del endpoint.

  • Tipo de endpoint: Selecciona Cola de Service Bus

  • Espacio de nombres de Service Bus: Selecciona el espacio de nombres creado previamente.

  • Cola de Service Bus: Selecciona la cola que has creado previamente.

Para finalizar, haz clic en "OK":

3.- Ahora vamos a agregar una regla de enrutamiento. En tu IoT Hub, haz clic en Rutas, luego presiona "+ Agregar".

4.- En el generador de rutas, asigna los parámetros a continuación:

  • Nombre: El nombre de la regla de enrutamiento.

  • Fuente de datos: Selecciona DeviceMessages.

  • Endpoint: Selecciona el endpoint que has creado previamente.

  • Cadena de consulta: Ingresa "true"

Para finalizar, haz clic en "Guardar"

  • Crear y configurar una aplicación lógica

El tercer recurso que tenemos que crear es la Aplicación Lógica; las aplicaciones lógicas proporcionan una forma de simplificar integraciones y flujos de trabajo en la nube.

1.- Agrega un nuevo recurso en tu grupo de recursos previamente creado llamado "ubidots"

2.- Busca "Aplicación Lógica" dentro de la barra de búsqueda, luego selecciona la opción Aplicación Lógica para abrir y crear la opción.

3.- Una vez que se abra el generador de Aplicaciones Lógicas, debes asignar un nombre y establecer los precios, suscripción, grupo de recursos y ubicación. Asegúrate de que el grupo de recursos seleccionado sea el que se creó previamente y que la ubicación sea la misma que la del IoT Hub.

  • Nombre: El nombre de la aplicación lógica.

  • Grupo de recursos: Usa el mismo grupo de recursos que tu IoT hub utiliza.

  • Ubicación: Usa la misma ubicación que tu IoT hub utiliza.

Para finalizar, simplemente haz clic en "crear".

4.- Desde la pestaña de Recursos, selecciona la aplicación lógica para abrir el Diseñador de Aplicaciones Lógicas.

En el Diseñador de Aplicaciones Lógicas, desplázate hacia abajo y haz clic en Aplicación Lógica en Blanco:

5.- Busca y selecciona "Service Bus":

Luego, actívalo con el desencadenador específico titulado: "Service Bus - Cuando uno o más mensajes llegan a una cola (completar automáticamente)"

6.- A continuación, ingresa un nombre de conexión y selecciona el servicio de bus creado previamente:

Luego "Crea" tu acción.

Una vez que hayas creado la conexión del bus de servicio, selecciona la cola que se creó recientemente e ingresa 175 para el conteo máximo de mensajes. Optamos por 175 para este tutorial, pero si se necesita un conteo de mensajes mayor o menor en tu aplicación, ajústalo adecuadamente.

Luego, haz clic en el botón "Guardar" para guardar estos cambios.

  • Crear una solicitud HTTP para la transmisión de datos

1.- Crea una solicitud HTTP para enviar datos a Ubidots. Trabajando desde el Diseñador de Aplicaciones Lógicas del paso anterior, crea toda la solicitud HTTP seleccionando "+ Nuevo Paso".

En el clic Nuevo paso > Agregar una acción, busca "HTTP" dentro de la barra de búsqueda como puedes ver a continuación, luego selecciona la opción HTTP:

Selecciona la primera opción "HTTP - HTTP":

Ahora debes asignar los parámetros necesarios para hacer la solicitud HTTP a Ubidots.

  • Método: POST

  • Url: https://things.ubidots.com/api/v1.6/devices/azure

  • Encabezados:

  1. x-auth-token | Token de Ubidots

  2. content-type | application/json

  • Cuerpo: Contenido

NOTA: Si no sabes cómo obtener tu TOKEN de Ubidots, consulta este artículo Cómo obtener tu TOKEN de Ubidots. Para más documentación sobre la referencia de la API de Ubidots haz clic aquí.

Una vez que tus parámetros estén ingresados y sean precisos, "Guarda" y "Ejecuta" tu Aplicación Lógica.

Probando tu configuración con Node.js

Como se mencionó anteriormente, decidimos usar un dispositivo simulado usando node.js. Recomendamos comenzar con la guía a continuación y el código a continuación que sirve como práctica antes de la configuración de tu dispositivo real:

1.- Una vez que hayas terminado la configuración de simulación del dispositivo anterior y seas capaz de manejar datos con tu IoT Hub, modifica el código llamado "SimulatedDevice.js" con el código a continuación. Recuerda asignar la cadena de conexión del dispositivo guardada de tu bloc de notas en el código a continuación.

Nota: Si estás trabajando con un dispositivo en vivo, por favor utiliza los SDK de tu dispositivo elegido con este enlace.

'use strict';var clientFromConnectionString = require('azure-iot-device-mqtt').clientFromConnectionString;var Message = require('azure-iot-device').Message;var connectionString = '{Tu cadena de conexión del dispositivo}';var client = clientFromConnectionString(connectionString);function printResultFor(op) {  return function printResult(err, res) {    if (err) console.log(op + ' error: ' + err.toString());    if (res) console.log(op + ' status: ' + res.constructor.name);  };}var connectCallback = function (err) {  if (err) {    console.log('No se pudo conectar: ' + err);  } else {    console.log('Cliente conectado');    // Crea un mensaje y envíalo al IoT Hub cada segundo    setInterval(function(){        var temperature = 20 + (Math.random() * 15);        var humidity = 60 + (Math.random() * 20);	var data = JSON.stringify({ temperature: temperature, humidity: humidity });        var message = new Message(data);        console.log("Enviando mensaje: " + message.getData());        client.sendEvent(message, printResultFor('send'));    }, 5000);  }};client.open(connectCallback);

Una vez que hayas modificado el código con el nuevo, ejecuta tu nuevo código en la terminal de tu computadora usando el siguiente comando: node SimulatedDevice.js .Deberías ver la respuesta a continuación en tu terminal, si es exitoso.

Ahora estás enviando valores de temperatura y humedad a Azure, por favor ve a la Aplicación lógica para visualizar los mensajes recibidos y el estado de la solicitud HTTP a Ubidots.

2.- En la vista general de la aplicación lógica podrás monitorear y verificar el historial de ejecución y desencadenadores de tu aplicación lógica. Para aprender más sobre el estado de tu aplicación lógica o el historial de ejecución y desencadenadores, consulta solucionar problemas de tu aplicación lógica.

Al seleccionar un mensaje de tu historial de ejecución, puedes verificar la ENTRADA y la SALIDA de la solicitud HTTP a Ubidots:

Como puedes ver arriba, el código de estado de la salida es 200 lo que significa Ok – Solicitud exitosa.

3.- Para visualizar los datos recibidos en Ubidots, ve a tu cuenta de Ubidots y selecciona la sección de dispositivos. Aquí verás un nuevo dispositivo llamado "azure".

Resultado

Esta guía nos introduce al mundo de Azure IoT que proporciona muchos recursos y características para tus soluciones de Internet de las Cosas.

En este tutorial aprendimos cómo enviar datos desde Azure a Ubidots. Para lograr una comunicación bidireccional, por favor consulta nuestro próximo artículo para ver cómo enviar datos desde Ubidots a Azure IoT, donde también aprenderás cómo almacenar los datos recibidos de Ubidots en un almacenamiento de datos SQL en el camino.

Feliz Hacking :)

¿Ha quedado contestada tu pregunta?