Connettere Raspberry Pi ad Azure IoT Hub (C)Connect Raspberry Pi to Azure IoT Hub (C)

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.Setup 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.

Connettere Raspberry Pi a un hub IoT creato dall'utente.Connect Raspberry Pi to an IoT hub that you create. Dopodiché, eseguire un'applicazione di esempio in Pi per raccogliere i dati di temperatura e umidità da un sensore BME280.Then you run a sample application on Pi to collect temperature and humidity data from a BME280 sensor. Infine inviare i dati del sensore all'hub IoT.Finally, you send the 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

  • La scheda di Raspberry Pi 2 o di Raspberry Pi 3.The Raspberry Pi 2 or Raspberry Pi 3 board.
  • Una sottoscrizione di Azure attiva.An active Azure subscription. Se non si ha un account di Azure, creare un account di 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 da collegare a Pi.A monitor, a USB keyboard, and mouse that connect to Pi.
  • Un Mac o PC che esegue Windows o Linux.A Mac or a 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

Questi elementi sono opzionali, poiché l'esempio di codice supporta i dati del sensore simulati.These items are optional because the code sample support 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 PiSetup 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 Raspbian Jessie with Desktop (file ZIP).Download Raspbian Jessie with Desktop (the .zip file).
    2. 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. Si noti che Etcher potrebbe avere già selezionato l'unità corretta.Note that 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 SPIEnable SSH and SPI

  1. Collegare Pi al monitor, alla tastiera e al mouse, avviare Pi e accedere a Raspbian usando pi come nome utente e raspberry come password.Connect Pi to the monitor, keyboard and mouse, start Pi and then log in Raspbian by using pi as the user name and raspberry as the password.
  2. 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

  3. Nella scheda Interfacce impostare SPI e SSH su Abilita, quindi fare clic su OK.On the Interfaces tab, set SPI 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 SPI e SSH su Raspberry Pi

Nota

Per abilitare SSH e SPI è possibile trovare più documenti di riferimento su raspberrypi.org e RASPI-CONFIG.To enable SSH and SPI, you can find more reference documents on raspberrypi.org and RASPI-CONFIG.

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 sarà intermittente se viene stabilita una comunicazione tra il dispositivo e il cloud.And the LED will blink if there is a communication between device and 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
LED VDD (Pin 5G)LED VDD (Pin 5G) GPIO 4 (Pin 7)GPIO 4 (Pin 7) Cavo biancoWhite cable
LED GND (Pin 6G)LED GND (Pin 6G) GND (Pin 6)GND (Pin 6) Cavo neroBlack cable
VDD (Pin 18F)VDD (Pin 18F) 3,3 V PWR (Pin 17)3.3V PWR (Pin 17) Cavo biancoWhite cable
GND (Pin 20F)GND (Pin 20F) GND (Pin 20)GND (Pin 20) Cavo neroBlack cable
SCK (Pin 21F)SCK (Pin 21F) SPI0 SCLK (Pin 23)SPI0 SCLK (Pin 23) Cavo arancioneOrange cable
SDO (Pin 22F)SDO (Pin 22F) SPI0 MISO (Pin 21)SPI0 MISO (Pin 21) Cavo gialloYellow cable
SDI (Pin 23F)SDI (Pin 23F) SPI0 MOSI (Pin 19)SPI0 MOSI (Pin 19) Cavo verdeGreen cable
CS (Pin 24F)CS (Pin 24F) SPI0 CS (Pin 24)SPI0 CS (Pin 24) Cavo bluBlue cable

Fare clic per visualizzare i mapping 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

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

Accedere a Raspberry PiLogin to your Raspberry Pi

  1. Per connettersi a Raspberry Pi, usare uno dei client SSH seguenti dal computer host.Use one of the following SSH clients from your host computer to connect to your Raspberry Pi.

    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.

Configurare l'applicazione di esempioConfigure the sample application

  1. Clonare l'applicazione di esempio eseguendo il comando seguente:Clone the sample application by running the following command:

    sudo apt-get install git-core
    git clone https://github.com/Azure-Samples/iot-hub-c-raspberrypi-client-app.git
    
  2. Eseguire lo script di configurazione:Run setup script:

    cd ./iot-hub-c-raspberrypi-client-app
    sudo chmod u+x setup.sh
    sudo ./setup.sh
    

    Nota

    Se non di dispone di un BME280 fisico, è possibile usare "--simulated-data" come parametro della riga di comando per simulare i dati temperature&humidity.If you don't have a physical BME280, you can use '--simulated-data' as command line parameter to simulate temperature&humidity data. sudo ./setup.sh --simulated-data

Compilare ed eseguire l'applicazione di esempioBuild and run the sample application

  1. Compilare l'applicazione di esempio eseguendo il comando seguente:Build the sample application by running the following command:

    cmake . && make
    

    Output della compilazione

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

    sudo ./app '<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 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: