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/sr/3-transport/lessons/1-location-tracking/single-board-computer-gps-d...

4.8 KiB

Декодирање GPS података - Виртуелни IoT хардвер и Raspberry Pi

У овом делу лекције, декодираћете NMEA поруке које чита GPS сензор преко Raspberry Pi или Виртуелног IoT уређаја, и извући географску ширину и дужину.

Декодирање GPS података

Када се сирови NMEA подаци прочитају са серијског порта, могу се декодирати помоћу библиотеке отвореног кода за NMEA.

Задатак - декодирање GPS података

Програмирајте уређај да декодира GPS податке.

  1. Отворите пројекат апликације gps-sensor ако већ није отворен.

  2. Инсталирајте Pip пакет pynmea2. Овај пакет садржи код за декодирање NMEA порука.

    pip3 install pynmea2
    
  3. Додајте следећи код у увозе у датотеку app.py да бисте увезли модул pynmea2:

    import pynmea2
    
  4. Замените садржај функције print_gps_data следећим:

    msg = pynmea2.parse(line)
    if msg.sentence_type == 'GGA':
        lat = pynmea2.dm_to_sd(msg.lat)
        lon = pynmea2.dm_to_sd(msg.lon)
    
        if msg.lat_dir == 'S':
            lat = lat * -1
    
        if msg.lon_dir == 'W':
            lon = lon * -1
    
        print(f'{lat},{lon} - from {msg.num_sats} satellites')
    

    Овај код користи библиотеку pynmea2 за парсирање линије прочитане са UART серијског порта.

    Ако је тип реченице поруке GGA, онда је то порука о позицији и она се обрађује. Вредности географске ширине и дужине се читају из поруке и конвертују у децималне степене из NMEA формата (d)ddmm.mmmm. Функција dm_to_sd врши ову конверзију.

    Затим се проверава смер географске ширине, и ако је ширина јужна, вредност се конвертује у негативан број. Исто важи за географску дужину, ако је западна, она се конвертује у негативан број.

    На крају, координате се штампају на конзоли, заједно са бројем сателита који су коришћени за одређивање локације.

  5. Покрените код. Ако користите виртуелни IoT уређај, уверите се да је CounterFit апликација покренута и да се GPS подаци шаљу.

    pi@raspberrypi:~/gps-sensor $ python3 app.py 
    47.6423109,-122.1390293 - from 3 satellites
    

💁 Овај код можете пронаћи у фасцикли code-gps-decode/virtual-device, или у фасцикли code-gps-decode/pi.

😀 Ваш програм за GPS сензор са декодирањем података је успешно завршен!


Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.