-
Notifications
You must be signed in to change notification settings - Fork 7
Tank Füllstände auslesen
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 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
- https://learn.adafruit.com/using-mcp23008-mcp23017-with-circuitpython/python-circuitpython
- https://learn.adafruit.com/mcp230xx-gpio-expander-on-the-raspberry-pi/using-the-library
- 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.
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.
Erforschen der Reed Kontakte und des Magnetschwimmers .... muss noch erfolgen ....
CaravanPi - smart Caravan based on Raspberry Pi
(c) Josef Spitzlberger, Schloss Lustheim, Munich, Germany, 2019ff
CaravanPi Wiki
- Testaufbau
- Raspberry Pi OS installieren und initial konfigurieren
- MagicMirror installieren
- CaravanPi Skripte installieren
- MagicMirror vorbereiten & updaten
- OBSOLET V2 - Bottle Framework installieren
- Ein-/Aus-Schalter installieren
- Bewegungsmelder installieren
- Hupe/Buzzer installieren
- weitere Taster installieren
- OBSOLET V2 - Konfigurations-Website einrichten
- Temperatur Sensoren installieren
- Temperatur Sensoren anzeigen
- Gasflaschenwaage HX711 installieren
- Gasflaschenfüllstand anzeigen
- mehrere Gasflaschen Waagen anschließen
- I2C-Bus einrichten
- Klimasensor installieren
- Klimasensor BME280 anzeigen
- Klimasensor BME680 anzeigen
- GPIO Ports mit MCP23017 erweitern
- Lage-Sensor installieren
- Lage-Sensor anzeigen
- I2C Extender - langes Kabel
- Tank-Füllstände auslesen
- LEDs zur Lageanzeige
- RGB-LEDs am MCP23017 betreiben
- LED Einbau im Testaufbau
- Caravan ausrichten im Testaufbau
ab hier altes WIKI, muss noch umgezogen werden
XX = in Bearbeitung NEU = neue Funktion in letzter Version
- Stromversorgung Grundsätzliches
- Testgerät bauen
- Verkabeln am Caravan
- Gasflaschen-Waage bauen
- LEDs am Caravan anbringen
- Temperaturfühler im Kühlschrank anbringen
- Klimasensoren innen & außen anbringen
- Stromversorgung Raspberry Pi
- Stromversorgung Monitor
- WLAN im Caravan
- CaravanPi in Betrieb nehmen
- Gasflaschenwaage in Betrieb nehmen
- Defaultwerte für Lage, etc eintragen
- NEU XX Vorüberlegungen
- NEU XX MariaDB installieren
- NEU XX CaravanPi Datenbank anlegen
- NEU XX phpmyadmin installieren
- NEU XX Grafana installieren
- NEU XX Grafana auf MagicMirror anzeigen
- NEU XX Pythonzugriff auf MariaDB
- NEU XX Problembehandlung MariaDB, Grafana
- NEU XX Vorüberlegungen
- NEU XX Flask installieren
- NEU XX Status-Website einrichten
- NEU XX vorhandene Websites migrieren
- NEU XX 230V Eingang prüfen
- NEU XX 12V Batterie prüfen
- NEU XX Gassensor