Envío de mensajes de nube a dispositivo con IoT Hub (iOS)

IoT Hub de Azure es un servicio totalmente administrado que permite la comunicación bidireccional confiable y segura entre millones de dispositivos y una solución de back-end.

En este artículo aprenderá a:

  • Reciba mensajes de nube a dispositivo (C2D) en un dispositivo

Al final de este artículo, se ejecutan el siguiente proyecto de iOS con Swift:

Nota:

IoT Hub ofrece compatibilidad con SDK en muchas plataformas de dispositivos y lenguajes (entre los que se incluyen C, Java, Python y Javascript) mediante los SDK de dispositivo IoT de Azure.

Para más información sobre los mensajes de nube a dispositivo, consulte Envío de mensajes de nube a dispositivo desde un centro de IoT.

Prerrequisitos

  • Una instancia de Azure IoT Hub activa en Azure.

  • El ejemplo de código del repositorio ejemplos de Azure IoT para la plataforma IoS.

  • La versión más reciente de XCode que, a su vez, ejecute la última versión del SDK de iOS. Este artículo se probó con XCode 9.3 e iOS 11.3.

  • La versión más reciente de CocoaPods.

  • Asegúrese de que el puerto 8883 está abierto en el firewall. En el ejemplo de dispositivo de este artículo se usa el protocolo MQTT, que se comunica mediante el puerto 8883. Este puerto puede estar bloqueado en algunos entornos de red corporativos y educativos. Para más información y saber cómo solucionar este problema, consulte Conexión a IoT Hub (MQTT).

Simulación de un dispositivo IoT

En esta sección se simula un dispositivo iOS que ejecuta una aplicación con Swift para recibir mensajes de la nube al dispositivo desde IoT Hub.

Instalación de CocoaPods

CocoaPods administra las dependencias de los proyectos de iOS que utilizan bibliotecas de terceros.

En una ventana de terminal, vaya a la carpeta que contiene el repositorio que descargó en los requisitos previos. Después, vaya a la carpeta del proyecto de ejemplo:

cd quickstart/sample-device

Asegúrese de que XCode está cerrado y ejecute el comando siguiente para instalar los pods de CocoaPods que se declararon en el archivo podfile:

pod install

Junto con la instalación de los pods necesarios para el proyecto, el comando de instalación también creó un archivo de área de trabajo de XCode que ya está configurado para usar los pods para las dependencias.

Ejecución de la aplicación de ejemplo del dispositivo

  1. Recupere la cadena de conexión del dispositivo. Puede copiarla de Azure Portal de la página de detalles del dispositivo o recuperarla con el siguiente comando de la CLI:

    az iot hub device-identity connection-string show --hub-name {YourIoTHubName} --device-id {YourDeviceID} --output table
    
  2. Abra el área de trabajo de ejemplo en XCode.

    open "MQTT Client Sample.xcworkspace"
    
  3. Expanda el proyecto MQTT Client Sample (Ejemplo de cliente MQTT) y la carpeta del mismo nombre.

  4. Abra ViewController.swift para editar en XCode.

  5. Busque la variable connectionString y actualice el valor con la cadena de conexión del dispositivo que copió en el primer paso.

  6. Guarde los cambios.

  7. Ejecute el proyecto en el emulador de dispositivos con el botón Build and run (Compilar y ejecutar) o la combinación de teclas comando + r.

    Captura de pantalla en la que se muestra el botón para compilar y ejecutar en el emulador de dispositivos.

Envío de mensajes de nube a dispositivo

Ahora está todo listo para que reciba mensajes de la nube al dispositivo. Use Azure Portal para enviar un mensaje de prueba de la nube al dispositivo IoT simulado.

  1. En la aplicación iOS App Sample que se ejecuta en el dispositivo IoT simulado, seleccione Iniciar. La aplicación comienza a enviar mensajes del dispositivo a la nube, pero también inicia la escucha de mensajes de la nube al dispositivo.

    Visualización de la aplicación de dispositivo IoT de ejemplo

  2. En Azure Portal, navegue hasta su centro de IoT.

  3. En la página Dispositivos, seleccione el identificador de dispositivo del dispositivo IoT simulado.

  4. Seleccione Mensaje al dispositivo para abrir la interfaz de mensaje de la nube al dispositivo.

  5. Escriba un mensaje de texto no cifrado en el cuadro de texto Cuerpo del mensaje y, a continuación, seleccione Enviar mensaje.

  6. Vea la aplicación en ejecución en el dispositivo IoT simulado. Comprueba los mensajes de IoT Hub y muestra el texto del más reciente en la pantalla. La salida debe tener un aspecto similar al ejemplo siguiente:

    Visualización de mensajes de la nube al dispositivo

Pasos siguientes

En este artículo, ha aprendido a enviar y recibir mensajes de la nube al dispositivo.