GPS-Modul anschließen

Hallo, ich würde gerne so ein GPS-Modul an den Raspberry anschließen:

Das wird laut Beschreibung an “TXD/GPIO 14 (Pin 8)” und “RXD/GPIO 15 (Pin 10)” angeschlossen. Allerdings hängt da ja das Pekaway-Display dran. Weiß jemand, ob ich auch andere Pins vom RPI benutzen kann, um das GPS-Modul anzuschließen?

Hi,

ich bin da leide auch nicht so der Profi.
Aber schau doch mal hier:

Grüße

Christian

Ach cool, danke, das hatte ich übersehen. Habe jetzt mal so einen USB-Adapter bestellt.

Grundsätzlich kann der PI mehr als eine Seriale Schnittstelle. Ich meine im Image hier ist das auch schon Aktiviert.

Auf passen bei den USB kann es vor kommen wenn man den PI Bootet das die USB Seriale sich tauschen wurde hier auch schon diskutiert.

Aber du hast das sicher schon am rennen

Danke für den Tipp. Ich habe es inzwischen mit dem USB-Adapter weitgehend am laufen, werde es aber dann noch mal probieren als UART anzuschließen.

Das Problem mit den Serials beim Booten haben wir anscheinend in den Griff bekommen, wird aber noch weiter getestet und kommt dann im nächsten großen Update

Wie hast du den GPS Sensor GPSD zugeordnet? Kannst du den Flow vlt. teilen.

Der GPS-Sensor wird ja nicht in Node Red zugeordnet, sondern wie im ersten Link von @C.Scholz beschrieben. Im zweiten Link ist dann beschrieben wie man auf die Daten von gpsd in Node Red zugreift. Ich habe allerdings auch noch das Problem, dass ich zwar Daten bekomme wenn ich “sudo cat /dev/ttyUSB1” eingebe, allerdings gpsd mir noch “NO FIX” zurück gibt und ich nicht herausfinde woran das liegt.

Bist du dir sicher das du auch einen Fix hast ?
Nur weil Daten kommen heißt das ja nicht das du auch “genug” Satelliten siehst.
Hast du mal ins Log vom gpsd gesehen ob er die Schnittstelle öffnen kann ?

Vielleicht einfach mal den gpsd auf der Commandline starten.

https://wiki.ubuntuusers.de/gpsd/

Nein, ich bin mir leider nicht sicher woran es liegt. gpsd habe ich auf der Commandline gestartet, sonst kann Node Red darauf ja gar nicht zugreifen. Die GPS-Antenne liegt im Fahrerhaus an einer Stelle, wo sie eigentlich guten Empfang haben müsste. Aber auch nach Tagen habe ich immer nur NO FIX. Nicht nur in Node Red, sondern auch wenn ich auf der Commandline “cgps -s” eingebe. Das GPS-Modul blinkt rot und ich finde ach nicht wirklich heraus, was das bedeutet. Ich muss mir das noch mal genauer ansehen.

Sag mal hast du eine Frontscheiben Heizung ?

Node Red muss auch drauf zu greifen können wenn das Ding als Dienst läuft aber das ja im Moment egal.
Rot blinkt hört sich einfach nicht gut an. Soll ja gutes Wetter sein vielleicht ist es möglich die Antenne mal ausserhalb zu Positionieren.

Was ist es den für eine Maus ?
Vielleicht hast du ja die Möglichkeit die Ausgabe des gpsd im Debug Modus zu posten.

Also keine Ahnung warum, aber jetzt läuft es endlich.
Ich habe noch mal mit

sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket

den gpsd systemd service gestoppt und mit

sudo gpsd /dev/ttyUSB1 -N -D3 -F /var/run/gpsd.sock

den gpsd im Debug-Modus gestartet. Das hatte ich zuvor ohne Debug-Modus schon 100x gemacht.
Was jetzt genau anders ist weiß ich nicht, aber jetzt bekomme ich einen Fix, sowohl auf der Commandline als auch in Node Red und bekomme auch in Node Red endlich alle relevanten Werte.
Trotzdem danke für den Tipp mit dem Debug-Modus. Sonst hätte ich es sicher erst einmal liegen gelassen.

Hallo Ihr alle

Ich habe da mal ein Problem mit dem GPS, und hoffe mir kann da einer weiterhelfen. Ich habe mir die neuste Firmware VanPICTRL_pi4_v1.1.0 installiert.

Ich benutze den RJ45 Ausgang für das Display /def/ttyS0. Die 12V bringe ich mit einem Spannungswandler auf 3,7V.

Nach dem Anschluss des GPS bekomme ich dieses Bild.
grafik
Dann habe ich im Flow die Serial Ports umgestellt
grafik
grafik
Und es kommen ein paar Zahlen :wink: soweit so gut.
Danach den GPSD installiert.
sudo apt-get install gpsd gpsd-clients
grafik
Immer noch keine Werte
In der Installationsbeschreibung steht das man in neueren Systemen
sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket
sudo gpsd /dev/ttyS0 -F /var/run/gpsd.sock
Eingeben soll
Danach bekomme ich auch Werte mit cgps –s
Das im Node-Red installierte GPSD, und Worldmap funktioniert auch.
Nach dem ich dann wieder meine ganzen Flows integriert habe, ist der GPSD Disconnectet, und mit sudo cat /dev/ttyS0 kommt nur noch Datenmüll.
Auch einstellen des Eingangs stty -F /dev/ttyS0 9600 hat nicht gebracht.
sudo killall gpsd
sudo gpsd /dev/ttyS0 -F /var/run/gpsd.sock hat nichts gebracht.
Vorgegangen bin ich nach dieser Beschreibung
Setting Everything Up | Adafruit Ultimate GPS with gpsd | Adafruit Learning System ohne USB
Nach dem ich das jetzt fast 2 Tage versucht habe, und mein System das 4.oder 5. Mal neu aufgesetzt habe, hoffe ich hier mal auf Hilfe.
Den ich weiß wirklich nicht was in so einem Pi abgeht und was ich mit den Befehlen die ich da eingebe bewirke.
Gruß Arno

Gelöst
Nachdem ich die beiden serial Ports gelöscht habe, und
das eingefügt habe,
grafik
startet der gpsd.sock 5 sec nach dem Deploy, neustart, reboot.
und alles funktioniert.

@BT6100
Hallo Ihr alle
meinGPS habe ich nun am laufen, ist zwar nicht so genau ( ich stehe beim Nachbarn im Pool :wink: )
aber ich benötige trotzdem mal eure Hilfe. Ich möchte mir die Positionsdaten via Telegram aufs Handy schicken, so das eine Landkarte mit der Position erscheint. dazu gibt es eine Node “Locacion” in der Beschreibung steht das man “lon” und “lat” mit einer “Funktion Node” in die "location Node " übertragen kann. Das bekomme ich aber nicht hin. in der “Debug Node” hinter der "location Node " kommt nicht an.
Kann da einer helfen???


über den Linkout schicke ich das nach Telegram.
mit dem get GPS Telegram, kann ich nur die Zahlen von “lon” und "lat " zu Telegram schicken.

und hier wird es auf der Telegram Seite weitergeleitet.

[{"id":"f3f48c5d.b76e5","type":"debug","z":"67f4ff1d.729ad8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":530,"y":240,"wires":[]},{"id":"38b10073.4674","type":"catch","z":"67f4ff1d.729ad8","name":"","scope":null,"x":140,"y":180,"wires":[["c94a70c1.72634"]]},{"id":"8a3645a3.5aaa3","type":"debug","z":"67f4ff1d.729ad8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":430,"y":180,"wires":[]},{"id":"ff349659.7127f8","type":"file","z":"67f4ff1d.729ad8","d":true,"name":"gpsd_output","filename":"/home/pi/gpsd.json","filenameType":"str","appendNewline":true,"createDir":false,"overwriteFile":"false","x":530,"y":280,"wires":[[]]},{"id":"2e1212b1.cb86f6","type":"csv","z":"67f4ff1d.729ad8","d":true,"name":"gpsd-csv","sep":",","hdrin":"","hdrout":"none","multi":"one","ret":"\\n","temp":"class,tag,device,mode,time,ept,lat,lon,alt,epx,epy,epv,track,speed,climb,eps,epc","skip":0,"strings":true,"include_empty_strings":false,"include_null_values":false,"x":540,"y":320,"wires":[["c2f8e0d5.63d078"]]},{"id":"c2f8e0d5.63d078","type":"file","z":"67f4ff1d.729ad8","d":true,"name":"gpsd-csv-file","filename":"/home/pi/gpsd.csv","filenameType":"str","appendNewline":true,"createDir":false,"overwriteFile":"false","x":710,"y":320,"wires":[[]]},{"id":"c1d76ea2.67c3d","type":"gpsd","z":"67f4ff1d.729ad8","name":"Adafruit Ultimate GPS","hostname":"localhost","port":"2947","tpv":true,"sky":true,"info":false,"device":true,"gst":false,"att":false,"x":180,"y":440,"wires":[["f3f48c5d.b76e5","ff349659.7127f8","2e1212b1.cb86f6","6560f5f6.c0ed8c"]]},{"id":"c94a70c1.72634","type":"change","z":"67f4ff1d.729ad8","name":"IsCatch","rules":[{"t":"set","p":"isCatch","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":280,"y":180,"wires":[["8a3645a3.5aaa3"]]},{"id":"a97018b5.9c91c8","type":"status","z":"67f4ff1d.729ad8","name":"GPS Status","scope":["c1d76ea2.67c3d"],"x":730,"y":240,"wires":[["e9645f90.35e3","a4c44223.226da8"]]},{"id":"e9645f90.35e3","type":"debug","z":"67f4ff1d.729ad8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"status","targetType":"msg","statusVal":"status","statusType":"auto","x":1070,"y":140,"wires":[]},{"id":"a4c44223.226da8","type":"switch","z":"67f4ff1d.729ad8","name":"GPS Fix Mode","property":"status.text","propertyType":"msg","rules":[{"t":"cont","v":"no fix","vt":"str"},{"t":"cont","v":"2D fix","vt":"str"},{"t":"cont","v":"3D fix","vt":"str"}],"checkall":"false","outputs":3,"x":900,"y":240,"wires":[["29a14d53.e497aa"],["725b522c.fe1b8c"],["c8672662.924228"]]},{"id":"725b522c.fe1b8c","type":"debug","z":"67f4ff1d.729ad8","name":"2D fix","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1079.5,"y":264.5,"wires":[]},{"id":"29a14d53.e497aa","type":"debug","z":"67f4ff1d.729ad8","name":"no fix","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1090,"y":200,"wires":[]},{"id":"c8672662.924228","type":"debug","z":"67f4ff1d.729ad8","name":"3D fix","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1073.5,"y":319.5,"wires":[]},{"id":"6560f5f6.c0ed8c","type":"switch","z":"67f4ff1d.729ad8","name":"","property":"payload.class","propertyType":"msg","rules":[{"t":"eq","v":"TPV","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":430,"y":460,"wires":[["202c890a31817d08","8f6fe0eb3a69a995","578b222a2660fe95"]]},{"id":"4d22a0bd.63dda","type":"change","z":"67f4ff1d.729ad8","name":"","rules":[{"t":"set","p":"payload.name","pt":"msg","to":"Worldmap","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":870,"y":460,"wires":[["23b5e03.345882"]]},{"id":"23b5e03.345882","type":"worldmap","z":"67f4ff1d.729ad8","name":"","lat":"","lon":"","zoom":"18","layer":"OSMG","cluster":"0","maxage":"","usermenu":"show","layers":"show","panit":"true","panlock":"false","zoomlock":"false","hiderightclick":"false","coords":"none","showgrid":"false","allowFileDrop":"false","path":"/mapui","overlist":"DR,CO,RA,DN,HM","maplist":"OSMG,OSMC,EsriC,EsriS,EsriT,EsriO,EsriDG,NatGeo,UKOS,OpTop","mapname":"","mapurl":"","mapopt":"","mapwms":false,"x":1050,"y":460,"wires":[]},{"id":"2cf3ed7c.bd6ad2","type":"ui_worldmap","z":"67f4ff1d.729ad8","group":"88f77589.0122d8","order":1,"width":21,"height":15,"name":"Worldmap ","lat":"","lon":"","zoom":"","layer":"OSMG","cluster":"","maxage":"","usermenu":"show","layers":"show","panit":"true","panlock":"false","zoomlock":"false","hiderightclick":"false","coords":"deg","showgrid":"false","allowFileDrop":"false","path":"/mapui","overlist":"DR,CO,RA,DN,HM","maplist":"OSMG,OSMC,EsriC,EsriS,EsriT,EsriO,EsriDG,NatGeo,UKOS,OpTop","mapname":"","mapurl":"","mapopt":"","mapwms":false,"x":1070,"y":420,"wires":[]},{"id":"202c890a31817d08","type":"function","z":"67f4ff1d.729ad8","name":"function 3","func":"var latitude = msg.payload.lat ;\nvar longitude = msg.payload.lon;\nvar time = msg.payload.time;\n\n\nmsg.payload = {}\nmsg.payload.latitude = latitude\nmsg.payload.longitude = longitude\nmsg.payload.Latitude = latitude\nmsg.payload.Longitude = longitude\nmsg.payload.time = time\n\n\nreturn msg;\n\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":580,"wires":[["ce1c533fdb5932a5","7c13dca0957e6e19"]]},{"id":"7291affecb5132aa","type":"debug","z":"67f4ff1d.729ad8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1230,"y":580,"wires":[]},{"id":"23f235bc864d837f","type":"debug","z":"67f4ff1d.729ad8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1210,"y":640,"wires":[]},{"id":"47b7da2d9bc870a9","type":"link out","z":"67f4ff1d.729ad8","name":"link out 4","mode":"link","links":["b6a1d30a3b14db4b","3c7a80664934fd5c","d858108fcdca4324"],"x":1225,"y":460,"wires":[]},{"id":"ce1c533fdb5932a5","type":"rbe","z":"67f4ff1d.729ad8","name":"","func":"deadbandEq","gap":"0.001","start":"","inout":"out","septopics":true,"property":"msg.payload.latitude","topi":"topic","x":790,"y":580,"wires":[["7291affecb5132aa","14f01f7180fc8060","b522a03f2df703bb","bee964af7d78261d"]]},{"id":"14f01f7180fc8060","type":"function","z":"67f4ff1d.729ad8","name":"function 4","func":"var time = msg.payload.time;\n\n\n\nmsg.payload.time = time\n\n\nreturn msg;\n\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1020,"y":640,"wires":[["23f235bc864d837f"]]},{"id":"ef9703cdff9c5d54","type":"chatbot-location","z":"67f4ff1d.729ad8","name":"","latitude":"","longitude":"","place":"","x":800,"y":500,"wires":[["47b7da2d9bc870a9","88b0258811ee77b2"]]},{"id":"b1c2e04daf5e400f","type":"debug","z":"67f4ff1d.729ad8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1230,"y":540,"wires":[]},{"id":"8f6fe0eb3a69a995","type":"function","z":"67f4ff1d.729ad8","name":"function 5","func":"var latitude = msg.payload.lat ;\nvar longitude = msg.payload.lon;\nvar time = msg.payload.time;\n\n\nmsg.payload = {}\nmsg.payload.latitude = latitude;\nmsg.payload.longitude = longitude;\n//msg.payload.Latitude = latitude;\n//msg.payload.Longitude = longitude;\n//msg.payload.time = time;\n\n\nreturn msg;\n\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":500,"wires":[["ef9703cdff9c5d54"]]},{"id":"b522a03f2df703bb","type":"function","z":"67f4ff1d.729ad8","name":"set Global","func":"\nglobal.set(\"GPSlatitude\", msg.payload.latitude);\nglobal.set(\"GPSlongitude\", msg.payload.longitude);\nglobal.set(\"GPStime\", msg.payload.time);\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1010,"y":600,"wires":[[]]},{"id":"7c13dca0957e6e19","type":"rbe","z":"67f4ff1d.729ad8","name":"","func":"deadbandEq","gap":"0.001","start":"","inout":"out","septopics":true,"property":"msg.payload.longitude","topi":"topic","x":790,"y":620,"wires":[["b522a03f2df703bb","14f01f7180fc8060"]]},{"id":"bee964af7d78261d","type":"function","z":"67f4ff1d.729ad8","name":"get GPS Telegram","func":"msg.payload.content = global.get(\"GPSlatitude\").toString() +\"\\n \"+ \n                     global.get(\"GPSlongitude\").toString() ;\nmsg.payload = msg.payload.content;\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":540,"wires":[["47b7da2d9bc870a9","b1c2e04daf5e400f"]]},{"id":"88b0258811ee77b2","type":"debug","z":"67f4ff1d.729ad8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1230,"y":500,"wires":[]},{"id":"578b222a2660fe95","type":"delay","z":"67f4ff1d.729ad8","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":620,"y":460,"wires":[["4d22a0bd.63dda"]]},{"id":"88f77589.0122d8","type":"ui_group","name":"Karte","tab":"c4c17961.4519f8","order":1,"disp":true,"width":21,"collapse":false,"className":""},{"id":"c4c17961.4519f8","type":"ui_tab","name":"GPS","icon":"dashboard","disabled":false,"hidden":false}]

Danke
und Gruß
Arno

Moin, bei mir läuft es mit den folgenden Nodes:

In der Function steht:

msg.payload = {
“type”: “location”,
“chatId”: “xxxxx”,
“transport”: “telegram”,
“latitude”: 45.11,
“longitude”: 11.21
}
return msg;

Deine ChatId musst du noch eintragen.
Die restlichen Nodes haben keine weiteren Einstellungen (außer den entsprechenden Bot im Receiver/Sender)

Wenn du den Flow über einen Telegram Receiver initialisierst, also wenn du in Telegram zuerst eine Nachricht schickst, dann kann der Bot direkt antworten und man braucht die Conversation Node nicht. Wenn aber der Bot die erste Nachricht schicken soll, dann braucht es zwingend die Conversation Node.

@Vincent Danke!!! Werde das gleich mal ausprobieren
Gruß Arno

@Vincent
das funktioniert leider nicht,
alles rot :frowning:
grafik

No value exists in scope for the shorthand property ‘latitude’. Either declare one or provide an initializer.
Für die Kurzschrifteigenschaft „Breitengrad“ ist kein Wert im Gültigkeitsbereich vorhanden. Deklarieren Sie entweder einen oder stellen Sie einen Initialisierer bereit.
Damit weiß ich leider nicht anzufangen, auch niccht wenn ich mir das übersetze???
Hast du da Abhilfe für ???

Du hast das einfach hier rauskopiert, oder? Dann passt irgendwas mit der Formatierung nicht mehr, schreib mal bitte alle Anführungszeichen manuell neu. Und die ChatId muss auch in Anführungszeichen stehen

Zur Info: Die Anführungszeichen werden nicht erkannt, deswegen wird angenommen, dass die Werte alles Variablen wären. Diese Variablen wurden aber nie definiert/initialisiert, es gibt sie nämlich gar nicht. Daher die Fehlermeldung.

1 Like

@Vincent
Hallo Vincent
das hat bei mir irgendwie alles nicht funktioniert.
Aus der location Node kam einfach nicht raus.
Aber du hast mich auf den richtigen Weg gebracht. Ich habe es so gelöst.
grafik

var latitude =  global.get("GPSlatitude");
var longitude = global.get("GPSlongitude");
msg.payload = {
    "type":"location",
    "chatId":00000000,
    "userId":"00000000",
    "transport":"telegram"
}
msg.payload.content = {
    "latitude": latitude,
    "longitude": longitude}
return msg;

Danke!!! :slight_smile:

1 Like