Connettere Raspberry Pi ad Azure IoT Hub (Node. js)Connect Raspberry Pi to Azure IoT Hub (Node.js)

Questa esercitazione illustra le nozioni di base sull'uso di Raspberry Pi con il sistema operativo Raspbian.In this tutorial, you begin by learning the basics of working with Raspberry Pi that's running Raspbian. Viene poi illustrato come connettere i dispositivi al cloud usando l'hub IoT di Azure.You then learn how to seamlessly connect your devices to the cloud by using Azure IoT Hub. Per esempi di Windows 10 IoT Core, vedere Windows Dev Center.For Windows 10 IoT Core samples, go to the Windows Dev Center.

Se non si ha ancora un kit,Don't have a kit yet? Provare il simulatore online Raspberry Pi.Try Raspberry Pi online simulator. In alternativa, acquistare un nuovo kit qui.Or buy a new kit here.

Operazioni da fareWhat you do

  • Creare un hub IoT.Create an IoT hub.
  • Registrare un dispositivo per Pi nel proprio hub IoT.Register a device for Pi in your IoT hub.
  • Installare Raspberry Pi.Set up Raspberry Pi.
  • Eseguire un'applicazione di esempio in Pi per inviare i dati del sensore all'hub IoT.Run a sample application on Pi to send sensor data to your IoT hub.

Contenuto dell'esercitazioneWhat you learn

  • Come creare un hub IoT di Azure e ottenere la stringa di connessione del nuovo dispositivo.How to create an Azure IoT hub and get your new device connection string.
  • Come connettere Pi con un sensore BME280.How to connect Pi with a BME280 sensor.
  • Come raccogliere i dati del sensore eseguendo un'applicazione di esempio in Pi.How to collect sensor data by running a sample application on Pi.
  • Come inviare i dati del sensore all'hub IoT.How to send sensor data to your IoT hub.

Elementi necessariWhat you need

Elementi necessari

  • Una scheda di Raspberry Pi 2 o Raspberry Pi 3.A Raspberry Pi 2 or Raspberry Pi 3 board.
  • Una sottoscrizione di Azure attiva.An active Azure subscription. Se non si ha un account Azure, creare un account Azure gratuito in pochi minuti.If you don't have an Azure account, create a free Azure trial account in just a few minutes.
  • Un monitor, una tastiera USB e un mouse collegato a Pi.A monitor, a USB keyboard, and mouse that connects to Pi.
  • Un Mac o PC che esegue Windows o Linux.A Mac or PC that is running Windows or Linux.
  • Una connessione Internet.An internet connection.
  • Una scheda microSD da 16 GB o più.A 16 GB or above microSD card.
  • Una scheda microSD o un adattatore USB-SD con cui masterizzare l'immagine del sistema operativo nella scheda microSD.A USB-SD adapter or microSD card to burn the operating system image onto the microSD card.
  • Un alimentatore da 5 V/2 A con cavo micro USB da 1,8 metri circa.A 5-volt 2-amp power supply with the 6-foot micro USB cable.

Gli elementi seguenti sono opzionali:The following items are optional:

  • Un sensore Adafruit BME280 assemblato per rilevare umidità, temperatura e pressione.An assembled Adafruit BME280 temperature, pressure, and humidity sensor.
  • Una basetta sperimentale.A breadboard.
  • 6 cavi ponticello F/M.6 F/M jumper wires.
  • Un LED da 10 mm a luce diffusa.A diffused 10-mm LED.

Nota

Se non si dispone di elementi facoltativi, è possibile usare i dati dei sensori simulati.If you don't have the optional items, you can use simulated sensor data.

Creare un hub IoTCreate an IoT hub

  1. Accedere al portale di Azure.Sign in to the Azure portal.
  2. Selezionare Nuovo > Internet delle cose > Hub IoT.Select New > Internet of Things > IoT Hub.

    Indice del portale di Azure

  3. Nel riquadro Hub IoT immettere le informazioni seguenti per l'hub IoT:In the IoT hub pane, enter the following information for your IoT hub:

    • Nome: creare un nome per l'hub IoT.Name: Create a name for your IoT hub. Se il nome immesso è valido, viene visualizzato un segno di spunta verde.If the name you enter is valid, a green check mark appears.

    Importante

    L'hub IoT sarà individuabile pubblicamente come endpoint DNS, quindi evitare di indicare informazioni riservate nell'assegnazione del nome.The IoT hub will be publicly discoverable as a DNS endpoint, so make sure to avoid any sensitive information while naming it.

    • Piano tariffario e livello di scalabilità: per questa esercitazione selezionare il livello F1 gratuito.Pricing and scale tier: For this tutorial, select the F1 - Free tier. Per altre informazioni, vedere la pagina relativa a piano tariffario e livello di scalabilità.For more information, see the Pricing and scale tier.

    • Gruppo di risorse: creare un gruppo di risorse per ospitare l'hub IoT o usarne uno esistente.Resource group: Create a resource group to host the IoT hub or use an existing one. Per altre informazioni, vedere l'articolo su come usare i gruppi di risorse per gestire le risorse di Azure.For more information, see Use resource groups to manage your Azure resources

    • Località: selezionare la località più vicina.Location: Select the closest location to you.

    • Aggiungi al dashboard: selezionare questa opzione per semplificare l'accesso all'hub IoT dal dashboard.Pin to dashboard: Check this option for easy access to your IoT hub from the dashboard.

      Finestra Hub IoT

  4. Fare clic su Crea.Click Create. La creazione dell'hub IoT può richiedere alcuni minuti.Your IoT hub might take a few minutes to create. È possibile monitorare lo stato di avanzamento nel riquadro Notifiche.You can monitor the progress in the Notifications pane.

Ora che è stato creato un hub IoT, individuare le informazioni importanti che consentono di connettere dispositivi e applicazioni all'hub IoT.Now that you have created an IoT hub, locate the important information that you use to connect devices and applications to your IoT hub.

  1. Dopo aver creato l'hub IoT, selezionarlo nel dashboard.After your IoT hub is created, click it on the dashboard. Annotare il Nome host, quindi fare clic su Criteri di accesso condiviso.Make a note of the Hostname, and then click Shared access policies.

    Ottenere il nome host dell'hub IoT

  2. Nel riquadro Criteri di accesso condivisi fare clic sul criterio iothubowner, quindi copiare e annotare la Stringa di connessione dell'hub IoT.In the Shared access policies pane, click the iothubowner policy, and then copy and make a note of the Connection string of your IoT hub. Per altre informazioni, vedere Controllare l'accesso all'hub IoT.For more information, see Control access to IoT Hub.

Nota

Per questa esercitazione di configurazione non è necessaria la stringa di connessione iothubowner.You will not need this iothubowner connection string for this set-up tutorial. Potrebbe essere tuttavia necessaria per alcune delle esercitazioni in altri scenari IoT, dopo aver completato questa configurazione.However, you may need it for some of the tutorials on different IoT scenarios after you complete this set-up.

Ottenere la stringa di connessione dell'hub IoT

Registrare un dispositivo nell'hub IoT per il dispositivoRegister a device in the IoT hub for your device

  1. Nel portale di Azure, aprire l'hub IoT.In the Azure portal, open your IoT hub.

  2. Fare clic su Esplora dispositivi.Click Device Explorer.

  3. Nel riquadro Esplora dispositivi fare clic su Aggiungi per aggiungere un dispositivo all'hub IoT.In the Device Explorer pane, click Add to add a device to your IoT hub. Eseguire quindi le operazioni seguenti:Then do the following:

    ID dispositivo: immettere l'ID del nuovo dispositivo.Device ID: Enter the ID of the new device. Gli ID dispositivo fanno distinzione tra maiuscole e minuscole.Device IDs are case sensitive.

    Tipo di autenticazione: selezionare Chiave simmetrica.Authentication Type: Select Symmetric Key.

    Genera chiavi automaticamente: selezionare questa casella di controllo.Auto Generate Keys: Select this check box.

    Connetti dispositivo all'hub IoT: fare clic su Abilita.Connect device to IoT Hub: Click Enable.

    Aggiungere un dispositivo a Device Explorer nell'hub IoT

    Importante

    L'ID dispositivo può essere visibile nei log raccolti per il supporto tecnico e la risoluzione dei problemi, quindi evitare di indicare informazioni riservate nell'assegnazione del nome.The device ID may be visible in the logs collected for customer support and troubleshooting, so make sure to avoid any sensitive information while naming it.

  4. Fare clic su Salva.Click Save.

  5. Dopo la creazione del dispositivo, aprire il dispositivo nel riquadro Esplora dispositivi.After the device is created, open the device in the Device Explorer pane.
  6. Annotare la chiave primaria della stringa di connessione.Make a note of the primary key of the connection string.

    Ottenere la stringa di connessione del dispositivo

Installare Raspberry PiSet up Raspberry Pi

Installare il sistema operativo Raspbian per PiInstall the Raspbian operating system for Pi

Preparare la scheda microSD per l'installazione dell'immagine di Raspbian.Prepare the microSD card for installation of the Raspbian image.

  1. Scaricare Raspbian.Download Raspbian.

    1. Scaricare l'estensione Raspbian (il file con estensione zip).Download Raspbian Stretch (the .zip file).

    Avviso

    Usare il collegamento precedente per scaricare l'immagine con estensione zip raspbian-2017-07-5.Please use above link to download raspbian-2017-07-5 zip image. La versione più recente delle immagini Raspbian presenta alcuni problemi noti a livello del nodo Wiring-Pi e ciò potrebbe generare errori nei passaggi successivi.The latest version of Raspbian images has some known issues with Wiring-Pi Node, which might cause failure in your next steps.

    1. Estrarre l'immagine di Raspbian in una cartella nel computer.Extract the Raspbian image to a folder on your computer.
  2. Installare Raspbian nella scheda microSD.Install Raspbian to the microSD card.

    1. Scaricare e installare l'utilità di masterizzazione Etcher per schede SD.Download and install the Etcher SD card burner utility.
    2. Eseguire Etcher e selezionare l'immagine di Raspbian estratta nel passaggio 1.Run Etcher and select the Raspbian image that you extracted in step 1.
    3. Selezionare l'unità della scheda microSD.Select the microSD card drive. Etcher potrebbe avere già selezionato l'unità corretta.Etcher may have already selected the correct drive.
    4. Fare clic su Flash per installare Raspbian nella scheda microSD.Click Flash to install Raspbian to the microSD card.
    5. Rimuovere la scheda microSD dal computer al termine dell'installazione.Remove the microSD card from your computer when installation is complete. È possibile rimuovere direttamente la scheda microSD perché viene espulsa o smontata automaticamente da Etcher al termine dell'operazione.It's safe to remove the microSD card directly because Etcher automatically ejects or unmounts the microSD card upon completion.
    6. Inserire la scheda microSD in Pi.Insert the microSD card into Pi.

Abilitare SSH e I2CEnable SSH and I2C

  1. Collegare Pi al monitor, alla tastiera e al mouse.Connect Pi to the monitor, keyboard, and mouse.
  2. Avviare Pi e accedere a Raspbian usando pi come nome utente e raspberry come password.Start Pi and then log in Raspbian by using pi as the user name and raspberry as the password.
  3. Fare clic sull'icona di Raspberry > Preferenze > Raspberry Pi Configuration (Configurazione di Raspberry Pi).Click the Raspberry icon > Preferences > Raspberry Pi Configuration.

    Il menu Preferenze di Raspbian

  4. Nella scheda Interfacce impostare I2C e SSH su Abilita, quindi fare clic su OK.On the Interfaces tab, set I2C and SSH to Enable, and then click OK. Se non si hanno sensori fisici e si vogliono usare i dati di sensori simulati, questo passaggio è facoltativo.If you don't have physical sensors and want to use simulated sensor data, this step is optional.

    Abilitare I2C e SSH su Raspberry Pi

Nota

Per abilitare SSH e I2C è possibile trovare più documenti di riferimento su raspberrypi.org e Adafruit.com.To enable SSH and I2C, you can find more reference documents on raspberrypi.org and Adafruit.com.

Connettere il sensore a PiConnect the sensor to Pi

Usare i cavi ponticello e la basetta sperimentale per connettere un LED e un sensore BME280 a Pi, come indicato di seguito.Use the breadboard and jumper wires to connect an LED and a BME280 to Pi as follows. In assenza di un sensore, ignorare questa sezione.If you don’t have the sensor, skip this section.

La connessione di Raspberry Pi e del sensore

Il sensore BME280 può raccogliere i dati relativi a temperatura e umidità.The BME280 sensor can collect temperature and humidity data. Il LED lampeggia quando il dispositivo invia un messaggio al cloud.The LED blinks when the device sends a message to the cloud.

Per i pin dei sensori usare i collegamenti seguenti:For sensor pins, use the following wiring:

Inizio (sensore e LED)Start (Sensor & LED) Fine (scheda)End (Board) Colore del cavoCable Color
VDD (Pin 5G)VDD (Pin 5G) 3,3 V PWR (Pin 1)3.3V PWR (Pin 1) Cavo biancoWhite cable
GND (Pin 7G)GND (Pin 7G) GND (Pin 6)GND (Pin 6) Cavo marroneBrown cable
SDI (Pin 10G)SDI (Pin 10G) I2C1 SDA (Pin 3)I2C1 SDA (Pin 3) Cavo rossoRed cable
SCK (Pin 8G)SCK (Pin 8G) I2C1 SCL (Pin 5)I2C1 SCL (Pin 5) Cavo arancioneOrange cable
LED VDD (Pin 18F)LED VDD (Pin 18F) GPIO 24 (Pin 18)GPIO 24 (Pin 18) Cavo biancoWhite cable
LED GND (Pin 17F)LED GND (Pin 17F) GND (Pin 20)GND (Pin 20) Cavo neroBlack cable

Fare clic per visualizzare i mapping dei pin di Raspberry Pi 2 e 3 come riferimento.Click to view Raspberry Pi 2 & 3 pin mappings for your reference.

Dopo aver correttamente collegato BME280 a Raspberry Pi, dovrebbe apparire come mostrato nell'immagine di seguito.After you've successfully connected BME280 to your Raspberry Pi, it should be like below image.

Pi e BME280 connessi

Connettere Pi alla reteConnect Pi to the network

Accendere Pi usando il cavo micro USB e l'alimentatore.Turn on Pi by using the micro USB cable and the power supply. Usare il cavo Ethernet per connettere Pi alla rete cablata oppure seguire le istruzioni riportate nella Guida di Raspberry Pi per connettere Pi alla rete wireless.Use the Ethernet cable to connect Pi to your wired network or follow the instructions from the Raspberry Pi Foundation to connect Pi to your wireless network. Dopo aver connesso Pi alla rete, è necessario annotarne l'indirizzo IP.After your Pi has been successfully connected to the network, you need to take a note of the IP address of your Pi.

Connesso alla rete cablata

Nota

Verificare che Pi sia connesso alla stessa rete del computer.Make sure that Pi is connected to the same network as your computer. Se il computer è connesso a una rete wireless mentre il dispositivo Pi è connesso a una rete cablata, ad esempio, l'indirizzo IP potrebbe non essere incluso nell'output di devdisco.For example, if your computer is connected to a wireless network while Pi is connected to a wired network, you might not see the IP address in the devdisco output.

Eseguire un'applicazione di esempio in PiRun a sample application on Pi

Clonare l'applicazione di esempio e installare i pacchetti di prerequisitiClone sample application and install the prerequisite packages

  1. Connettersi a Raspberry Pi usando uno dei client SSH seguenti dal computer host.Connect to your Raspberry Pi with one of the following SSH clients from your host computer:

    Utenti WindowsWindows Users

    1. Scaricare e installare PuTTY per Windows.Download and install PuTTY for Windows.
    2. Copiare l'indirizzo IP di Pi nella sezione relativa a nome host o indirizzo IP e selezionare SSH come tipo di connessione.Copy the IP address of your Pi into the Host name (or IP address) section and select SSH as the connection type.

    PuTTy

    Utenti Mac e UbuntuMac and Ubuntu Users

    Usare il client SSH predefinito in Ubuntu o macOS.Use the built-in SSH client on Ubuntu or macOS. Per connettere Pi tramite SSH potrebbe essere necessario eseguire ssh pi@<ip address of pi>.You might need to run ssh pi@<ip address of pi> to connect Pi via SSH.

    Nota

    Il nome utente predefinito è pi e la password è raspberry.The default username is pi and the password is raspberry.

  2. Installare Node.js e NPM in Pi.Install Node.js and NPM to your Pi.

    Controllare prima la versione di Node.js.First check your Node.js version.

    node -v
    

    Se la versione è anteriore alla 4.x o se non è presente alcun Node.js in Pi, installare la versione più recente.If the version is lower than 4.x, or if there is no Node.js on your Pi, install the latest version.

    curl -sL http://deb.nodesource.com/setup_4.x | sudo -E bash
    sudo apt-get -y install nodejs
    
  3. Clonare l'applicazione di esempio.Clone the sample application.

    git clone https://github.com/Azure-Samples/iot-hub-node-raspberrypi-client-app
    
  4. Installare tutti i pacchetti relativi all'esempio.Install all packages for the sample. L'installazione include Azure IoT SDK per dispositivi, la libreria del sensore BME280 e libreria di Pi per i collegamenti.The installation includes Azure IoT device SDK, BME280 Sensor library, and Wiring Pi library.

    cd iot-hub-node-raspberrypi-client-app
    sudo npm install
    

    Nota

    A seconda della connessione di rete, il completamento del processo di installazione potrebbe richiedere alcuni minuti.It might take several minutes to finish this installation process depending on your network connection.

Configurare l'applicazione di esempioConfigure the sample application

  1. Aprire il file di configurazione eseguendo i comandi seguenti:Open the config file by running the following commands:

    nano config.json
    

    File di configurazione

    Questo file contiene due elementi configurabili.There are two items in this file you can configure. Il primo è interval, che definisce l'intervallo di tempo (in millisecondi) tra due messaggi inviati al cloud.The first one is interval, which defines the time interval (in milliseconds) between messages sent to the cloud. Il secondo è simulatedData, ossia un valore booleano che indica se usare o no i dati del sensore simulato.The second one is simulatedData, which is a Boolean value for whether to use simulated sensor data or not.

    Se non si dispone del sensore, impostare il valore simulatedData su true per permettere all'applicazione di esempio di creare e usare i dati del sensore simulati.If you don't have the sensor, set the simulatedData value to true to make the sample application create and use simulated sensor data.

  2. Salvare e uscire premendo CTRL-O > INVIO > CTRL-X.Save and exit by typing Control-O > Enter > Control-X.

Eseguire l'applicazione di esempioRun the sample application

Eseguire l'applicazione di esempio tramite il comando seguente:Run the sample application by running the following command:

sudo node index.js '<YOUR AZURE IOT HUB DEVICE CONNECTION STRING>'

Nota

Assicurarsi di copiare e incollare la stringa di connessione del dispositivo tra virgolette singole.Make sure you copy-paste the device connection string into the single quotes.

Dovrebbe essere visibile l'output seguente che mostra i dati del sensore e i messaggi inviati all'hub IoT.You should see the following output that shows the sensor data and the messages that are sent to your IoT hub.

Output - dati del sensore inviati da Raspberry Pi all'hub IoT

Passaggi successiviNext steps

È stata eseguita un'applicazione di esempio per raccogliere i dati del sensore da inviare all'hub IoT.You’ve run a sample application to collect sensor data and send it to your IoT hub. Per visualizzare i messaggi inviati da Raspberry Pi all'hub IoT o per inviare messaggi a Raspberry Pi in un'interfaccia della riga di comando, vedere l'esercitazione sulla gestione della messaggistica tra cloud e dispositivo con iothub-explorer.To see the messages that your Raspberry Pi has sent to your IoT hub, or to send messages to your Raspberry Pi in a command-line interface, see the Manage cloud device messaging with iothub-explorer tutorial.

Per altre informazioni sulle attività iniziali con l'hub IoT di Azure e per esplorare altri scenari IoT, vedere:To continue to get started with Azure IoT Hub and to explore other IoT scenarios, see the following: