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

3.3 KiB

Memecahkan Data GPS - Perangkat Keras IoT Virtual dan Raspberry Pi

Dalam bagian pelajaran ini, Anda akan memecahkan pesan NMEA yang dibaca dari sensor GPS oleh Raspberry Pi atau Perangkat IoT Virtual, dan mengekstrak nilai lintang dan bujur.

Memecahkan Data GPS

Setelah data mentah NMEA dibaca dari port serial, data tersebut dapat dipecahkan menggunakan pustaka NMEA sumber terbuka.

Tugas - Memecahkan Data GPS

Program perangkat untuk memecahkan data GPS.

  1. Buka proyek aplikasi gps-sensor jika belum terbuka.

  2. Instal paket Pip pynmea2. Paket ini memiliki kode untuk memecahkan pesan NMEA.

    pip3 install pynmea2
    
  3. Tambahkan kode berikut ke bagian impor di file app.py untuk mengimpor modul pynmea2:

    import pynmea2
    
  4. Ganti isi 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')
    

    Kode ini akan menggunakan pustaka pynmea2 untuk mem-parsing baris yang dibaca dari port serial UART.

    Jika tipe kalimat dari pesan adalah GGA, maka ini adalah pesan posisi tetap, dan akan diproses. Nilai lintang dan bujur dibaca dari pesan dan dikonversi ke derajat desimal dari format NMEA (d)ddmm.mmmm. Fungsi dm_to_sd melakukan konversi ini.

    Arah lintang kemudian diperiksa, dan jika lintang berada di selatan, maka nilainya diubah menjadi angka negatif. Hal yang sama berlaku untuk bujur, jika berada di barat maka diubah menjadi angka negatif.

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

  5. Jalankan kode. Jika Anda menggunakan perangkat IoT virtual, pastikan aplikasi CounterFit sedang berjalan dan data GPS sedang dikirim.

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

💁 Anda dapat menemukan kode ini di folder code-gps-decode/virtual-device, atau di folder code-gps-decode/pi.

😀 Program sensor GPS Anda dengan pemecahan data berhasil!


Penafian:
Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI Co-op Translator. Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang berwenang. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.