7.4 KiB
Membaca Data GPS - Perkakasan IoT Maya
Dalam bahagian pelajaran ini, anda akan menambah sensor GPS kepada peranti IoT maya anda, dan membaca nilai daripadanya.
Perkakasan Maya
Peranti IoT maya akan menggunakan sensor GPS simulasi yang boleh diakses melalui UART melalui port serial.
Sensor GPS fizikal mempunyai antena untuk menerima gelombang radio daripada satelit GPS, dan menukar isyarat GPS kepada data GPS. Versi maya mensimulasikan ini dengan membolehkan anda sama ada menetapkan latitud dan longitud, menghantar ayat NMEA mentah, atau memuat naik fail GPX dengan pelbagai lokasi yang boleh dikembalikan secara berurutan.
🎓 Ayat NMEA akan dibincangkan kemudian dalam pelajaran ini
Menambah Sensor kepada CounterFit
Untuk menggunakan sensor GPS maya, anda perlu menambah satu kepada aplikasi CounterFit.
Tugasan - Menambah Sensor kepada CounterFit
Tambah sensor GPS kepada aplikasi CounterFit.
-
Cipta aplikasi Python baharu pada komputer anda dalam folder bernama
gps-sensor
dengan satu fail bernamaapp.py
dan persekitaran maya Python, serta tambahkan pakej pip CounterFit.⚠️ Anda boleh merujuk kepada arahan untuk mencipta dan menyediakan projek Python CounterFit dalam pelajaran 1 jika diperlukan.
-
Pasang pakej Pip tambahan untuk memasang shim CounterFit yang boleh berkomunikasi dengan sensor berasaskan UART melalui sambungan serial. Pastikan anda memasangnya dari terminal dengan persekitaran maya diaktifkan.
pip install counterfit-shims-serial
-
Pastikan aplikasi web CounterFit sedang berjalan.
-
Cipta sensor GPS:
-
Dalam kotak Create sensor di panel Sensors, klik menu drop-down Sensor type dan pilih UART GPS.
-
Biarkan Port ditetapkan kepada /dev/ttyAMA0.
-
Pilih butang Add untuk mencipta sensor GPS pada port
/dev/ttyAMA0
.
Sensor GPS akan dicipta dan muncul dalam senarai sensor.
-
Memprogram Sensor GPS
Peranti IoT Maya kini boleh diprogramkan untuk menggunakan sensor GPS maya.
Tugasan - Memprogram Sensor GPS
Program aplikasi sensor GPS.
-
Pastikan aplikasi
gps-sensor
dibuka dalam VS Code. -
Buka fail
app.py
. -
Tambahkan kod berikut di bahagian atas
app.py
untuk menyambungkan aplikasi kepada CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Tambahkan kod berikut di bawah ini untuk mengimport beberapa pustaka yang diperlukan, termasuk pustaka untuk port serial CounterFit:
import time import counterfit_shims_serial serial = counterfit_shims_serial.Serial('/dev/ttyAMA0')
Kod ini mengimport modul
serial
daripada pakej Pipcounterfit_shims_serial
. Ia kemudian menyambung kepada port serial/dev/ttyAMA0
- ini adalah alamat port serial yang digunakan oleh sensor GPS maya untuk port UART-nya. -
Tambahkan kod berikut di bawah ini untuk membaca daripada port serial dan mencetak nilai ke konsol:
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)
Fungsi bernama
print_gps_data
didefinisikan untuk mencetak baris yang dihantar kepadanya ke konsol.Seterusnya, kod ini melaksanakan gelung tanpa henti, membaca sebanyak mungkin baris teks daripada port serial dalam setiap gelung. Ia memanggil fungsi
print_gps_data
untuk setiap baris.Selepas semua data dibaca, gelung akan tidur selama 1 saat, kemudian mencuba lagi.
-
Jalankan kod ini, pastikan anda menggunakan terminal yang berbeza daripada yang digunakan oleh aplikasi CounterFit, supaya aplikasi CounterFit kekal berjalan.
-
Dari aplikasi CounterFit, ubah nilai sensor GPS. Anda boleh melakukannya dengan salah satu cara berikut:
-
Tetapkan Source kepada
Lat/Lon
, dan tetapkan latitud, longitud, dan bilangan satelit yang digunakan untuk mendapatkan GPS fix. Nilai ini akan dihantar hanya sekali, jadi tandakan kotak Repeat untuk menghantar data berulang setiap saat. -
Tetapkan Source kepada
NMEA
dan tambahkan beberapa ayat NMEA ke dalam kotak teks. Semua nilai ini akan dihantar, dengan kelewatan 1 saat sebelum setiap ayat GGA (position fix) baharu boleh dibaca.Anda boleh menggunakan alat seperti nmeagen.org untuk menjana ayat ini dengan melukis pada peta. Nilai ini akan dihantar hanya sekali, jadi tandakan kotak Repeat untuk menghantar data berulang satu saat selepas semuanya dihantar.
-
Tetapkan Source kepada fail GPX, dan muat naik fail GPX dengan lokasi trek. Anda boleh memuat turun fail GPX daripada beberapa laman web pemetaan dan pendakian popular, seperti AllTrails. Fail ini mengandungi pelbagai lokasi GPS sebagai laluan, dan sensor GPS akan mengembalikan setiap lokasi baharu pada selang 1 saat.
Nilai ini akan dihantar hanya sekali, jadi tandakan kotak Repeat untuk menghantar data berulang satu saat selepas semuanya dihantar.
Setelah anda mengkonfigurasi tetapan GPS, pilih butang Set untuk menetapkan nilai ini kepada sensor.
-
-
Anda akan melihat output mentah daripada sensor GPS, sesuatu seperti berikut:
$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
💁 Anda boleh menemui kod ini dalam folder code-gps/virtual-device.
😀 Program sensor GPS anda berjaya!
Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian 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.