In deze handleiding ontdekken we hoe u GPS-coördinaten (lengtegraad, breedtegraad, hoogte), GPS-snelheid (in kilometers per uur) en datum/tijd informatie kunt uitlezen van de NEO-6M GPS module. Daarnaast bekijken we hoe u de afstand kunt berekenen tussen de huidige GPS-positie en een vooraf ingestelde set GPS-coördinaten (zoals de coördinaten van Londen).
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.
Over de NEO-6M GPS module
Pinout
De NEO-6M GPS module heeft 4 pinnen:
VCC-pin: moet worden aangesloten op VCC (5V)
GND-pin: moet worden aangesloten op GND (0V)
TX-pin: wordt gebruikt voor communicatie tussen de GPS-module en ESP32, moet worden aangesloten op de Serial RX-pin van de ESP32.
RX-pin: wordt gebruikt voor communicatie tussen de GPS-module en ESP32, moet worden aangesloten op de Serial TX-pin van de ESP32.
Aansluitschema
Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
ESP32 Code
GPS-coördinaten, snelheid (km/u) en datum/tijd uitlezen
/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-gps*/#include <TinyGPS++.h>#define GPS_BAUDRATE 9600 // The default baudrate of NEO-6M is 9600TinyGPSPlus gps; // the TinyGPS++ objectvoidsetup() {Serial.begin(9600);Serial2.begin(GPS_BAUDRATE, SERIAL_8N1, 16, 17);Serial.println(F("ESP32 - GPS module"));}voidloop() {if (Serial2.available() > 0) {if (gps.encode(Serial2.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());elseSerial.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"));}
Maak de bedrading zoals in de bovenstaande afbeelding.
Verbind de ESP32 met uw PC via een micro USB-kabel.
Open Arduino IDE op uw PC.
Selecteer de juiste ESP32 board (bijv. ESP32 Dev Module) en COM-poort.
Ga in Arduino IDE naar Bibliotheken Beheren in de linkerzijbalk.
Zoek op “TinyGPSPlus” en vind de TinyGPSPlus bibliotheek van Mikal Hart.
Klik op de Installeren knop om de TinyGPSPlus bibliotheek te installeren.
Kopieer de bovenstaande code en open deze met Arduino IDE.
Klik op de Uploaden knop in Arduino IDE om de code naar de ESP32 te uploaden.
Bekijk het resultaat op de Seriële Monitor:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Afstand berekenen van huidige locatie naar een vooraf ingestelde locatie
De onderstaande code berekent de afstand tussen de huidige locatie en Londen (lat:51.508131 , long: -0.128002)
/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-gps*/#include <TinyGPS++.h>#define GPS_BAUDRATE 9600 // The default baudrate of NEO-6M is 9600TinyGPSPlus gps; // the TinyGPS++ objectconstdouble LONDON_LAT = 51.508131;constdouble LONDON_LON = -0.128002;voidsetup() {Serial.begin(9600);Serial2.begin(GPS_BAUDRATE, SERIAL_8N1, 16, 17);Serial.println(F("ESP32 - GPS module"));}voidloop() {if (Serial2.available() > 0) {if (gps.encode(Serial2.read())) {if (gps.location.isValid()) {double latitude = gps.location.lat();double longitude = gps.location.lng();unsignedlong 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"));}
Snelle Stappen
Kopieer de bovenstaande code en open deze met Arduino IDE.
Klik op de Uploaden knop in Arduino IDE om de code naar de ESP32 te uploaden.
Bekijk het resultaat op de Seriële Monitor:
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.
Opmerkingen
Gerelateerde Tutorials
※ ONZE BERICHTEN
U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!