Multifunktionsdisplay im Webbrowser über RaspberryPi

Einbinden von SignalX, MQTT und Umsetzung über Node-Red in das Onbord-Netzwerk zur Realisierung einiger virtueller Multifunktionsanzeigen

Da ich keinen Plotter oder ein Display direkt im Cockpit habe, möchte ich einige Informationen aus dem NMEA0183 Netzwerk visualisieren. Einhand unterwegs ist bisher meine einzige Quelle der Displayblock am Mast. Dem möchte ich mit einigen vor konfigurierten Anzeigen abrufbar im Webbrowser Abhilfe schaffen.

Motivation:

  • Darstellen der Geberinformationen wie Geschwindigkeit, Wind, Tiefe, Kurs analog eines Kartenplotters oder Displays
  • Darstellung als Text und als Rundinstrument
  • Einbinden der Wetterinformationen wie Vorhersagen, Luftdruck
  • Aktive Meldung, wenn eine Wetterwarnung veröffentlicht wird.
  • Nachrüsten kostengünstiger Geber für z.B. Luftdruck

Hardware:

  • RaspberryPi Zero W
  • D1Mini(ESP8266)
  • BMP180 Sensor( Temperatur, Luftdruck, Höhe)
  • Router Alfa36AH

Software:

Teil 1, Aufsetzen RaspberryPi

Um der geringen Performance des RaspiZero entgegen zu kommen, werden alle notwendigen Softwarekomponenten Headless installiert und konfiguriert. Die Zugriffe erfolgen alle über Putty in einer Konsole.

Nach dem Aufsetzen der Installation sollten folgende Funktionen gegeben sein.

Node-Red kann im Intranet über localhost:1880 gestartet werden. Die nachfolgenden Notes sollten über „Palette verwalten“ nachinstalliert werden:

Der MQTT-Server läuft und kann im Netzwerk erreicht werden. Testen mit MQTTX.

SignalK ist unter localhost:3000 aufrufbar und läuft z.B. mit dem NMEA0183 Beispieldatenstrom.

Wenn alle diese Voraussetzung erfüllt sind, sollte folgender Node-red flow funktionieren und im Dashboard localhost:1880/ui die Ansicht im Webbrowser bereitstellen. Der Luftdruck dürfte noch nicht funktionieren, da der D1Minisensor noch nicht an MQTT sendet.

Hier der Flow. https://nextcloud.sailing-gekko.de/index.php/s/GybWTQAcmcLjSYE

Teil2: Luftdruck über D1Mini messen und an MQTT senden

Für die Wetterdaten fehlt ein Bord ein Luftdrucksensor. Diese Werte liefert ein D1Mini (ESP8266) mit einem BMP180 Sensor. Da der ESP8266 gleich eine WLAN-Möglichkeit mitbringt, ist ein kleines Script ausreichend.

Hier ist es. https://nextcloud.sailing-gekko.de/index.php/s/H6y4bgiyqgoWnA8

Damit sollte nun der D1Mini die Daten senden. zur Kontrolle kann die Botschaft über MQTTX wie oben dargestellt ausgelesen werden. Zusätzlich werden die Werte auch auf die seriellen Monitor des Arduino IDE geschickt.

Nun sollte alles eingebunden sein, damit über den Webbrowser verbunden mit dem WiFi-Netz der Yacht die Darstellungen auf dem Ipad oder einem anderen Gerät genutzt werden können.

Folgende Funktionen sind dabei bisher entstanden:

Warn- und Wettermeldungen DWD

Auf jedem Tab des Dashboard ist eine Meldung „DWD Warnmeldung (ANZ)“ zu finden. Wird für die Region eine Warnmeldung ausgegeben, zeigt die Zahl an, wie viele. Natürlich nur, wenn Internet vorhanden ist.

Auf dem Tab „Wetter“ wird dann neben den anderen Informationen wie Wetter oder dem aktuellen Regenradar (animated-gif) die Meldung komplett dargestellt. 2 Meldungen passen meist untereinander. Danach wird gescrollt. Leider war heute keine Meldung ausgerufen, die Darstellung liefere ich nach.

Ab diesem Stand können weitere Tabs im Dashboard erstellt werden. z.B brauche ich oft die Tiefe beim Einlaufen in Häfen, da meine Yacht Gekko mit 2,4m Tiefgang nicht in jeden Hafen oder an jeden Steg passt. Bei Tiefständen wird es knapp. Daher habe ich damit begonnen, einen Tab Tiefe zu entwerfen. Als zusätzliche Funktion wird per Sprachausgabe bei Tiefen unter 2,80 eine Tiefenwarnung mit aktueller Tiefe „vorgelesen“. Solche Ansagen kennt jeder vom Navigationsgerät im Auto.

Es werden sicherlich noch weitere Tabs folgen. Die Ansicht ist z.B. auf die Größe des Ipad optimiert. Es ist aber auch möglich Tabs z.B. für das Iphone zu entwickeln. Da könnten z.B. einzelne Rundinstrumente für Gebergrößen schick aussehen. Bei der Durchsicht der Möglichkeiten von Node-Red und SignalK gibt es aber noch viel mehr, was umsetzbar wäre. Auch weitere Sensoren auf Basis des D1Mini könnten eingebunden werden.

Als Tipp möchte ich noch auf fertige Apps in SignalK hinweisen. Einfache Navigationsplotter oder schicke Instrumente sind schon verfügbar und es kommen immer mehr dazu.

Freeboard_SK

Weitere Projektideen:

  • Sensor D1Mini für Tankfüllstand, Motortemperatur bis hin zur Durchflussmessung Kühlmittel. Batteriespannungsüberwachung mit Alarm
  • Steuerungs- und Schalttechnik, um z.B Verbraucher über das Internet zu schalten (Kühlschrank, Landstrom)
  • Überwachung der Batteriezustände über Internet.

Links und Tipps:

https://openmarine.net/openplotter

App Kip in SignalK oder OpenPlotter
Dieser Beitrag wurde unter alle, Werkstatt veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

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