Flugzeug-Symbol
Versand in
Versand aus Europa mit DHL am nächsten Tag. Ihre Bestellung erreicht Sie weltweit in 2–4 Tagen!
Online kaufen und innerhalb von 2-4 Tagen über unsere lokalen Partner liefern lassen – wie Einkaufen vor Ort!
Wir versenden aus Europa mit DHL, erhalten Sie Ihre Bestellung ohne Überraschungen in 1-3 Tagen!
Versand aus Europa mit DHL am nächsten Tag. Erhalten Sie Ihre Bestellung in 14–21 Tagen!
Wir liefern nach Singapur innerhalb von 2–4 Werktagen. Benötigen Sie Hilfe? Kontaktieren Sie unser Team unter +65 3174 3631.
Wir liefern nach Hongkong mit DHL innerhalb von 2–4 Werktagen. Benötigen Sie Hilfe? Kontaktieren Sie unser Team unter +852 5808 4561.
Wir liefern nach China innerhalb von 2–4 Werktagen. Benötigen Sie Hilfe? Kontaktieren Sie unser Team unter +86 18367375467.
Wir liefern nach Taiwan innerhalb von 2–4 Werktagen. Benötigen Sie Hilfe? Kontaktieren Sie unser Team unter +886 2 7734 4400.
Aktualisierung (13 / 01 / 2026): Wir haben alle unsere Produkte auf Lager, finden Sie uns auch in und    Jetzt shoppen

So richten Sie einen Node-RED-Server für den Remote-Empfang von NMEA ein

GNSS Die RTK-Technologie kann in vielen Anwendungen eingesetzt werden. Normalerweise werden einige Messungen durchgeführt und diese dann zur Analyse auf einen Computer exportiert. Dies ist der häufigste Fall.
Für bestimmte Anwendungen müssen Sie Ihre GNSS-RTK-Daten jedoch möglicherweise in Echtzeit an Ihren Computer/Server senden, damit Sie sofort Maßnahmen ergreifen können, ohne mehrere Stunden auf die Verarbeitung der Daten warten zu müssen.

Zu den gängigen Anwendungen, bei denen die Position in Echtzeit an einen Server gesendet werden muss, gehören: Flottenmanagement und Logistik, Mitfahrdienste und öffentliche Verkehrsmittel, Anlagenverfolgung, Wildtierüberwachung usw.

In diesem Tutorial erklären wir, wie Sie mit Node-RED, einem beliebten Tool für visuelle Programmierung, einen Server einrichten, damit Sie Ihr eigenes Projekt starten können. Außerdem erfahren Sie, wie Sie Ihren GNSS-Empfänger und Ihr Plug-In konfigurieren, um die Daten an diesen Server zu senden.

Erforderliche Hardware

Erforderliche Software

  • GNSS Master App für Android

Installation von Node-RED

Remote-Linux-Server

In unserem Fall verwenden wir die AlmaLinux-Distribution.
Öffnen Sie ein Terminal für Ihren Server und führen Sie die folgenden Befehle aus:

sudo dnf module reset -y nodejs
sudo dnf module enable -y nodejs:20
sudo dnf install -y nodejs npm gcc-c++ make
# then:
sudo npm i -g --unsafe-perm node-red

Sie können überprüfen, ob die Installation erfolgreich war, indem Sie Folgendes eingeben:
/usr/local/bin/node-red --version

Wenn alles in Ordnung ist, wird die Version auf dem Terminal angezeigt.

Andere Geräte/Betriebssysteme

Anweisungen finden Sie auf der offiziellen Node-RED-Projektseite für verschiedene Systeme.

Öffnen Sie den TCP-Port auf Ihrem Server

Dies ist möglicherweise nicht immer notwendig, aber Sie müssen möglicherweise den TCP-Port öffnen, um eingehende Verbindungen zuzulassen.
Wir werden in diesem Beispiel den TCP-Port 2222 verwenden. Sie sollten in Ihr Serverterminal Folgendes eingeben:
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

Führen Sie Node-RED aus

Geben Sie diesen Befehl ein:
 /usr/local/bin/node-red &

Gehen Sie zu Ihrem Browser und geben Sie Folgendes ein:
172.123.123.123:1880
Dabei muss 172.123.123.123 die IP-Adresse Ihres Servers sein.
Wenn alles in Ordnung ist, sollten Sie ungefähr Folgendes sehen:

Bereiten Sie Ihren ersten Flow vor

In Node-RED werden Projekte als Flows bezeichnet.
Wir werden einen neuen Flow vorbereiten, um auf eingehende TCP-Verbindungen zu lauschen und alles, was empfangen wird, in ein Debug-Fenster zu drucken.

Suchen Sie im linken Bereich nach dem Knoten mit dem Namen TCP in, ziehen Sie es per Drag & Drop auf die Flow-Leinwand.
Suchen Sie auch die debuggen Knoten und verbinden Sie sie wie folgt miteinander:

In Node-RED werden Projekte als Flows bezeichnet.
Wir werden einen neuen Flow vorbereiten, um auf eingehende TCP-Verbindungen zu lauschen und alles, was empfangen wird, in ein Debug-Fenster zu drucken.

Suchen Sie im linken Bereich nach dem Knoten mit dem Namen TCP in, ziehen Sie es per Drag & Drop auf die Flow-Leinwand.
Suchen Sie auch die debuggen Knoten und verbinden Sie sie wie folgt miteinander:

Doppelklicken Sie auf den TCP-Eingangsknoten und legen Sie den TCP-Port fest, auf dem Sie lauschen möchten, in diesem Beispiel: 2222.
Auch auf Stream-Strings einstellen, die durch \r\n getrennt sind.

Nachdem Sie dies getan haben Klicken Sie auf die Schaltfläche Bereitstellen oben rechts auf dem Bildschirm.
Mit dieser Schaltfläche werden die Blöcke nach jeder Änderung ausgeführt.

Verbinden Sie Ihren GNSS-Empfänger mit Node-RED

RTK Portable Bluetooth Kit mit Android-Gerät

  1. Verbinden Sie Ihr tragbares Bluetooth-Kit über BT mit Ihrem Android-Gerät.
  2. Öffne GNSS Master App, stellen Sie eine Verbindung zum BT-Modul in der GNSS-Empfängerverbindung her.
  3. Korrektureingabe bei Bedarf einstellen
  4. Wählen Sie unter „Receiver Data Output“ „TCP Client“ aus und geben Sie die IP-Adresse Ihres Servers in das Feld „TCP Address“ und 2222 in das Feld „TCP Port“ ein. Klicken Sie auf „Connect“.
  5. Das ist alles. Wenn Sie in Node-RED auf das Debug-Fenster doppelklicken, sollten Sie ungefähr Folgendes mit allen empfangenen Daten sehen:

Andere GNSS-Empfänger mit 4G-, WiFi- oder Ethernet-Plugins

Mit einem anderen GNSS-Empfänger können Sie die gleichen Ergebnisse auch ohne Android-Gerät erzielen.
Stellen Sie sicher, dass Sie die Nachrichten, die Sie an Ihren Server senden möchten, an den COM-Port des XBee-Plugins ausgeben. Normalerweise möchten Sie mindestens Folgendes senden: NMEA GGA.

Konfigurieren Sie dann Ihr 4G, WiFi oder Ethernet NTRIP Master Plugins mit der TCP-Client-Funktionalität mit den gleichen Parametern wie zuvor, TCP-Server ist Ihre Server-IP-Adresse, TCP-Port ist 2222.

So einfach ist das 🙂

Machen Sie etwas mit den Daten

Ok, bisher nicht sehr aufregend, oder?
Es ist in Ordnung, Live-NMEA-Streams auf Ihrem Server zu sehen, aber wir möchten einige der Funktionen von Node-RED sehen.
Im nächsten Beispiel zeigen wir Ihnen, wie Sie den Eingabestrom analysieren, um den Breiten- und Längengrad zu erhalten, und wir stellen den aktuellen Standort in einer Karte mit einer Spur dar, die alte Standorte anzeigt.

Löschen Sie zunächst Ihren aktuellen Flow.
Klicken Sie oben rechts auf das Menü > Palette verwalten > Installieren > suchen nach node-red-contrib-web-worldmap und installieren Sie es.

Gehen Sie zurück zum Menü > Importieren > Zwischenablage und fügen Sie den folgenden Code ein:

				
					[
  {
    "id": "tab1",
    "type": "tab",
    "label": "GNSS Live Map + Track",
    "disabled": false,
    "info": ""
  },
  {
    "id": "tcpInNmea2222",
    "type": "tcp in",
    "z": "tab1",
    "name": "NMEA TCP 2222",
    "server": "server",
    "host": "",
    "port": "2222",
    "datamode": "stream",
    "datatype": "utf8",
    "newline": "\\r\\n",
    "topic": "",
    "base64": false,
    "x": 150,
    "y": 140,
    "wires": [
      [
        "fnGGA"
      ]
    ]
  },
  {
    "id": "fnGGA",
    "type": "function",
    "z": "tab1",
    "name": "Filter GGA → {lat,lon}",
    "func": "// Allman style\nfunction nmeaToDecimal(raw, hemi)\n{\n    if (!raw || !hemi)\n    {\n        return null;\n    }\n    const isLat = (hemi === 'N' || hemi === 'S');\n    const degDigits = isLat ? 2 : 3;\n    const deg = parseInt(raw.slice(0, degDigits), 10);\n    const min = parseFloat(raw.slice(degDigits));\n    if (Number.isNaN(deg) || Number.isNaN(min))\n    {\n        return null;\n    }\n    let dec = deg + (min / 60.0);\n    if (hemi === 'S' || hemi === 'W')\n    {\n        dec = -dec;\n    }\n    return dec;\n}\n\nif (typeof msg.payload !== 'string')\n{\n    return null;\n}\n\nconst line = msg.payload.trim();\nif (!line.startsWith('$') || line.indexOf('GGA,') === -1)\n{\n    return null;\n}\n\nconst f = line.split(',');\nconst lat = nmeaToDecimal(f[2], f[3]);\nconst lon = nmeaToDecimal(f[4], f[5]);\nif (lat == null || lon == null)\n{\n    return null;\n}\n\nmsg.payload = { lat, lon };\nreturn msg;",
    "outputs": 1,
    "noerr": 0,
    "initialize": "",
    "finalize": "",
    "libs": [],
    "x": 410,
    "y": 140,
    "wires": [
      [
        "fnToWorldmap"
      ]
    ]
  },
  {
    "id": "fnToWorldmap",
    "type": "function",
    "z": "tab1",
    "name": "Marker + Track",
    "func": "// Input: msg.payload={lat,lon}\n// Output1 → worldmap marker\n// Output2 → worldmap-tracks polyline (then wired into worldmap)\n\nif (!msg.payload || msg.payload.lat == null || msg.payload.lon == null)\n{\n    return null;\n}\n\nconst lat = Number(msg.payload.lat);\nconst lon = Number(msg.payload.lon);\nconst name = \"GPS-1\"; // keep constant per device\nconst now = Date.now();\n\nconst base =\n{\n    name: name,\n    lat: lat,\n    lon: lon,\n    layer: \"GNSS\",\n    time: now, // helps pruning\n    icon: \"fa-location-arrow\",\n    popup: `Lat: ${lat.toFixed(6)}<br>Lon: ${lon.toFixed(6)}<br>UTC: ${new Date(now).toISOString()}`\n};\n\nreturn [ { payload: base }, { payload: base } ];",
    "outputs": 2,
    "noerr": 0,
    "initialize": "",
    "finalize": "",
    "libs": [],
    "x": 650,
    "y": 140,
    "wires": [
      [
        "worldmap",
        "dbgMarker"
      ],
      [
        "tracks"
      ]
    ]
  },
  {
    "id": "tracks",
    "type": "worldmap-tracks",
    "z": "tab1",
    "name": "Track GNSS (layer GNSS)",
    "depth": "1000",
    "layer": "GNSS",
    "doors": "",
    "x": 930,
    "y": 180,
    "wires": [
      [
        "worldmap"
      ]
    ]
  },
  {
    "id": "worldmap",
    "type": "worldmap",
    "z": "tab1",
    "name": "Live Map (/worldmap)",
    "lat": "0",
    "lon": "0",
    "zoom": "2",
    "layer": "OSM",
    "cluster": "",
    "maxage": "",
    "usermenu": "show",
    "layers": "show",
    "panit": "false",
    "panlock": "false",
    "zoomlock": "false",
    "hiderightclick": "false",
    "coords": "none",
    "showgrid": "false",
    "showruler": "false",
    "showlayer": "true",
    "showmenu": "true",
    "path": "/worldmap",
    "overlist": "DR,CO,RA,DN,HM",
    "maplist": "OSM,Esri Terrain,Esri Satellite",
    "mapname": "",
    "mapurl": "",
    "mapopt": "",
    "kmlurl": "",
    "devicelabel": "name",
    "layercontrol": "false",
    "x": 930,
    "y": 120,
    "wires": []
  },
  {
    "id": "dbgMarker",
    "type": "debug",
    "z": "tab1",
    "name": "Marker payload",
    "active": false,
    "tosidebar": true,
    "console": false,
    "tostatus": false,
    "complete": "payload",
    "statusVal": "",
    "statusType": "auto",
    "x": 930,
    "y": 220,
    "wires": []
  },
  {
    "id": "hint",
    "type": "comment",
    "z": "tab1",
    "name": "Send NMEA (\\r\\n delimited) to TCP 2222. Open http://<host>:1880/worldmap",
    "info": "",
    "x": 330,
    "y": 90,
    "wires": []
  }
]

				
			

Sie sollten so etwas sehen:

Doppelklicken Sie auf den Weltkartenknoten.
Wählen Sie in der Dropdown-Liste „Kartenliste“ OpenStreetMap oder eine andere Ebene aus und klicken Sie auf „Fertig“:

Drücken Sie auf Einführung .
Sie können von Ihrem Browser aus hier auf die Live-Karte zugreifen:
172.123.123.123:1880/Weltkarte/
wobei die IP-Adresse mit der Ihres Servers übereinstimmen muss.

Sie sehen eine Karte mit einer Markierung, die den Standort Ihres GNSS-Empfängers anzeigt. Die Aktualisierung erfolgt in Echtzeit. Sie können nach Belieben hinein- und herauszoomen.

Wir empfehlen Ihnen, sich jeden Knoten in Ihrem Flow anzusehen, um besser zu verstehen, was sie tun, sie zu ändern und zu sehen, was sich ändert.

Sie finden zahlreiche Tutorials und KI-Tools helfen Ihnen auch, wenn Sie etwas Fortgeschritteneres tun möchten.

Viel Spaß!

Wenn Sie Node-RED herunterfahren möchten, gehen Sie bitte wie folgt vor:
iptables -A INPUT -p tcp --dport 2222 -j REJECT

tippe ps aux | grep node , suchen Sie den Knotenprozess, wenn und beenden Sie den Prozess durch:
kill NODE_PROCESS_ID

Wenn Ihnen dieser Inhalt gefallen hat, können Sie uns weiter folgen Twitter, YouTube, Facebook or LinkedIn um über solche Inhalte auf dem Laufenden zu bleiben.

Haben Sie Fragen oder Wünsche?
Kontaktiere uns! Wir antworten <24 Stunden!

Icon
Kontakt ArduSimple
Menu

Möchten Sie mehr über GPS/RTK erfahren?

1. Unser Engineering-Team wird sich mit Ihnen in Verbindung setzen, um alle Fragen zu klären
2. Wir halten Sie über Werbeaktionen und neue Produktveröffentlichungen auf dem Laufenden
3. Sie hören nur von uns, wenn wir wichtige Neuigkeiten haben, wir spammen Ihre E-Mail nicht zu