ESP32 S3 - GPS
Das NEO-6M GPS-Modul ist ein kompakter und zuverlässiger Empfänger, mit dem der ESP32 S3 seine Position überall auf der Erde anhand von Satellitensignalen bestimmen kann. Dieses Tutorial führt Sie durch die Verdrahtung des Moduls, die Installation der Bibliothek TinyGPSPlus und das Schreiben zweier vollständiger Sketches – einer zum Auslesen der GPS-Koordinaten und einer zur Berechnung der Entfernung zu einem festgelegten Ort.
Was Sie bauen werden:
- Einen GPS-Datenleser, der Längengrad, Breitengrad, Höhe und Geschwindigkeit (km/h) mit dem ESP32 S3 und dem NEO-6M Modul ermittelt
- Einen Sketch, der NMEA-Sätze des GPS-Moduls über eine Hardware-Serielle Schnittstelle des ESP32 S3 auswertet
- Echtzeit-GPS-Daten einschließlich Datum und Uhrzeit im Serial Monitor der Arduino IDE
- Einen zweiten Sketch, der die Entfernung zwischen der aktuellen GPS-Position und einem festen Referenzort (London) berechnet

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über NEO-6M GPS Module
Der NEO-6M ist ein hochempfindliches GPS-Empfangsmodul von u-blox, das wegen seiner kompakten Bauform und der einfachen seriellen Schnittstelle in vielen Bastler- und Maker-Projekten eingesetzt wird. Nach einer anfänglichen Kaltstartphase rastet es schnell auf Satellitensignale ein und gibt standardisierte NMEA-Sätze aus, die sich in Arduino-Sketches leicht auswerten lassen. Die integrierte Keramikantenne hält die Anzahl der Bauteile gering und liefert trotzdem zuverlässige Leistung im Freien.
Wichtige Spezifikationen
Das NEO-6M GPS-Modul arbeitet mit 3,3 V–5 V und kommuniziert über TTL-Seriell mit einer Standard-Baudrate von 9600 bps. Es verfolgt bis zu 22 Satelliten über 50 Kanäle und erreicht eine horizontale Positionsgenauigkeit von etwa 2,5 m CEP. Das Modul unterstützt GPS, GLONASS (bei einigen Varianten) und gibt standardisierte NMEA-0183-Sätze aus, darunter GGA, RMC, VTG und GLL.
Pinbelegung
Das NEO-6M GPS-Modul hat vier Pins, die jeweils eine bestimmte Aufgabe bei der Stromversorgung und der Kommunikation mit dem ESP32 S3 haben:
- VCC — Mit der 5-V-Stromversorgung verbinden
- GND — Mit Masse (0 V) verbinden
- TX — Sendet NMEA-Daten vom GPS-Modul; mit einem seriellen RX-Pin des ESP32 S3 verbinden
- RX — Empfängt Konfigurationsbefehle; mit einem seriellen TX-Pin des ESP32 S3 verbinden

Schaltplan zwischen GPS-Modul und ESP32 S3
Für die Verbindung des NEO-6M mit dem ESP32 S3 benötigen Sie nur vier Jumper-Kabel, und auf einem Breadboard ist das in wenigen Minuten erledigt. Das Modul benötigt 5 V, die der ESP32 S3 bei USB-Versorgung über seinen 5V-Pin bereitstellt, und kommuniziert per UART mit 3,3-V-Logikpegeln, die der ESP32 S3 direkt verarbeiten kann.
Sicherheitshinweise
Verbinden Sie den VCC-Pin des NEO-6M immer mit der 5-V-Schiene statt mit 3,3 V, damit der integrierte Spannungsregler des Moduls korrekt arbeitet und die Satellitenverbindung zuverlässig zustande kommt. Platzieren Sie das GPS-Modul in der Nähe eines Fensters oder im Freien, damit die Antenne freie Sicht zum Himmel hat – GPS-Signale durchdringen keine Wände oder Metallgehäuse.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| GPS-Modul-Pin | ESP32 S3 Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| TX | RX1 (GPIO18) |
| RX | TX1 (GPIO17) |
ESP32 S3 Code
GPS-Koordinaten, Geschwindigkeit (km/h) sowie Datum und Uhrzeit auslesen
Der folgende Sketch verwendet die Bibliothek TinyGPSPlus, um den seriellen Datenstrom des NEO-6M GPS-Moduls auszuwerten und Längengrad, Breitengrad, Höhe, Geschwindigkeit sowie Datum und Uhrzeit in UTC zu ermitteln. Er initialisiert auf dem ESP32 S3 eine zweite Hardware-Serielle Schnittstelle speziell für die GPS-Kommunikation, sodass die primäre serielle Schnittstelle für die Ausgabe im Serial Monitor der Arduino IDE frei bleibt.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Führen Sie die Verdrahtung wie im obigen Schaltplan gezeigt durch.
- Verbinden Sie das ESP32 S3 Board über ein USB-Type-C-Kabel mit Ihrem PC.
- Öffnen Sie die Arduino IDE auf Ihrem PC.
- Wählen Sie in der Arduino IDE unter Tools das richtige Board (ESP32S3 Dev Module oder gleichwertig) und den COM-Port aus.

- Gehen Sie in der Arduino IDE in der linken Leiste zu Manage Libraries.
- Suchen Sie nach "TinyGPSPlus" und wählen Sie die Bibliothek TinyGPSPlus von Mikal Hart.
- Klicken Sie auf Install, um die Bibliothek TinyGPSPlus zu installieren.
- Search for TinyGPSPlus created by Mikal Hart and click the Install button.
- Kopieren Sie den obigen Sketch und öffnen Sie ihn in der Arduino IDE.
- Klicken Sie auf die Schaltfläche Upload, um den Sketch zu kompilieren und auf den ESP32 S3 zu flashen.
- Öffnen Sie nach dem Hochladen den Serial Monitor über das Menü Tools oder das Monitor-Symbol.

- Stellen Sie im Dropdown-Menü des Serial Monitors die Baudrate auf 115200 ein.
- Bringen Sie den ESP32 S3 und das GPS-Modul in die Nähe eines Fensters oder ins Freie und beobachten Sie, wie die Messwerte erscheinen, sobald eine Satellitenverbindung besteht.
- Profi-Tipp: Der NEO-6M kann für die erste Satellitenverbindung (Kaltstart) 30–90 Sekunden benötigen. Spätere Starts mit gespeichertem Almanach finden die Verbindung deutlich schneller – lassen Sie das Modul eingeschaltet, während Sie an Ihrem Code arbeiten.
Zeilenweise Code-Erklärung
Der obige ESP32 S3 Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!
Serial-Monitor-Ausgabe
Sobald das mit dem ESP32 S3 verbundene NEO-6M GPS-Modul eine Satellitenverbindung hat, zeigt der Serial Monitor Werte ähnlich den folgenden an:
ESP32 S3 Code
Entfernung vom aktuellen Standort zu einem festgelegten Ort berechnen
Der folgende Sketch erweitert den GPS-Leser um die Berechnung der Entfernung zwischen den aktuellen GPS-Koordinaten und einem festen Referenzpunkt – in diesem Fall den Koordinaten von London (lat: 51.508131, long: -0.128002). Die integrierte Funktion distanceBetween() der Bibliothek TinyGPSPlus übernimmt die Haversine-Berechnung, sodass keine externe Mathematikbibliothek benötigt wird.
Schnelle Schritte
- Kopieren Sie den obigen Sketch und öffnen Sie ihn in der Arduino IDE.
- Klicken Sie auf die Schaltfläche Upload, um den Sketch zu kompilieren und auf den ESP32 S3 zu flashen.
- Öffnen Sie den Serial Monitor und stellen Sie die Baudrate auf 115200 ein.
- Sobald eine GPS-Verbindung besteht, zeigt der Serial Monitor die Entfernung nach London in Metern und Kilometern an.
- Profi-Tipp: Ersetzen Sie die Koordinaten von London im Sketch durch Breiten- und Längengrad eines beliebigen Ortes – Ihres Zuhauses, eines Wegpunkts oder eines Einsatzorts Ihres Projekts –, um dieses Beispiel an Ihren eigenen Anwendungsfall anzupassen.
Zeilenweise Code-Erklärung
Der obige ESP32 S3 Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!
Serial-Monitor-Ausgabe
Wenn das GPS-Modul eine Verbindung hat und der Entfernungs-Sketch auf dem ESP32 S3 läuft, zeigt der Serial Monitor eine Ausgabe ähnlich der folgenden an:
Anwendungs- und Projektideen
Der ESP32 S3 in Kombination mit dem NEO-6M GPS-Modul ermöglicht eine Vielzahl standortbezogener Anwendungen in IoT, Robotik und Outdoor-Elektronik. Hier einige Ideen, die sich lohnen:
- Objekt-Tracker: Bauen Sie einen tragbaren GPS-Tracker, der Koordinaten auf einer SD-Karte speichert oder sie für die Echtzeit-Standortüberwachung per WLAN sendet.
- Geofence-Alarm: Lösen Sie eine Warnung oder Benachrichtigung aus, wenn das Gerät eine festgelegte geografische Grenze verlässt.
- Navigationshilfe: Zeigen Sie Entfernung und Richtung zu einem Wegpunkt Schritt für Schritt auf einem OLED- oder LCD-Bildschirm an.
- Geschwindigkeits-Logger: Zeichnen Sie Geschwindigkeitsdaten während einer Fahrt auf und laden Sie die Protokolle zur späteren Analyse auf einen Server hoch.
- Steuerung autonomer Fahrzeuge: Nutzen Sie GPS-Wegpunkte, um einen Rover oder eine Drohne entlang einer festgelegten Route im Freien zu führen.
- Wetterstation mit Standortkennzeichnung: Versehen Sie Umweltsensor-Messwerte mit GPS-Koordinaten und Zeitstempeln für georeferenzierte Daten.
- Such- und Rettungsbake: Bauen Sie ein stromsparendes Gerät, das seine GPS-Position regelmäßig per WLAN oder LoRa vom ESP32 S3 aus sendet.
Video Tutorial
Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3 Projekt an.
Fordern Sie sich selbst heraus
Sobald die grundlegenden GPS-Messwerte auf Ihrem ESP32 S3 funktionieren, gibt es viele Möglichkeiten, Ihr Verständnis zu vertiefen und das Projekt zu erweitern. Probieren Sie die folgenden Aufgaben nach Schwierigkeit geordnet aus:
- Anfänger: Ändern Sie den Sketch so, dass die GPS-Koordinaten mit sechs Nachkommastellen für eine genauere Ausgabe angezeigt werden.
- Anfänger: Fügen Sie eine LED hinzu, die einmal blinkt, wenn erstmals eine gültige Satellitenverbindung besteht.
- Fortgeschritten: Zeigen Sie Breitengrad, Längengrad, Geschwindigkeit und Höhe live auf einem OLED-Bildschirm statt im Serial Monitor an.
- Fortgeschritten: Speichern Sie alle 10 Sekunden GPS-Messwerte mit Zeitstempel auf einer Micro-SD-Karte, um einen einfachen GPS-Track-Rekorder zu bauen.
- Experte: Implementieren Sie ein Navigationssystem mit mehreren Wegpunkten, das Richtung und Entfernung zu jedem Wegpunkt der Reihe nach berechnet und zum nächsten weiterschaltet, sobald Sie sich innerhalb von 5 Metern befinden.
- Experte: Bauen Sie ein Geofence-System, das per HTTP POST eine WLAN-Warnung sendet, wenn der ESP32 S3 einen festgelegten Radius um eine Heimatkoordinate verlässt.