AIS in Navionics einbinden

Wir wollten unseren alten Garminplotter durch ein Tablet mit Navionics (Mittlerweile Sailgrip WR) ersetzen, da wir hier nur ein Zehntel des Preises für die Karten und Gerät zahlen müssen. Um unser Garmin ersetzen zu können, brauchten wir größere Geräte als unsere Handys, deshalb haben wir uns zwei günstige Blackview Tab 11 SE Tablets gekauft und dort Navionics installiert. Für unser Navigationssystem war uns wichtig ein hochgenaues GPS und AIS zu haben, um auch in engen oder unübersichtlich Stellen, sicher navigieren zu können. Wir hatten bereits eine AIS Antenne mit eigenem GPS, und diese wollten wir jetzt relativ schnell und günstig in Navionics einbinden. 

 

Um die AIS Antenne und Navionics verbinden zu können, brauchen wir eine Schnittstellte. Wir haben uns für einen ESP32 Board entschieden. Unsere Version (DOIT ESP32 DEVKIT V1) verfügt beispielsweise schon über WLAN und war damit perfekt für die Aufgabe geeignet. Um NMEA 0183 Daten ins WLAN zu übertragen, mussten wir erstmal die Spannung der NMEA 0183 Verbindung von 5 auf 3 Volt reduzieren. Das ging recht einfach mit zwei Widerständen, die in Reihe geschaltet wurden, um einen Spannungsteiler zu bilden, der größere Widerstand wurde dabei parallel zum ESP 32 geschaltet. 

 

Falls jemand mit dem ESP32 Board noch nicht so bewandert ist, hier noch zwei gute Links mit weiteren Informationen:

Dabei wird das ausgehende Kabel unserer AIS Box (Transmitter), mit Plus an den 2,2 KΩ Widerstand angeschlossen, der wiederum an den RX2 Pin und 3,3 KΩ Widerstand angeschlossen ist. Ground des ESP ist dabei mit dem anderen Ende vom 3,3KΩ Widerstand verbunden und außerdem mit dem Minus - Transmitterkabel unserer AIS Box. Jetzt mussten wir nur noch den Code unten auf der Seite aufspielen und die Baudrate anpassen. 

Damit das ESP-Board gut geschützt auf dem Boot ist haben wir noch eine 3D-Box mit Hilfe von FreeCad erstellt. Diese haben wir dann ausgedruckt und aus Plexiglas durchsichtige Scheiben für die Fronten gefräst.  So sieht die Box jetzt aus. 

Und hier kann man die Box downloaden.

Download
Boden
Boden für die ESP32 Box
3mm_Boden.step
Text Dokument 172.4 KB
Download
Gehäuserahmen
Rahmen für ESp32 Box
Gehaeuserahmen.step
Text Dokument 277.2 KB
Download
Deckel
Deckel für die die ESP Box
3mm_Deckel.step
Text Dokument 131.9 KB
Download
Rahmen mit Boden
RahmenMitBoden.step
Text Dokument 3.2 MB

Als nächstes muss man Arduino IDE Installieren und den ESP 32 Hinzufügen. 

Dann muss man den untenstehenden Code kopieren und in Arduino DIE einfügen. Da kann man jetzt alle Parameter so anpassen wie man es braucht. Die wichtigsten Einstellungen sind:

 

const int nmeaBaudRate = 38400

Hier bestimmt ihr die Baudrate, vorstellbar als die Geschwindigkeit, in der eure Geräte miteinander sprechen. Die muss auf eurem NMEA-Netzwerk und dem ESP 32 gleich sein. In der Regel arbeitet NMEA 0183 mit einer Baudrate von 38400 oder 4800, selten aber auch mit 9600. Falls ihr nicht wisst welche Baudrate bei euch verwendet wird, einfach mal die drei durchprobieren, bis die Daten auf dem Serial-Monitor lesbar sind, mehr dazu später.

 

const char* ssid = "wifi_name”;

Das bestimmt den Namen des Wlan-Netzwerkes, mit welchem ihr euch später verbinden könnt.

 

const char* password = "meinpasswort"

Hier könnt ihr das Passwort für das Wlan-Netzwerk festlegen.

 

ESP32 Code
      
        // ESP32 Code
        #include <WiFi.h>
        #include <WiFiClient.h>

        const char* ssid = "wlan_name";  // WLAN Name
        const char* password = "meinpasswort";  // Passwort für den Access Point
        const int serverPort = 1234; // Port für die Verbindung
        const int MAX_CLIENTS = 10; // Maximalanzahl der Clients

        // NMEA 0183 Daten
        const int nmeaBaudRate = 38400;
        const int nmeaRxPin = 16;
        const int nmeaTxPin = 17;

        // NMEA 0183 Serielle Verbindung
        HardwareSerial nmeaSerial(1);  // Serieller Port 1 am ESP32

        WiFiServer server(serverPort); // Server-Objekt erstellen
        WiFiClient clients[MAX_CLIENTS]; // Array für Client-Verbindungen

        void setup() {
          // Serielle Verbindung für Debugging
          Serial.begin(115200);

          // Access Point erstellen
          WiFi.softAP(ssid, password);

          // IP-Adresse des Access Points abrufen
          IPAddress apIP = WiFi.softAPIP();
          Serial.print("Access Point IP-Adresse: ");
          Serial.println(apIP);

          // WLAN Server starten
          server.begin();

          // NMEA 0183 serielle Verbindung konfigurieren
          nmeaSerial.begin(nmeaBaudRate, SERIAL_8N1, nmeaRxPin, nmeaTxPin);
        }

        void loop() {
          // Neue Client-Verbindungen akzeptieren
          WiFiClient newClient = server.available();
          if (newClient) {
            for (int i = 0; i < MAX_CLIENTS; i++) {
              if (!clients[i]) {
                clients[i] = newClient;
                Serial.print("Neuer Client ");
                Serial.print(i);
                Serial.println(" verbunden.");
                break;
              }
            }
          }

          // NMEA-Daten vom AIS-Antenne lesen und an alle Clients senden
          if (nmeaSerial.available()) {
            String nmeaString = nmeaSerial.readStringUntil('\n');
            for (int i = 0; i < MAX_CLIENTS; i++) {
              if (clients[i] && clients[i].connected()) {
                clients[i].print(nmeaString);
              }
            }
            // NMEA-Daten auf dem seriellen Monitor anzeigen
            Serial.print("Empfangene NMEA-Daten: ");
            Serial.println(nmeaString);
          }
        }
      
    

Jetzt muss man den ESP 32 nur noch mit einem USB kabel mit dem Computer verbinden, seinen ESP 32 auswählen und den code installieren. wie das geht sieht man in folgender Bilderstrecke.

1. Klickt auf Select Board

2. Klckt auf Unknown

3. Sucht euer Board, in unserem Fall DOIT ESP32 DEVKIT V1
4. Drückt auf den Pfeil um das installieren der software zu starten.

Jetzt müsst ihr euer Mobilgerät nur noch mit dem ESP verbinden. wählt euch dafür in das Wlan-Netz ein und geht dann in die Software in der ihr eure daten übertragen möchtet, hier am beispiel von Navionics erklärt. 

 

1. Drückt auf menü

 

2. Wählt verbundene geräte

 

3. Wählt gerät hinzufügen

 

4. Namen könnt ihr frei wählen.

Als host müsst ihr 192.168.4.1 eingeben

Als Port Number 1234

Drückt auf save.

Jetzt sollten die AIS Daten an euer Mobilgerät gesendet werden. sollte das nicht der fall sein habt ihr wahrscheinlich die falsche Baudrate. In diesem fall probiert es nochmal den code mit 4800 Baud und danach mit 9600 Baud aufzuspielen.