6.7 KiB
Basahin ang GPS Data - Wio Terminal
Sa bahaging ito ng aralin, magdadagdag ka ng GPS sensor sa iyong Wio Terminal at babasahin ang mga halaga mula rito.
Kagamitan
Kailangan ng Wio Terminal ng GPS sensor.
Ang sensor na gagamitin mo ay ang Grove GPS Air530 sensor. Ang sensor na ito ay maaaring kumonekta sa maraming GPS system para sa mabilis at tumpak na pagkuha ng lokasyon. Binubuo ang sensor ng 2 bahagi - ang pangunahing electronics ng sensor at isang panlabas na antena na nakakabit sa pamamagitan ng manipis na kawad upang makuha ang mga radio wave mula sa mga satellite.
Ito ay isang UART sensor, kaya't ipinapadala nito ang GPS data sa pamamagitan ng UART.
Ikonekta ang GPS Sensor
Maaaring ikonekta ang Grove GPS sensor sa Wio Terminal.
Gawain - ikonekta ang GPS sensor
Ikonekta ang GPS sensor.
-
Ipasok ang isang dulo ng Grove cable sa socket ng GPS sensor. Isang direksyon lamang ang tamang paraan ng pagpasok nito.
-
Habang ang Wio Terminal ay hindi nakakonekta sa iyong computer o iba pang power supply, ikonekta ang kabilang dulo ng Grove cable sa kaliwang Grove socket ng Wio Terminal habang nakaharap ka sa screen. Ito ang socket na pinakamalapit sa power button.
-
Iposisyon ang GPS sensor upang ang nakakabit na antena ay may malinaw na tanaw sa kalangitan - mas mainam kung malapit sa isang bukas na bintana o sa labas. Mas madali itong makakuha ng malinaw na signal kung walang nakaharang sa antena.
-
Maaari mo nang ikonekta ang Wio Terminal sa iyong computer.
-
Ang GPS sensor ay may 2 LED - isang asul na LED na kumikislap kapag may ipinapadalang data, at isang berdeng LED na kumikislap bawat segundo kapag tumatanggap ng data mula sa mga satellite. Siguraduhing kumikislap ang asul na LED kapag binuksan mo ang Wio Terminal. Pagkalipas ng ilang minuto, ang berdeng LED ay magsisimulang kumislap - kung hindi, maaaring kailangan mong ilipat ang posisyon ng antena.
Iprograma ang GPS Sensor
Ngayon ay maaari nang iprograma ang Wio Terminal upang magamit ang nakakabit na GPS sensor.
Gawain - iprograma ang GPS sensor
Iprograma ang device.
-
Gumawa ng bagong Wio Terminal project gamit ang PlatformIO. Tawagin ang proyektong ito na
gps-sensor
. Magdagdag ng code sasetup
function upang i-configure ang serial port. -
Idagdag ang sumusunod na include directive sa itaas ng
main.cpp
file. Kasama rito ang header file na may mga function para i-configure ang kaliwang Grove port para sa UART.#include <wiring_private.h>
-
Sa ibaba nito, idagdag ang sumusunod na linya ng code upang ideklara ang isang serial port connection sa UART port:
static Uart Serial3(&sercom3, PIN_WIRE_SCL, PIN_WIRE_SDA, SERCOM_RX_PAD_1, UART_TX_PAD_0);
-
Kailangan mong magdagdag ng ilang code upang i-redirect ang ilang internal signal handlers sa serial port na ito. Idagdag ang sumusunod na code sa ibaba ng deklarasyon ng
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(); }
-
Sa
setup
function sa ibaba ng kung saan naka-configure angSerial
port, i-configure ang UART serial port gamit ang sumusunod na code:Serial3.begin(9600); while (!Serial3) ; // Wait for Serial3 to be ready delay(1000);
-
Sa ibaba ng code na ito sa
setup
function, idagdag ang sumusunod na code upang ikonekta ang Grove pin sa serial port:pinPeripheral(PIN_WIRE_SCL, PIO_SERCOM_ALT);
-
Idagdag ang sumusunod na function bago ang
loop
function upang ipadala ang GPS data sa serial monitor:void printGPSData() { Serial.println(Serial3.readStringUntil('\n')); }
-
Sa
loop
function, idagdag ang sumusunod na code upang basahin mula sa UART serial port at i-print ang output sa serial monitor:while (Serial3.available() > 0) { printGPSData(); } delay(1000);
Binabasa ng code na ito ang data mula sa UART serial port. Ang
readStringUntil
function ay nagbabasa hanggang sa isang terminator character, sa kasong ito ay isang bagong linya. Babasahin nito ang isang buong NMEA sentence (ang mga NMEA sentence ay nagtatapos sa isang bagong linya na character). Habang may data na mababasa mula sa UART serial port, ito ay babasahin at ipapadala sa serial monitor gamit angprintGPSData
function. Kapag wala nang mababasang data, angloop
ay maghihintay ng 1 segundo (1,000ms). -
I-build at i-upload ang code sa Wio Terminal.
-
Kapag na-upload na, maaari mong i-monitor ang GPS data gamit ang serial monitor.
> 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
💁 Makikita mo ang code na ito sa code-gps/wio-terminal folder.
😀 Tagumpay ang iyong GPS sensor program!
Paunawa:
Ang dokumentong ito ay isinalin gamit ang AI translation service na Co-op Translator. Bagama't sinisikap naming maging tumpak, pakitandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o hindi pagkakatugma. Ang orihinal na dokumento sa kanyang katutubong wika ang dapat ituring na opisyal na sanggunian. Para sa mahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng pagsasaling ito.