Deze handleiding legt uit hoe u de Arduino Nano gebruikt in combinatie met een NEO-6M GPS module. We zullen in detail leren:
Hoe u de Arduino Nano verbindt met een NEO-6M GPS module
Hoe u de Arduino Nano programmeert om GPS-coördinaten (lengtegraad, breedtegraad en hoogte) uit te lezen van de NEO-6M GPS module
Hoe u de Arduino Nano programmeert om de afstand te berekenen tussen de huidige GPS-positie en een vooraf ingestelde GPS-coördinaat (bijvoorbeeld de coördinaten van Londen)
Behalve lengtegraad, breedtegraad en hoogte, kan de Arduino Nano ook GPS-snelheid (km/h) en datum/tijd uitlezen van de NEO-6M GPS module.
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
De NEO-6M GPS module is een GPS-module die de volgende informatie kan leveren:
Lengtegraad (longitude)
Breedtegraad (latitude)
Hoogte (altitude)
GPS-snelheid (km/h)
Datum en tijd (date time)
Pinout van de NEO-6M GPS Module
De NEO-6M GPS module heeft vier pinnen:
De VCC-pin: dient te worden verbonden met de VCC (5V)
De GND-pin: dient te worden verbonden met de GND (0V)
De TX-pin: wordt gebruikt voor seriële communicatie en moet worden verbonden met de Serial (of SoftwareSerial) RX-pin van de Arduino Nano
De RX-pin: wordt gebruikt voor seriële communicatie en moet worden verbonden met de Serial (of SoftwareSerial) TX-pin van de Arduino Nano
Aansluitschema
Deze afbeelding is gemaakt met Fritzing. Klik om de afbeelding te vergroten.
Arduino Nano Code
GPS-coördinaten, snelheid (km/h) en datum/tijd uitlezen
/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-gps*/#include <TinyGPS++.h>#include <SoftwareSerial.h>constint RX_PIN = 6, TX_PIN = 5;constuint32_t GPS_BAUD = 9600; //Default baud of NEO-6M is 9600TinyGPSPlus gps; // The TinyGPS++ objectSoftwareSerial gpsSerial(RX_PIN, TX_PIN); // The serial interface to the GPS devicevoidsetup() {Serial.begin(9600); gpsSerial.begin(GPS_BAUD);Serial.println(F("Arduino - GPS module"));}voidloop() {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());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"));}
Snelle stappen
Klik op het Libraries-icoon in de linkerzijbalk van de Arduino IDE.
Zoek op “TinyGPSPlus” en vind de TinyGPSPlus library van Mikal Hart.
Klik op de Install-knop om de TinyGPSPlus library te installeren.
Kopieer de bovenstaande code en open deze in de Arduino IDE.
Klik op de Upload-knop in de Arduino IDE om de code naar de Arduino Nano te sturen.
Controleer de Serial Monitor om het resultaat te bekijken.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Nano on COM15
2
Afstand berekenen tussen huidige locatie en een vooraf ingestelde locatie
De onderstaande code berekent de afstand tussen de huidige locatie en Londen (lat:51.508131, long:-0.128002).
/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-gps*/#include <TinyGPS++.h>#include <SoftwareSerial.h>constint RX_PIN = 6, TX_PIN = 5;constuint32_t GPS_BAUD = 9600; //Default baud of NEO-6M is 9600TinyGPSPlus gps; // The TinyGPS++ objectSoftwareSerial gpsSerial(RX_PIN, TX_PIN); // The serial interface to the GPS deviceconstdouble LONDON_LAT = 51.508131;constdouble LONDON_LON = -0.128002;voidsetup() {Serial.begin(9600); gpsSerial.begin(GPS_BAUD);Serial.println(F("Arduino - GPS module"));}voidloop() {if (gpsSerial.available() > 0) {if (gps.encode(gpsSerial.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 code en open deze met de Arduino IDE.
Klik op de Upload-knop om de code te compileren en naar de Arduino Nano te laden.
Bekijk het resultaat in de Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Nano 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.
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!