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/el/3-transport/lessons/1-location-tracking/virtual-device-gps-sensor.md

12 KiB

Ανάγνωση δεδομένων GPS - Εικονικό IoT Υλικό

Σε αυτό το μέρος του μαθήματος, θα προσθέσετε έναν αισθητήρα GPS στη συσκευή IoT σας και θα διαβάσετε δεδομένα από αυτόν.

Εικονικό Υλικό

Η εικονική συσκευή IoT θα χρησιμοποιήσει έναν προσομοιωμένο αισθητήρα GPS που είναι προσβάσιμος μέσω UART μέσω μιας σειριακής θύρας.

Ένας φυσικός αισθητήρας GPS διαθέτει κεραία για να λαμβάνει ραδιοκύματα από δορυφόρους GPS και να μετατρέπει τα σήματα GPS σε δεδομένα GPS. Η εικονική έκδοση προσομοιώνει αυτή τη λειτουργία επιτρέποντάς σας είτε να ορίσετε γεωγραφικό πλάτος και μήκος, να στείλετε ακατέργαστες προτάσεις NMEA, είτε να ανεβάσετε ένα αρχείο GPX με πολλαπλές τοποθεσίες που μπορούν να επιστραφούν διαδοχικά.

🎓 Οι προτάσεις NMEA θα καλυφθούν αργότερα σε αυτό το μάθημα.

Προσθήκη του αισθητήρα στο CounterFit

Για να χρησιμοποιήσετε έναν εικονικό αισθητήρα GPS, πρέπει να τον προσθέσετε στην εφαρμογή CounterFit.

Εργασία - προσθήκη του αισθητήρα στο CounterFit

Προσθέστε τον αισθητήρα GPS στην εφαρμογή CounterFit.

  1. Δημιουργήστε μια νέα εφαρμογή Python στον υπολογιστή σας σε έναν φάκελο που ονομάζεται gps-sensor με ένα μόνο αρχείο που ονομάζεται app.py και ένα εικονικό περιβάλλον Python, και προσθέστε τα πακέτα pip του CounterFit.

    ⚠️ Μπορείτε να ανατρέξετε στις οδηγίες για τη δημιουργία και ρύθμιση ενός έργου Python CounterFit στο μάθημα 1, αν χρειαστεί.

  2. Εγκαταστήστε ένα επιπλέον πακέτο Pip για να εγκαταστήσετε ένα CounterFit shim που μπορεί να επικοινωνεί με αισθητήρες που βασίζονται σε UART μέσω σειριακής σύνδεσης. Βεβαιωθείτε ότι το εγκαθιστάτε από ένα τερματικό με ενεργοποιημένο το εικονικό περιβάλλον.

    pip install counterfit-shims-serial
    
  3. Βεβαιωθείτε ότι η εφαρμογή ιστού CounterFit εκτελείται.

  4. Δημιουργήστε έναν αισθητήρα GPS:

    1. Στο πλαίσιο Create sensor στον πίνακα Sensors, ανοίξτε το αναπτυσσόμενο μενού Sensor type και επιλέξτε UART GPS.

    2. Αφήστε τη Θύρα ρυθμισμένη σε /dev/ttyAMA0.

    3. Επιλέξτε το κουμπί Add για να δημιουργήσετε τον αισθητήρα GPS στη θύρα /dev/ttyAMA0.

    Οι ρυθμίσεις του αισθητήρα GPS

    Ο αισθητήρας GPS θα δημιουργηθεί και θα εμφανιστεί στη λίστα αισθητήρων.

    Ο αισθητήρας GPS δημιουργήθηκε

Προγραμματισμός του αισθητήρα GPS

Η εικονική συσκευή IoT μπορεί τώρα να προγραμματιστεί για να χρησιμοποιεί τον εικονικό αισθητήρα GPS.

Εργασία - προγραμματισμός του αισθητήρα GPS

Προγραμματίστε την εφαρμογή του αισθητήρα GPS.

  1. Βεβαιωθείτε ότι η εφαρμογή gps-sensor είναι ανοιχτή στο VS Code.

  2. Ανοίξτε το αρχείο app.py.

  3. Προσθέστε τον παρακάτω κώδικα στην κορυφή του app.py για να συνδέσετε την εφαρμογή στο CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Προσθέστε τον παρακάτω κώδικα κάτω από αυτό για να εισαγάγετε κάποιες απαραίτητες βιβλιοθήκες, συμπεριλαμβανομένης της βιβλιοθήκης για τη σειριακή θύρα του CounterFit:

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

    Αυτός ο κώδικας εισάγει τη μονάδα serial από το πακέτο Pip counterfit_shims_serial. Στη συνέχεια, συνδέεται στη σειριακή θύρα /dev/ttyAMA0 - αυτή είναι η διεύθυνση της σειριακής θύρας που χρησιμοποιεί ο εικονικός αισθητήρας GPS για τη θύρα UART.

  5. Προσθέστε τον παρακάτω κώδικα κάτω από αυτό για να διαβάσετε από τη σειριακή θύρα και να εκτυπώσετε τις τιμές στην κονσόλα:

    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)
    

    Ορίζεται μια συνάρτηση που ονομάζεται print_gps_data, η οποία εκτυπώνει τη γραμμή που της δίνεται στην κονσόλα.

    Στη συνέχεια, ο κώδικας εκτελεί έναν ατέρμονο βρόχο, διαβάζοντας όσες γραμμές κειμένου μπορεί από τη σειριακή θύρα σε κάθε επανάληψη. Καλεί τη συνάρτηση print_gps_data για κάθε γραμμή.

    Αφού διαβαστούν όλα τα δεδομένα, ο βρόχος κάνει παύση για 1 δευτερόλεπτο και στη συνέχεια προσπαθεί ξανά.

  6. Εκτελέστε αυτόν τον κώδικα, διασφαλίζοντας ότι χρησιμοποιείτε διαφορετικό τερματικό από αυτό στο οποίο εκτελείται η εφαρμογή CounterFit, ώστε η εφαρμογή CounterFit να παραμείνει σε λειτουργία.

  7. Από την εφαρμογή CounterFit, αλλάξτε την τιμή του αισθητήρα GPS. Μπορείτε να το κάνετε με έναν από τους παρακάτω τρόπους:

    • Ορίστε την Πηγή σε Lat/Lon και ορίστε ένα συγκεκριμένο γεωγραφικό πλάτος, μήκος και αριθμό δορυφόρων που χρησιμοποιούνται για τη λήψη της θέσης GPS. Αυτή η τιμή θα σταλεί μόνο μία φορά, οπότε επιλέξτε το πλαίσιο Repeat για να επαναλαμβάνονται τα δεδομένα κάθε δευτερόλεπτο.

      Ο αισθητήρας GPS με επιλεγμένο lat lon

    • Ορίστε την Πηγή σε NMEA και προσθέστε κάποιες προτάσεις NMEA στο πλαίσιο κειμένου. Όλες αυτές οι τιμές θα σταλούν, με καθυστέρηση 1 δευτερολέπτου πριν από κάθε νέα πρόταση GGA (θέση).

      Ο αισθητήρας GPS με προτάσεις NMEA

      Μπορείτε να χρησιμοποιήσετε ένα εργαλείο όπως το nmeagen.org για να δημιουργήσετε αυτές τις προτάσεις σχεδιάζοντας σε έναν χάρτη. Αυτές οι τιμές θα σταλούν μόνο μία φορά, οπότε επιλέξτε το πλαίσιο Repeat για να επαναλαμβάνονται ένα δευτερόλεπτο μετά την αποστολή όλων.

    • Ορίστε την Πηγή σε GPX αρχείο και ανεβάστε ένα αρχείο GPX με τοποθεσίες διαδρομής. Μπορείτε να κατεβάσετε αρχεία GPX από διάφορους δημοφιλείς ιστότοπους χαρτογράφησης και πεζοπορίας, όπως το AllTrails. Αυτά τα αρχεία περιέχουν πολλαπλές τοποθεσίες GPS ως διαδρομή, και ο αισθητήρας GPS θα επιστρέφει κάθε νέα τοποθεσία σε διαστήματα του 1 δευτερολέπτου.

      Ο αισθητήρας GPS με αρχείο GPX

      Αυτές οι τιμές θα σταλούν μόνο μία φορά, οπότε επιλέξτε το πλαίσιο Repeat για να επαναλαμβάνονται ένα δευτερόλεπτο μετά την αποστολή όλων.

    Αφού ρυθμίσετε τις παραμέτρους GPS, επιλέξτε το κουμπί Set για να αποθηκεύσετε αυτές τις τιμές στον αισθητήρα.

  8. Θα δείτε την ακατέργαστη έξοδο από τον αισθητήρα GPS, κάτι σαν το παρακάτω:

    $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
    

💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο code-gps/virtual-device.

😀 Το πρόγραμμα του αισθητήρα GPS σας ήταν επιτυχές!


Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.