Arduino UNO Q - GPS
Das NEO-6M-GPS-Modul bietet genaue Standort-, Geschwindigkeits-, Höhen- und Zeitdaten über NMEA-Serienausgabe. Der Arduino UNO Q MCU analysiert die GPS-Daten mit TinyGPS++, speichert die Ergebnisse und macht sie der Linux-Seite über Bridge verfügbar – wodurch die Standortfreigabe auf Google Maps über Telegram ermöglicht wird.
In diesem Tutorial lernen Sie:
- Wie das NEO-6M-GPS-Modul funktioniert
- Wie Sie das GPS-Modul mit dem Arduino UNO Q MCU verdrahten
- Wie Sie GPS-NMEA-Daten mit TinyGPS++ auf Arduino UNO Q analysieren
- Wie Sie Breitengrad, Längengrad, Höhe, Geschwindigkeit und Datum/Uhrzeit lesen
- Wie Sie Bridge verwenden, um GPS-Daten der Linux-Seite (Python) verfügbar zu machen
- Wie Sie einen GPS-Tracker erstellen, der Ihren Standort über Telegram auf Arduino UNO Q teilt
- Wie Sie OpenClaw auf Arduino UNO Q mit GPS verwenden

※ Notiz:
Das GPS-Modul benötigt einen freien Blick auf den Himmel, um einen Satellitensignal zu erfassen. Im Freien ist am besten; in der Nähe eines Fensters kann funktionieren. Das erste Signal kann mehrere Minuten dauern.
Hardware erforderlich
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über das NEO-6M-GPS-Modul
Das NEO-6M ist ein weit verbreitetes GPS-Empfängermodul, das NMEA-formatierte Daten über UART mit 9600 Baud ausgibt. Es kann bis zu 22 Satelliten über 50 Kanäle verfolgen und liefert eine Positionsgenauigkeit von etwa 2,5 Metern.

Pinbelegung
- VCC-Pin: Mit VCC verbinden (5V oder 3,3V – die meisten Module unterstützen beide)
- GND-Pin: Mit GND verbinden (0V)
- TX-Pin: Serienausgabe – sendet GPS-NMEA-Daten an den MCU RX-Pin
- RX-Pin: Serieneingabe – empfängt optionale Konfigurationsbefehle vom MCU TX-Pin
Funktionsweise
Das NEO-6M gibt kontinuierlich NMEA-Sätze aus (z.B. $GPGGA, $GPRMC) mit 9600 Baud. Der Arduino UNO Q MCU liest diese Sätze, übergibt sie an die TinyGPS++-Bibliothek, die sie in Breitengrad-, Längengrad-, Höhen-, Geschwindigkeits- und Datums-/Uhrzeitwerte analysiert.
- Blaue LED am Modul: Blinkt einmal pro Sekunde, wenn ein Satellitensignal erfasst ist
Schaltschema

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| NEO-6M GPS Modul Pin | Arduino UNO Q MCU |
|---|---|
| VCC | 3.3V |
| GND | GND |
| TX | D4 (MCU RX) |
| RX | D3 (MCU TX) |
※ Notiz:
Der MCU TX-Pin (D3) gibt 3,3V-Signale aus. Dies ist mit dem NEO-6M RX-Pin kompatibel, der 3,3V-Logik akzeptiert, daher ist kein Pegelwandler erforderlich.
Wie man für GPS programmiert
- Fügen Sie die TinyGPS++-Bibliothek ein und richten Sie SoftwareSerial ein:
- Füttern Sie eingehende Bytes in den TinyGPS++-Parser:
- Lesen Sie Koordinaten, wenn eine Lösung gültig ist:
Arduino UNO Q Code
Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:
- Der STM32 MCU liest GPS-NMEA-Sätze kontinuierlich, analysiert sie mit TinyGPS++ und gibt Koordinaten, Geschwindigkeit, Höhe und Datum/Uhrzeit auf dem Serial Monitor aus
- Die Qualcomm MPU läuft Debian Linux mit Wi-Fi – in diesem Abschnitt wird nur der MCU programmiert. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.
Schnelle Schritte
Erstmals mit Arduino UNO Q? Folgen Sie dem Getting Started with Arduino UNO Q Tutorial, bevor Sie fortfahren.
- Verbinden: Verdrahten Sie das NEO-6M-GPS-Modul mit dem Arduino UNO Q MCU wie im Schaltschema gezeigt.
- Nehmen Sie den Sensor nach draußen oder platzieren Sie ihn in der Nähe eines Fensters mit freiem Himmelblick.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihren Arduino UNO Q erkennt.
- Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Create New App.

- Geben Sie der App einen Namen, z.B.: GPSModule
- Klicken Sie auf Create, um zu bestätigen.

- Fügen Sie die Skizze ein: Kopieren Sie den MCU-Code von oben und fügen Sie ihn in sketch/sketch.ino ein.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for TinyGPSPlus created by Mikal Hart and click the Install button.
- Hochladen: Klicken Sie auf die Run-Schaltfläche in Arduino App Lab.

- Warten Sie darauf, dass die blaue LED des GPS-Moduls zu blinken beginnt – dies signalisiert, dass ein Satellitensignal erfasst wurde.
- Beobachten Sie die GPS-Daten auf dem Serial Monitor.
App Lab-Konsolenausgabe
Bridge: Linux + MCU
Dieser Abschnitt zeigt, wie Sie beide Prozessoren des Arduino UNO Q programmieren, um GPS-Daten der Linux-Seite über Bridge verfügbar zu machen:
- Das GPS-Modul ist mit dem MCU verbunden – der MCU analysiert kontinuierlich NMEA-Sätze und speichert Breitengrad, Längengrad, Höhe, Geschwindigkeit und Datum/Uhrzeit
- Die MPU kann das GPS-UART nicht direkt lesen – sie ruft Bridge-Funktionen auf, um zwischengespeicherte GPS-Werte zu erhalten
- Die MPU hat Wi-Fi – läuft volles Debian Linux und kann Ihren GPS-Standort mit einem Google Maps-Link über Telegram teilen
- Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
- ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT vom Router – öffnen Sie sie niemals in Benutzercode
MCU Code (Bridge)
Python Code (Bridge)
Schnelle Schritte
- Verbinden: Verdrahten Sie das NEO-6M-GPS-Modul mit dem Arduino UNO Q wie im Schaltschema gezeigt. Platzieren Sie das Gerät in der Nähe eines Fensters mit freiem Himmelblick.
- Öffnen Sie Arduino App Lab und erstellen Sie eine neue App mit dem Namen GPSBridge.
- Fügen Sie die MCU-Skizze in sketch/sketch.ino ein.
- Fügen Sie den Python-Code in die Python-Datei ein.
- Hochladen: Klicken Sie auf die Run-Schaltfläche. Warten Sie, bis die blaue LED des GPS-Moduls blinkt.

- Beobachten Sie, dass GPS-Daten in der Python-Konsole erscheinen, sobald ein Signal erfasst ist.
App Lab-Konsolenausgabe
Telegram
Erstellen Sie einen GPS-Tracker auf Arduino UNO Q – senden Sie Ihren Standort mit einem Google Maps-Link, Geschwindigkeit, Höhe und Uhrzeit über Telegram-Befehle.
MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt.
Python Code (Telegram)
Schnelle Schritte
- Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihren tatsächlichen Bot-Token von BotFather.
- Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
- Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie die gleiche MCU-Skizze).
- Klicken Sie auf die Run-Schaltfläche – warten Sie auf einen GPS-Signal (blaue LED blinkt), dann senden Sie /location in Telegram.
App Lab-Konsolenausgabe
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial
Projektideen
Sie können viele nützliche Projekte mit dem GPS-Modul und Arduino UNO Q erstellen:
- Persönlicher GPS-Tracker: Senden Sie /location jederzeit über Telegram, um sofort Ihre aktuellen GPS-Koordinaten und einen anklickbaren Google Maps-Link zu erhalten – perfekt für die Verfolgung eines Fahrzeugs oder Haustiers
- Geo-Zaun-Alarmsystem: Definieren Sie einen Heimatstandort (Breitengrad/Längengrad) in Python; wenn sich das GPS mehr als eine festgelegte Entfernung entfernt, senden Sie automatisch eine Telegram-Warnung mit dem aktuellen Standort und Google Maps-Link
- Geschwindigkeitsmonitor: Prüfen Sie kontinuierlich den GPS-Geschwindigkeitswert in Python – wenn er einen festgelegten Schwellenwert überschreitet (z.B. 120 km/h), senden Sie eine Telegram-Warnung mit der aktuellen Geschwindigkeit und dem Standort
- Trip-Logger: Protokollieren Sie GPS-Koordinaten, Geschwindigkeit und Höhe in eine CSV-Datei auf der Linux-Seite alle 10 Sekunden; senden Sie einen /summary Telegram-Befehl, um die Gesamtfahrstrecke, Maximalgeschwindigkeit und Dauer zu erhalten
- Automatische Standortübertragung: Senden Sie Ihren GPS-Standort automatisch alle 5 Minuten über Telegram mit einem Python-Timer – nützlich zur Überwachung eines sich bewegenden Vermögenswerts oder Fahrzeugs in Echtzeit
Fordern Sie sich selbst heraus
Bereit, weiter mit GPS auf Arduino UNO Q zu gehen? Versuchen Sie diese Herausforderungen:
- Einfach: Fügen Sie einen /satellites Telegram-Befehl hinzu, der die Anzahl der derzeit für das GPS-Modul sichtbaren Satelliten zurückgibt, indem Sie gps.satellites.value() auf dem MCU verwenden und es über eine get_satellites Bridge-Funktion verfügbar machen.
- Mittel: Implementieren Sie einen Geo-Zaun in Python: Wenn sich das GPS mehr als 500 Meter von einem gespeicherten Heimatstandort entfernt, senden Sie automatisch eine Telegram-Warnung. Verwenden Sie TinyGPSPlus::distanceBetween() auf dem MCU oder berechnen Sie die Haversine-Distanz in Python.
- Fortgeschritten: Erstellen Sie einen Live-Trip-Tracker: Protokollieren Sie GPS-Koordinaten mit Zeitstempeln in eine JSON-Datei auf Linux alle 30 Sekunden während der Bewegung (Geschwindigkeit > 2 km/h). Implementieren Sie einen /track Telegram-Befehl, der die letzten 5 protokollierten Punkte als formatierte Routenzusammenfassung mit geschätzter Gesamtentfernung zurückgibt.