Tutorial: Supervisión de dispositivos IoT y envío de notificaciones con Azure Logic Apps

Use Azure Logic Apps para supervisar la telemetría del dispositivo entrante desde IoT Hub y enviar notificaciones cuando se desencadenen alertas.

End-to-end diagram

Azure Logic Apps puede ayudarle a orquestar flujos de trabajo entre servicios locales y en la nube, múltiples empresas y varios protocolos. Una aplicación lógica comienza con un desencadenador, seguido de una o varias acciones que se pueden secuenciar mediante controles integrados, como condiciones e iteradores. Esta flexibilidad hace que Logic Apps sea una solución de IoT ideal para los escenarios de supervisión de IoT. Por ejemplo, la llegada de los datos desde un dispositivo en un punto de conexión de IoT Hub puede iniciar flujos de trabajo de aplicaciones lógicas para almacenar los datos en un blob de Azure Storage, enviar alertas por correo electrónico para avisar de anomalías de datos, programar una visita del técnico si un dispositivo notifica un error, etc.

En este tutorial se realizan las siguientes tareas:

Cree una cola de Service Bus. Cree una ruta en el centro de IoT que envíe mensajes a la cola de Service Bus si los mensajes contienen lecturas anómalas de temperatura. Cree una aplicación lógica que busque mensajes que lleguen a la cola y envíe una alerta de correo electrónico.

El código de cliente que se ejecuta en el dispositivo establece una propiedad de aplicación, temperatureAlert, en cada mensaje de telemetría que le envía al centro de IoT. Cuando el código de cliente detecta una temperatura por encima de un umbral determinado, establece esta propiedad en true; de lo contrario, establece la propiedad en false.

Los mensajes que llegan al centro de IoT son similares al siguiente, con los datos de telemetría en el cuerpo y la propiedad temperatureAlert en las propiedades de la aplicación (no se muestran las propiedades del sistema):

{
  "body": {
    "messageId": 18,
    "deviceId": "Raspberry Pi Web Client",
    "temperature": 27.796111770668457,
    "humidity": 66.77637926438427
  },
  "applicationProperties": {
    "temperatureAlert": "false"
  }
}

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos

Prepare los siguientes requisitos previos antes de comenzar este tutorial.

Crear un espacio de nombres de Service Bus y una cola

Cree un espacio de nombres de Service Bus y una cola. Más adelante en este artículo, creará una regla de enrutamiento en su centro de IoT para dirigir los mensajes que contengan una alerta de temperatura a la cola de Service Bus. Una aplicación lógica supervisa la cola de mensajes entrantes y envía una notificación para cada alerta.

Creación de un espacio de nombres de Service Bus

  1. En Azure Portal, use la barra de búsqueda para buscar y seleccionar Service Bus.

  2. Seleccione Crear para crear un espacio de nombres de Service Bus.

  3. En el panel Crear espacio de nombres, proporcione la siguiente información:

    Parámetro Valor
    Suscripción Elija la misma suscripción que contiene el centro de IoT.
    Grupo de recursos Elija el mismo grupo de recursos que contiene el centro de IoT.
    Nombre del espacio de nombres Proporcione un nombre para el espacio de nombres de Service Bus. El nombre debe ser único en todo Azure.
    Ubicación Elija la misma ubicación que usa el centro de IoT.
    Plan de tarifa Seleccione Básica de la lista desplegable. El nivel Básico es suficiente para este tutorial.
  4. Seleccione Revisar + crear.

  5. Seleccione Crear.

  6. Espere a que se complete la implementación y seleccione Ir al recurso.

Agregar una cola de Service Bus al espacio de nombres

  1. En la página de Información general de su espacio de nombres de Service Bus, seleccione Cola.

    Screenshot of the namespace overview page to add a queue.

  2. En el campo Nombre, proporcione un nombre para la cola. Acepte los valores predeterminados para los demás campos y seleccione Crear.

  3. En el espacio de nombres de Service Bus, seleccione Directivas de acceso compartido en la sección Configuración del menú de recursos.

  4. Seleccione la directiva RootManageSharedAccessKey para abrir sus detalles.

  5. Copie el valor de Cadena de conexión principal y guárdelo para usarlo más adelante en este tutorial cuando configure la aplicación lógica.

Agregar un punto de conexión personalizado y una regla de enrutamiento al centro de IoT

Agregue un punto de conexión personalizado para la cola de Service Bus al centro de IoT. A continuación, cree una regla de enrutamiento de mensajes para dirigir los mensajes que contienen una alerta de temperatura a ese punto de conexión, donde la aplicación lógica los recoge. La regla de enrutamiento usa una consulta de enrutamiento, temperatureAlert = "true", para reenviar los mensajes según el valor de la propiedad de aplicación temperatureAlert que establece el código de cliente que se ejecuta en el dispositivo. Para más información, consulte Consulta de enrutamiento de mensajes basada en las propiedades del mensaje.

Agregar un punto de conexión personalizado y una ruta

  1. En Azure Portal, vaya hasta su instancia de IoT Hub.

  2. En el menú de recursos de Configuración del centro, seleccione Enrutamiento de mensajes y, después, Agregar.

    Screenshot that shows location of the Add button, to add a new route in your IoT hub.

  3. En la pestaña Punto de conexión, cree un punto de conexión para la cola de Service Bus facilitando la siguiente información:

    Parámetro Value
    Tipo de punto de conexión Seleccione la cola de Service Bus.
    Nombre del extremo Proporcione un nombre para el nuevo punto de conexión que se asigna a la cola de Service Bus.
    Espacio de nombres de Service Bus Use el menú desplegable para seleccionar el espacio de nombres de Service Bus que creó en la sección anterior.
    Cola de Service Bus Use el menú desplegable para seleccionar la cola de Service Bus que creó en el espacio de nombres.

    Screenshot that shows how to create a service bus queue endpoint for your route.

  4. Seleccione Crear y siguiente.

  5. En la pestaña Ruta, escriba la siguiente información para crear una ruta que apunte al punto de conexión de cola de Service Bus:

    Parámetro Value
    Nombre Proporcione un nombre único para la ruta.
    Origen de datos Mantenga el origen de datos predeterminado del mensaje de telemetría del dispositivo.
    Consulta de enrutamiento escriba temperatureAlert = "true" como cadena de consulta.

    Screenshot that shows adding a route with a query.

  6. Seleccione Crear y omitir enriquecimientos.

Configuración de Logic Apps para notificaciones

En la sección anterior, configuró el centro de IoT para enrutar los mensajes que contienen una alerta de temperatura a la cola de Service Bus. Ahora, configurará una aplicación lógica para supervisar la cola de Service Bus y enviar una notificación por correo electrónico cada vez que se agregue un mensaje a la cola.

Creación de una aplicación lógica

  1. En Azure Portal, busque y seleccione Logic Apps.

  2. Seleccione Agregar para crear una nueva aplicación lógica.

  3. Escriba la siguiente información en la pestaña Aspectos básicos de Crear aplicación lógica:

    Parámetro Valor
    Grupo de recursos Seleccione el mismo grupo de recursos que contiene el centro de IoT.
    Nombre Proporcione un nombre para ella.
    Región Selección de una ubicación cercana a usted.
    Tipo de plan Seleccione Consumo, lo que es suficiente para este tutorial.

    Screenshot that shows creating a logic app in the Azure portal.

  4. Seleccione Revisar + crear.

  5. Seleccione Crear.

  6. Una vez completada la implementación, seleccione Ir al recurso para abrir la aplicación lógica.

Configurar el desencadenador de aplicación lógica

  1. En la página de recursos de su aplicación lógica en Azure Portal, abra el Diseñador de aplicaciones lógicas de la sección Herramientas de desarrollo del menú de recursos.

  2. En el diseñador, desplácese hasta Plantillas y seleccione Aplicación lógica en blanco.

    Screenshot that shows selecting the Blank Logic App template.

  3. Seleccione la pestaña Todos para mostrar todos los conectores y desencadenadores, después seleccione Service Bus.

    Select Service Bus to start creating your logic app in the Azure portal.

  4. En Desencadenadores, seleccione Cuando llegan uno o más mensajes a una cola (autocompletar) .

    Select the trigger for your logic app in the Azure portal.

  5. Cree una conexión de Service Bus.

    1. Proporcione un Nombre de conexión y después pegue la Cadena de conexión que copió de su espacio de nombres de Service Bus.

    2. Seleccione Crear.

    3. En la pantalla siguiente, use el menú desplegable para seleccionar la cola que creó en el espacio de nombres de Service Bus. A continuación, escriba 175 para Número máximo de mensajes.

      Screenshot that shows configuring queue settings in the Logic app designer.

  6. Seleccione Guardar en el menú del diseñador de aplicaciones lógicas para guardar los cambios.

Configurar la acción de la aplicación lógica

  1. Seleccione Nuevo paso en el diseñador de aplicaciones lógicas.

  2. Cree una conexión de servicio SMTP.

    1. Busque y seleccione SMTP.

      Screenshot that shows selecting an SMTP connection in the logic app designer.

    2. Seleccione Enviar correo electrónico (V3) como acción para este paso.

    3. Proporcione un Nombre de conexión, después rellene el resto de los campos con la información de SMTP de la cuenta de correo electrónico que quiera usar para enviar los mensajes de notificación.

      Use los siguientes vínculos para encontrar su información de SMTP, dependiendo de su proveedor de correo:

      Nota:

      Es posible que sea necesario deshabilitar TLS/SSL para establecer la conexión. Si es así y desea volver a habilitar TLS una vez establecida la conexión, consulte el paso opcional al final de esta sección.

      Screenshot that shows configuring the SMTP connection settings in the logic app designer.

    4. Seleccione Crear.

  3. Configure la acción Enviar correo electrónico.

    1. En la lista desplegable Añadir nuevo parámetro del paso Enviar correo electrónico, seleccione los siguientes parámetros:

      • From
      • To
      • Asunto
      • Cuerpo

      Haga clic o pulse en cualquier parte en la pantalla para cerrar el cuadro de selección.

      Choose SMTP connection email fields to include in email.

    2. Escriba la siguiente información para los parámetros de correo electrónico que seleccionó en el paso anterior:

      Parámetro Valor
      From Dirección de correo electrónico que configuró para la conexión de SMTP.
      Para Dirección de correo electrónico o direcciones a las que desea enviar correos electrónicos de notificación.
      Asunto High temperature detected.
      Cuerpo High temperature detected.

      Si se abre el cuadro de diálogo Añadir contenido dinámico, seleccione Ocultar para cerrarlo. En este tutorial no se usa contenido dinámico.

      Provide details for SMTP connection email fields.

  4. Seleccione Guardar para guardar la conexión SMTP.

  5. (Opcional) Si tuviera que deshabilitar TLS para establecer una conexión con el proveedor de correo electrónico y desea volver a habilitarla, siga estos pasos:

    1. En el panel Aplicación lógica, en Herramientas de desarrollo, seleccione Conexiones de API.

    2. En la lista de conexiones de API, seleccione la conexión SMTP.

    3. En el panel smtp API Connection (Conexión de API SMTP), en General, seleccione Editar la conexión de API.

    4. En el panel Editar conexión API, seleccione ¿Habilitar SSL?, vuelva a introducir la contraseña de su cuenta de correo electrónico y seleccione Guardar.

      Edit SMTP API connection in your logic app in the Azure portal.

La aplicación lógica ahora está lista para procesar las alertas de temperatura de la cola de Service Bus y enviar notificaciones a su cuenta de correo electrónico.

Probar la aplicación lógica

Empiece a enviar mensajes de temperatura desde el dispositivo IoT para probar la canalización de supervisión y notificación.

  1. Inicie la aplicación cliente en el dispositivo. El código de cliente genera aleatoriamente mensajes de telemetría y establece la propiedad temperatureAlert en true cuando la temperatura supera los 30 °C.

  2. Debería empezar a recibir notificaciones por correo electrónico enviadas por la aplicación lógica.

    Nota

    Es posible que el proveedor de servicios de correo electrónico necesite comprobar la identidad del remitente para asegurarse de que es usted quien envía el mensaje.

Limpieza de recursos

Si ya no necesita los recursos que ha creado en este tutorial, elimínelos junto con el grupo de recursos en el portal. Para ello, seleccione el grupo de recursos que contiene su centro de IoT y seleccione Eliminar.

Como alternativa, use la CLI:

# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>

Pasos siguientes

En este tutorial, ha creado una aplicación lógica que conecta su centro de IoT y su buzón de correo para la supervisión de la temperatura y las notificaciones.

Para continuar la introducción a Azure IoT Hub y explorar todos los escenarios de IoT con mayor detalle, consulte lo siguiente: