3.6 KiB
Decodificar dados de GPS - Wio Terminal
Nesta parte da lição, você irá decodificar as mensagens NMEA lidas do sensor GPS pelo Wio Terminal e extrair a latitude e a longitude.
Decodificar dados de GPS
Uma vez que os dados brutos NMEA tenham sido lidos da porta serial, eles podem ser decodificados usando uma biblioteca NMEA de código aberto.
Tarefa - decodificar dados de GPS
Programe o dispositivo para decodificar os dados do GPS.
-
Abra o projeto do aplicativo
gps-sensor
, caso ainda não esteja aberto. -
Adicione uma dependência de biblioteca para a biblioteca TinyGPSPlus no arquivo
platformio.ini
do projeto. Esta biblioteca contém o código necessário para decodificar os dados NMEA.lib_deps = mikalhart/TinyGPSPlus @ 1.0.2
-
No arquivo
main.cpp
, adicione uma diretiva de inclusão para a biblioteca TinyGPSPlus:#include <TinyGPS++.h>
-
Abaixo da declaração de
Serial3
, declare um objeto TinyGPSPlus para processar as sentenças NMEA:TinyGPSPlus gps;
-
Altere o conteúdo da função
printGPSData
para o seguinte:if (gps.encode(Serial3.read())) { if (gps.location.isValid()) { Serial.print(gps.location.lat(), 6); Serial.print(F(",")); Serial.print(gps.location.lng(), 6); Serial.print(" - from "); Serial.print(gps.satellites.value()); Serial.println(" satellites"); } }
Este código lê o próximo caractere da porta serial UART no decodificador NMEA
gps
. Após cada caractere, ele verifica se o decodificador leu uma sentença válida e, em seguida, verifica se leu uma localização válida. Se a localização for válida, ela será enviada para o monitor serial, junto com o número de satélites que contribuíram para essa fixação. -
Compile e envie o código para o Wio Terminal.
-
Após o upload, você pode monitorar os dados de localização do GPS usando o 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 --- 47.6423109,-122.1390293 - from 3 satellites
💁 Você pode encontrar este código na pasta code-gps-decode/wio-terminal.
😀 O programa do sensor GPS com decodificação de dados foi um sucesso!
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.