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

3.3 KiB

Nyahkod Data GPS - Perkakasan IoT Maya dan Raspberry Pi

Dalam bahagian pelajaran ini, anda akan nyahkod mesej NMEA yang dibaca daripada sensor GPS oleh Raspberry Pi atau Peranti IoT Maya, dan mengekstrak nilai latitud dan longitud.

Nyahkod Data GPS

Setelah data mentah NMEA dibaca daripada port serial, ia boleh dinyahkod menggunakan pustaka NMEA sumber terbuka.

Tugasan - nyahkod data GPS

Programkan peranti untuk nyahkod data GPS.

  1. Buka projek aplikasi gps-sensor jika ia belum dibuka.

  2. Pasang pakej Pip pynmea2. Pakej ini mempunyai kod untuk nyahkod mesej NMEA.

    pip3 install pynmea2
    
  3. Tambahkan kod berikut ke bahagian import dalam fail app.py untuk mengimport modul pynmea2:

    import pynmea2
    
  4. Gantikan kandungan fungsi print_gps_data dengan yang berikut:

    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')
    

    Kod ini akan menggunakan pustaka pynmea2 untuk menganalisis baris yang dibaca daripada port serial UART.

    Jika jenis ayat mesej adalah GGA, maka ini adalah mesej penetapan lokasi, dan ia akan diproses. Nilai latitud dan longitud dibaca daripada mesej dan ditukar kepada darjah perpuluhan daripada format NMEA (d)ddmm.mmmm. Fungsi dm_to_sd melakukan penukaran ini.

    Arah latitud kemudian diperiksa, dan jika latitud adalah selatan, maka nilainya ditukar kepada nombor negatif. Begitu juga dengan longitud, jika ia adalah barat maka ia ditukar kepada nombor negatif.

    Akhirnya, koordinat dicetak ke konsol, bersama dengan bilangan satelit yang digunakan untuk mendapatkan lokasi.

  5. Jalankan kod. Jika anda menggunakan peranti IoT maya, pastikan aplikasi CounterFit sedang berjalan dan data GPS sedang dihantar.

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

💁 Anda boleh menemui kod ini dalam folder code-gps-decode/virtual-device, atau folder code-gps-decode/pi.

😀 Program sensor GPS anda dengan nyahkod data telah berjaya!


Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.