So verwenden Sie NMEA-0183 mit Arduino
Komponenten und Verbrauchsmaterialien
![]() |
| × | 1 | |||
| × | 1 |
Über dieses Projekt
NMEA-0183 ist ein elektrischer Standard zum Anschluss von GPS, SONAR, Sensoren, Autopilot-Einheiten etc. in Schiffen und Booten. Im Gegensatz zum neueren NMEA 2000-Standard (basierend auf CAN) basiert NMEA 0183 auf EIA RS422 (einige ältere und/oder einfache Systeme verwenden RS-232 oder ein einzelnes Kabel).
Ich möchte Ihnen zeigen, wie Sie ein Arduino UNO (oder ein anderes Arduino) an ein beliebiges NMEA-0183-Gerät mit Differenzausgang anschließen. Obwohl der Standard isolierte Ein- und Ausgänge fordert, ist es sinnvoll, unser RS422/RS485 Arduino Shield mit isolierter Schnittstelle zu verwenden.
Verbindung zu NMEA 0183
Im Bild unten sehen Sie ein typisches Gerät mit Differenzausgang. Die Anschlüsse sind NMEA OUT+ und NMEA OUT- oder TX+ oder TX-. Die Kabel NMEA IN+ und NMEA IN- sind optional.

Wenn Sie ein einzelnes Übertragungskabel von Ihrem Gerät haben (wahrscheinlich mit TX oder NMEA OUT oder so ähnlich gekennzeichnet), verwendet Ihr Gerät das RS-232-Protokoll. In diesem Fall benötigen Sie einen einfachen RS232-Konverter.
Jumper-Einstellung

- UART RX auf Position 2
- UART TX auf Position 3
- Spannung an Position 5V
DIP-Schaltereinstellung

Firmware
Sie können viele verschiedene NMEA-0183-Softwarestacks für Arduino finden. Eine sehr gute Lösung ist die NMEA-Bibliothek von Justin R Cutler
https://github.com/jrcutler/NMEA0183
Es ist notwendig, die Pins für den Software-UART auf Pin 2 und 3 zu ändern! Nehmen Pflege das die Baud Preis von die Software uart ist die gleich als in Ihre NMEA Gerät - typisch 4800 Baud.
Testlauf
Nach dem Kompilieren und Hochladen dekodiert das Programm eingehende NMEA-Protokolle. Sie können den seriellen Monitor öffnen, um die dekodierten Protokolle anzuzeigen.
Wenn Sie kein NMEA-Gerät zu Hause haben, können Sie anstelle eines echten Geräts auch einen Simulator auf Ihrem PC und einen einfachen USB-zu-RS485-Adapter verwenden.

Code
- NMEA 0183-Demo
NMEA 0183-DemoArduino
Analysieren von NMEA 0183-Protokollen#include// entspricht Zihatec RS422/RS485 ShieldSoftwareSerial gps(2, 3);NMEA0183 nmea;void setup(){ while (!Serial); Serial.begin(115200); gps.begin(4800); Serial.println ("NMEA0183-Parser-Test");}void loop () { if (gps.available ()) { char c =gps.read (); if (nmea.update (c)) {Serial.print ( "NMEA0183-Satz akzeptiert ("); Serial.print (nmea.getFields ()); Serial.print ( " Felder):"); Serial.write (nmea.getSentence()); Serial.println(); } }}
Herstellungsprozess
- C#-Warteschlange mit Beispielen:Was ist C#-Warteschlange und wie wird sie verwendet?
- Wie man IR-Fernbedienungen hackt
- Steuerung eines Roomba-Roboters mit Arduino und Android-Gerät
- Wie man Arduino Mega mit dem NEO-6M GPS-Modul verbindet
- So liest man Temperatur und Luftfeuchtigkeit auf Blynk mit DHT11
- Wie einfach ist es, einen Thermistor zu verwenden?!
- Wie man mit einem Arduino Musik macht
- So verwenden Sie Modbus mit Arduino
- Automatischer Gerätetester mit Arduino
- So verwenden Sie einen Cutter Grinder