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

7.3 KiB

Branje GPS podatkov - Virtualna IoT strojna oprema

V tem delu lekcije boste svoji virtualni IoT napravi dodali GPS senzor in prebrali vrednosti iz njega.

Virtualna strojna oprema

Virtualna IoT naprava bo uporabljala simuliran GPS senzor, ki je dostopen prek UART preko serijskega porta.

Fizični GPS senzor ima anteno za sprejemanje radijskih valov iz GPS satelitov in pretvarjanje GPS signalov v GPS podatke. Virtualna različica to simulira tako, da omogoča nastavitev zemljepisne širine in dolžine, pošiljanje surovih NMEA stavkov ali nalaganje GPX datoteke z več lokacijami, ki se lahko vračajo zaporedno.

🎓 NMEA stavki bodo obravnavani kasneje v tej lekciji

Dodajanje senzorja v CounterFit

Za uporabo virtualnega GPS senzorja ga morate dodati v aplikacijo CounterFit.

Naloga - dodajte senzor v CounterFit

Dodajte GPS senzor v aplikacijo CounterFit.

  1. Ustvarite novo Python aplikacijo na svojem računalniku v mapi gps-sensor z eno datoteko app.py in Python virtualnim okoljem ter dodajte CounterFit pip pakete.

    ⚠️ Lahko se sklicujete na navodila za ustvarjanje in nastavitev CounterFit Python projekta v lekciji 1, če je potrebno.

  2. Namestite dodatni Pip paket za namestitev CounterFit shima, ki lahko komunicira s senzorji na osnovi UART preko serijske povezave. Prepričajte se, da to nameščate iz terminala z aktiviranim virtualnim okoljem.

    pip install counterfit-shims-serial
    
  3. Prepričajte se, da je CounterFit spletna aplikacija zagnana.

  4. Ustvarite GPS senzor:

    1. V polju Create sensor v podoknu Sensors izberite Sensor type in izberite UART GPS.

    2. Pustite Port nastavljen na /dev/ttyAMA0.

    3. Izberite gumb Add, da ustvarite GPS senzor na portu /dev/ttyAMA0.

    Nastavitve GPS senzorja

    GPS senzor bo ustvarjen in se bo pojavil na seznamu senzorjev.

    Ustvarjen GPS senzor

Programiranje GPS senzorja

Virtualna IoT naprava je zdaj pripravljena za programiranje za uporabo virtualnega GPS senzorja.

Naloga - programirajte GPS senzor

Programirajte aplikacijo za GPS senzor.

  1. Prepričajte se, da je aplikacija gps-sensor odprta v VS Code.

  2. Odprite datoteko app.py.

  3. Dodajte naslednjo kodo na vrh datoteke app.py, da povežete aplikacijo s CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Dodajte naslednjo kodo pod to, da uvozite nekaj potrebnih knjižnic, vključno s knjižnico za CounterFit serijski port:

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

    Ta koda uvozi modul serial iz Pip paketa counterfit_shims_serial. Nato se poveže na serijski port /dev/ttyAMA0 - to je naslov serijskega porta, ki ga virtualni GPS senzor uporablja za svoj UART port.

  5. Dodajte naslednjo kodo pod to, da preberete iz serijskega porta in izpišete vrednosti v konzolo:

    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)
    

    Definirana je funkcija print_gps_data, ki izpiše vrstico, posredovano vanjo, v konzolo.

    Nato koda neskončno zanko bere toliko vrstic besedila, kolikor jih lahko prebere iz serijskega porta v vsakem zagonu zanke. Za vsako vrstico pokliče funkcijo print_gps_data.

    Ko so vsi podatki prebrani, zanka spi 1 sekundo, nato poskusi znova.

  6. Zaženite to kodo, pri čemer uporabite drug terminal kot tistega, na katerem teče aplikacija CounterFit, da aplikacija CounterFit ostane zagnana.

  7. V aplikaciji CounterFit spremenite vrednost GPS senzorja. To lahko storite na enega od naslednjih načinov:

    • Nastavite Source na Lat/Lon in določite natančno zemljepisno širino, dolžino in število satelitov, uporabljenih za GPS fiks. Ta vrednost bo poslana samo enkrat, zato označite polje Repeat, da se podatki ponavljajo vsako sekundo.

      GPS senzor z izbrano možnostjo lat lon

    • Nastavite Source na NMEA in dodajte nekaj NMEA stavkov v besedilno polje. Vse te vrednosti bodo poslane, z zamikom 1 sekunde pred vsakim novim GGA (pozicijski fiks) stavkom.

      GPS senzor z nastavljenimi NMEA stavki

      Uporabite lahko orodje, kot je nmeagen.org, za generiranje teh stavkov z risanjem na zemljevidu. Te vrednosti bodo poslane samo enkrat, zato označite polje Repeat, da se podatki ponavljajo eno sekundo po tem, ko so vsi poslani.

    • Nastavite Source na GPX datoteko in naložite GPX datoteko z lokacijami poti. GPX datoteke lahko prenesete z različnih priljubljenih spletnih mest za zemljevide in pohodništvo, kot je AllTrails. Te datoteke vsebujejo več GPS lokacij kot pot, GPS senzor pa bo vrnil vsako novo lokacijo v intervalih po 1 sekundo.

      GPS senzor z nastavljeno GPX datoteko

      Te vrednosti bodo poslane samo enkrat, zato označite polje Repeat, da se podatki ponavljajo eno sekundo po tem, ko so vsi poslani.

    Ko konfigurirate nastavitve GPS, izberite gumb Set, da te vrednosti shranite v senzor.

  8. Videli boste surov izhod iz GPS senzorja, nekaj takega:

    $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
    

💁 To kodo lahko najdete v mapi code-gps/virtual-device.

😀 Vaš program za GPS senzor je bil uspešen!


Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.