Arduino UNO R4 - GPS

Este tutorial ensina como usar o Arduino Uno R4 com um módulo GPS. Em detalhes, vamos aprender a obter as coordenadas GPS (longitude, latitude, altitude), a velocidade GPS (em quilômetros por hora) e a data e hora atuais de um módulo GPS NEO-6M. Também vamos aprender a calcular a distância da nossa localização GPS atual até coordenadas específicas, como as de Londres.

Arduino UNO R4 GPS module

Sobre o Módulo GPS NEO-6M

Pinagem

O módulo GPS NEO-6M tem 4 pinos:

  • Pino VCC: conecte este pino ao VCC (5V).
  • Pino GND: conecte este pino ao GND (0V).
  • Pino TX: usado para comunicação serial. Conecte-o ao pino RX da Serial (ou SoftwareSerial) do Arduino UNO R4.
  • Pino RX: usado para comunicação serial. Conecte-o ao pino TX da Serial (ou SoftwareSerial) do Arduino UNO R4.
NEO-6M GPS module Pinout

Diagrama de Ligação

The wiring diagram between Arduino UNO R4 GPS module

This image is created using Fritzing. Click to enlarge image

Observe que o diagrama de ligação mostrado acima pode funcionar, mas não é recomendado. O pino TX do Arduino UNO R4 envia um sinal de 5V, enquanto o pino RX do módulo GPS só aguenta 3,3V. Por segurança, você deve usar um divisor de tensão entre o pino TX do Arduino UNO R4 e o pino RX do módulo GPS. Essa montagem está ilustrada no diagrama abaixo.

The wiring diagram between Arduino UNO R4 GPS

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.

Código Arduino UNO R4

Lendo as coordenadas GPS, a velocidade (km/h) e a data e hora

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-gps */ #include <TinyGPS++.h> #include <SoftwareSerial.h> #define RX_PIN 4 // The Arduino UNO R4 pin connected to the TX of the GPS module #define TX_PIN 3 // The Arduino UNO R4 pin connected to the RX of the GPS module TinyGPSPlus gps; // the TinyGPS++ object SoftwareSerial gpsSerial(RX_PIN, TX_PIN); // the serial interface to the GPS module void setup() { Serial.begin(9600); gpsSerial.begin(9600); // Default baud of NEO-6M GPS module is 9600 Serial.println(F("Arduino - GPS module")); } void loop() { if (gpsSerial.available() > 0) { if (gps.encode(gpsSerial.read())) { if (gps.location.isValid()) { Serial.print(F("- latitude: ")); Serial.println(gps.location.lat()); Serial.print(F("- longitude: ")); Serial.println(gps.location.lng()); Serial.print(F("- altitude: ")); if (gps.altitude.isValid()) Serial.println(gps.altitude.meters()); else Serial.println(F("INVALID")); } else { Serial.println(F("- location: INVALID")); } Serial.print(F("- speed: ")); if (gps.speed.isValid()) { Serial.print(gps.speed.kmph()); Serial.println(F(" km/h")); } else { Serial.println(F("INVALID")); } Serial.print(F("- GPS date&time: ")); if (gps.date.isValid() && gps.time.isValid()) { Serial.print(gps.date.year()); Serial.print(F("-")); Serial.print(gps.date.month()); Serial.print(F("-")); Serial.print(gps.date.day()); Serial.print(F(" ")); Serial.print(gps.time.hour()); Serial.print(F(":")); Serial.print(gps.time.minute()); Serial.print(F(":")); Serial.println(gps.time.second()); } else { Serial.println(F("INVALID")); } Serial.println(); } } if (millis() > 5000 && gps.charsProcessed() < 10) Serial.println(F("No GPS data received: check wiring")); }

Passos Rápidos

Siga estas instruções passo a passo:

  • Se esta é a primeira vez que você usa o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima no Arduino IDE.
  • Conecte o Arduino Uno R4 ao módulo GPS de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Selecione a placa Arduino Uno R4 correta (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
  • Vá ao ícone de Bibliotecas no lado esquerdo do Arduino IDE.
  • Digite TinyGPSPlus na caixa de pesquisa e procure a biblioteca TinyGPSPlus de Mikal Hart
  • Clique no botão Instalar para adicionar a biblioteca TinyGPSPlus.
Arduino UNO R4 TinyGPS++ library
  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload do Arduino IDE para enviar o código ao Arduino UNO R4.
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2

Calculando a distância da localização atual até uma localização predefinida

Este código descobre a distância entre você e Londres (latitude: 51.508131, longitude: -0.128002).

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-gps */ #include <TinyGPS++.h> #include <SoftwareSerial.h> #define RX_PIN 4 // The Arduino UNO R4 pin connected to the TX of the GPS module #define TX_PIN 3 // The Arduino UNO R4 pin connected to the RX of the GPS module TinyGPSPlus gps; // the TinyGPS++ object SoftwareSerial gpsSerial(RX_PIN, TX_PIN); // the serial interface to the GPS module const double LONDON_LAT = 51.508131; const double LONDON_LON = -0.128002; void setup() { Serial.begin(9600); gpsSerial.begin(9600); // Default baud of NEO-6M GPS module is 9600 Serial.println(F("Arduino - GPS module")); } void loop() { if (gpsSerial.available() > 0) { if (gps.encode(gpsSerial.read())) { if (gps.location.isValid()) { double latitude = gps.location.lat(); double longitude = gps.location.lng(); unsigned long distanceKm = TinyGPSPlus::distanceBetween(latitude, longitude, LONDON_LAT, LONDON_LON) / 1000; Serial.print(F("- latitude: ")); Serial.println(latitude); Serial.print(F("- longitude: ")); Serial.println(longitude); Serial.print(F("- distance to London: ")); Serial.println(distanceKm); } else { Serial.println(F("- location: INVALID")); } Serial.println(); } } if (millis() > 5000 && gps.charsProcessed() < 10) Serial.println(F("No GPS data received: check wiring")); }

Passos Rápidos

  • Copie o código e abra-o no Arduino IDE.
  • Clique no botão Upload do Arduino IDE para enviar o código ao Arduino UNO R4.
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2

Vídeo

Tutoriais Relacionados

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!