Usare il gateway IoT per la trasformazione dei dati del sensore con Azure IoT Edge

Nota

Prima di iniziare questa esercitazione, assicurarsi di aver completato le lezioni seguenti in sequenza:

Uno degli scopi di un gateway IoT consiste nell'elaborare i dati raccolti prima di inviarli al cloud. Azure IoT Edge introduce una serie di moduli che possono essere creati e assemblati per formare il flusso di lavoro dell'elaborazione dei dati. Un modulo riceve un messaggio, esegue un'azione su di esso e quindi lo passa ad altri moduli per l'elaborazione.

Contenuto dell'esercitazione

Informazioni su come creare un modulo per convertire i messaggi del SensorTag in un formato diverso.

Operazioni da fare

  • Creare un modulo per convertire nel formato JSON un messaggio ricevuto.
  • Compilare il modulo.
  • Aggiungere il modulo all'applicazione di esempio BLE da Azure IoT Edge.
  • Eseguire l'applicazione di esempio.

Elementi necessari

Creare un modulo

  1. Nel computer host eseguire il client SSH e connettersi al gateway IoT.
  2. Clonare i file di origine del modulo di conversione da GitHub nella home directory del gateway IoT eseguendo i comandi seguenti:

    cd ~
    git clone https://github.com/Azure-Samples/iot-hub-c-intel-nuc-gateway-customized-module.git
    

    Questo è un modulo di Azure Edge nativo scritto nel linguaggio di programmazione C. Il modulo converte il formato dei messaggi ricevuti nel formato seguente:

    {"deviceId": "Intel NUC Gateway", "messageId": 0, "temperature": 0.0}
    

Compilare il modulo

Per compilare il modulo, eseguire i comandi seguenti:

cd iot-hub-c-intel-nuc-gateway-customized-module/my_module
# change the build script runnable
chmod 777 build.sh
# remove the invalid windows character
sed -i -e "s/\r$//" build.sh
# run the build shell script
./build.sh

Al termine della compilazione, viene creato un file libmy_module.so. Prendere nota del percorso assoluto del file.

Aggiungere il modulo all'applicazione di esempio BLE

  1. Passare alla cartella degli esempi usando il comando seguente:

    cd /usr/share/azureiotgatewaysdk/samples
    
  2. Aprire il file di configurazione usando il comando seguente:

    vi ble_gateway.json
    
  3. Aggiungere un modulo inserendo il codice seguente nella sezione modules.

    {
        "name": "MyModule",
        "loader": {
            "name": "native",
            "entrypoint":{
                "module.path": "[Your libmy_module.so path]"
                }
             },
         "args": null
     },
    
  4. Sostituire [Your libmy_module.so path] nel codice con il percorso assoluto del file libmy_module.so.

  5. Sostituire il codice nella sezione links con il codice seguente:

    {
        "source": "SensorTag",
        "sink": "MyModule"
    },
    {
        "source": "MyModule",
        "sink": "mapping"
    }
    
  6. Premere ESC e quindi digitare :wq per salvare il file.

Eseguire l'applicazione di esempio

  1. Accendere il SensorTag.
  2. Impostare la variabile di ambiente SSL_CERT_FILE usando il comando seguente:

    export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
    
  3. Eseguire l'applicazione di esempio con il modulo aggiunto usando il comando seguente:

    ./ble_gateway ble_gateway.json
    

Passaggi successivi

È stato usato il gateway IoT per convertire il messaggio dal SensorTag nel formato JSON.

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