Condividi tramite


Connettere Raspberry Pi 3 alla soluzione di monitoraggio remoto e abilitare gli aggiornamenti del firmware remoto usando Node.js

Questa esercitazione illustra come usare microsoft Azure IoT Starter Kit per Raspberry Pi 3 per:

  • Sviluppare un lettore di temperatura e umidità in grado di comunicare con il cloud.
  • Abilitare ed eseguire un aggiornamento del firmware remoto per aggiornare l'applicazione client in Raspberry Pi.

Il tutorial utilizza:

  • Sistema operativo Raspbian, il linguaggio di programmazione Node.js e l'SDK Microsoft Azure IoT per Node.js per implementare un dispositivo di esempio.
  • La soluzione preconfigurata di monitoraggio remoto della suite IoT come back-end basato sul cloud.

Informazioni generali

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 e i sensori per comunicare con il computer e la soluzione di monitoraggio remoto.
  • Aggiornare il codice del dispositivo di esempio per connettersi alla soluzione di monitoraggio remoto e inviare dati di telemetria visualizzabili nel dashboard della soluzione.
  • Usare il codice del dispositivo di esempio per aggiornare l'applicazione client.

Prerequisiti

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

Annotazioni

Se non si ha un account, è possibile creare un account di valutazione gratuito in pochi minuti. Per informazioni dettagliate, vedere Versione di valutazione gratuita di Azure.

Software richiesto

È necessario un client SSH nel computer desktop per consentire l'accesso remoto alla riga di comando in Raspberry Pi.

  • Windows non includeva un client SSH. È consigliabile usare PuTTY.
  • La maggior parte delle distribuzioni Linux e Mac OS includono l'utilità SSH della riga di comando. Per altre informazioni, vedere SSH con Linux o Mac OS.

Hardware richiesto

Un computer desktop che consente di connettersi in remoto alla riga di comando in Raspberry Pi.

Microsoft IoT Starter Kit per Raspberry Pi 3 o componenti equivalenti. Questa esercitazione usa gli elementi seguenti del kit:

  • Raspberry Pi 3
  • Scheda MicroSD (con sistema NOOBS)
  • Un cavo USB Mini
  • Un cavo Ethernet
  • Sensore BME280
  • Basetta sperimentale
  • Cavetti di collegamento
  • Resistori
  • LED

Configurare la soluzione

Se non hai ancora predisposto la soluzione preconfigurata di monitoraggio remoto nel tuo account:

  1. Accedere a azureiotsuite.com usando le credenziali dell'account Azure e fare clic su + per creare una soluzione.
  2. Fare clic su Seleziona nel riquadro monitoraggio remoto.
  3. Immettere il nome della soluzione per la soluzione di monitoraggio remoto preconfigurata.
  4. Seleziona l'area e la sottoscrizione che desideri utilizzare per effettuare il provisioning della soluzione.
  5. Fare clic su Crea soluzione per avviare il processo di provisioning. L'esecuzione di questo processo richiede in genere alcuni minuti.

Attendere che il processo di provisioning sia completato

  1. Clicca sul riquadro per la soluzione con lo stato di approvvigionamento .
  2. Si noti gli stati di configurazione quando i servizi di Azure vengono distribuiti nella sottoscrizione di Azure.
  3. Al termine del provisioning, lo stato passa a Pronto.
  4. Fare clic sul riquadro per visualizzare i dettagli della soluzione nel riquadro di destra.

Annotazioni

Se si verificano problemi durante la distribuzione della soluzione preconfigurata, esaminare le autorizzazioni sul sito di azureiotsuite.com e le domande frequenti . Se i problemi persistono, creare un ticket di servizio sul portale .

Ci sono dettagli che ti aspetteresti di vedere che non sono elencati per la tua soluzione? Fornire suggerimenti sulle funzionalità su User Voice.

Avvertimento

La soluzione di monitoraggio remoto fornisce un set di servizi Azure nella tua sottoscrizione di Azure. La distribuzione riflette un'architettura aziendale reale. Per evitare addebiti per il consumo di Azure non necessari, eliminare l'istanza della soluzione preconfigurata in azureiotsuite.com al termine dell'operazione. Se è necessaria di nuovo la soluzione preconfigurata, è possibile ricrearla facilmente. Per altre informazioni sulla riduzione del consumo durante l'esecuzione della soluzione di monitoraggio remoto, vedere Configurazione di soluzioni preconfigurate di Azure IoT Suite a scopo dimostrativo.

Visualizzare il dashboard della soluzione

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

  1. Quando il provisioning è completo e il riquadro per la 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 mostra il dashboard . È possibile passare ad altre aree del portale della soluzione usando il menu sul lato sinistro della pagina.

    dashboard della soluzione preconfigurata di monitoraggio remoto

Aggiungere un dispositivo

Affinché un dispositivo si connetta alla soluzione preconfigurata, deve identificarsi all'hub IoT usando credenziali valide. È possibile recuperare le credenziali del dispositivo dal dashboard della soluzione. Le credenziali del dispositivo vengono incluse nell'applicazione client più avanti in questa esercitazione.

Se non è già stato fatto, aggiungere un dispositivo personalizzato alla soluzione di 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.

    Aggiungidispositivo personalizzato

  3. Scegliere Permettimi di definire il mio ID dispositivo. Immettere un ID dispositivo, ad esempio rasppi, fare clic su Controlla 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.

    Aggiungi ID dispositivo

  4. Prendere nota delle credenziali del dispositivo (ID dispositivo, nome host dell'hub IoTe chiave del dispositivo). L'applicazione client in Raspberry Pi richiede questi valori per connettersi alla soluzione di monitoraggio remoto. Fare quindi clic su Done (Chiudi).

    Visualizzare le credenziali del dispositivo

  5. Selezionare il dispositivo nell'elenco dei dispositivi nel dashboard della soluzione. Quindi, nel pannello Dettagli Dispositivo, fare clic su Abilita Dispositivo. Lo stato del tuo dispositivo è attualmente in esecuzione. La soluzione di monitoraggio remoto può ora ricevere dati di telemetria dal dispositivo e richiamare i metodi nel dispositivo.

Prepara il Raspberry Pi

Installare Raspbian

Se questa è la prima volta che si usa Raspberry Pi, è necessario installare il sistema operativo Raspbian usando NOOBS nella scheda SD inclusa nel kit. La guida software Raspberry Pi descrive come installare un sistema operativo in Raspberry Pi. Questa esercitazione presuppone che il sistema operativo Raspbian sia stato installato nel dispositivo Raspberry Pi.

Annotazioni

La scheda SD inclusa nel Microsoft Azure IoT Starter Kit per Raspberry Pi 3 ha già installato NOOBS. È possibile avviare Raspberry Pi da questa scheda e scegliere di installare il sistema operativo Raspbian.

Configurare l'hardware

Questa esercitazione usa il sensore BME280 incluso nel Microsoft Azure IoT Starter Kit per Raspberry Pi 3 per generare dati di telemetria. Usa un LED per indicare quando Raspberry Pi elabora una chiamata al metodo dal dashboard della soluzione.

I componenti della tavola di pane sono:

  • LED rosso
  • Resistore 220-Ohm (rosso, rosso, marrone)
  • Sensore BME280

Il diagramma seguente illustra come connettere l'hardware:

Configurazione hardware per Raspberry Pi

La tabella seguente riepiloga le connessioni dal Raspberry Pi ai componenti sulla breadboard:

Raspberry Pi Basetta sperimentale Colore
GND (Pin 14) Pin LED -ve (18A) Porpora
GPCLK0 (Pin 7) Resistore (25A) Arancione
SPI_CE0 (Pin 24) CS (39A) Blu
SPI_SCLK (Pin 23) SCK (36A) Giallo
SPI_MISO (Pin 21) SDO (37A) Bianco
SPI_MOSI (Pin 19) SDI (38A) Verde
GND (Pin 6) GND (35A) Nero
3.3 V (Pin 1) 3Vo (34A) Rosso

Per completare la configurazione hardware, è necessario:

  • Collegare Raspberry Pi all'alimentatore incluso nel kit.
  • Connettere Raspberry Pi alla rete usando il cavo Ethernet incluso nel kit. In alternativa, è possibile configurare la connessione wireless per il Raspberry Pi.

La configurazione hardware di Raspberry Pi è stata completata.

Accedi e accedi al terminale

Sono disponibili due opzioni per accedere a un ambiente terminale in Raspberry Pi:

  • Se si dispone di una tastiera e un monitor connessi al dispositivo Raspberry Pi, è possibile usare l'interfaccia utente grafica raspbian per accedere a una finestra del terminale.

  • Accedere alla riga di comando in Raspberry Pi usando SSH dal computer desktop.

Usare una finestra del terminale nell'interfaccia utente grafica

Le credenziali predefinite per Raspbian sono nome utente pi e password raspberry. Nella barra delle applicazioni dell'interfaccia utente grafica è possibile avviare l'utilità terminale usando l'icona simile a un monitor.

Accedere con SSH

È possibile usare SSH per l'accesso da riga di comando al dispositivo Raspberry Pi. L'articolo SSH (Secure Shell) descrive come configurare SSH in Raspberry Pi e come connettersi da Windows o Linux & Mac OS.

Accedere con nome utente pi e password raspberry.

Facoltativo: condividere una cartella in Raspberry Pi

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

Per condividere una cartella con Windows, configurare un server Samba in Raspberry Pi. In alternativa, usare il server di SFTP predefinito con un client SFTP sul desktop.

Abilitare SPI

Prima di poter eseguire l'applicazione di esempio, è necessario abilitare il bus SPI (Serial Peripheral Interface) nel dispositivo Raspberry Pi. Raspberry Pi comunica con il dispositivo sensore BME280 tramite il bus SPI. Usare il comando seguente per modificare il file di configurazione:

sudo nano /boot/config.txt

Trova la riga:

#dtparam=spi=on

  • Per rimuovere il commento dalla riga, eliminare il # all'inizio.

  • Salvare le modifiche (CTRL-O, Invio) e uscire dall'editor (CTRL-X).

  • Per abilitare SPI, riavviare Raspberry Pi. Il riavvio disconnette il terminale, è necessario eseguire di nuovo l'accesso quando Raspberry Pi si riavvia.

    sudo reboot
    

Scaricare e configurare l'esempio

È ora possibile scaricare e configurare l'applicazione client di monitoraggio remoto in Raspberry Pi.

Installare Node.js

Se non è già stato fatto, installare Node.js nel dispositivo Raspberry Pi. IoT SDK per Node.js richiede la versione 0.11.5 di Node.js o versione successiva. La procedura seguente illustra come installare Node.js v6.10.2 in Raspberry Pi:

  1. Usare il comando seguente per aggiornare Raspberry Pi:

    sudo apt-get update
    
  2. Usare il comando seguente per scaricare i file binari Node.js in Raspberry Pi:

    wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
    
  3. Usare il comando seguente per installare i file binari:

    sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz
    
  4. Usare il comando seguente per verificare di aver installato correttamente Node.js v6.10.2:

    node --version
    

Clonare i depositi

Se non è già stato fatto, clonare i repository necessari eseguendo i comandi seguenti nel dispositivo Pi:

cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit.git

Aggiornare la stringa di connessione del dispositivo

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

nano ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advanced/config/deviceinfo

Sostituisci i valori segnaposto con l'ID del dispositivo e le informazioni sull'hub IoT che hai creato e salvato all'inizio di questo tutorial.

Al termine, il contenuto del file deviceinfo dovrebbe essere simile all'esempio seguente:

yourdeviceid
HostName=youriothubname.azure-devices.net;DeviceId=yourdeviceid;SharedAccessKey=yourdevicekey

Salvare le modifiche (CTRL-O, Invio) e uscire dall'editor (CTRL-X).

Esegui l'esempio

Eseguire i comandi seguenti per installare i pacchetti prerequisiti per l'esempio:

cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advance/1.0
npm install

È ora possibile eseguire il programma di esempio in Raspberry Pi. Immettere il comando:

sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advanced/1.0/remote_monitoring.js

L'output di esempio seguente è un esempio dell'output visualizzato al prompt dei comandi in Raspberry Pi:

uscita dell'app Raspberry Pi

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

Visualizzare i dati di telemetria

Raspberry Pi invia ora dati di telemetria alla soluzione di monitoraggio remoto. È possibile visualizzare i dati di telemetria nel dashboard della soluzione. È anche possibile inviare messaggi al dispositivo Raspberry Pi dal dashboard della soluzione.

  • Passare al dashboard della soluzione.
  • Seleziona il tuo dispositivo dal menu a tendina Dispositivo da visualizzare.
  • I dati di telemetria di Raspberry Pi vengono visualizzati nel dashboard.

Visualizzare i dati di telemetria dal Raspberry Pi

Avviare l'aggiornamento del firmware

Il processo di aggiornamento del firmware scarica e installa una versione aggiornata dell'applicazione client del dispositivo in Raspberry Pi. Per altre informazioni sul processo di aggiornamento del firmware, vedere la descrizione del modello di aggiornamento del firmware in Panoramica della gestione dei dispositivi con l'hub IoT.

Avviare il processo di aggiornamento del firmware richiamando un metodo nel dispositivo. Questo metodo è asincrono e restituisce non appena inizia il processo di aggiornamento. Il dispositivo usa le proprietà segnalate per notificare alla soluzione lo stato di avanzamento dell'aggiornamento.

È possibile richiamare i metodi in Raspberry Pi dal dashboard della soluzione. Quando Raspberry Pi si connette per la prima volta alla soluzione di monitoraggio remoto, invia informazioni sui metodi supportati.

  1. Nel dashboard della soluzione, fare clic su Dispositivi per visitare la pagina Dispositivi. Selezionare Raspberry Pi nell'elenco dei dispositivi . Scegliere quindi metodi :

    Elencare i dispositivi nel dashboard

  2. Nella pagina Richiama metodo scegliere InitiateFirmwareUpdate nell'elenco a discesa Metodo .

  3. Nel campo FWPackageURI immettere https://raw.githubusercontent.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit/master/advanced/2.0/raspberry.js. Questo file contiene l'implementazione della versione 2.0 del firmware.

  4. Scegliere InvokeMethod. L'app su Raspberry Pi invia una conferma al dashboard della soluzione. Avvia quindi il processo di aggiornamento del firmware scaricando la nuova versione del firmware:

    Mostra cronologia dei metodi

Osservare il processo di aggiornamento del firmware

È possibile osservare il processo di aggiornamento del firmware durante l'esecuzione nel dispositivo e visualizzando le proprietà segnalate nel dashboard della soluzione:

  1. È possibile visualizzare lo stato di avanzamento del processo di aggiornamento in Raspberry Pi:

    Visualizzare lo stato di avanzamento dell'aggiornamento

    Annotazioni

    L'app di monitoraggio remoto viene riavviata automaticamente al termine dell'aggiornamento. Usare il comando ps -ef per verificare che sia in esecuzione. Se si vuole terminare il processo, usare il kill comando con l'ID processo.

  2. È possibile visualizzare lo stato dell'aggiornamento del firmware, come indicato dal dispositivo, nel portale della soluzione. Lo screenshot seguente mostra lo stato e la durata di ogni fase del processo di aggiornamento e la nuova versione del firmware:

    Mostra stato processo

    Se si torna al dashboard, è possibile verificare che il dispositivo invii ancora dati di telemetria dopo l'aggiornamento del firmware.

Avvertimento

Se si lascia la soluzione di monitoraggio remoto in esecuzione nell'account Azure, viene addebitato il tempo di esecuzione. Per altre informazioni sulla riduzione del consumo durante l'esecuzione della soluzione di monitoraggio remoto, vedere Configurazione di soluzioni preconfigurate di Azure IoT Suite a scopo dimostrativo. Eliminare la soluzione preconfigurata dall'account Azure al termine dell'uso.

Passaggi successivi

Visitare il di Azure IoT Dev Center per altri esempi e documentazione su Azure IoT.