GPS-Modul am Raspberry Pi anschließen & nutzen: Praxisanleitung
Hardware-Voraussetzungen
- Raspberry Pi (beliebiges Modell mit 40-poligem GPIO, z. B. Pi 3, 4, Zero W)
- GPS-Modul mit UART-Ausgang (z. B. u-blox NEO-6M/7M/8M, VK2828U7G5LF, Beitian BN-220)
- Jumper-Kabel (weiblich-weiblich oder männlich-weiblich)
- Stromversorgung (Netzteil oder Powerbank für Mobilität)
Verkabelung (UART / Serial)
Die meisten günstigen GPS-Module kommunizieren über serielles UART (TTL-Pegel 3,3 V).
| GPS-Modul | Raspberry Pi (GPIO Header) | Pin-Nummer |
|---|---|---|
| VCC | 3,3 V (oder 5 V, falls Modul 5 V verträgt – Datenblatt prüfen!) | 1 (3,3 V) / 2 / 4 (5 V) |
| GND | GND | 6, 9, 14, 20, 25, 30, 34, 39 |
| TXD | RXD (GPIO 15) | 10 |
| RXD | TXD (GPIO 14) | 8 |
Wichtig: TX des Moduls → RX des Pi (Pin 10), RX des Moduls ← TX des Pi (Pin 8). Pegel: 3,3 V. Bei 5-V-Modulen Pegelwandler nutzen!
Raspberry Pi OS konfigurieren (Serial Console deaktivieren)
sudo raspi-configstarten.- Interface Options → Serial Port auswählen.
- Login Shell über Serial? → Nein.
- Serial Port Hardware aktiviert? → Ja.
- Finish → Neustart (
sudo reboot).
Alternativ per cmdline.txt/config.txt (für Headless):
enable_uart=1 in /boot/config.txt setzen, console=serial0,115200 aus /boot/cmdline.txt entfernen.
Software: gpsd installieren & testen
sudo apt update && sudo apt install -y gpsd gpsd-clients python3-gps
Service stoppen & deaktivieren (wir starten manuell mit korrektem Device):
sudo systemctl stop gpsd
sudo systemctl disable gpsd
Manueller Start für UART (Pi 3/4/Zero: /dev/serial0 ist Alias für primären UART):
sudo gpsd /dev/serial0 -F /var/run/gpsd.sock
Testen:
cgps -s # Grafische Anzeige (NMEA-Daten)
gpsmon # Rohdaten-Monitor
gpspipe -r # Roh-NMEA-Sätze auf stdout
Erster Fix dauert oft 1–5 Minuten (kalt), bei schlechtem Empfang (Innenraum) länger. Antenne nach draußen / ans Fenster!
Python-Beispiel: Position auslesen
import serial
import pynmea2
ser = serial.Serial('/dev/serial0', 9600, timeout=1)
while True:
line = ser.readline().decode('ascii', errors='replace').strip()
if line.startswith('$GPGGA') or line.startswith('$GNGGA'):
msg = pynmea2.parse(line)
if msg.gps_qual > 0:
print(f"Lat: {msg.latitude:.6f} {msg.lat_dir}, Lon: {msg.longitude:.6f} {msg.lon_dir}, Alt: {msg.altitude} m, Sats: {msg.num_sats}")
# Google Maps Link:
print(f"https://maps.google.com/?q={msg.latitude},{msg.longitude}")
break
pip3 install pyserial pynmea2 vorher installieren.
C / WiringPi Beispiel (Kurz)
Seriell öffnen (/dev/serial0), NMEA-Sätze parsen (z. B. minmea-Library). Für Pi 2 und älter: /dev/ttyAMA0 statt /dev/serial0.
GPS HATs – Die elegante Lösung
Ein GPS HAT steckt direkt auf den 40-poligen Header, oft mit:
- Onboard Patch-Antenne (besserer Empfang)
- u.FL-Buchse für externe Aktiv-Antenne
- Echtzeituhr (RTC) mit Pufferbatterie (Zeit ohne GPS/Sync)
- Status-LEDs (Fix, PPS)
- Geringer Stromverbrauch (~20 mA)
Beispiele: u-blox ZED-F9P HAT (RTK), Adafruit Ultimate GPS HAT, Waveshare GPS HAT.
Projektideen
- GPS-Navigationsroboter (Waypoints per Handy setzen)
- Fahrzeug-Tracker / Flottenmanagement
- Wetterstation mit Orts-/Zeitstempel
- Drohnentracker / Modellflug-Telemetrie
- Zeitserver (NTP) via GPS-PPS (Pulse Per Second) für präzise Uhrzeit
Tipps & Fehlerquellen
- Kein Fix? Antenne frei zum Himmel? Modul 3,3 V versorgt? RX/TX vertauscht? Serial Console deaktiviert?
- „Permission denied“ auf /dev/serial0: User
pizur Gruppedialouthinzufügen:sudo usermod -a -G dialout $USER→ neu anmelden. - Baudrate: Meist 9600 Bd (Standard), manche Module 115200 Bd – Datenblatt prüfen.
- PPS (Precision Time): GPIO 4 (Pin 7) oft als PPS-Eingang nutzbar (
dtoverlay=pps-gpio,gpiopin=4in config.txt).
Fazit
Ein GPS-Modul am Raspberry Pi ist ein klassisches, lehrreiches Projekt. Mit gpsd und Python/C lassen sich Positionsdaten einfach auswerten. Für produktive/mobile Einsätze empfiehlt sich ein GPS HAT mit externer Antenne und RTC. Viel Erfolg bei Ihrem Projekt!
Industrietechnik
- Temperatur mit DS18B20 am Raspberry Pi 2 auslesen
- Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi
- Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
- Erstes IoT-Projekt mit Raspberry Pi, DHT11 und ThingSpeak bauen
- Top-Zubehör, um das volle Potenzial Ihres Raspberry Pi auszuschöpfen
- HC-SR501 PIR-Bewegungssensor an Raspberry Pi anschließen, kalibrieren und programmieren
- Internet-gesteuerter Video-Streaming-Roboter mit Arduino & Raspberry Pi bauen
- Selbstbalancierenden Segway mit Raspberry Pi bauen
- Effizienz maximieren: 4 bewährte Tipps für Ihren Wasserstrahlschneider
- Die richtigen Scharniere für Blechgehäuse: Piano, Lift-Off & Drehmoment