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:
- sample-device: la aplicación de ejemplo del repositorio de Ejemplos de Azure IoT para la plataforma IoS, que se conecta al centro de IoT y recibe mensajes de nube a dispositivo.
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
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
Abra el área de trabajo de ejemplo en XCode.
open "MQTT Client Sample.xcworkspace"
Expanda el proyecto MQTT Client Sample (Ejemplo de cliente MQTT) y la carpeta del mismo nombre.
Abra ViewController.swift para editar en XCode.
Busque la variable connectionString y actualice el valor con la cadena de conexión del dispositivo que copió en el primer paso.
Guarde los cambios.
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.
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.
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.
En Azure Portal, navegue hasta su centro de IoT.
En la página Dispositivos, seleccione el identificador de dispositivo del dispositivo IoT simulado.
Seleccione Mensaje al dispositivo para abrir la interfaz de mensaje de la nube al dispositivo.
Escriba un mensaje de texto no cifrado en el cuadro de texto Cuerpo del mensaje y, a continuación, seleccione Enviar mensaje.
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:
Pasos siguientes
En este artículo, ha aprendido a enviar y recibir mensajes de la nube al dispositivo.
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.
Para más información acerca del formato de los mensajes de IoT Hub, consulte Creación y lectura de mensajes de IoT Hub.