Inviare messaggi da cloud a dispositivo con l'hub IoT (iOS)

L'hub IoT di Azure è un servizio completamente gestito che consente di abilitare comunicazioni bidirezionali affidabili e sicure tra milioni di dispositivi e un back-end della soluzione.

Questo articolo illustra come:

  • Ricevere messaggi da cloud a dispositivo (C2D) in un dispositivo

Al termine di questo articolo si esegue il progetto Swift iOS seguente:

Nota

hub IoT supporta SDK per molte piattaforme e linguaggi per dispositivi (tra cui C, Java, Python e JavaScript) tramite gli SDK per dispositivi IoT di Azure.

Per altre informazioni sui messaggi da cloud a dispositivo, vedere Inviare messaggi da cloud a dispositivo da un hub IoT.

Prerequisiti

  • Un hub IoT attivo in Azure.

  • Esempio di codice del repository Azure IoT Samples for IoS Platform.

  • La versione più recente di XCode, che esegue la versione più recente di iOS SDK. Questo articolo è stato testato con XCode 9.3 e iOS 11.3.

  • La versione più recente di CocoaPods.

  • Assicurarsi che la porta 8883 sia aperta nel firewall. L'esempio di dispositivo di questo articolo usa il protocollo MQTT, che comunica tramite la porta 8883. Questa porta potrebbe essere bloccata in alcuni ambienti di rete aziendali e didattici. Per altre informazioni e soluzioni alternative per questo problema, vedere Connettersi all'hub IoT (MQTT).

Simulare un dispositivo IoT

In questa sezione viene simulato un dispositivo iOS che esegue un'applicazione Swift per ricevere messaggi da cloud a dispositivo dall'hub IoT.

Installare CocoaPods

CocoaPods gestisce le dipendenze per i progetti iOS che usano librerie di terze parti.

In una finestra del terminale passare alla cartella contenente il repository scaricato nei prerequisiti. Passare quindi alla cartella del progetto di esempio:

cd quickstart/sample-device

Assicurarsi che XCode sia chiuso, quindi eseguire il comando seguente per installare i CocoaPods dichiarati nel file podfile:

pod install

Oltre a installare i pod necessari per il progetto, il comando di installazione crea anche un file di area di lavoro XCode già configurato per usare i pod per le dipendenze.

Eseguire l'applicazione del dispositivo di esempio

  1. Recuperare la stringa di connessione per il dispositivo. È possibile copiare questa stringa dal portale di Azure nella pagina dei dettagli del dispositivo o recuperarla con il comando dell'interfaccia della riga di comando seguente:

    az iot hub device-identity connection-string show --hub-name {YourIoTHubName} --device-id {YourDeviceID} --output table
    
  2. Aprire l'area di lavoro di esempio in XCode.

    open "MQTT Client Sample.xcworkspace"
    
  3. Espandere il progetto MQTT Client Sample e quindi la cartella con lo stesso nome.

  4. Aprire ViewController.swift per la modifica in XCode.

  5. Cercare la variabile connectionString e aggiornare il valore con la stringa di connessione per il dispositivo copiata nel primo passaggio.

  6. Salvare le modifiche.

  7. Eseguire il progetto nell'emulatore di dispositivo con il pulsante Compila ed esegui o la combinazione di tasti Comando + R.

    Screenshot che mostra il pulsante Compila ed esegui nell'emulatore di dispositivo.

Inviare un messaggio da cloud a dispositivo

A questo punto è possibile ricevere messaggi da cloud a dispositivo. Usare il portale di Azure per inviare un messaggio da cloud a dispositivo di test al dispositivo IoT simulato.

  1. Nell'app di esempio di app iOS in esecuzione nel dispositivo IoT simulato selezionare Avvia. L'applicazione inizia a inviare messaggi da dispositivo a cloud, ma anche a restare in ascolto dei messaggi da cloud a dispositivo.

    Visualizzare l'app del dispositivo IoT di esempio

  2. Nella portale di Azure passare all'hub IoT.

  3. Nella pagina Dispositivi selezionare l'ID dispositivo per il dispositivo IoT simulato.

  4. Selezionare Messaggio nel dispositivo per aprire l'interfaccia dei messaggi da cloud a dispositivo.

  5. Scrivere un messaggio di testo non crittografato nella casella di testo Corpo del messaggio e quindi selezionare Invia messaggio.

  6. Guardare l'app in esecuzione nel dispositivo IoT simulato. Verifica la presenza di messaggi da hub IoT e stampa il testo dal più recente sullo schermo. L'output dovrebbe essere simile all'esempio seguente:

    Visualizzare i messaggi da cloud a dispositivo

Passaggi successivi

In questo articolo si è appreso come inviare e ricevere messaggi da cloud a dispositivo.