Ankerlicht-Automatik mit Shelly 1

Abb. Shelly 1

Wer ankert ist verpflichtet ein Ankerlicht zu setzen, damit man bei Dunkelheit auf freier Wasserfläche erkannt wird. Typischer Weise schaltet man das Licht manuell bei Dämmerung ein und bei Sonnenaufgang wieder aus. Beim Einschalten hat man kein Problem. Oft vergisst man aber das Ausschalten und das Ankerlicht ist dann dauerhaft an und verbraucht unnötig Strom.

Mit einem Shelly 1 kann eine Ankerlicht-Automatik gebaut werden, die das Ankerlicht selbstständig ein- und ausschalten kann. Dazu bezieht der Shelly die Uhrzeit aus dem Internet und errechnet sich die Sonnenauf- und Untergangszeit und schaltet entsprechend das Ankerlicht. Damit das funktioniert müssen folgende Bedingungen erfüllt sein:

  • Shelly V1 oder V3 mit original Firmware
  • Dauerhafte WiFi-Verbindung zum Internet über Hafen-WLAN oder mobilem Internet-Router zum Holen der aktuellen Uhrzeit
  • Dauerhafte Stromversorgung des Shelly 1 mit 12V (0,08W StandBy Relay aus, 0,2W Relais ein)
  • Verbindung des Schaltkontaktes vom Shelly mit dem Schalter für das Ankerlicht (Parallelschaltung)

Das Projekt richtet sich an Laien mit wenig Erfahrung. Der Shelly muss dazu nicht modifiziert oder umgebaut werden. Er wird so benutzt wie man ihn gekauft hat und die Hauptarbeit besteht darin, den Shelly zu konfigurieren und mit der Bootselektrik zu verbinden. In der bestehende Elektrik werden keine großen Umbauten vorgenommen  und ein vorhandener Schalter für das Ankerlicht kann weiterhin wie bisher benutzt werden. Die hier vorgestellte Anleitung funktioniert nur für den Shelly 1 V1 und V3. Der Shelly 1 V2 kann nicht genutzt werden, da der Schaltkontakt nicht potenzialfrei ist.

Grundsätzlich lässt sich der Shelly in zwei Betriebsarten nutzen. Einmal mit Cloud-Anbindung und einmal ohne Cloud-Anbindung. Für unser Projekt ist eine Cloud-Anbindung nicht notwendig und die Ankerlicht-Automatik funktioniert auch ohne dem. Wer das Ankerlicht von zu Hause aus über das Internet kontrollieren oder schalten möchte, kann auch gerne die Cloud benutzen. Wer Spaß daran hat, kann den Shelly1 auch über die Cloud mit Amazon Alexa oder Google Home mit Sprachbefehlen steuern. Die nachfolgende Beschreibung zeigt, wie man den Shelly für die Ankerlicht-Automatik herrichten muss.

Shelly auf 12V Versorgung einstellen

Bei Auslieferung ist der Spannungs-Selktor auf 230V AC eingestellt. Wir müssen den Jumper entsprechend zum Bild auf die Position für 12V setzen und den Shelly über N und L mit 12V versorgen. Aber aufgepasst! N ist nicht gleich Ground sondern 12V, wogenen L Ground ist. Im Mittel verbraucht der Shelly bei nicht angezogenem Relais nur 0,08W. Das funktioniert aber nur, wenn die aktuellste Firmware V1.11.8 oder neuer installiert und der Eco-Mode aktiviert ist.

Abb: Bedeutung der Stiftleisten

 

Abb: Belegung der Versorgungsspannungen für 12V

 

Shelly 1 ins eigene Netzwerk bringen

Wie das im Einzelnen geht, wird in der ShellyDokumentation ausreichend gut beschrieben. Eine statische IP-Adresse muss nicht vergeben werden. Das Feld kann deaktiviert bleiben. Wenn ein brauchbares Hafen-WLAN verfügbar ist, kann man dessen Login-Daten benutzen. Um die Ankerlichtautomatik auch ortsunabhängig nutzen zu können, empfiehlt sich die Anbindung ans Internet über einen mobilen UMTS- oder LTE-Router. Alternativ kann auch ein ausgedientes Handy im Hotspot-Mode genutzt werden.

 

Abb: Startseite

Abb: Internet & Security Seite

Achtung! Bei der Eingabe der Netzwerkparameter muss man umsichtig vorgehen. Hat man die WiFi SSID oder das Passwort falsch eingegeben, so sperr man sich aus und hat keine Möglichkeit mehr sich mit dem Shelly zu verbinden. Ein Hard-Reset auf Werkseinstellungen geht nur über eine umständliche Prozedur. Dazu muss  man die Stromversorgung ausschalten und wieder einschalten und dann innerhalb einer Minute 5 x den Schalter am Eingang SW betätigen. Das richtige Timing ist aber Glückssache und benötigt mehrere Versuche bis man erfolgreich ist. Im schlimmsten Fall lässt sich der Shelly nicht mehr aktivieren und man muss die Firmware neu flashen. Wie das geht ist in dieser Flash-Anleitung beschrieben.

Nachdem der Shelly im Netzwerk mit Internetzugang ist, sollte man die Firmware aktualisieren, da der Shelly schon länger auf dem Markt ist und noch einige Modelle mit alter Firmware angeboten werden. Die neueste Firmware bietet einige Funktionalitäten mehr und ist um Fehler bereinigt. Das Firmware-Update kann man unter Settings -> Firmware Update vornehmen.

Abb: Firmware-update

Quelle der Systemzeit einstellen

Die Uhrzeit wird standardmäßig automatisch aus dem Internet geholt und die richtige Zeitzone eingestellt, sofern eine Internetverbindung besteht. Oben rechts auf der Startseite kann überprüft werden, ob sie Systemzeit korrekt gesetzt ist. Sollte das nicht der Fall sein, so kann man unter Settings -> Time Zone and Geo-Location die nötigen Einstellungen vornehmen.

Abb. Quelle der Systemzeit einstellen

Der Shelly benötigt nicht dauerhaft eine Internetverbindung, um die Uhrzeit zu aktualisieren. Es reicht aus, einmalig nach dem Start die Systemzeit aus dem Internet zu holen. Ein Hafen-WLAN ist dazu völlig ausreichend. Die Uhrzeit läuft auch ohne Internet im Shelly weiter. Man sollte aber darauf achten den Shelly nicht ohne Internetverbindung abzuschalten, da sonst beim Neustart die Uhrzeit nicht geholt werden kann und damit die Schaltfunktion nicht mehr korrekt ausgeführt werden kann.

Schaltfunktion einstellen

Über die Konfigurationsseite Wekely schedule kann die Schaltfunktion für das Ankerlicht eingestellt werden. Dazu werden jeweils für das Ein- und Ausschalten ein euer Timer hinzugefügt und feste Zeiten gesetzt oder man kann auch als Quelle die Sonnenaufgangs- und Untergangszeit verwenden. das ist sehr praktisch, da sich so automatisch die Schaltzeitpunkte an den tatsächlichen Sonnenstand anpassen. Wer möchte kann die Schaltzeitpunkte noch mit einem Offset individuell verändern.

Abb: Schaltfunktionen für Sonnenuntergang und Sonnenaufgang einstellen

Abb: Einstellungen für Sonnenuntergang

Abb: Einstellung für Sonnenaufgang

Schaltung Ankerlicht-Automatik

Je nach Art des Internetzugangs für den Shelly muss man die Stromversorgung des Shelly entweder direkt mit dem Hauptschalter verbinden oder kann eine Gruppenschalter an der Schalttafel benutzen wie z.B. den Schalter Kühlschrank. Der potenzialfreie Schaltkontakt vom Shelly wird an der Schalttafel parallel zum Schalter für das Ankerlicht geschaltet. So kann man entweder über den Shelly das Ankerlicht schalten oder direkt über den Schalter an der Schalttafel, wobei der Schalter der Schalttafel immer Vorrang hat und den Schaltzustand des Shelly übersteuern kann. Ein Problem besteht allerdings, wenn der Shelly das Ankerlicht eingeschaltet hat, kann man es mit dem Schalter der Schalttafel nicht ausschalten. Entweder man macht dann den Shelly stromlos oder deaktiviert die Schaltzustände im Shelly.

Abb: Schaltung Ankerlicht-Automatik

Weiterführende Informationen

Auf ähnliche Art lasen sich noch einige andere Funktionen an Bord automatisieren wie z.B. eine Heizung, Lüftung, Batterieladung oder Bilgenentwässerung. Wer die Cloud-Anbindung aktiviert hat, kann dann noch zusätzlich alle Funktionen remote über das Internet steuern und sich ggf. per Mail informieren lassen. Für den Shelly 1 findet man bei Thingiverse 3D-Druckvorlagen für einen Hutschienenhalter. So kann die Installation fachgerecht in einer Unterinstallation erfolgen.

Abb: Hutschienenhalter für Shelly 1 mit Temperatur Addon Modul

Hier noch einige Weiterführende Informationen zu Shelly:

 

 

Lilygo T-Watch 2020 mit Anbindung an SignalK

Abb. Lilygo T-Watch 2020 (Lilygo)

 

Jan Dytrych hat ein Softwareprojekt gestartet, um mit einer Smart Watch Daten von SignalK anzeigen zu können und Alarme zu empfangen. Als Smart Watch wird nicht irgend eine gängige Uhr unter Android benutzt. Er verwendet die Smart Watch Liligo T-Watch 2020. Die Besonderheit dieser Uhr ist, dass sie einen ESP32 als Prozessor verbaut hat und  über die Arduino IDE bzw. PlatformIO programmiert werden kann. Der Hersteller Liligo unterstützt die Uhr mit einigen Bibliotheken, die die Programmierung wesentlich vereinfachen.

Die Liligo T-Watch 2020 verfügt über folgende Komponenten:

Abb. Hardware Lilygo T-Watch 2020 (Lilygo)

  • CPU: ESP32, Dual-Core-MCU, 240 MHz
  • FLASH: QSPI-Flash 16MB
  • SRAM: 520 KB SRAM / PSRAM 8MB
  • WiFi 802.11bgn 2.4 GHz
  • Bluetooth 4.2 BR/EDR, BLE
  • Display: 1,54 Zoll farbiger TFT, kapazitiver Touchscreen, 240 x 240 Pixel
  • 3-Achsen-Beschleunigungssensor BMA423
  • RTC-Uhr: PCF8563
  • IR-Empfänger
  • Lautsprecher
  • Taste: Power-Taste
  • USB zu TTL: CP2104 (Micro USB)
  • Lithium Akku 380 mAh, 3.7 V, wechselbar Typ: YX-W9A
  • Betriebstemperaturbereich: -40 ~ +85 Grad
  • Metallgehäuse
  • Wasserdichtheit keine
  • Silikonarmband 270 mm
  • Gewicht: 58,5g

Zur T-Watch 2020 wird ein USB-Kabel mitgeliefert über das die Uhr aufgeladen und Programme übertragen werden können. Die Uhr hat ein Aluminium Metallgehäuse und das Design orientiert sich an der Apple I-Watch. Mit dem nicht austauschbaren Silikonarmband lässt sich die Uhr bequem tragen. Einziger Schwachpunkt, die Uhr ist nicht wasserdicht.

Eigenschaften der Firmware

Die Firmware zur Uhr wird bei GitHub gehostet und hat folgende Merkmale:

  • Hauptbildschirm Uhrfunktion mit Statuszeile
  • Einrichtungsbildschirm für Datum, Uhrzeit, Weckzeit, WiFi, SignalK
  • Benutzerdefinierte Bildschirme für Werte aus SignalK
  • SignalK Events wecken die Uhr und zeigen Meldungen an
  • Sleep-Mode mit Display Off für langen Betrieb bis zu 24h
  • Aufwecken der Anzeige mit tippen oder drehen des Handgelenks
  • Tag/Nacht Modus über Doppeltipp
  • Sprachanpassung über Quellcode
  • Schrittzähler

Abb. Startbildschirm, Warnmeldung und SignalK-Werte

Einstellungen und Konfiguration

Die grundlegenden Einstellungen können an der Uhr über das Display vorgenommen werden. Zur Gestaltung der benutzerdefinierten Bildinhalte für SignalK Werte gibt es das Programm TWatchSKDesigner für Linux, Mac und Windows. Damit können recht komfortabel neue Anzeigeseiten für SignalK erstellt und über eine USB-Verbindung zur Uhr übertragen werden. Der Konfigurator erlaubt verschiedenste Darstellungen und Farbauswahl für die anzuzeigenden Werte.

Abb. TKWatchDesigner mit Ergebnis

Fazit

Jan Dytriych hat mit seinem Open Source Software-Projekt eine coole Anwendung entwickelt, mit der es möglich ist Daten von SignalK am Handeglenk einsehen und überwachen zu können. Besonders die Alarmmeldungen sind eine nützliche Funktion, um sich über Grenzwertüberschreitungen informieren zu lassen. Bei Github ist das Projekt sehr gut dokumentiert und Interessierte sollten alle nötigen Informationen finden. Lilygo hat mit der T-Watch 2020 eine interessante Hardware für kleines Geld zur Verfügung gestellt, mit der sich eine Vielzahl an Projekten umsetzen lassen. Die Verwendung der beliebten CPU ESP32 vereinfacht für Maker die Software-Entwicklung, da in vertrauten Umgebungen mit bekannten Wissen entwickelt werden kann. Einziger Nachteil der T-Watch 2020 ist, dass sie nicht wasserdicht ist. Ob das ein KO-Kriterium ist, muss sich im Praxiseinsatz auf dem Boot noch zeigen. Bleibt zu hoffen, dass Liligo in Zukunft auch eine wasserdichte T-Watch rausbringt.

Links

Projekt-Homepage: https://github.com/JohnySeven/TWatchSK

TWatchSKDesigner: https://github.com/JohnySeven/TWatchSKDesigner#twatchskdesigner

Lillygo T-Watch 2020: http://www.lilygo.cn/prod_view.aspx?TypeId=50053&Id=1380&FId=t3:50053:3

Bilder

Abb. Lilygo T-Watch 2020 (Lilygo)

Abb. Geöffneter Deckel, rechts Lithium Batterie

Magnetix – ein digitaler Kompass mit NMEA2000

Warum

Ich fand die Idee schon immer spannend, dass auf meinem Plotter nicht nur dann der Kurs angezeigt wird wenn sich das Boot in Bewegung setzt, sondern auch, wenn es ruhig vor sich hindümpelt.

Nach der Suche im I-Net bei unterschiedlichen Herstellern war schnell klar, dass ich bei aktuellen Preisen vielleicht doch keinen E-Kompass an Bord brauche. Durch die Corona-Einschränkungen und dem mehr an Freizeit, die zu Hause verbracht wurde, kam die Idee auf, den Kompass selber zu bauen.

Der Bau des elektronischen Kompasses mit einem Ausgang in das NMEA2000 Netzwerk wurde inspiriert durch einen Beitrag von Andreas in dem “segeln-forum.de” Forum.
Durch viele Tipps in unterschiedlichen Foren ist es geglückt. Der Kompass ist fertig, aber noch (Stand:2022.01) nicht auf dem Boot getestet.

Beschreibung

Magnetix ist ein elektronischer Kompass, der seine Daten auf den MNEA2k-Bus überträgt. Als Basis dient ein CMPS14 als Sensor, ein ESP32 als Rechenknecht, ein Waveshare SN65HVD230 (nicht vergesse den Widerstand herauszubrechen) als Bindeglied zum Bus und ein LM2596 als Spannungswandler. Für die Anzeige im Gehäuse wird ein 0.91 Zoll OLED mit 132×32 Pixel verwendet.

Das Gehäuse für die Elektronik ist ein Bocube von „www.bopla.de“. Für den Sensor wurde sowohl die Halterung als auch das Gehäuse 3d-gedruckt. Die Halterungen für das OLED und die Touchsensoren (VA Schrauben) sind ebenfalls mit einem 3-Drucker erstellt worden.

Die Verbindung zwischen dem Kompass-Sensor und dem ESP erfolgt über ein KAT5 Netzwerkkabel, bei dem immer zwei Kabel zu einem Paar verbunden wurden. Obwohl das Protokoll zwischen dem CMPS und dem ESP ein Kurzstreckenprotokoll (I2C) ist, habe ich bei einer Kabellänge von ~70cm keine Probleme

Die Stromversorgung erfolgt über den NMEA – Bus und beträgt ~1LEN. Als Verbindung zum Netzwerk wird ein Einbaustecker der Firma Techno-Spark verwendet.

Der ESP bekommt die Daten über den I2C – Bus, wandelt das Ganze in einen NMEA2K Datensatz (127250) um und schickt es an das Netzwerk.

Der Kompass identifiziert sich am Bus als „Magnetix Alpha“ und kann auch unter diesem Namen in den Quellen des Netzwerks gefunden werden.

Variablen im Code

Kompletter Quellcode https://open-boat-projects.org/wp-content/uploads/2022/01/compass_NMEA2k_V05_01.zip
https://open-boat-projects.org/wp-content/uploads/2022/07/compass_NMEA2k_V05_02.zip
devitation []
ist ein Array mit 36 möglichen Einträgen. Darin kann eine Deviationstabelle hinterlegt werden, die bei den jeweiligen Kursen automatisch den ausgegebenen Kurs korrigiert.
CorrectionMountingAngle
Damit kann eine – horizontale – Korrektur für eine Abweichung der Kompasslinie zur Bootsachse eingestellt werden.

[-] Werte für eine Korrektur nach Backbord

[+] Werte für eine Korrektur nach Steuerbord

Bedienung

Die Bedienung beschränkt sich auf die zwei Touchflächen(Schrauben):

Touchfläche Funktion
1 Autokalibrierung an / aus
2 Autokalibrierung aus Durchgeführte Kalibrierung speichern
1 & 2 neue Kalibrierung anstoßen

Display

Das Display ist in drei Bereiche gegliedert:

Links (in 90° gedrehter Schrift)
Aktuelle Funktion des Sensors
„Calib“ der Sensor befindet sich gerade in der Kalibrierung, die durch Touch 1&2 angestoßen wurde.
„inacc“ wenn der Sensor nicht komplette kalibriert ist, (nicht alle Sensor Rückmeldungen 1 sind) erscheint „inaccurate“. Auf ein Ausschalten der HDM Daten wurde verzichtet, da es sehr oft zu Meldungen 0 kommt.

Evtl. muss dass nach Feldversuchen an Bord angepasst werden

„ON“ Der Sensor befindet sich im „autocalibration“ Modus
„OFF“ Der „autocalibration“ Modus ist ausgeschaltet
Mitte
S Status des Sensorsystems gefolgt von zwei Zahlen
A ‚Status des Beschleunigungssensors
M Status des magnetischen Sensors
Die drei Angaben werden jeweils durch die folgenden Zahlen präzisiert:
00 nichts ist OK
11 alles OK
01 oder 10 teilweise OK
(was diese Zahlen genau bedeuten ist aus der Dokumentation des CMPS14 leider nicht eindeutig ersichtlich)
Rechts vom Strich
M Magnetischer Kurs  (nach dem Druck auf T2 erscheint für 2sec. “…stored…” [v5.02])
R Roll des Sensors
P Pitch des Sensors

Auf- und Zusammenbau

Aufgebaut habe ich das ganze in einem Standard Gehäuse in dass ich eine Grundplatte als Träger für die Lochplatte und den Spannungswandler gebaut habe. Das einzige was beim Zusammenbau zu beachten ist, ist dass auf dem CAN.Modul (Waveshare SN65HVD230) der Abschlusswiderstand herausgebrochen werden muss. Sonst terminiert der Waveshare SN65HVD230 den kompletten NMEA Bus. Die Verkabelung kann in dem Schaltplan nachgesehen werden.

Leider habe ich in der ersten Version meine Halterungen für das Display und die Touchflächen bündig an die Oberkante des Gehäuses gesetzt. Da der Deckel sich aber komplett über das untere Gehäuse “stülpt” ging er nicht mehr zu. 🙁

Updates

2022-03-01 Neue Halterung für das Gehäuse mit einer Wandhalterung um einen falschen horizontalen Einbau auszugleichen -> Thingiverse
2022-07-02 Nach einigen Tests ist mir aufgefallen, dass der Sensor nach einem Stromverlust (trotzdem er die Kalibrierung gespeichert hatte) wieder bei Null anfängt. Ich habe die Touchflächen jetzt so umgestellt dass T2 die vorher durchgeführte Kalibrierung abspeichert. Nach den ersten Proben mit einem Neustart von Magnetix scheint es jetzt zu funktionieren.  (V5.02)

Libraries

die verwendeten Libraries erscheinen im Kopf der INO Datei und werden hier nicht weiter behandelt.

Links und Materialien

Alle 3-D Druck Bauteile https://www.thingiverse.com/thing:5207953
ESP-32 Dev Kit C V4 https://www.az-delivery.de/products/esp-32-dev-kit-c-v4
CMPS14 Data Sheet
Waveshare SN65HVD230 https://www.amazon.de/gp/product/B00KM6XMXO/ref=ppx_yo_dt_b_asin_title_o01_s01?ie=UTF8&th=1
0,91 Zoll OLED I2C Display 128 x 32 Pixel https://www.az-delivery.de/products/0-91-zoll-i2c-oled-display
LM2596S DC-DC Netzteil Adapter Step down Modul https://www.az-delivery.de/products/lm2596s-dc-dc-step-down-modul-1
PCB Board Set Lochrasterplatte Lochrasterplatine Leiterplatte https://www.az-delivery.de/products/pcb-board-set-lochrasterplatte-platine-leiterplatte-4×4-stuck
Gehäuse https://www.bopla.de/gehaeusetechnik/product/bocube/pc-ul-94-v0-glasklarer-deckel.html

meine Maße finde ich allerdings in der dortigen Liste nicht wieder!

PG – Durchführungen https://www.conrad.de/de/p/kvpg9gr-kabelverschraubung-verschraubbar-mit-zugentlastung-pg9-pg9-polyamid-grau-1-st-1521121.html

(an die Mutter denken)

Micro-C Einbaustecker https://technospark.de/nmea-2000-panel-mount-connector?number=SW1153
Grundlagen Diesjährige Winterbastelei: Ein NMEA Heading Sensor oder auch elektronischer Kompass Pitch und Roll Kompensiert

https://www.segeln-forum.de/thread/66453-diesj%C3%A4hrige-winterbastelei-ein-nmea-heading-sensor-oder-auch-elektronischer-komp/?pageNo=1

Touchfunktionen https://www.wiegleb.org/2018/09/22/esp32-ttgo-mit-touch-funktion/
NMEA Grundlagen AK-Homberger Workshop (ESP -> NMEA2k)

https://github.com/AK-Homberger/NMEA2000-Workshop

Beispiele I2C NMEA https://www.robot-electronics.co.uk/htm/arduino_examples.htm#CMPS12/11%20I2C

https://www.robot-electronics.co.uk/files/arduino_cmps12_i2c.ino

Gallerie

Luftdruck Füllstandssensor

Abb. Steuerbox mit Pumpe, Drucksensor und Ventilen

In der Facebook Gruppe Raspberry Pi for Boats habe ich eine coole Lösung für eine Füllstandmessung gesehen. Erik aus Finnland hat mit einem Luftdrucksensor eine Überwachung für 4 Tanks konstruiert. Das Funktionsprinzip basiert auf der Verdrängung von Flüssigkeiten in einem Messrohr. Es baut sich dann ein entsprechender Luftdruck im Messrohr aus der proportional zur Füllstandhöhe ist. Das System benutzt eine Pumpe die in einem Schlauchsystem so lange Druck aufbaut bis die Luft am Schlauchende im Tank ausströmt. Je nach Schlauchlänge arbeitet die Pumpe zwischen 5…10 s. Danach wird der statische Druck im Schlauchsystem gemessen, der proportional zum statischen Druck einer Flüssigkeitssäule ist. Damit man 4 Tanks kontrollieren kann, sind im System 5 Ventile verbaut, die ein Verbindung zum jeweiligen Tank herstellt von dem man den Füllstand ermitteln möchte. Mit dieser coolen Lösung umgeht er das Problem des Druckverlustes im Schlauchsystem, weil er vor jeder Messung kurz die Pumpe anlaufen lässt und die entwichene Luft nachfüllt. Ich hatte damals auch mit Schlauchsystemen experimentiert und die Lösung für unbrauchbar gehalten, weil ich den Druckverlust nicht kompensieren konnte. Das Problem war, dass Luft eine sehr geringe Dichte hat und durch Schläuche hindurch diffundieren oder an Schlauchverbindern entweichen kann. Der Luftdruck lässt sich dann nicht über mehrere Tage oder Wochen aufrecht erhalten. Man kann das umgehen indem man durchgängige Metallleitungen ohne Verbinder benutzt, was das Ganze dann aber wieder aufwändiger werden lässt. Ich hatte mich damals in meinem Projekt zur Motordiagnose entschieden, den Drucksensor direkt im Tank einzubauen und die Flüssigkeitssäule direkt zu messen.

Die Lösung von Erik hat den Vorteil, dass man keine gefährlichen Spannungen am Tank hat und man im Prinzip beliebig viele Tanks mit der Methode überwachen kann. Als Auswerteeinheit benutzt er einen Raspberry Pi und zeigt die Messergebnisse auf einer Webseite an. Die ganze Elektronik hat er auf einer einfachen Streifenleiterplatte untergebracht. Das Projekt hat Erik auf seiner Homepage beschrieben.

Im Segeln-Forum findet man eine interessante Diskussion mit weiterführenden Informationen zu diesem Thema.

Abb. Pneumatischer Systemaufbau

 

Abb. Schlauchende im Tank

 

Abb. Pumpen- und Ventilansteuerung

Abb. Anzeige- und Bedieneinheit

Volvo Penta NMEA2000 Interface

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Disclaimer: Die Beschreibungen der Verdrahtung und der Pinbelegungen entsprechen dem, was ich in meinem Boot vorgefunden habe. Deshalb muss man, wenn man das Interface nachbauen möchte, sicherstellen, dass die Verdrahtungen und Pinbelegungen auf dem eigenen Boot identisch sind oder das Interface entsprechend anpassen. Die gesamte Beschreibung dieser Lösung ist in einem experimentellen Zustand und kommt ohne jegliche Gewährleistung. Änderungen an der Verkabelung des Bootes oder der elektrischen und elektronischen Gegebenheiten können zu Schäden oder kritischen Situationen führen. Das geschieht auf eigene Gefahr.

 

Allgemeines

Die Basis-Installation eines Volvo Penta-Motors (Motoren D1 und D2) mit EVC besteht aus verschiedenen Sensoren am Motor, die an das EVC/MDI (electronic vessel control/motor data interface) angeschlossen sind. Diese Daten werden vom MDI über einen CAN-Bus an das Drehzahlinstrument geliefert. Häufig gibt es nur den Drehzahlmesser mit einem kleinen LCD-Display um Daten anzuzeigen. Weitere Instrumente können aber erworben und hinter dem Drehzahlmesser über den sog. Easy-Link angeschlossen werden.

 

 

 

Die Drehzahl wird kontinuierlich angezeigt. Weiter Werte, wie etwa Kühlwassertemperatur und Ladespannung werden nur im Fehlerfall alarmiert, aber nicht durchgehend angezeigt. Das hier beschriebene Interface verbindet den CAN-Bus des Motors mit einem NMEA2000-Bus. Dabei werden die Informationen im VP-CAN-Bus die als J1939-Datagamme vorliegen gelesen, ausgewertet, und als NMEA2000-Datagramme auf den NMEA2000-Bus geschrieben. Die bisher implementierten Daten sind

  • Motordrehzahl
  • Ladespannung
  • Kühlwassertemperatur
  • Motorstunden

Im NMEA2000-Bus können die Informationen z.B. von einem Plotter angezeigt und mit Warnleveln versehen werden.

Bei einer Überführung meines Bootes über die Unterems Richtung DEK hat mich das vor sehr großen Problemen bewahrt. Durch die vielen Sedimente in der Ems war der äußere Kühlkreis zunehmend verstopft. Über meinen Plotter (MFD) konnte ich den Temperaturanstieg frühzeitig bemerken, und entsprechend reagieren. Ohne das Interface und die Anzeige im MFD wäre irgendwann der Alarm gekommen, und dann hätte ich kaum noch Handlungsoptionen gehabt, dass es keine Möglichkeiten gegeben hätte, festzumachen oder zu ankern. Ich hätte mit dem Risiko der Überhitzung der Maschine weiterfahren müssen.

 

Bestandteile

Das Volvo Penta – N2K Interface besteht aus Hardware- und Softwarekomponenten.

Hardware

Um das Interface physisch mit dem VP-CAN-Bus des Motors zu verbinden, benötigt man ein Adapterkabel mit Y-Verzweigung. Die Verbindung des Kabels vom MDI zum Drehzahlmesser sind sog. 6-polige ‘Deutsch-Stecker’, male und female. ( z.B. https://www.kabelschuhe-shop.de/KALI-1206-DEUTSCH-DT-Steckverbinder-Set-6-polig). Man verbindet die sechs Pins des Steckers mit denen der Buchse. Zusätzlich leitet man 12v+, GND Can high und CAN low aus.

Um das Interface physikalisch mit dem N2K-Bus (entweder Seatalk NG oder NMEA2000) zu verbinden, benötigen man ebenfalls ein geeignetes Kabel. Mein Interface ist mit einem Raymarine Seatalk NG-Netzwerk verbunden. Also habe ich ein STNG-Standard-Spurkabel durchgeschnitten, um ein Kabel mit einem Stecker und einem offenen Ende zu bekommen.

 

CAN-Bus-Transceiver

Um das Interface auf Protokollebene mit dem CAN-Bus des Motors zu verbinden, verwende ich einen SPI-MCP2515-CAN-Transceiver-TJA1050. Dieser Transceiver wird von der MCP_CAN_lib von Cory J. Fowler gesteuert.

Um das Interface auf der Protokollebene an den N2K-Bus anzuschließen, verwende ich einen Waveshare SN65HVD230. Dieser Transceiver wird von der NMEA2000-Bibliothek von Timo Lappalainen gesteuert.

Da der ESP32 eine Spannungsversorgung von 5V benötigt und der CAN-Bus mit 12V versorgt wird, benötigt man zusätzlich einen Stepdown-Converter auf 5V.

 

 

Software

Den Code gibt es hier: https://github.com/buhhe/VolvoPenta-N2K_Interface

Er basiert auf Code von:

Timo Lappalainen https://github.com/ttlappalainen

Andreas Koritnik https://github.com/AK-Homberger

Cory J. Fowler https://github.com/coryjfowler

 

Diese Bibliotheken werden benötigt:

https://github.com/coryjfowler/MCP_CAN_lib

https://github.com/ttlappalainen

 

 

Volvo Penta – N2K Interface: Vorgehen

  1. Besorgen Sie sich die Hardwarekomponenten
    • ESP32 Entwicklungsmodul
    • MCP2515-CAN-Transceiver
    • SN65HVD230 CAN-Sender/Empfänger
    • DC-DC Abwärtswandler 5V
    • Ein Paar 6-polige “Deutsch-Stecker” (Stecker/Buchse)
  2. Erstellen Sie das Y-Verzweigungskabel. (Siehe Seite 3)
  3. Führen Sie die Verkabelung durch. (Siehe Seite 4)
  4. Besorgen Sie die benötigten Bibliotheken.
  5. Kompilieren und flashen Sie die Software.
  6. Installiere alles auf deinem Boot.
  7. Viel Spaß!

 

Anschluss des Interface an den VP CAN-Bus

 

Der Drehzahlmesser mit integrierter LCD-Anzeige wird über einen Kabelbaum und einen 6-poligen Deutsch-Stecker mit dem MDI des Motors verbunden. Die Verbindung heißt bei Volvo Penta „Multi-Link“. Die Daten werden als CAN-basierte J1939-Datagramme bereitgestellt.

 

 

Für den Anschluss an den Bus benötigten man ein Y-Verzweigungskabel. Das Kabel wird zwischen dem Stecker des Kabelbaums und dem Tachometer angeschlossen.

 


Pin-Belegung:

  • 1 nicht belegt
  • 2 CAN low
  • 3 nicht belegt
  • 4 Minus
  • 5 CAN high
  • Plus, 5V

 

Verkabelung

 

Ventus W132 – Umbau zum NMEA2000 Windsensor

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Abb.: Außenansicht

  • NMEA0183 und NMEA2000
  • Nur drei weitere Teile (ESP32, Spannstift, CAN BUS) nötig
  • Winkelauflösung in 0,1°-Schritten
  • Darstellung der Daten im Browser möglich (im AP-Modus auch ohne fremdes Netzwerk)
  • Code vollständig kommentiert auf GitHub

Dieses Projekt beschreibt den Umbau des Ersatzwindmessers Ventus W132 mit minimalem Materialaufwand. Das gesamte Projekt lässt sich, inklusive Kauf des W132, für weniger als 50€ umsetzen.

Die ausführliche Dokumentation zum Umbau sowie die kommentierte Software befinden sich auf GitHub: https://github.com/jukolein/W132.

Der entsprechende Thread im SegelForum befindet sich hier: https://www.segeln-forum.de/board194-boot-technik/board195-open-boat-projects-org/81141-boots-windsensor-ventus-w132-f%C3%BCr-50-euro/.

Da hierbei bereits bestehende Hardware modifiziert wird, entfallen viele kritische Arbeitsschritte wie das Drucken des Gehäuses oder die Nachbearbeitung für Witterungsbeständigkeit.

Die Windgeschwindigkeit wird über einen Hallsensor, die Richtung mittels magnetischem Rotationssensor gemessen. Dies ermöglicht gerade hinsichtlich der Windrichtung extrem genaue Angaben.

Die Größe des Gehäuses erlaubt den Einsatz eines ESP32, womit die Erstellung und Aussendung nicht nur von NMEA0183-Datagrammen via WiFi, sondern erstmals auch von NMEA2000-Daten möglich wird.

Zusätzlich können die Daten grafisch im Browser dargestellt werden. Über eine Einstellungsseite kann etwa der Sensor kalibriert oder das Aussenden von NMEA2000-Daten aktiviert/deaktiviert werden .

Auch eine Softwareaktualisierung  über das Netzwerk ist möglich.

 

Abb.: Schaltbild

 

Abb.: Materialliste

 

Abb.: Einstellungen

Windsensor Yachta

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Abb: Windsensor Yachta

Der Windsensor Yachta ist eine Weiterentwicklung eines Windsensors vom User Yachta der bei Thingiverse vorgestellt wurde. Das technische Funktionsprinzip basiert auf einem Hallsensor für die Messung der Windgeschwindigkeit und auf einem magnetischen Rotationssensor zur Messung der Windrichtung. Udo aus dem Segeln-Forum hat die Idee aufgegriffen und einige Verbesserungen am Windsensor vorgenommen. Das Schalenrad des Windrades wurde in mehrere Teile zerlegt, so dass der 3D-Druck einfacher wird. Zusätzlich hat er die Elektronik überarbeitet. Dabei ist ein anderer magnetischer Rotationssensor ausgewählt worden, der einfacher zu beschaffen ist. Als Auswerte- und Kommunikationseinheit wird der bei Bastlern beliebte ESP-12E verwendet. Neben dem Yachta Windsensor hat Udo auch noch einen weiteren Windsensor neu konstruiert und einige Punkte im mechanischen Aufbau weiter verbessert. Die Zielsetzung bei Udos Konstruktionen war, dass sich die Windsensoren einfach nachbauen lassen ohne Spezialteile aus Metall zu benötigen. Alle nötigen Teile kann man als Hobbyist im Fachhandel und im Baumarkt beziehen.

Sowohl Udo als auch Jukolein haben eine Firmware für den Windsensor Yachta geschrieben die unterschiedliche Funktionalitäten aufweisen. Mit beider Firmware können die Messdaten als NMEA0183 Telegramme per WiFi übertragen und in entsprechender Software wie z.B. AVnav, OpenCPN verarbeitet werden. Bei der Firmware von Jukolein können die Messdaten auch auf einer Webseite angezeigt werden. Die Firmware von Norbert die für den Windsensor WiFi 1000 verwendet wird, kann auch für den Windsensor Yachta genutzt werden. Diese Firmware ist universell und unterstützt auch andere kommerzielle und nicht kommerzielle Windsensoren. Von der Funktionalität her bietet diese Firmware die größten Möglichkeiten und besitzt ebenfalls eine Weboberfläche zur Visualisierung und Bedienung.

Abb: Platine Windsensor Yachta

Abb: Eingebaute Platine

Die Platine von Udo wurde noch einmal von Norbert überarbeitet und in einigen Punkten verbessert. Die Platine kann unkompliziert über das Internet bei Aisler in kleinen Stückzahlen bezogen werden. Alle notwendigen Fertigungsdaten sind bei Aisler hinterlegt. Der Bestellvorgang ist denkbar einfach.

Dieser Windsensor verdeutlicht sehr anschaulich welche Möglichkeiten DIY-Projekte mit Open Software und Open Hardware bieten. Ohne die Offenheit wäre eine Weiterentwicklung und Verbesserung durch unterschiedliche Personen kaum möglich gewesen.

Eigenschaften Windsensor Yachta

  • Messung von Windspeed 0…75 kn und Windrichtung 0…360°
  • Winkelauflösung 0,1°
  • Robuste Mechanik (3 Kugellager)
  • Ohne Spezialteile aus Metall
  • Alle Bauteile findet man im Fachhandel und Baumarkt
  • Einfache 3D-Teile
  • Gewicht ca. 210g
  • Wetterfest und UV-stabil
  • Keine Kabel für Sensorsignale notwendig
  • Digitale Signalübertragung per WiFi
  • Versorgungsspannung 6…25V
  • Stromaufnahme 30mA @ 12V (0,36W)
  • 12V Versorgung  über Toplicht möglich
  • ESP8266 für WiFi und Datenübertragung
  • Aktualisierungsrate 1 Messwert pro Sekunde
  • Kein Einbauinstrument notwendig
  • Visualisierung in OpenPlotter auf einem  Laptop, Handy oder Tablett
  • Webinterface zur Bedienung
  • Keine Extrasoftware notwendig (Display ist die Anzeige)
  • Unterstützt das NMEA 0183 Protokoll
  • Firmwareupdate via Internet möglich

Firmware Eigenschaften

Udo Firmware

  • Webkonfiguration für IP Einstellungen Port 80
  • UDP Port 2948
  • UDP NMEA0183 Telegramm MWV

Jukolein Firmware

  • Webkonfiguration und grafische Visualisierung
  • Webserver Port 80
  • UDP Port 8080
  • TCP Port 8080
  • UDP/TCP NMEA0183 Telegramm MWV
  • Firmwareupdate OTA via Arduino IDE

Wifi 1000 Firmware

  • Webkonfiguration und grafische Visualisierung
  • Webserver Port 80
  • TCP Port 6666
  • TCP NMEA0183 Telegramme MWV, VWR, VPW
  • TCP NMEA0183 kundenspezifische Telegramme INF, WST, WSE
  • JSON Schnittstelle über http://192.168.4.1/json
  • Firmwareupdate via Internet über GitLab
  • Android App

Nutzung

Der Windsensor Yachta kann gut in Kombination mit einem Raspberry Pi mit z.B. OpenPlotter oder AVnav benutzt werden. Der Raspberry Pi stellt dann einen Access Point im WiFi Netzwerk zur Verfügung. Der Windsensor verbindet sich mit dem WiFi Netzwerk und überträgt die NMEA0183 Datentelegramme zum Raspberry Pi. Alle Endgeräte verbinden sich ebenfalls mit dem WiFi Netzwerk und könne die Messdaten die von OpenPlotter oder AVnav aufbereitet wurden grafisch anzeigen.

Abb: Verbindungsmöglichkeiten

Eine direkte Kommunikation vom Handy mit dem Windsensor ist ebenfalls möglich, wenn keine Messdatenverarbeitungs-Software benutzt wird. In der Firmware des Windsensors ist ein kleiner Webserver implementiert der die Messdaten direkt anzeigen kann. Die Leistungsfähigkeit ist aber etwas geringer als bei einem Raspberry Pi. Es lassen sich sinnvoller Weise nur 2…3 Endgeräte gleichzeitig mit dem Windsensor verbinden und Daten anzeigen. Des weiteren gibt es auch eine Android-WebApp mit der sich die Messdaten anzeigen lassen. Die WebApp ist ein rahmenloser WebBrowser der die Inhalte der Webseiten anzeigt und gleichzeitig dafür sorgt, dass sich der Bildschirm des Handys nicht automatisch ausschaltet, solange die App läuft.

Nachbau

Für den Nachbau wurde ein Repository bei GitLab angelegt. Dort sind alle Fertigungsunterlagen zu finden. Die mechanische Zusammenbauanleitung besteht aus einer Bilderserie, die die einzelnen Schitte des Zusammebaus zeigen. Am einfachsten ist es, wenn man sich das komplette Repositors als Zip-Datei herunterläd. Die Platine kann mit Hilfe der Gerber-Daten bei einem beliebigen Platinenhersteller in Auftrag gegeben werden. Der einfachste Weg der Platinenbestellung geht über Aisler, da dort schon alle Gerber-Daten hinterlegt sind. Eine kleine Serie von bestückten und programmierten Platinen wurde aufgelegt. Bei Interesse können Sie hier eine Nachricht über das Kontaktformular hinterlassen.

Achtung: Wer die Platine selber bestückt, sollte darauf achten, dass die Ausgangsspannung des DC/DC-Wandlers vor dem Einlöten auf 3.3V eingestellt wird. Anderenfalls wird sonst der ESP-12E durch Überspannung zerstört.

Eine ausführliche Zusammenbauanleitung ist hier zu finden: https://open-boat-projects.org/de/zusammenbauanleitung-windsensor-yachta/

 

Universelle Windsensor Firmware

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Die universelle Windsensor Firmware unterstützt verschiedene Windsensoren. Sie basiert auf der Firmware zum DIY Windsensor WiFi 1000 und wurde entsprechend um weiter Windsensor-Typen erweitert. Dabei können unterschiedliche Sensorarten, wie analog, magnetisch und digital angebunden werden. In der Firmware wird der entsprechende Windsensor ausgewählt. Weitere Einstellungen müssen nicht vorgenommen werden. Durch die Unterstützung kommerzieller Sensoren können deren Produkteigenschaften verbessert werden, da neben der kabelgebunden Datenübertragung auch eine Übertragung per WiFi möglich ist.

Folgende DIY Windsensoren werden derzeit unterstützt:

WiFi 1000 (ESP8266, 2x Hallsensor)
Yachta V1.0 (ESP8266, 1x Hallsensor, 1x AS5600 Magnetfeld-Rotations-Sensor)
Jukolein V1.0 (ESP8266, 1x Hallsensor, 1x AS5600 Magnetfeld-Rotations-Sensor)
Ventus W132 (mit Änderungen am Windsensor, externes Board, ESP8266, 1x Reed-Schalter, 1x AS5600 Magnetfeld-Rotations-Sensor, 1x BME280 Umweltsensor)

Zukünftig sollen folgende kommerzielle Windsensoren dazu kommen:

Davis Vintage Pro 2 (keine Änderungen am Windsensor, externes Board, ESP32, 1x Analog, 1x Hallsensor)
NASA / Clipper Windsensor (neues PCB-Borad im Windsensor, ESP8266, 1x Hallsensor, 1x AS5600 Magnetfeld-Rotations-Sensor)

Anschluss-Schema

Abb: Wemos D1 mini

Eingangsbelegung

Sensor-Typ Windgeschwindigkeit Windrichtung Temperatur
WiFi 1000 GPIO5 Hall-Sensor GPIO4 Hall-Sensor GPIO12 (1Wire) optional
Yachta V1.0 GPIO2 Hall-Sensor GPIO5 (SCL) AS5600*

GPIO4 (SDA) AS5600*

GPIO12 (1Wire)
Jukolein V1.0 GPIO2 Hall-Sensor GPIO5 (SCL) AS5600*

GPIO4 (SDA) AS5600*

GPIO12 (1Wire)
Davis Vintages Pro 2 GPIO7 Hall-Sensor A0 (Analog) GPIO12 (1Wire) optional
Ventus W132 GPIO14 Reed-Schalter*** GPIO5 (SCL) AS5600* ,BME280**

GPIO4 (SDA) AS5600* ,BME280**

GPIO12 (1Wire) optional
NASA/Clipper V1.0 GPIO7 Hall-Sensor GPIO5 (SCL) AS5600*

GPIO4 (SDA) AS5600*

GPIO12 (1Wire) optional

Anmerkung: *AS5600 I2C-Adresse 0x36, ** BME280 I2C Adresse 0x76, ***Pullup 10k und 100n Entstör-Kondensator

Fernbedienung für Ankerwinch

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Abb: Funkfernbedienung

Oft ist es so, dass die Ankerwinch nur über fest verbaute Schalter bedient werden kann und die Schalter so angebracht sind, dass man den Ankerfall bzw. das Aufholen nicht richtig einsehen kann. Wesentlich praktischer ist der Einsatz einer zusätzlichen Fernbedienung. Dadurch kann man von jedem beliebigen Ort aus die Ankerwinch bedienen und unterliegt keinen Einschränkungen mehr. Besonders für Einhandsegler ist das von großem Vorteil.

Als Lösung bieten sich Nachrüst-Bausätze an, die man in verschiedenen Varianten im Internet erwerben kann. Die Fernbedienung sollte mindestens über zwei unabhängige Schaltkanäle verfügen und einen Tippbetrieb ermöglichen. Man sollte darauf achten, dass die Fernbedienungs-Empfangseinheit über potenzialfreie Schaltkontakte verfügt (Relais). So lässt sich die Fernbedienung durch einfaches parallel schalten der Schaltkontakte an den vorhandenen Schaltern einfügen.

Eigenschaften der Fernbedienung

  • 433 MHz Funktechnik
  • 2-Kanal (auf / ab)
  • Tippbetrieb
  • Reichweite ca. 30 m
  • Funksender mit Batterie (12V, nicht wasserdicht)
  • 2 potenzialfreie Schaltkontakte als Ausgang
  • Stromversorgung 12…24V
  • Eigenverbrauch Empfangseinheit ca. 50 mA bei 12V

Abb: Anschlussbelegung der Empfangseinheit

Fernbedienung für Raymarine Evo Pilot

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Abb: Fernbedienung für Raymarine Evo Pilot

Der User matztam aus dem segeln-forum hat eine Fernbedienung für den Raymarine Evo Pilot vorgestellt. Die Fernbedienung funkt auf 433 MHz und setzt die empfangenen Signale in das NMEA2000 Netzwerk um. So lassen sich die Einstellungen für den Autopiloten von Raymarine sehr komfortabel mit vornehmen. Die Fernbedienung besteht aus zwei Teilen. Einmal aus dem Hand-Bedienteil und zum Zweiten aus einem Funk-Empfänger QIACHIP RX480E / TX118SA. Das Gehäuse der Fernbedienung besteht aus 3D-gedruckten Teilen. Die gummierten Tasten ebenso. Die Front- und Rückseite wurden aus Plexiglasplatten ausgelasert. Ein Arduino STM32F103 dekodiert die empfangenen Funksignale und leitet sie dann in das NMEA2000 Netzwerk ein. Die Fernbedienung besitzt eine kontaktlos ladbare Batterie (Qi) wie auch Handys aufgeladen werden können.

Bei Github findet man zum Nachbau der Fernbedienung alle nötigen Unterlagen.

https://github.com/matztam/raymarine-evo-pilot-remote

Die Fernbedinung besitzt folgende Merkmale:

  • Funktechnik 433 MHz
  • Tasten: +1, -1, +10, -10, Stand By, Auto, Wind, Track
  • LiPo-Akku
  • Qi Ladetechnik (kontaktlos)
  • Empfangseinheit
    • Arduino STM32F103
    • NMEA2000
    • Bussteckverbinder

Abb: Gehäuse-Stack

Abb: Gummitasten 3D gedruckt

Abb: Gehäuse-Zwischenteile

Abb: Platine mit Tasten

Abb: Qi-Ladeelektronik