6.3 KiB
Baca Data GPS - Wio Terminal
Dalam bahagian pelajaran ini, anda akan menambah sensor GPS pada Wio Terminal anda dan membaca nilai daripadanya.
Perkakasan
Wio Terminal memerlukan sensor GPS.
Sensor yang akan anda gunakan ialah Grove GPS Air530 sensor. Sensor ini boleh disambungkan kepada pelbagai sistem GPS untuk mendapatkan isyarat yang pantas dan tepat. Sensor ini terdiri daripada 2 bahagian - komponen elektronik utama sensor, dan antena luaran yang disambungkan dengan wayar nipis untuk menangkap gelombang radio daripada satelit.
Ini adalah sensor UART, jadi ia menghantar data GPS melalui UART.
Sambungkan Sensor GPS
Sensor Grove GPS boleh disambungkan kepada Wio Terminal.
Tugasan - sambungkan sensor GPS
Sambungkan sensor GPS.
-
Masukkan satu hujung kabel Grove ke dalam soket pada sensor GPS. Ia hanya boleh dimasukkan dalam satu arah sahaja.
-
Dengan Wio Terminal tidak disambungkan kepada komputer atau sumber kuasa lain, sambungkan hujung lain kabel Grove ke soket Grove di sebelah kiri Wio Terminal apabila anda melihat skrin. Ini adalah soket yang paling dekat dengan butang kuasa.
-
Letakkan sensor GPS supaya antena yang disambungkan mempunyai pandangan ke langit - sebaiknya di sebelah tingkap terbuka atau di luar. Isyarat akan lebih jelas jika tiada halangan di antara antena dan langit.
-
Anda kini boleh menyambungkan Wio Terminal ke komputer anda.
-
Sensor GPS mempunyai 2 LED - LED biru yang berkelip apabila data dihantar, dan LED hijau yang berkelip setiap saat apabila menerima data daripada satelit. Pastikan LED biru berkelip apabila anda menghidupkan Wio Terminal. Selepas beberapa minit, LED hijau akan berkelip - jika tidak, anda mungkin perlu mengubah kedudukan antena.
Programkan Sensor GPS
Wio Terminal kini boleh diprogramkan untuk menggunakan sensor GPS yang disambungkan.
Tugasan - programkan sensor GPS
Programkan peranti.
-
Cipta projek Wio Terminal baharu menggunakan PlatformIO. Namakan projek ini
gps-sensor
. Tambahkan kod dalam fungsisetup
untuk mengkonfigurasi port serial. -
Tambahkan arahan include berikut di bahagian atas fail
main.cpp
. Arahan ini memasukkan fail header dengan fungsi untuk mengkonfigurasi port Grove sebelah kiri untuk UART.#include <wiring_private.h>
-
Di bawah ini, tambahkan baris kod berikut untuk mengisytiharkan sambungan port serial ke port UART:
static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0);
-
Anda perlu menambah beberapa kod untuk mengarahkan beberapa pengendali isyarat dalaman ke port serial ini. Tambahkan kod berikut di bawah deklarasi
Serial3
:void SERCOM3_0_Handler() { Serial3.IrqHandler(); } void SERCOM3_1_Handler() { Serial3.IrqHandler(); } void SERCOM3_2_Handler() { Serial3.IrqHandler(); } void SERCOM3_3_Handler() { Serial3.IrqHandler(); }
-
Dalam fungsi
setup
di bawah konfigurasi portSerial
, konfigurasikan port serial UART dengan kod berikut:Serial3.begin(9600); while (!Serial3) ; // Wait for Serial3 to be ready delay(1000);
-
Di bawah kod ini dalam fungsi
setup
, tambahkan kod berikut untuk menyambungkan pin Grove ke port serial:pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT);
-
Tambahkan fungsi berikut sebelum fungsi
loop
untuk menghantar data GPS ke monitor serial:void printGPSData() { Serial.println(Serial3.readStringUntil('\n')); }
-
Dalam fungsi
loop
, tambahkan kod berikut untuk membaca dari port serial UART dan mencetak output ke monitor serial:while (Serial3.available() > 0) { printGPSData(); } delay(1000);
Kod ini membaca dari port serial UART. Fungsi
readStringUntil
membaca sehingga watak pemutus, dalam kes ini baris baru. Ini akan membaca satu ayat NMEA penuh (ayat NMEA diakhiri dengan watak baris baru). Selagi data boleh dibaca dari port serial UART, ia akan dibaca dan dihantar ke monitor serial melalui fungsiprintGPSData
. Apabila tiada lagi data yang boleh dibaca,loop
akan menunggu selama 1 saat (1,000ms). -
Bina dan muat naik kod ke Wio Terminal.
-
Setelah dimuat naik, anda boleh memantau data GPS menggunakan monitor serial.
> Executing task: platformio device monitor < --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- $GNGGA,020604.001,4738.538654,N,12208.341758,W,1,3,,164.7,M,-17.1,M,,*67 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F $GPGSV,1,1,00*79 $BDGSV,1,1,00*68
💁 Anda boleh menemui kod ini dalam folder code-gps/wio-terminal.
😀 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 penting, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.