You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/it/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md

7.7 KiB

Leggere dati GPS - Hardware IoT Virtuale

In questa parte della lezione, aggiungerai un sensore GPS al tuo dispositivo IoT virtuale e leggerai i valori da esso.

Hardware Virtuale

Il dispositivo IoT virtuale utilizzerà un sensore GPS simulato accessibile tramite UART attraverso una porta seriale.

Un sensore GPS fisico avrà un'antenna per captare le onde radio dai satelliti GPS e convertire i segnali GPS in dati GPS. La versione virtuale simula questo permettendoti di impostare una latitudine e una longitudine, inviare frasi NMEA grezze o caricare un file GPX con più posizioni che possono essere restituite in sequenza.

🎓 Le frasi NMEA saranno trattate più avanti in questa lezione.

Aggiungere il sensore a CounterFit

Per utilizzare un sensore GPS virtuale, devi aggiungerne uno all'app CounterFit.

Attività - aggiungere il sensore a CounterFit

Aggiungi il sensore GPS all'app CounterFit.

  1. Crea una nuova app Python sul tuo computer in una cartella chiamata gps-sensor con un singolo file chiamato app.py e un ambiente virtuale Python, e aggiungi i pacchetti pip di CounterFit.

    ⚠️ Puoi fare riferimento alle istruzioni per creare e configurare un progetto Python CounterFit nella lezione 1, se necessario.

  2. Installa un pacchetto Pip aggiuntivo per installare uno shim di CounterFit che può comunicare con sensori basati su UART tramite una connessione seriale. Assicurati di installarlo da un terminale con l'ambiente virtuale attivato.

    pip install counterfit-shims-serial
    
  3. Assicurati che l'app web di CounterFit sia in esecuzione.

  4. Crea un sensore GPS:

    1. Nella casella Create sensor nel pannello Sensors, apri il menu a tendina Sensor type e seleziona UART GPS.

    2. Lascia il Port impostato su /dev/ttyAMA0.

    3. Seleziona il pulsante Add per creare il sensore GPS sulla porta /dev/ttyAMA0.

    Le impostazioni del sensore GPS

    Il sensore GPS sarà creato e apparirà nella lista dei sensori.

    Il sensore GPS creato

Programmare il sensore GPS

Ora il dispositivo IoT virtuale può essere programmato per utilizzare il sensore GPS virtuale.

Attività - programmare il sensore GPS

Programma l'app del sensore GPS.

  1. Assicurati che l'app gps-sensor sia aperta in VS Code.

  2. Apri il file app.py.

  3. Aggiungi il seguente codice all'inizio di app.py per connettere l'app a CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Aggiungi il seguente codice sotto questo per importare alcune librerie necessarie, inclusa la libreria per la porta seriale di CounterFit:

    import time
    import counterfit_shims_serial
    
    serial = counterfit_shims_serial.Serial('/dev/ttyAMA0')
    

    Questo codice importa il modulo serial dal pacchetto Pip counterfit_shims_serial. Successivamente si connette alla porta seriale /dev/ttyAMA0, che è l'indirizzo della porta seriale utilizzata dal sensore GPS virtuale per la sua porta UART.

  5. Aggiungi il seguente codice sotto questo per leggere dalla porta seriale e stampare i valori sulla console:

    def print_gps_data(line):
        print(line.rstrip())
    
    while True:
        line = serial.readline().decode('utf-8')
    
        while len(line) > 0:
            print_gps_data(line)
            line = serial.readline().decode('utf-8')
    
        time.sleep(1)
    

    Viene definita una funzione chiamata print_gps_data che stampa sulla console la linea passata come parametro.

    Successivamente, il codice esegue un ciclo infinito, leggendo quante più linee di testo possibile dalla porta seriale in ogni ciclo. Chiama la funzione print_gps_data per ogni linea.

    Dopo che tutti i dati sono stati letti, il ciclo si interrompe per 1 secondo, quindi riprende.

  6. Esegui questo codice, assicurandoti di utilizzare un terminale diverso da quello in cui l'app CounterFit è in esecuzione, in modo che l'app CounterFit rimanga attiva.

  7. Dall'app CounterFit, modifica il valore del sensore GPS. Puoi farlo in uno dei seguenti modi:

    • Imposta la Source su Lat/Lon e specifica una latitudine, una longitudine e il numero di satelliti utilizzati per ottenere il fix GPS. Questo valore verrà inviato solo una volta, quindi seleziona la casella Repeat per far sì che i dati si ripetano ogni secondo.

      Il sensore GPS con lat lon selezionato

    • Imposta la Source su NMEA e aggiungi alcune frasi NMEA nella casella di testo. Tutti questi valori verranno inviati, con un intervallo di 1 secondo prima che ogni nuova frase GGA (fix di posizione) possa essere letta.

      Il sensore GPS con frasi NMEA impostate

      Puoi utilizzare uno strumento come nmeagen.org per generare queste frasi disegnando su una mappa. Questi valori verranno inviati solo una volta, quindi seleziona la casella Repeat per far sì che i dati si ripetano un secondo dopo che tutti sono stati inviati.

    • Imposta la Source su GPX file e carica un file GPX con posizioni di tracciamento. Puoi scaricare file GPX da numerosi siti di mappe e escursionismo popolari, come AllTrails. Questi file contengono più posizioni GPS come un percorso, e il sensore GPS restituirà ogni nuova posizione a intervalli di 1 secondo.

      Il sensore GPS con un file GPX impostato

      Questi valori verranno inviati solo una volta, quindi seleziona la casella Repeat per far sì che i dati si ripetano un secondo dopo che tutti sono stati inviati.

    Una volta configurate le impostazioni GPS, seleziona il pulsante Set per confermare questi valori nel sensore.

  8. Vedrai l'output grezzo del sensore GPS, qualcosa di simile al seguente:

    $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67
    $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67
    

💁 Puoi trovare questo codice nella cartella code-gps/virtual-device.

😀 Il tuo programma per il sensore GPS è stato un successo!

Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Sebbene ci impegniamo per garantire l'accuratezza, si prega di notare che le traduzioni automatiche potrebbero contenere errori o imprecisioni. Il documento originale nella sua lingua nativa dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un traduttore umano. Non siamo responsabili per eventuali incomprensioni o interpretazioni errate derivanti dall'uso di questa traduzione.