Connettere Sparkfun ESP8266 Thing Dev all'hub IoT di Azure nel cloud

connessione tra DHT22, Thing Dev e hub IoT

Contenuto dell'esercitazione

Connettere Sparkfun ESP8266 Thing Dev a un hub IoT che l'utente creerà. Quindi eseguire un'applicazione di esempio in ESP8266 per raccogliere dati di temperatura e umidità da un sensore DHT22. Infine inviare i dati del sensore all'hub IoT.

Nota

Se si usano altre schede ESP8266, è comunque possibile seguire questi passaggi per connetterle all'hub IoT. A seconda della scheda ESP8266 in uso, potrebbe essere necessario riconfigurare il LED_PIN. Ad esempio, se si usa ESP8266 da AI-Thinker, è possibile modificarlo da 0 a 2. Non si dispone ancora di un kit? Fare clic qui

Contenuto dell'esercitazione

  • Come creare un hub IoT e registrare un dispositivo per Thing Dev.
  • Come connettere Thing Dev con il sensore e il computer.
  • Come raccogliere i dati del sensore eseguendo un'applicazione di esempio in Thing Dev.
  • Come inviare i dati del sensore all'hub IoT.

Prerequisiti

Parti necessarie per l'esercitazione

Per completare questa operazione, è necessario disporre dei componenti seguenti dello starter kit di Thing Dev:

  • La scheda Sparkfun ESP8266 Thing Dev.
  • Un cavo USB Micro/tipo A.

Per l'ambiente di sviluppo sono necessari anche gli elementi seguenti:

  • Una sottoscrizione di Azure attiva. Se non si ha un account Azure, creare un account Azure gratuito in pochi minuti.
  • Mac o PC che esegue Windows o Ubuntu.
  • Rete wireless per Sparkfun ESP8266 Thing Dev a cui connettersi.
  • Connessione Internet per scaricare lo strumento di configurazione.
  • IDE di Arduino versione 1.6.8 (o successive), le versioni precedenti non funzioneranno con la libreria AzureIoT.

Gli elementi seguenti sono facoltativi nel caso in cui non si disponga di un sensore. È possibile anche usare dati di sensori simulati.

  • Un sensore di temperatura e umidità Adafruit DHT22.
  • Una basetta sperimentale.
  • Cavi ponticello M/M.

Creare un hub IoT

  1. Nel portale di Azure fare clic su Nuovo > Internet delle cose > Hub IoT.

    Creare un hub IoT nel portale di Azure

  2. Nel riquadro Hub IoT immettere le informazioni seguenti per l'hub IoT:

    Nome: immettere il nome dell'hub IoT. Se il nome immesso è valido, viene visualizzato un segno di spunta verde.

    Piano tariffario e livello di scalabilità: selezionare il livello F1 gratuito. Questa opzione è sufficiente per questa demo. Per altre informazioni, vedere Piano tariffario e livello di scalabilità.

    Gruppo di risorse: creare un gruppo di risorse per ospitare l'hub IoT o usarne uno esistente. Per altre informazioni, vedere Usare i gruppi di risorse per gestire le risorse di Azure.

    Percorso: selezionare la posizione più vicina all'utente in cui viene creato l'hub IoT.

    Aggiungi al dashboard: selezionare questa opzione per semplificare l'accesso all'hub IoT dal dashboard.

    Immettere le informazioni per creare l'hub IoT

    Importante

    L'hub IoT sarà individuabile pubblicamente come endpoint DNS, quindi evitare di indicare informazioni riservate nell'assegnazione del nome.

  3. Fare clic su Crea. La creazione dell'hub IoT può richiedere alcuni minuti. È possibile visualizzare lo stato di avanzamento nel riquadro Notifiche.

    Vedere le notifiche relative allo stato dell'hub IoT

  4. Dopo aver creato l'hub IoT, selezionarlo nel dashboard. Annotare il Nome host, quindi fare clic su Criteri di accesso condiviso.

    Ottenere il nome host dell'hub IoT

  5. Nel riquadro Criteri di accesso condivisi fare clic sul criterio iothubowner, quindi copiare e annotare la Stringa di connessione dell'hub IoT. Per altre informazioni, vedere Controllare l'accesso all'hub IoT.

Nota

Per questa esercitazione di configurazione non è necessaria la stringa di connessione iothubowner. Potrebbe essere tuttavia necessaria per alcune delle esercitazioni in altri scenari IoT, dopo aver completato questa configurazione.

Ottenere la stringa di connessione dell'hub IoT

Registrare un dispositivo nell'hub IoT per il dispositivo

  1. Nel portale di Azure, aprire l'hub IoT.

  2. Fare clic su Esplora dispositivi.

  3. Nel riquadro Esplora dispositivi fare clic su Aggiungi per aggiungere un dispositivo all'hub IoT. Eseguire quindi le operazioni seguenti:

    ID dispositivo: immettere l'ID del nuovo dispositivo. Gli ID dispositivo fanno distinzione tra maiuscole e minuscole.

    Tipo di autenticazione: selezionare Chiave simmetrica.

    Genera chiavi automaticamente: selezionare questa casella di controllo.

    Connetti dispositivo all'hub IoT: fare clic su Abilita.

    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.

  4. Fare clic su Salva.

  5. Dopo la creazione del dispositivo, aprire il dispositivo nel riquadro Esplora dispositivi.
  6. Annotare la chiave primaria della stringa di connessione.

    Ottenere la stringa di connessione del dispositivo

Connettere ESP8266 Thing Dev con il sensore e il computer

Connettere un sensore di temperatura e umidità DHT22 a ESP8266 Thing Dev

Usare la basetta sperimentale e i cavi ponticello per stabilire la connessione come indicato di seguito. Se non si dispone di un sensore, ignorare questa sezione in quanto è possibile usare i dati di sensori simulati.

Riferimento per le connessioni

Per i pin dei sensori verranno usati i collegamenti seguenti:

Inizio (sensore) Fine (scheda) Colore del cavo
VDD (Pin 27F) 3V (Pin 8A) Cavo rosso
DATA (Pin 28F) GPIO 2 (Pin 9A) Cavo bianco
GND (Pin 30F) GND (Pin 7J) Cavo nero

Ora Sparkfun ESP8266 Thing Dev è connesso con un sensore funzionante.

collegare DHT22 con ESP8266 Thing Dev

Collegare Sparkfun ESP8266 Thing Dev al computer

Usare il cavo USB Micro/tipo A per connettere Sparkfun ESP8266 Thing Dev al computer come segue.

Connettere Feather HUZZAH al computer

Aggiungere le autorizzazioni per la porta seriale: solo in Ubuntu

Se si usa Ubuntu, assicurarsi che un normale utente abbia le autorizzazioni per operare sulla porta USB di Sparkfun ESP8266 Thing Dev. Per aggiungere autorizzazioni sulla porta seriale per un utente normale, seguire questi passaggi:

  1. Eseguire i comandi seguenti in un terminale:

    ls -l /dev/ttyUSB*
    ls -l /dev/ttyACM*
    

    Si ottiene uno degli output seguenti:

    • crw-rw---- 1 root uucp xxxxxxxx
    • crw-rw---- 1 root dialout xxxxxxxx

    Nell'output si osservi uucp o dialout che rappresenta il nome del proprietario gruppo della porta USB.

  2. Aggiungere l'utente al gruppo eseguendo il comando seguente:

    sudo usermod -a -G <group-owner-name> <username>
    

    <group-owner-name> è il nome del proprietario gruppo ottenuto nel passaggio precedente. <username> è il nome utente di Ubuntu.

  3. Eseguire la disconnessione da Ubuntu e quindi un nuovo accesso per rendere effettive le modifiche.

Raccogliere i dati del sensore e inviarli all'hub IoT

In questa sezione si distribuisce e si esegue un'applicazione di esempio in Sparkfun ESP8266 Thing Dev. L'applicazione di esempio fa lampeggiare il LED in Sparkfun ESP8266 Thing Dev e invia i dati di temperatura e umidità raccolti dal sensore DHT22 all'hub IoT.

Ottenere l'applicazione di esempio da Github

L'applicazione di esempio è ospitata in GitHub. Clonare il repository di esempio che contiene l'applicazione di esempio da GitHub. Per clonare il repository di esempio, seguire questi passaggi:

  1. Aprire un prompt dei comandi o una finestra del terminale.
  2. Passare alla cartella in cui archiviare l'applicazione di esempio.
  3. Eseguire il comando seguente:

    git clone https://github.com/Azure-Samples/iot-hub-SparkFun-ThingDev-client-app.git
    

Installare il pacchetto per Sparkfun ESP8266 Thing Dev nell'IDE di Arduino:

  1. Aprire la cartella in cui è archiviata l'applicazione di esempio.
  2. Aprire il file app.ino nella cartella dell'app nell'IDE di Arduino.

    Aprire l'applicazione di esempio nell'IDE di Arduino

  3. Nell'IDE di Arduino fare clic su File > Preferenze.

  4. Nella finestra di dialogo Preferenze fare clic sull'icona accanto alla casella di testo Additional Boards Manager URLs (URL di gestione bacheche aggiuntivo).
  5. Nella finestra a comparsa immettere l'URL seguente e quindi fare clic su OK.

    http://arduino.esp8266.com/stable/package_esp8266com_index.json

    Puntare all'URL di un pacchetto nell'IDE di Arduino

  6. Nella finestra di dialogo Preferenza fare clic su OK.

  7. Fare clic su Strumenti > Bacheca > Boards Manager (Gestione bacheche) e quindi cercare esp8266. Deve essere installato ESP8266 versione 2.2.0 o successiva.

    Il pacchetto esp8266 è installato

  8. Fare clic su Strumenti > Scheda > Sparkfun ESP8266 Thing Dev.

Installare le librerie necessarie

  1. Nell'IDE di Arduino fare clic su Schizzo > Include Library (Includi libreria) > Gestisci librerie.
  2. Cercare i seguenti nomi di libreria uno alla volta. Per ciascuna delle librerie individuate fare clic su Installa.
    • AzureIoTHub
    • AzureIoTUtility
    • AzureIoTProtocol_MQTT
    • ArduinoJson
    • DHT sensor library
    • Adafruit Unified Sensor

Non si dispone di un sensore DHT22 reale?

L'applicazione di esempio consente di simulare i dati di temperatura e umidità nel caso non si disponga di un sensore DHT22 reale. Per abilitare l'applicazione di esempio all'uso di dati simulati, seguire questi passaggi:

  1. Aprire il file config.h nella cartella app.
  2. Individuare la seguente riga di codice e modificare il valore da false a true:

    define SIMULATED_DATA true
    

    Configurare l'applicazione di esempio per l'uso di dati simulati

  3. Salvare con Control-s.

Distribuire l'applicazione di esempio in Sparkfun ESP8266 Thing Dev

  1. Nell'IDE di Arduino fare clic su Strumento > Porta e quindi fare clic sulla porta seriale di Sparkfun ESP8266 Thing Dev.
  2. Fare clic su Schizzo > Carica per compilare e distribuire l'applicazione di esempio in Sparkfun ESP8266 Thing Dev.

Nota

Se si usa macOS è possibile visualizzare i messaggi seguenti durante il caricamento. warning: espcomm_sync failed,error: espcomm_open failed. Aprire la finestra del terminal e completare le azioni riportate di seguito per risolvere questo problema.

cd /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns
sudo mv AppleUSBFTDI.kext AppleUSBFTDI.disabled
sudo touch /System/Library/Extensions

Immettere le credenziali

Dopo aver completato il caricamento, seguire i passaggi per immettere le credenziali:

  1. Nell'IDE di Arduino fare clic su Strumenti > Serial Monitor (Monitoraggio seriale).
  2. Nella finestra del monitoraggio seriale notare i due elenchi a discesa nella parte inferiore destra.
  3. Selezionare No line ending (Senza terminazione di riga) per la casella di riepilogo a discesa a sinistra.
  4. Selezionare 115200 baud per la casella di riepilogo a discesa a destra.
  5. Nella casella di input nella parte superiore della finestra del monitoraggio seriale immettere le informazioni seguenti, se viene richiesto di fornirle, e quindi fare clic su Invia.
    • Wi-Fi SSID
    • Password Wi-Fi
    • Stringa di connessione del dispositivo

Nota

Le informazioni sulle credenziali sono archiviate in EEPROM di Sparkfun ESP8266 Thing Dev. Se si fa clic sul pulsante di reset della scheda di Sparkfun ESP8266 Thing Dev, l'applicazione di esempio chiede se si desidera cancellare le informazioni. Immettere Y per cancellare le informazioni e verrà chiesto di fornirle nuovamente.

Verificare che l'applicazione di esempio venga eseguita correttamente

Se si vede il seguente output dalla finestra di monitoraggio seriale e il LED di Sparkfun ESP8266 Thing Dev lampeggia, significa che l'applicazione di esempio viene eseguita correttamente.

Output finale nell'IDE di Arduino

Passaggi successivi

Sparkfun ESP8266 Thing Dev si è connessa correttamente all'hub IoT e i dati acquisiti dal sensore sono stati inviati all'hub IoT.

Per altre informazioni sulle attività iniziali con l'hub IoT di Azure e per esplorare altri scenari IoT, vedere: