Collegare il gateway Azure IoT Edge alla soluzione preconfigurata di monitoraggio remoto e inviare dati di telemetria da un SensorTag

In questa esercitazione viene illustrato come usare Azure IoT Edge per inviare dati relativi alla temperatura e all'umidità dal dispositivo SensorTag alla soluzione preconfigurata di monitoraggio remoto. Il SensorTag si connette al gateway Intel NUC tramite Bluetooth. L'esercitazione usa:

  • Azure IoT Edge per implementare un gateway di esempio.
  • La soluzione preconfigurata di monitoraggio remoto IoT Suite come back-end basato su cloud.

Panoramica

In questa esercitazione si completa la procedura seguente:

  • Distribuire un'istanza della soluzione preconfigurata di monitoraggio remoto nella sottoscrizione di Azure. Questo passaggio distribuisce e configura automaticamente più servizi di Azure.
  • Configurare il dispositivo di gateway Intel NUC per la comunicazione con il computer e la soluzione di monitoraggio remoto.
  • Configurare il gateway Intel NUC per ricevere i dati di telemetria da un dispositivo SensorTag e inviarli al dashboard di monitoraggio remoto.

Prerequisiti

Per completare l'esercitazione, è necessaria una sottoscrizione di Azure attiva.

Nota

Se non si dispone di un account, è possibile creare un account di valutazione gratuita in pochi minuti. Per informazioni dettagliate, vedere la pagina relativa alla versione di valutazione gratuita di Azure.

Requisiti software

È necessario un client SSH nel computer desktop per poter accedere in remoto alla riga di comando in Intel NUC.

  • Windows non include un client SSH. È consigliabile usare PuTTY.
  • La maggior parte delle distribuzioni Linux e Mac OS includono l'utilità SSH della riga di comando.

Requisiti hardware

Un computer desktop per potersi connettere in remoto alla riga di comando in Intel NUC.

Kit gateway commerciale IoT. Questa esercitazione usa gli elementi seguenti del kit:

  • Intel® NUC Kit DE3815TYKE con 4 GB di memoria e scheda di espansione Bluetooth
  • Alimentatore

SensorTag BLE di Texas Instruments. Questa esercitazione consente di recuperare i dati di telemetria sul Bluetooth dal dispositivo SensorTag.

Effettuare il provisioning della soluzione

Se nel proprio account non è già stato effettuato il provisioning della soluzione preconfigurata per il monitoraggio remoto:

  1. Accedere a azureiotsuite.com con le credenziali dell'account Azure e fare clic su + per creare una soluzione.
  2. Fare clic su Seleziona nel riquadro Remote monitoring (Monitoraggio remoto).
  3. Immettere un valore in Nome soluzione per la soluzione preconfigurata di monitoraggio remoto.
  4. Selezionare l'area e la sottoscrizione che si desidera usare per il provisioning della soluzione.
  5. Fare clic su Crea soluzione per iniziare il processo di provisioning. In genere il processo richiede alcuni minuti.

Attendere il completamento del processo di provisioning.

  1. Fare clic sul riquadro della soluzione con stato Provisioning.
  2. Notare gli stati Provisioning man mano che i servizi di Azure vengono distribuiti nella sottoscrizione di Azure.
  3. Al termine del provisioning, lo stato cambierà in Pronto.
  4. Fare clic sul riquadro per visualizzare i dettagli della soluzione nel riquadro di destra.

Nota

In caso di problemi di distribuzione della soluzione preconfigurata, vedere Autorizzazioni per il sito azureiotsuite.com e le domande frequenti. Se i problemi persistono, creare un ticket di servizio nel portale.

Se ci sono dettagli importanti non elencati per la soluzione, è possibile inviare suggerimenti sulle funzionalità usando i suggerimenti degli utenti.

Avviso

La soluzione di monitoraggio remoto esegue il provisioning di un set di servizi di Azure nella sottoscrizione di Azure. La distribuzione riflette un'architettura enterprise reale. Per evitare costi di consumo di Azure non necessari, eliminare l'istanza della soluzione preconfigurata in azureiotsuite.com al completamento. Se la soluzione preconfigurata occorre nuovamente, è possibile ricrearla facilmente. Per altre informazioni sulla riduzione del consumo durante l'esecuzione della soluzione di monitoraggio remoto, vedere Configuring Azure IoT Suite preconfigured solutions for demo purposes (Configurazione di soluzioni preconfigurate di Azure IoT Suite per scopi dimostrativi).

Visualizzare il dashboard della soluzione

Il dashboard della soluzione consente di gestire la soluzione distribuita. Ad esempio, è possibile visualizzare dati di telemetria, aggiungere dispositivi e richiamare metodi.

  1. Al termine del provisioning, quando il riquadro della soluzione preconfigurata indica Pronto, scegliere Avvia per aprire il portale della soluzione di monitoraggio remoto in una nuova scheda.

    Avviare la soluzione preconfigurata

  2. Per impostazione predefinita, il portale della soluzione visualizza il dashboard. Passare ad altre aree del portale della soluzione usando il menu sul lato sinistro della pagina.

    Dashboard della soluzione preconfigurata per il monitoraggio remoto

Aggiungere un dispositivo

Per connettere un dispositivo alla soluzione preconfigurata, è necessario che identifichi se stesso nell'hub IoT mediante delle credenziali valide. È possibile recuperare le credenziali del dispositivo dal dashboard della soluzione. Le istruzioni per includere le credenziali del dispositivo nell'applicazione client sono illustrate più avanti in questa esercitazione.

Per aggiungere un dispositivo alla soluzione per il monitoraggio remoto, completare i passaggi seguenti nel dashboard della soluzione:

  1. Nell'angolo inferiore sinistro del dashboard fare clic su Aggiungi un dispositivo.

    Aggiungere un dispositivo

  2. Nel pannello Dispositivo personalizzato fare clic su Aggiungi nuovo.

    Aggiungere un dispositivo personalizzato

  3. Scegliere Let me define my own Device ID (Desidero definire il mio ID dispositivo). Immettere un ID dispositivo, ad esempio device01, fare clic su Verifica ID per verificare che il nome non sia già stato usato nella soluzione e quindi fare clic su Crea per effettuare il provisioning del dispositivo.

    Aggiungere un ID dispositivo

  4. Annotare le credenziali del dispositivo (ID dispositivo, Nome host hub IoT e Chiave dispositivo). Questi valori sono necessari per consentire all'applicazione client in Intel NUC di connettersi alla soluzione per il monitoraggio remoto. Fare quindi clic su Done.

    Vedere le credenziali del dispositivo

  5. Selezionare il dispositivo nell'elenco dei dispositivi nel dashboard della soluzione. Nel pannello Dettagli dispositivo fare clic su Attiva dispositivo. Lo stato del dispositivo è ora In esecuzione. La soluzione per il monitoraggio remoto può ora ricevere i dati di telemetria dal dispositivo e richiamare i metodi sul dispositivo.

Preparare Intel NUC

Per completare la configurazione dell'hardware, è necessario:

  • Connettere Intel NUC all'alimentatore incluso nel kit.
  • Connettere Intel NUC alla rete con un cavo Ethernet.

La configurazione hardware del dispositivo gateway Intel NUC è completata.

Accedere al terminale

Per accedere all'ambiente di un terminale in Intel NUC sono disponibili due opzioni:

  • Se a Intel NUC sono connessi una tastiera e un monitor, è possibile accedere direttamente alla shell. Le credenziali predefinite sono il nome utente root e la password root.

  • Accedere alla shell in Intel NUC usando SSH dal computer desktop.

Accedere con SSH

Per accedere con SSH, è necessario l'indirizzo IP di Intel NUC. Se a Intel NUC sono connessi una tastiera e un monitor, usare il comando ifconfig per trovare l'indirizzo IP. In alternativa, connettersi al router per ottenere l'elenco degli indirizzi dei dispositivi nella rete.

Accedere con il nome utente root e la password root.

Facoltativo: condividere una cartella in Intel NUC

Facoltativamente, è possibile condividere una cartella in Intel NUC con l'ambiente desktop. La condivisione di una cartella consente di modificare i file in Intel NUC usando l'editor di testo desktop preferito (ad esempio, Visual Studio Code o Sublime Text) invece di nano o vi.

Per condividere una cartella con Windows, configurare un server Samba in Intel NUC. In alternativa, usare il server SFTP in Intel NUC con un client SFTP nel computer desktop.

Configurare la connettività Bluetooth

Configurare Bluetooth in Intel NUC per abilitare il dispositivo SensorTag a connettersi e a inviare dati di telemetria.

Trovare l'indirizzo MAC del SensorTag

  1. Nella shell su Intel NUC, eseguire il comando seguente per sbloccare il servizio Bluetooth:

    sudo rfkill unblock bluetooth
    
  2. Eseguire i comandi seguenti per avviare il servizio Bluetooth su Intel NUC e immettere la shell di Bluetooth:

    sudo systemctl start bluetooth
    bluetoothctl
    
  3. Eseguire il comando seguente per accendere il controller Bluetooth:

    power on
    

    Quando il controller è attivo, viene visualizzato un messaggio Changing power on succeeded (La modifica dell'accensione ha avuto esito positivo).

  4. Eseguire il comando seguente per avviare l'analisi per i dispositivi Bluetooth circostanti:

    scan on
    
  5. Premere il pulsante di accensione di SensorTag per renderlo individuabile. Il LED verde lampeggia.

  6. Quando viene visualizzato un messaggio nella shell in base al quale il controller ha individuato il SensorTag, prendere nota dell'indirizzo MAC del dispositivo. L'indirizzo MAC è simile a A0:E6:F8:B5:F6:00. Quando si configura il gateway, più avanti nell'esercitazione, è necessario l'indirizzo MAC.

  7. Eseguire il comando seguente per disattivare l'analisi del Bluetooth:

    scan off
    
  8. Eseguire il comando seguente per verificare che è possibile connettersi al dispositivo SensorTag:

    connect <SensorTag MAC address>
    

    Se ci si connette correttamente, la shell visualizzerà il messaggio Connessione riuscita e stamperà informazioni sul dispositivo SensorTag. Se non è possibile connettersi, controllare che il SensorTag sia ancora acceso.

  9. Ora è possibile disconnettersi da SensorTag e chiudere la shell del Bluetooth eseguendo i comandi seguenti:

    disconnect
    exit
    

Compilare IoT Edge

Questa esercitazione mostra come usare moduli personalizzati di IoT Edge per comunicare con la soluzione preconfigurata di monitoraggio remoto. È quindi necessario compilare i moduli di IoT Edge dal codice sorgente personalizzato. Le sezioni seguenti illustrano come installare IoT Edge e compilare il modulo personalizzato di IoT Edge.

Installare IoT Edge

La procedura seguente illustra come installare il software IoT Edge precompilato in Intel NUC:

  1. Configurare i repositori di pacchetti intelligenti necessari eseguendo questi comandi in Intel NUC:

    smart channel --add IoT_Cloud type=rpm-md name="IoT_Cloud" baseurl=http://iotdk.intel.com/repos/iot-cloud/wrlinux7/rcpl13/ -y
    smart channel --add WR_Repo type=rpm-md baseurl=https://distro.windriver.com/release/idp-3-xt/public_feeds/WR-IDP-3-XT-Intel-Baytrail-public-repo/RCPL13/corei7_64/
    

    Immettere y quando viene richiesto se includere questo canale.

  2. Aggiornare il gestore di pacchetti intelligenti eseguendo questo comando:

    smart update
    
  3. Installare il pacchetto di Azure IoT Edge eseguendo questo comando:

    smart config --set rpm-check-signatures=false
    smart install packagegroup-cloud-azure -y
    
  4. Verificare l'installazione eseguendo l'esempio Hello World. L'esempio scrive il messaggio Hello World nel file log.txt ogni cinque secondi. Eseguire l'esempio Hello World usando i comandi seguenti:

    cd /usr/share/azureiotgatewaysdk/samples/hello_world/
    ./hello_world hello_world.json
    

    Ignorare gli eventuali messaggi di argomento non valido quando si arresta l'esempio.

    Usare il comando seguente per visualizzare il contenuto del file di log:

    cat log.txt | more
    

Risoluzione dei problemi

Se viene visualizzato l'errore: "no package provides util-linux-dev" (nessun pacchetto fornisce util-linux-dev), provare a riavviare Intel NUC.

Compilare il modulo IoT Edge personalizzato

È ora possibile compilare il modulo IoT Edge personalizzato che consente al gateway di inviare messaggi alla soluzione di monitoraggio remoto. Per altre informazioni sulla configurazione di un gateway e sui moduli IoT Edge, vedere Concetti di Azure IoT Edge.

Scaricare il codice sorgente per i moduli personalizzati di IoT Edge da GitHub tramite i comandi seguenti:

cd ~
git clone https://github.com/Azure-Samples/iot-remote-monitoring-c-intel-nuc-gateway-getting-started.git

Compilare il modulo personalizzato IoT Edge tramite i comandi seguenti:

cd ~/iot-remote-monitoring-c-intel-nuc-gateway-getting-started/basic
chmod u+x build.sh
sed -i -e 's/\r$//' build.sh
./build.sh

Lo script di compilazione inserisce il modulo di IoT Edge libsensor2remotemonitoring.so personalizzato nella cartella di compilazione.

Configurare ed eseguire il gateway IoT Edge

È ora possibile configurare il gateway IoT Edge per inviare dati di telemetria dal dispositivo SensorTag al dashboard di monitoraggio remoto. Per altre informazioni sulla configurazione di un gateway e sui moduli IoT Edge, vedere Concetti di Azure IoT Edge.

Suggerimento

In questa esercitazione, si usa l'editor di testo standard vi in Intel NUC. Se non è stato usato vi in precedenza, è necessario completare un'esercitazione introduttiva, ad esempio Unix - The vi Editor Tutorial per familiarizzare con questo editor. In alternativa, è possibile installare l'editor nano più semplice tramite il comando smart install nano -y.

Aprire il file di configurazione di esempio nell'editor vi usando il comando seguente:

vi ~/iot-remote-monitoring-c-intel-nuc-gateway-getting-started/basic/remote_monitoring.json

Individuare le righe seguenti nella configurazione per il modulo IoTHub:

"args": {
  "IoTHubName": "<<Azure IoT Hub Name>>",
  "IoTHubSuffix": "<<Azure IoT Hub Suffix>>",
  "Transport": "http"
}

Sostituire i valori segnaposto con le informazioni dell'hub IoT create e salvate all'inizio di questa esercitazione. Il valore per IoTHubName è simile a yourrmsolution37e08 e il valore per IoTSuffix è in genere azure-devices.net.

Individuare le righe seguenti nella configurazione per il modulo di mapping:

args": [
  {
    "macAddress": "<<AA:BB:CC:DD:EE:FF>>",
    "deviceId": "<<Azure IoT Hub Device ID>>",
    "deviceKey": "<<Azure IoT Hub Device Key>>"
  }
]

Sostituire il segnaposto macAddress con l'indirizzo MAC del SensorTag di cui si è preso nota in precedenza. Sostituire i segnaposti deviceID e deviceKey con gli ID e le chiavi per i due dispositivi creati in precedenza nella soluzione di monitoraggio remoto.

Individuare le righe seguenti nella configurazione per il modulo di SensorTag:

"args": {
  "controller_index": 0,
  "device_mac_address": "<<AA:BB:CC:DD:EE:FF>>",
  ...
}

Sostituire il segnaposto device_mac_address con l'indirizzo MAC del SensorTag di cui si è preso nota in precedenza.

Salvare le modifiche.

Ora è possibile eseguire il gateway usando i comandi seguenti:

cd ~/iot-remote-monitoring-c-intel-nuc-gateway-getting-started/basic
/usr/share/azureiotgatewaysdk/samples/ble_gateway/ble_gateway remote_monitoring.json

Il gateway IoT Edge avvia Intel NUC e invia i dati di telemetria dal SensorTag alla soluzione di monitoraggio remoto:

Il gateway IoT Edge invia i dati di telemetria dal SensorTag

Premere CTRL-C per uscire dal programma in qualsiasi momento.

Visualizzare i dati di telemetria

Ora il gateway invia i dati di telemetria dal dispositivo SensorTag alla soluzione di monitoraggio remoto. È possibile visualizzare i dati di telemetria nel dashboard della soluzione. È anche possibile inviare comandi al dispositivo SensorTag tramite il gateway dal dashboard della soluzione.

  • Passare al dashboard della soluzione.
  • Selezionare il dispositivo configurato nel gateway che rappresenta il SensorTag nell'elenco a discesa Dispositivo da visualizzare.
  • I dati di telemetria dal dispositivo SensorTag vengono visualizzati nel dashboard.

Visualizzare i dati di telemetria dai dispositivi SensorTag

Avviso

Se si lascia la soluzione di monitoraggio remoto in esecuzione nell'account Azure, verrà addebitato il tempo dell'esecuzione. Per altre informazioni sulla riduzione del consumo durante l'esecuzione della soluzione di monitoraggio remoto, vedere Configuring Azure IoT Suite preconfigured solutions for demo purposes (Configurazione di soluzioni preconfigurate di Azure IoT Suite per scopi dimostrativi). Al termine, eliminare la soluzione preconfigurata dall'account Azure.

Passaggi successivi

Visitare il Centro per sviluppatori Azure IoT per altri esempi e documentazione su Azure IoT.