Home > Tutorials > GPS Modul mit dem Raspberry Pi – Ortung und Navigation

GPS Modul mit dem Raspberry Pi – Ortung und Navigation

Schon länger überlege ich ob der Raspberry Pi sich auch mit einem GPS Modul oder GPS Empfänger verbinden lässt um mit dem kleinen Alleskönner weitere Anwendungsgebiete erschließen zu können. Zum Beispiel Tracking der Fahrstrecke mit einem Raspberry Pi CarPC oder zur einfachen Positionsbestimmung oder Aufzeichnung anhand einer mobilen Lösung mit Akkupack. Schön wäre auch ein DIY OpenSource Navigationsgerät auf Basis der OpenStreetMaps.

In erster Annäherung an das Thema habe ich mir eines der günstigsten GPS-Module besorgt, das GY-GPS6MV2 bei einigen China-Händlern gibt es das Modul bereits für unter 12USD mit kostenlosem Versand, dieser dauert dann allerdings auch knapp 4 Wochen. Das Modul verwendet ein NEO-6 Chip der Firma Ublox, der Vorteil ist hier das wir recht einfach via SPI/UART an die gewünschten Daten kommen, übrigens kann man via GPS auch immer eine aktuelle Uhrzeit empfangen.

images_upload_2012_1cd_sku101674.4

Das GPS Modul an den Raspberry Pi anschließen

Die Verkabelung des Moduls gestalltet sich recht einfach da neben VCC und GND nur zwei Kabel für RX und TX an den Raspberry Pi angeschlossen werden müssen. Die Verkabelung ist sowohl für die normalen als auch für die Plus Modelle gleich.

GPS-Modul
  • VCC wird mit 3,3V versorgt und kommt daher beim RasPi an PIN1 (+ 3,3 V)
  • GND ist natürlich auch beim RasPi GND und kommt daher an PIN6 (GND)
  • RX ist da wir Seriell verwenden beim  RasPi TX und daher PIN8 (TXD0)
  • TX ist da wir Seriell verwenden beim RasPi RX und daher PIN10  (RXD0)

Auf meinem Breadboard sieht das so aus, ich habe hier Steckbrettkabel an der einen Seite abgeschnitten und an das Modul angelötet, stört euch bitte nicht an den Farben der Kabel, ich hatte leider gerade keine anderen mehr zur Hand!

GPS-Modul-2

Das war auch schon die Verkabelung des Moduls.

Das GPS Modul auf dem Raspberry Pi einrichten

Wichtig! Da zur Kommunikation das Serielle Interface verwendet wird muss, bevor ihr das Modul verwenden könnt, das Interface nach folgender FAQ eingerichtet werden:

Um zu überprüfen ob das GPS Modul mit unserem Raspberry Pi kommunizieren kann verwenden wir das Tool Minicom. Das eine Kommunikation funktioniert setzen wir die Übertragungsrate der Seriellen Schnittelle noch auf 9600 Baud.

Anhand von Minicom können wir nun überprüfen ob Daten vom Modul übertragen werden, dazu lauschen wir auf der Seriellen Schnittelle

Bei mir sieht die Ausgabe via Serial so aus, es sind noch keine GPS Daten enthalten da sich mein Raspberry Pi noch im Gebäude befindet. Beendet wir Minicom mit der Tastenkombination STRG+A, Q und Enter.

minicom-gps

Da wir dauerhaft mit 9600 Baud mit dem Modul kommunizieren möchten setzen wir in der config.txt noch die Einstellung für die Baudrate sodass diese bei jedem neustart gesetzt wird.

Schreibt ans Ende der Datei folgende Zeile

Gespeichert wird mit STRG+X, Y und Enter.

Da die Kommunikation mit dem Modul funktioniert können wir nun den GPS-Deamon installieren, dieser übernimmt für uns das Auslesen der Daten vom Modul. Zusätzlich zum GPS Dienst installieren wir noch den GPS Client welcher uns eine schöne Ausgabe der GPS Daten anbietet.

Wir richten für den GPS Deamon direkt den Autostart ein sodass bei jedem Neustart unseres Pi auch der Dienst gestartet wird. Hierzu rufen wir den Konfigurationsdialog auf, alternativ könnt ihr auch via Editor die Datei /etc/default/gpsd editieren.

Die Frage nach dem Automatischen Start bestätigen wir natürlich mit Yes

gpsd-konfiguration

Da GPSD keine USB-Geräte verwenden soll wählen wir hier No

gpsd-konfiguration-2

Hier geben wir den Pfad zu unserer Seriellen Schnittelle an /dev/ttyAMA0

gpsd-konfiguration-3

Wir setzen hier den Parameter -n um festzulegen das direkt mit der Positionsbestimmung begonnen wird, auch wenn keine Anwendung danach fragt. Der Parameter -G sorgt dafür, das der GPSD-Server unter allen IP-Adressen auf Port 2947 erreichbar ist und nicht nur unter vom RasPi selbst, das ist von Vorteil wenn z.B. von eurem Windows Client Daten abfragen wollt

gpsd-konfiguration-4

Den gpsd control socket lassen wir wie er ist.

gpsd-konfiguration-5

Eure Antenne benötigt natürlich Sichtverbindung zu mehreren Satelliten, die Ausgabe der Daten erfolgt via cgps -s oder über gpsmon, sollte die Uhrzeit falsch sein ändert via raspi-config noch eure Zeitzone.

gpsmon

gpsmon

cgps

cgps

Zum Testen könnt ihr die Daten für Latitude und Longitude in Google Maps anzeigen lassen. Das funktioniert so:

https://maps.google.com/maps?q=<Latitude>,+<Longitude>, also zum Beispiel https://maps.google.com/maps?q=48.927452,+10.192130

google-maps-PNG

Weitere Tutorials zum Thema folgen, viel Spaß!

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (4 votes, durchschnittlich: 3,50 von 5)
Loading...

Über raspberry.tips

19 Kommentare

  1. Hallo,

    danke für den Beitrag. Eben auch mal so ein Teil bestellt.

    Bin schon gespannt.

    Gruß aus Langenhagen.

  2. Hey Ho.
    Eine sehr coole Variante.

    Frage ist es dann möglich diese Daten dann auf ein Handy zu übermitteln.

    Szenario wäre z.B. die Pi liegt auf einen sich bewegenden Objekt und übermittel die GPS Daten dann per Wlan/Wireless auf ein Handy welches die Daten auslesen kann bzw weiterverwerten ?

    Hast du dir dazu mal Gedanken gemacht oder gibt es das schon irgendwo?

    • Es ist natürlich möglich den Track über das im gpsd enthaltene Tool “gpxlogger” zu speichern.

      gpxlogger > tracklog.gpx

      Wie die Daten dann vom RasPi auf ein anderes System gelangen bleibt noch zu lösen. In einem konkreten Fall könnte ich mir einen WLAN Stick im Access Point Modus vorstellen und dann eine eigene kleine PHP Webseite erstellen über welche du gpxlogger starten und stoppen sowie die Daten aufs handy laden kannst. Ob es eine App gibt welche die Daten auf dem Handy verarbeiten kann weiß ich nicht genau. Evtl geht es mit “Meine Tracks” von Google.

      Wenn ich etwas Zeit habe nehme ich mich der Fragestellung mal an.

    • Wäre auf jeden Fall nett, falls du da 1-2 Ideen zu hättest.

      MFG Daniel

  3. why when i write cgps -s it gives me the status NO FIX and all the data n/a ?

    thanks in advance

  4. warum, wenn ich schreibe CGPS -s es gibt mir den Status kein Update und alle Daten, die n / a?

    danke im voraus

  5. Hallo,

    ich habe das gleiche Problem wie meine Vorredner. Bei dem Befehl cgps -s bekomme ich nur den Status NO FIX keine Daten.
    Hast du ne Idee?

  6. Hi,

    ich habe das Problem gelöst. Bei mir lag es an der Spannungsversorgung. Gelöst habe ich es indem ich einen “Level Shifter 5v zu 3,3v Bidirektional” zwischen den Pi und dem GPS gehängt habe.

    Gruß André

  7. Hab die Anleitung befolgt, funktioniert alles top!! Super!!

    Eine Frage aber, ist es möglich das Modul abzuschalten? Es blinkt nämlich die ganz zeit eine grüne LED und gemessen wird denke ich auch. Das ganze soll im Akku betrieb laufen und da wäre es gut wenn ich das Modul bei gebrauch an und aus schalten könnte…

    Danke für Hilfen

  8. Also bei Mir geht “minicom -b 9600 -o -D /dev/ttyAMA0” und zeigt auch daten.

    Aber mit “gpsmon” oder “cgps” bekomm ich keine werte angezeigt wiso nicht ?

    Alles hundertmal wiederholt !

  9. Hi,
    Gibt es aktuell eine Möglichkeit die gps Daten an eine Website weiterzuleiten ? Damit eine art Fahrprofil im Netz sehen kann?

  10. Hallo
    Kann ich 2 identische GPS Empfänger an dem Raspi anschliessen und die Daten der Position getrennt auslesen?
    Hört sich nach Blödsinn an wäre aber wichtig.
    Gruss Jan

  11. Hallo, hat schon jemand Erfahrung mit der Genauigkeit des Modules ?

    • Die Genauigkeit würde mich auch interessieren.
      Mein Smartphone hat 6 Meter.

      Könnte man eigentlich nicht auch ein Smartphone an den Raspberry anschließen und auslesen ?

  12. Super Anleitung!
    Wie siehts mit nem weiterem Tutorial aus?
    Wie werte ich die Daten, am besten auf dem Pi oder home Server, aus. Und mach zB geofencing?

    Wäre cool wen sodas gehen würde lg
    Hans Peter

  13. Hallo,

    vielen Dank für die tolle Anleitung!!!

    Auf meinem Raspi 3 mit Raspbian Jessie ist die Serielle Schnittstelle nicht /dev/ttyAMA0 sondern /dev/ttyS0

    LG Bote

    • Hallo Bote,

      leider bekomme ich auf meinem Raspi 3 null Daten angezeigt, weder im minicom noch im cgps -s Fenster, immer nur Time-out. Könnstes Du mir vielleicht mal Deine /dev/ttyS0 Einstellung Freigaben darstellen und wie sieht deine cmdline.txt aus. Hast Du den User gpsd oder dialout freigeben. Ich wäre für ein paar Tips sehr dankbar.

      LG Markus

      • Hallo Markus,

        sorry, zu spaet gesehen.

        Auf meine cmdline.txt habe ich gerade keinen Zugriff. Aber was auch wesentlich ist:

        stty -F /dev/ttyS0 9600
        stty 4800 > /dev/ttyS0

  14. Habe den Sensor eben wohl versehentlich bei 5V angesteckt, anstatt auf 3V.
    Wenn ich den Sensor jetzt korrekt stecke, dann leuchtet auch die grüne LED und kan ihn ansteuern und bekomme “Daten”. Jedoch ergibt sich daraus keine GPS-Position.

    Kann es sein, dass der Sensor deswegen defekt ist, obwohl er prinzipiell “ansprechbar” ist?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.