Die Idee: Ein Bilgenmonitor / Yachtinformationssystem

Bilgensensor front 320

Inspiriert davon, unsere Charterskipper auch während des Segelns optimal über den Zustand der technischen Systeme an Bord der Andra zu informieren, reifte in unseren Köpfen die Idee, ähnlich wie in der Hausautomatisierung die Segelyacht von einem Yachtinformationssystem überwachen zu lassen. Eine der Kernaufgaben wäre z.B. die Überwachung des Füllstands der Bilgen auf See. 

Optimal wäre das Gerät verbunden mit 4 Bilgen-Sensoren, das den Skipper über akut eindringendes Seewasser informieren könnte, ggf. angereichert um weitere Informationen wie Tankfüllstände, elektrische Batterie-Spannungen, Temperaturen und sich daraus ggf. ergebende Hinweise und Warnungen. Dies wäre dann auch die ideale Plattform, um später Steuerungsaufgaben oder eine Kopplung mit dem vorhandenen NMEA 0183/2000 Bus zu übernehmen. Die Warnungen würden somit auch beispielsweise an Deck am Plotter ausgegeben,

So etwas konnten wir nirgendwo finden, also reifte der Entschluss, es einfach selber zu entwickeln. Inzwischen betreiben und erweitern wie das System im zweiten Jahr und wir denken, der Leistungsumfang kann sich durchaus sehen lassen.

Das technische Konzept

Auf der Andra hatten wir bereits sehr positive Erfahrungen mit den einfachen und robusten OceanTEC Gebern von AWN für Öl- und Wassertanks gesammelt. Sie setzen den Füllstand in einen elektrischen Widerstand zwischen 30 (voll) bis 240 Ohm (leer) um, der normalerweise von den dazu passenden OceanTEC-Anzeigegeräten visualisiert wird. Ein Microcontroller auf Arduino-Basis sollte in der Lage sein können, über Analog/Digital-Eingänge die den 4 Bilgen entsprechenden Spannungswerte einzulesen, und die Füllstände der Bilgen zu visualisieren. Bei Überschreiten vorgewählter Schwellwerte sollte zudem die Ausgabe eines optischen und / oder visuellen Alarms möglich sein. Als besonderes Bonbon soll der Skipper durch eine bebilderte Schritt für Schritt-Anleitung beim Lenzen der Bilge unterstützt werden. Soweit der Plan.

D02 esp32er Mikrocontroller ESP32 D1 Mini NodeMCU

Inzwischen gibt es eine große Familie von Mikrocontrollern verschiedener Hersteller, die die leistungsfähige Arduino IDE Programmierumgebung unterstützen. Wir haben uns für den ESP32 D1 Mini NodeMCU von AZ-Delivery entschieden, mit 240 MHz Taktfrequenz ein leistungsfähiger Nachfolger des populären ESP8266-Prozessors von Espressif, der vor allem für Aufgaben im Internet of Things (IoT) entwickelt wurde. Er verfügt über bis zu 18 analoge AD-Converter (ADC mit 12 Bit) und 32 digitale Ein-/Ausgänge, einen SPI-, I2C-, I2S- sowie CAN, UART, VSPI und HSPI-Bus. Als besonderes Plus hat er WLAN bereits on-bord und damit eröffnet sich die Möglichkeit, später auch Mess- und Regelaufgaben im WLAN-Bordnetz der Andra wahrnehmen zu können. Mit seinen geringen Kosten von unter 9€ drängt er sich für diese Aufgabe geradezu auf. Die Bauform ist mit gerade einmal 31 x 28 mm und nur 12 Gramm Gewicht äußerst kompakt und damit bleibt im Gehäuse auch noch genügend Platz für weitere Anschaltungen. Sein Speicher von 4 MByte wird für unsere Anwendung locker ausreichen.

03 displayAusgabe auf einem 240x320 TFT-Farbdisplay und SD-Karte

Als Display wählen wir ein grafikfähiges farbiges TFT-Display auf Basis des ILI9341 Chipsatzes mit 320 x 240 Punkten aus, welches wir über den SPI-Bus mit dem Microcontroller verbinden. Die leistungsfähige auf Github verfügbare Treiberbibliothek von Bodmer macht die Ausgabe von Text, Grafik und Bildern einfach, wenn man erst mal herausbekommen hat, wie die Pinbelegung des SPI-Busses im Zusammenspiel mit dem ESP32, einem zusätzlichen SD-Card-Reader und den Arduino-Bibliotheken genau erfolgen muss. Mich hat dieses Puzzle etwa eine Woche Arbeit gekostet, aber ich durfte eine Menge dabei lernen ;-)

Das Display verfügt zusätzlich auf seiner Rückseite über einen SD-Kartenplatz, den ich allerdings aus Platzgründen in meinem Gehäuse nicht nutzen konnte. Stattdessen habe ich die Bilder, die ich zur Unterstützung des Skippers beim Lenzen des Schiffes (bebilderte Anleitung) noch auf dem Display ausgeben möchte, auf einer SD-Karte abgelegt. Auf dieser SD-Karte wird auch nichtflüchtig eine Historie von Sensordaten geloggt.

Das Display kann natürlich mit seinen 320 mal 240 Pixeln nicht mit der Auflösung gängiger Smartphones mithalten, aber es ist auch tagsüber ausreichend hell, hat satte Farben und reicht aus, um Texte und Grafiken gut leserlich wiederzugeben und auch Bilder schön anzuzeigen. Und das bei einem Preis von ebenfalls knapp unter 20€. 

06 layout

Reichlich Messeingänge für Batterien, Tanks, Bilgen und Ankerbier ;-)

Wir statten das Yachtinformationssystem mit 4 x ADS1115 Modulen aus, an die pro Modul jeweils 4 analoge Sensoren angebunden werden. Unsere Wahl fiel auf den ADS1115, da er auf der einen Seite sehr günstig, mit 16Bit A/D-Konvertierungstiefe nochmal um eine 10-er Potenz genauer als die 4 im ESP32 intern verbauten A/D-Wandler ist und über den I2C-Bus angebunden keinen weiteren Pin des ESP32 in Beschlag nimmt. Damit ist eine hinreichend genaue Auflösung bis in die 5. Nachkommastelle möglich. Das erste ADS1115-Modul spendieren wir der Spannungsüberwachung für bis zu 4 Batterien (Motor, Verbraucher, Bugstrahl und Reserve) und auf das zweite ADS115 schalten wir die Sensoren von bis 4 zu überwachenden Tanks (Frischwasser, Schwarzwasser, Diesel und Reservetank). Die 4 Bilgen-Sensoren (Vorschiffs-, Batterie-, Motor- und Achterbilge) binden wir an das ADS115 Modul Nummer 3 und das 4. AD-Modul reservieren wir für künftige Wünsche, die sicher noch kommen werden. 

Über einen einstellbaren Spannungsteiler und eine stabilisierte Spannung (DC-DC Step down-Wandler) wird sichergestellt, dass auch bei veränderlicher Bordspannung (Ladespannung, Spannungsabfall auf See, belastete Verbraucherbatterie) die an den Vor- und Sensorwiderständen abfallenden Spannung stets bei konstant 5 V liegt und damit zum Einen unsere Messwerte nicht von einer schwankenden Versorgungsspannung beeinflusst werden und zum Anderen die Eingangsspannung am ESP32 nicht über für ihn tödliche 3,5 V ansteigen kann. Die Vorwiderstände haben wir über sehr fein einstellbare Präzisionsspindeltrimmer ausgelegt, um sie nachträglich noch justieren zu können und damit den Messbereich über die volle 3,3 V-Spanne der Messeingänge spreizen zu können.

Zugegeben, die Überwachung von Kühlschrank- und Gefrierboxtemperatur fällt wohl eher unter das Stichwort 'Luxus', als 'Sicherheit'. Aber die Integration der One-Wire Temperatursensoren ging schnell von der Hand, kostete nur einen ESP32-Pin und ist - ganz ehrlich - wirklich praktisch im Segelalltag, da uns das starke Kühlaggregat der Andra schon so manche Gurke zu Stangeneis und Milch-Tetrapack zum kompakten Eiswürfel gefroren hat. Der Dallas DS18B20 ist ein robuster, kabelgebundener Temperatursensor, wasserdicht und mit Edelstahlsonde, den wir - neben der Messung in den Kühlgeräten auch noch für Motorraum- und Außentemperatur verwenden. So kann die Crew auch über einen langen Segeltag ohne Landstrom sicher sein, daß das Proviant gut gekühlt ist und am Abend ein auf den Punkt gekühltes Ankerbier wartet ;-)

Unsere Bilgensensoren: OceanTEC Tank-Geber

Wie oben schon beschrieben, haben wir klassische Tanksensoren des Herstellers OceanTEC verwendet, die beim Yachtaustatter AWN Niemeyer in verschiedenen Längen von 20 bis 50 cm erhältlich sind. Die Sensoren sind sehr robust, der Schwimmer blockiert durch den Edelstahlschutz auch in der teils unübersichtlichen und mit vielen Kabeln durchzogenen Bilge nicht und die Anschaltung an unser Messgerät ist durch den Widerstandbereich von 30 bis 240 Ohm recht simpel.

Letztlich überrascht der Sensor uns dann aber doch durch nur 6 bis 15 Stufen Auflösung innerhalb seines Messbereiches (je nach Länge) und seine mangelnde Linearität. Bei niedrigen Füllständen steigt der Widerstand überproportional stark an, um bei hohen Füllständen nur noch wenig Veränderung zu zeigen. Potentiell wird der Füllstand in der Bilge daher eher über- statt unterschätzt, was aber im Anwendungsbereich unserer Bilgen-Messungen tendenziell von Vorteil ist. Wir verzichten daher auf eine rechnerische Korrektur der Zuordnung zwischen Widerstandswert und Füllstandsanzeige.

05 experimentalDrumherum: 4 Farb-LED, Beeper, Thermo-/Hygro-/Barometer, Uhr und NMEA2K

Um Meldungen und Warnungen effektiv und auffällig anzeigen zu können, statten wir das Gerät mit einer 5 mm 4-Farb LED und einem aufdringlichen Piezo-Beeper aus. Mit der matten 4 Farb LED lassen sich im Mix viele Farben darstellen, die wir später für unterschiedliche Zwecke nutzen können. LED und Beeper werden über die digitalen Ausgänge des ESP32 angesteuert. Über einen der Betriebsspannung von LED/Beeper angepassten Vorwiderstand wird der 3,3 V-Ausgabepegel des Prozessors über den Verbraucher auf Masse gezogen und schon ist die Anschaltung fertig.

Als kleinen Luxus spendieren wir dem Gerät auch noch einen Sensor für Temperatur, Luftfeuchtigkeit und und den athmosphärischen Luftdruck auf Basis des BME280 zur Erfassung der Umgebungsbedingungen unter Deck. Für den Anfang haben wir erst einen Marine-Barograph eingebaut, damit der Skipper sich einen Überblick über den Luftdruckverlauf der letzten Woche verschaffen kann und sogar bei schnellen Druckabfällen oder -anstiegen zeitnah vor Sturmgefahr gewarnt wird. Dafür ist es uns auch wichtig, dass Messwerte in Barometer und den Log-Dateien den korrekten Zeitpunkten zugeordnet werden können, also verpassen wir der Schaltung eine batteriegepufferte, an den I2C-Bus angeschlossene Echtzeituhr. 

Weiterhin integrieren wir über den SPI-Bus ein CAN-Modul, welches für den Anschluss unseres NMEA2000-Bus der SY Andra sorgt. Das CAN-Bus Modul wird softwareseitig über die Arduino Bibliothek von AK-Homberger angesprochen. NMEA2000 Datagramme lassen sich bereits monitoren und von unserem Bordcomputer auf dem NMEA2K-Bus versenden, aber die volle Integration können wir mangels Zeit erst in 2022 angehen. 

Im Experimentalaufbau sehen Sie noch das kleine 1,77-Zoll TFT-Display, von dem wir uns aber schnell zu Gunsten eines 2,8"-Bildschirms verabschiedet haben, um die Informationen etwas "augenfreundlicher" darstellen zu können.

07 platiene

Eine robuste Platine für den harten Segelalltag

Damit ist der gesamte Aufbau schon ziemlich genau beschrieben, den wir zunächst auf einem Experimentalsteckbrett aufbauten. Nun galt es, daraus eine professionelle Platine anzufertigen, denn im rauen Segelalltag und der salzhaltigen Luft der Ostsee können wir natürlich nicht guten Gewissens einer anfälligen Lochrasterplatine mit Fädelaufbau vertrauen.

Mit dem Fritzing-Projekt der Universität Potsdam ist eine leistungsfähige, freie Software verfügbar, die gegen eine kleine Spende genutzt werden kann, um am PC aus einem Schaltplan ein Leiterbahnrouting zu generieren. Toll sind die Möglichkeiten des Autoroutings, der Fehlersuche und die große Bauteilbibliothek. Im zweiten Schritt erzeugt die Software auf Wunsch ein doppelseitiges Leiterplattendesign (PCB), welches mit wenigen Mausklicks an den professionellen PCB-Fertiger und Partner Aisler übertragen werden kann.

Der Preis von knapp 10€ pro Platine ist wirklich fair (wir mussten allerdings eine Mindestmenge von 3 Stück bestellen), aber die Geschwindigkeit der Fertigung, die Möglichkeit von Änderungen bis Stunden vor Fertigungsbeginn und vor allem die Qualität der fertigen Platine begeistert uns. Keine Frage, diese Software und Platinenfertigung ist ein "Winning-Team" und wir können das Projekt nur wärmstens weiterempfehlen. Es wird nicht unser letztes Projekt mit Arduino, Expressif, Fritzing und Aisler gewesen sein :-) 

Falls Sie sich fragen, was denn auf der Platine oben rechts diese große Fläche von Lötpunkten ist: Wir hatten schlicht und ergreifend in dieser Version 3.2 noch Platz frei. In der aktuellen Version 3.4 haben wir den Platz inzwischen dem SD-Card-, den ADS1115- und NMEA2000-Modul geopfert. An dieser Stelle: Haben Sie eine Idee für eine wünschenswerte Funktion? Dann schreiben Sie uns doch gerne hier ;-).

08 bestueckt

Bestücken und Zusammenbauen

Nach soviel Experimentieren, Dimensionieren, Messen, Korrigieren, Nachjustieren und noch viel mehr Programmieren (inzwischen hat der Sourcecode des Arduino-Sketches mehr als 7.500 Zeilen) schreitet nun der Zusammenbau des Projektes voran. Im Foto links sehen Sie auf der bestückten Platine im aktuellen Release 3.4 unten die Verbinder für die Bilgensensoren, darüber die Trimmer als einstellbare Vorwiderstände, links daneben der Reserveplatz für einen weiteren ADS1115 für 4 weitere Messports und ganz links die Spannungsregelung für den ESP32 D1 Mini (Eingangsspannung von 6-24 V!). Unten links sehen Sie knopfzellengepuffert die Echtzeituhr. Darüber mitte links ist der Mikroprozessor ESP32 positioniert, rechts darunter in lila der Thermo-/Hygrosensor BME280 und ganz oben links in blau die Verbindungsleiste für den Anschluss der 4 Cursortasten.

09 frontplatteUnd für das gestresste Seglerauge gibt es eine perfekte Frontplatte ;-)

Nach so viel investierter Arbeit wollen wir, dass Sie, unsere geschätzten Gäste an Bord, die Qualität dieses Gerätes auch von außen erahnen können. Und das geht am besten mit einer perfekt gefertigten Frontplatte. Sie merken, wir sind ziemlich begeistert von diesem Service, den die Firma Schaeffer bietet. In einem auf den PC heruntergeladenem Programm entwerfen wir zunächst die Frontplatte auf Bruchteile von Millimetern genau, mit all den Bohrungen, angefasten Kanten, abgerundeten Ecken, eingefärbten Markierungen und vertieften Beschriftungen. Mit der Software können wir zwischen Preview und Design beliebig wechseln und das virtuelle Ergebnis der Arbeit sofort dreidimensional darstellen und bestaunen. Nach -zigsten Iterationen fassen wir uns ein Herz und drücken auf den in der Design-Software integrierten Bestellknopf.

Nach schon einer Woche ungeduldigen Wartens halten wir staunend das - mit 60€ zugegeben nicht ganz billige - Ergebnis in der Hand. Wow - auch das hat sich mehr als gelohnt. Die Platte sieht genial aus. Hochpräzise gefertigt, selbst die kleinen Bohrlöcher zur Abdeckung des Piezolautsprechers, es gibt nicht die geringste Toleranz oder Macke. Perfekt! Auch diesen Service können und wollen wir wärmstens weiterempfehlen!

10 GehaeuseMeine größte Angst: Wo ein passendes Gehäuse herbekommen?

Und damit kommen wir zu dem Teil, vor dem ich die größten Manschetten hatte. Zugegeben, ich bin Informatiker, die haben Ahnung vom Programmieren und auch Spannungen und Ströme sind noch ok, wenn Sie sich in gewissen, digitalen Schranken bewegen ;-).  Aber so ein Gehäuse muss gebogen, gebohrt, Gewinde geschnitten und gefeilt werden und das sieht dann schnell alles andere als gut aus.

Da kommt mir so ein 30 Jahre alter Langwellenempfänger, den wir auf der SY Andra eigentlich nicht mehr brauchten, gerade richtig. Und das Loch im Navigationspanel müssten wir auf diese Weise nichtmal großartig verändern ;-) Ich gebe zu, hier treffen Aufräumfimmel, Anspruch und Faulheit in einer idealen Mischung zusammen und so enferne ich schnell die alte Platine mit dem altehrwürdigen, noch recht hardware-intensiven Digitalelektronikaufbau der 80er Jahre und die restlichen Innereien. Frontplatte und Rückplatte ersetzen wir mit eigenen Alu-Platten und schon war das neue Zuhause für die Digitalelektronik unseres Bilgengerätes bezugsfertig. 11 zusammenbau

Die Rückwand bekommt einige Schalter für An-/Aus, Displayhelligkeit und Abschaltung des akustischen Alarms, sowie USB-Buchse (Programmierung des Microcontrollers) und Steckkontakte für die 12 Sensoren.

Das Ergebnis unseres Yachtinformationssystems können Sie ganz oben in diesem Blogartikel auf dem ersten Bild sehen. Die Software stellt die Füllstände unserer Bilgen, die Batterien und Tanks in verschiedenen Instrumenten und Balkendiagrammen grafisch dar. Wenn 45 Sekunden-Durchnitte Schwellwerte überschreiten, werden akustische und optische Warnungen ausgegeben und der Skipper mit einer Anleitung zum Lenzen (Ventilstellungen, Schalterbedienung, etc.) unterstützt. In einem Detailmodus kann der Skipper eine bebilderte Schritt-für-Schrittanleitung zu Fehlerbeseitigung anzeigen lassen. Im Hintergrund berechnet das Gerät Durchschnitte der Messwerte über Tageszeiträume, speichert diese in einer Historie und zeigt sie an. Mein persönlicher Favorit ist die Darstellung des Luftdruckverlaufes der letzten 7 Tage, die dem Skipper eine gute Unterstützung bei der Wetterbeobachtung bietet und zudem selbständig eine abgestufte Sturmwarnung bei schnell heranziehenden Hoch- und Tiefdruckgebieten liefert.

Zu guter Letzt:

In der Chartersaison 2021 wurde unser Yachtinformationssystem erstmalig im Livebetrieb eingesetzt und hat die Feuertaufe bestanden. Die Möglichkeit, die Bilgen zu überwachen, ohne ständig die Bodenbretter anheben zu müssen, wurde von unseren Kunden am meisten gelobt. Im folgenden Winter 2021/22 haben wir das Gerät gegenüber der Startversion nochmal erweitert (hinzugekommen sind wie oben schon dargestellt Batterie-, Tankmessung,  OneWire-Sensoren und die Anbindung an den bordeigenen NMEA-2000-Bus). 

Und dann sind wir sehr gespannt, welches Feedback Sie, unsere Kunden, uns in der nächsten Segelsaison geben werden. Erkennen Sie den Mehrwert, die Bodenbretter nicht immer herausnehmen zu müssen, um die Bilgen zu überprüfen? Haben Sie Vertrauen in dieses ominöse Gerät, welches vorgibt, über das Vorgehen in allen Tiefen der Andra informiert zu sein? In diesem Sinne freuen wir uns über Ihre Anmerkungen, Fragen, Kommentare, Verbesserungsvorschläge und Erfahrungen, die Sie uns mitteilen möchten. Und wir teilen auch gerne unsere Erfahrungen mit Ihnen, wenn Sie an einem solchen Gerät oder dem Nachbau interessiert sind.

 

Einstweilen wünschen wir Ihnen stets eine Handbreit mehr Abstand vom Virus, als notwendig und bleiben Sie uns gewogen!

Ihr Till Maass

 

01 fertig

Bauteilliste:

  • 4 x OceanTEC Tank-Geber 205-510 mm, Kosten 40-70€ je nach Länge, Quelle AWN Niemeyer
  • 1 x ESP32 D1 Mini NodeMCU, Kosten 9€, Quelle: AZ-Delivery auf Amazon
  • 1 x 2,8"240x320 LCD-Bildschirm SPI TFT Serial Port-Modul mit PCB ILI9341 5V / 3,3V, Kosten unter 17€, Amazon.de
  • 1 x SD-Card Reader mt SPI-Bus, Kosten ca 2€, Quelle: AZ-Delivery auf Amazon.de
  • 1 x Real Time Clock RTC DS3231 I2C Echtzeituhr für Arduino, Kosten 6€, AZ-Delivery
  • 1 x Waveshare SN65HVD230 CAN Transceiver Board 3.3V, Kosten 6€, RobotShop.com
  • 4 x Digital-Analogwandler ADS114, 4-Port mit I2C-Bus, 16 Bit, Kosten 8€, Amazon.de
  • 1 x BME280 Temperatur- / Hygro- und Luftdrucksensor, Kosten 7€, Quelle AZ-Delivery auf Amazon
  • 4 x Dallas DS18B20 OneWire Temperatur-Sensoren, Kosten 3,5 €,  Quelle AZ-Delivery auf Amazon
  • 1 x Festspannungsregler TRACO TSR 2-2450, Kosten 13€,  Reichelt
  • Präzisionstrimmer 25 Gänge, 8 x 500 Ohm. 3 x 200 KOhm, 1 x 500 KOhm, 4 x 5 MOhm, Reichelt
  • Diverse Metallfilmwiderstände, 1/4 Watt, 2 x 92 Ohm. 4 x 220 Ohm, 1 x 250 Ohm, 5 x 47 KOhm
  • 16 x GX12–3 Pin Aviation Stecker Adapter, 12mm Gewinde mit Gummi Schutzkappe, Kosten 1€, China Ware auf Amazon 
  • Diverses Verbrauchsmaterial, einreihige Pfostenleisten, Schraubverbinder, etc