Skip to content

Tank Füllstände auslesen

Josef Spitzlberger edited this page Sep 14, 2020 · 22 revisions

In einem Caravan gibt es in der Regel zwei Tanks, den Frischwassertank und den Fäkalientank der Toilette. In meinem Caravan sind für beide Tanks bereits entsprechende Füllstandsanzeigen vorhanden. Diese möchte ich jedoch ebenfalls über den CaravanPi zugreifbar haben.

Im Frischwassertank ist der übliche Füllstandssensor mit den unterschiedlich langen Metallstäben verbaut. Im Fäkalientank gibt es einen Schwimmer mit Magneten, der über REED-Kontakte ausgelesen wird. Den Frischwassersensor habe ich über einen ULN2003 Chip "angezapft" und ausgelesen. Für den Fakalientank habe ich eigene Reed-Kontakte verbaut und lese diese aus.

Da bei mir die Toilette über den Frischwassertank das Spülwasser erhält, kann für das Ablesen der beiden Tanks die gleiche Logik angewandt werden. Der Logik liegt zugrunde, dass sich der Wasserstand nur ändert, wenn die Pumpe läuft. Damit kann also das Anlaufen der Pumpe als Startsignal für eine Messung genommen werden. Natürlich sollte auch zum Start des CartavanPi eine Messung erfolgen.

Ablauf:

  • Pumpe läuft an
  • Nach dem letzten Anlaufen der Pumpe abwarten, bis sich alles beruhigt hat (ca. 5 Minuten)
  • Messung starten
  • Werte anzeigen
  • Warten bis zum nächsten Start der Pumpe

Die Signale von den Füllstandssensoren lege ich auf die noch freien GPIO Kontakte der beiden MCP23017 GPIO Expander. Die Füllstandssonden werden für die Messung über das Originaltableau mit einer Speisespannung von ca. 4,3 V gespeist. Damit die GPIO Ports nicht beschädigt werden, müssen entsprechende Widerstände vor die Ports geschaltet werden.

Die Pumpe wird über 12 V angesteuert. Die Zuleitung der Pume lege ich über einen Spannungsteiler ebenfalls auf einen GPIO Port. Das Anheben der Spannung beim Einschalten der Pumpe möchte ich über einen Interrupt abfangen. Die MCP23017 sind in der Lage Interrupts (Interrupt-on-Change) zu erzeugen/verarbeiten. Allerdings ist dazu von jedem MCP23017 ein bzw. zwei Verbindungen (Pins INTA und INTB; falls gemirrored nur eine Leitung)zu Raspberry GPIO Ports notwendig. Da ich nur einen Input-Interrupt benötige, spare ich mir die Interruptbehandlung am MCP23017 und lege die Pumpe auf eine noch freien GPIO Port des Raspberry.

Das Auslesen der Input Pins am MCP23017 erledige ich über die Adafruit Bibliothek für den MCP23017.

Adafruit Bibliothek für MCP23017 installieren

Adafruit bietet einen Bibliothek zum Auslesen des MCP23017 an. Um diese zu installieren führen wir nachfolgendes Kommando aus:

sudo pip3 install adafruit-circuitpython-mcp230xx

siehe hierzu auch

Frischwassertank Sensor anzapfen

- ACHTUNG: Noch in der Entwicklung - daher häufige Änderungen - optimale Lösung noch nicht gefunden

Der "Sensor" im Frischwassertank, also die Sonde (Schaudt) mit bei mir 2 gleichlangen und weiteren drei unterschiedlich langen Metallstäben, wird über die 12 V Anlage des Caravan versorgt und auf der Caravan-eigenen Anzeige (Schaudt LT 415) dargestellt. Bei mir ist die Anzeige nicht ständig aktiv, sondern wird über einen Taster aktiviert. Erst dann wird im Tank an den Speisestab eine Spannung von ca. 4,3 V angelegt.

Da wir den Füllstand vom Raspberry aus abfragen wollen, müssen zwei Dinge geregelt werden:

  • Die Sonde ist 4,3 V versorgt, die GPIOs am Raspberry sind mit 3.3 V für high zu versorgen
  • Die Sonde ist nur dann unter Spannung, wenn der Taster gedrückt wird. Wir benötigen während der Messung also ca.5 V an der Sonde, die wir selbst steuern oder die immer anliegt. Letzteres wollen wir wegen der dann stattfindenden Elektrolyse natürlich vermeiden.

Die Entkoppelung des Raspberry von den Füllstandssensoren und der 12 V Zuleitung zur Pumpe erledigen wir über den Chip ULN2003. Die Spannungsdifferenz bei der Pumpe bauen wir über einen Spannungsteiler aus Widerständen ab. Die GPIO Ports dxer Füllstandssensoren schützen wir ebenfalls über Widerstände.

CaravanPi - ULN2003

Die Widerstandswerte sind die errechneten Werte. Da ein 8,7 kOhm Wiederstand schwewr zu beschaffen ist und bei einem Spannungsteiler 15% Toleranz möglich sind, verwende ich 8,2 kOhm Widerstände.

Die kleine Platine sieht so aus.

CaravanPi - Platine

CaravanPi - Platine

Fäkalientank anzapfen

Erforschen der Reed Kontakte und des Magnetschwimmers .... muss noch erfolgen ....

CaravanPi Wiki

1 Installationsanleitung

2 Bauanleitung

Grundaufbau

Sensoren, etc. installieren

Anzeigen installieren

Raspberry stabilisieren

Platine entwerfen

3 ursprüngliche Entwicklung

4 Dokumentation

5 Updates

ab hier altes WIKI, muss noch umgezogen werden

XX = in Bearbeitung NEU = neue Funktion in letzter Version

Einbau im Caravan

Inbetriebnehmen und Kalibrieren

CaravanPi Updates

Erweiterungen

Grafische Auswertungen

Statuswebsite

weitere Sensoren

Clone this wiki locally