Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Moderator: Co-Administratoren
-
- Beiträge: 20
- Registriert: 25.12.2018, 15:36
- Danksagung erhalten: 5 Mal
Re: Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Hallo zusammen,
der von mir verwendete Sensor hat einen Messbereich von 0-5m und ist nur für Wasser geeignet. Das Kabel hat 6 m. Ich habe dieses dann verlängert und
die Auswerteeinheit in einem trockenen Kellerraum angebracht. Ist ja aufgrund der Stromschnittstelle unproblematisch.
Es gibt ihn auch für 0-10m mit 11m Kabel oder für Öl. Beide werden dann schon deutlich teurer als die von mir bezahlten 35 EUR.
Speziell bei der Verwendung in Heizöl würde ich ein Qualitätsprodukt vorziehen, aber da ist man dann schnell bei 150-300 EUR. Lohnt sich sicherlich nur für den professionellen Einsatz.
Gruss Automation-Fan
der von mir verwendete Sensor hat einen Messbereich von 0-5m und ist nur für Wasser geeignet. Das Kabel hat 6 m. Ich habe dieses dann verlängert und
die Auswerteeinheit in einem trockenen Kellerraum angebracht. Ist ja aufgrund der Stromschnittstelle unproblematisch.
Es gibt ihn auch für 0-10m mit 11m Kabel oder für Öl. Beide werden dann schon deutlich teurer als die von mir bezahlten 35 EUR.
Speziell bei der Verwendung in Heizöl würde ich ein Qualitätsprodukt vorziehen, aber da ist man dann schnell bei 150-300 EUR. Lohnt sich sicherlich nur für den professionellen Einsatz.
Gruss Automation-Fan
- NilsG
- Beiträge: 1717
- Registriert: 09.08.2013, 23:44
- System: CCU
- Hat sich bedankt: 397 Mal
- Danksagung erhalten: 30 Mal
- Kontaktdaten:
Re: Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Ok, Danke!
0-5m könnte ggf. reichen, da der Brunnen ja eh NIE komplett bis zum Deckel voll ist.
Auswerteeinheit im "trocknen Kellerraum" wird schon schwieriger; die müsste entweder im Brunnen bzw. am/im Schuppen - als Feuchtwarm - hängen
11m Kabel werden es aber locker sein müssen vom Brunnen bis zum/in den Schuppen.
Steht die Kabel-Länge in irgendeinem Verhältnis zu den Messwerten?!
Ließe sich da was "feuchtraumtaugliches" schaffen?!
Ich muss mich ja langsam, aber sicher mal mit einer Alternative befassen, sofern ich meine LevelJet nicht mehr zum Laufen bringe
Nils
0-5m könnte ggf. reichen, da der Brunnen ja eh NIE komplett bis zum Deckel voll ist.
Auswerteeinheit im "trocknen Kellerraum" wird schon schwieriger; die müsste entweder im Brunnen bzw. am/im Schuppen - als Feuchtwarm - hängen
11m Kabel werden es aber locker sein müssen vom Brunnen bis zum/in den Schuppen.
Steht die Kabel-Länge in irgendeinem Verhältnis zu den Messwerten?!
Ließe sich da was "feuchtraumtaugliches" schaffen?!
Ich muss mich ja langsam, aber sicher mal mit einer Alternative befassen, sofern ich meine LevelJet nicht mehr zum Laufen bringe
Nils
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- Beiträge: 20
- Registriert: 25.12.2018, 15:36
- Danksagung erhalten: 5 Mal
Re: Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Niels
11 m Kabellänge sollten kein Problem für die Genauigkeit werden, ist ja der Vorteil der 4-20mA Schnittstelle gegenüber einer Spannungsmessung.
Wenn du den Sensor wie ich über das HM Modul überträgst hast du eh nur 255 Werte zur Auflösung.
Ich hab meine Platinen noch mi Platinenlack versiegelt das sollte gegen Kondenswasser helfen. Denk aber dran wenn du dauerhaft misst brauchst du eine Stromversorgung, da die 4-20 mA je permanent fliesen. Mit ner Batterie wird das nix.
Gruß
Automation-Fan
11 m Kabellänge sollten kein Problem für die Genauigkeit werden, ist ja der Vorteil der 4-20mA Schnittstelle gegenüber einer Spannungsmessung.
Wenn du den Sensor wie ich über das HM Modul überträgst hast du eh nur 255 Werte zur Auflösung.
Ich hab meine Platinen noch mi Platinenlack versiegelt das sollte gegen Kondenswasser helfen. Denk aber dran wenn du dauerhaft misst brauchst du eine Stromversorgung, da die 4-20 mA je permanent fliesen. Mit ner Batterie wird das nix.
Gruß
Automation-Fan
-
- Beiträge: 655
- Registriert: 15.07.2006, 12:50
- Wohnort: Greven
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 18 Mal
Re: Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Bist Du mit der Anleitung, Software usw. schon weiter gekommen?
Ich würde den gerne nachbauen.
Im Moment habe ich dieses im Einsatz.
https://forum.iobroker.net/topic/16773/ ... lsonde/156
Ich würde Deine "Version" auch gerne mal testen
Grüße
Manfred
Ich würde den gerne nachbauen.
Im Moment habe ich dieses im Einsatz.
https://forum.iobroker.net/topic/16773/ ... lsonde/156
Ich würde Deine "Version" auch gerne mal testen
Grüße
Manfred
-
- Beiträge: 655
- Registriert: 15.07.2006, 12:50
- Wohnort: Greven
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 18 Mal
Re: Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Ich habe auch so einen Pegelsensor. Den gibt es beim netten Chinesen auch für Heizöl.
https://forum.iobroker.net/topic/16773/ ... lsonde/157
https://de.aliexpress.com/item/32817435 ... 4c4deYKSwZ
Grüße
Manfred
-
- Beiträge: 20
- Registriert: 25.12.2018, 15:36
- Danksagung erhalten: 5 Mal
Re: Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Hallo,
So hatte über die Weihnachtsferien etwas Zeit und habe nun meinen 2. Füllstandmesser gebaut.
Der erste läuft seit Mai 19 ohne Störung und nun ist es an der Zeit meine 2. Zisterne damit auszurüsten-
Folgende Funktionen laufen bereits:
-Füllstand und Temperatur am Gerät anzeigen
-Füllstand an die HM-Zentrale senden und am PC und Handy anzeigen
-Sensorüberwachung, bei Störung am Gerät un in der HM anzeigen
-Email Benachrichtigung bei niedrigen Füllstand
-Remote Steuerung meiner Pumpe lokal am Füllstandmesser oder über die HM am PC/Handy
Hier schon mal die Doku für Interessierte. Wie gesagt, ich habe vor 20 Jahren das letzte mal programmiert. SW kann man bestimmt schlanker und komfortabler realisieren. Die SW läuft bei mir aber seit Mai 19 ohne Probleme.
Nächste Schritte:
Evtl. graph. Darstellung des Füllstand am OLED
Optimierung Email Benachrichtigung und Sensorüberwachung
Einbindung in Bewässerungsanlage und Berücksichtigung der Wettervorhersage
usw. Layout/Schaltung Gruß
Automation-Fan
So hatte über die Weihnachtsferien etwas Zeit und habe nun meinen 2. Füllstandmesser gebaut.
Der erste läuft seit Mai 19 ohne Störung und nun ist es an der Zeit meine 2. Zisterne damit auszurüsten-
Folgende Funktionen laufen bereits:
-Füllstand und Temperatur am Gerät anzeigen
-Füllstand an die HM-Zentrale senden und am PC und Handy anzeigen
-Sensorüberwachung, bei Störung am Gerät un in der HM anzeigen
-Email Benachrichtigung bei niedrigen Füllstand
-Remote Steuerung meiner Pumpe lokal am Füllstandmesser oder über die HM am PC/Handy
Hier schon mal die Doku für Interessierte. Wie gesagt, ich habe vor 20 Jahren das letzte mal programmiert. SW kann man bestimmt schlanker und komfortabler realisieren. Die SW läuft bei mir aber seit Mai 19 ohne Probleme.
Nächste Schritte:
Evtl. graph. Darstellung des Füllstand am OLED
Optimierung Email Benachrichtigung und Sensorüberwachung
Einbindung in Bewässerungsanlage und Berücksichtigung der Wettervorhersage
usw. Layout/Schaltung Gruß
Automation-Fan
Code: Alles auswählen
//*******************************************************************************************************
//***Füllstandmessung mit 4-20 mA Hydrostatic Sensor - Temperaturmessung mit BME280 und OELD Ausgabe***
//*** Version 2.0.a 28.04.2019 Automation Fan ***
//*******************************************************************************************************
//*** Anlagen Daten Zisterne 2, zur Kalibrierung: Sensor 23 cm über Boden (offset); 33 (55) cm = 1000 Liter gemesssen; 190(213)cm =5757 Liter = max Füllstand
// *** Spannungsmessung, Umsetzung 4-20mA Sensor Wert in 8 Bit Wert zur Übergabe an Homematic ***
const auto DEBUG_ENABLE = true; // Debugmodus einschalten
const auto BAUD_RATE = 9600; // baud rate for monitoring [bits/s]
int Offset4mA = 51; // Offset sensor = 4,18 mA * 239 Ohm = 1 V; 1/5V * 1023=205/4=51
int Fuellstand_Liter = 0; // Füllstand zurücksetzen
int Zisterne_max = 15658; // theoretisches max Fassungsvermögen bei 5 Meter Füllstand der Zisterne in Liter
byte highByte, lowByte;
int Pause_Ausgabe = 20000; //Pause bis zum nächsten Durchlauf
// *** BME280 Sensor, Temperaturmessung über I2C Bus zur Ausgabe an OLED ***
#include <Wire.h> //I2C Bus
#include <SPI.h> //I2C Bus
#include <Adafruit_Sensor.h> //BME280
#include <Adafruit_BME280.h> //BME280
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
int offsettemp = 1; //Korrekturwert Temperatur
Adafruit_BME280 bme; // I2C
unsigned long delayTime;
//*** OLED 128x64, Kontrolldisplay zur lokalen Anzeige von Füllstand und Temperatur ***
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// OLED Funktion ***
void textausgabe(void) {
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(10, 0);
display.setTextSize(2); // Draw 2X-scale text
display.println(F(""));
display.print(F(" "));
display.print(bme.readTemperature() - offsettemp);
display.print(F(" C"));
display.display(); // Show initial text
delay(3000);
display.clearDisplay();
display.setTextSize(1); // Draw 1X-scale text
display.setTextColor(WHITE);
display.setCursor(10, 0);
display.println(F(""));
display.println(F(" Zisterne Garten "));
display.println(F(""));
display.println(F(""));
display.setTextSize(2); // Draw 2X-scale text
display.print(F(" "));
display.print(Fuellstand_Liter);
display.print(F(" l"));
display.display(); // Show initial text
delay(1000);
}
//*** Kontrollausgabe am Seriellen Monitor ***
void setup() {
// put your setup code here, to run once:
const auto DEBUG_ENABLE = true; // enable debug messages over serial port
Serial.begin(9600);// Baudrate 9600
//*** Spannungsmessung, Umsetzung 4-20mA Sensor Wert in 8 Bit Wert zur Übergabe an Homematic ***
Serial.println(F(" "));
Serial.println(F("***Fuellstandmessung 4-20mA***"));
Serial.println(F("***Uebergabe 8Bit an HM***"));
pinMode(LED_BUILTIN, OUTPUT);
// HomeMatic 8-bit transmitter
// set PB0 - PB4 and PD5 - PD7 to output
DDRB |= 0b00011111;
DDRD |= 0b11100000;
if (DEBUG_ENABLE) {
Serial.begin(BAUD_RATE);
}
// Serial.println(F("BME280 test"));
bool status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
Serial.println("-- BME280 Sensor ok --");
delayTime = 1000;
Serial.println();
//************************************************
// OLED initialisieren
// Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x64
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
}
// Clear the buffer
display.clearDisplay();
//display.display(); // is NOT necessary after every single drawing command,
// unless that's what you want...rather, you can batch up a bunch of
// drawing operations and then update the screen all at once by calling
// display.display(). These examples demonstrate both approaches...
textausgabe(); // Draw test text
}
// *** Funktion Spannungsmessung, Umsetzung 4-20mA Sensor Wert in 8 Bit Wert zur Übergabe an Homematic ***
int Fuellstandsensor() {
int i;
int MessV = 0; // Spannungsmessung am Pin =0
int MessVavg = 0; // Durchschnittswert der Spannungsmessung
int MessVavg8bit = 0; // Durchschnittswert der Spannungsmessung auf 8 Bit umgerechnet
for (i = 0; i < 20; i++) {
MessV = MessV + analogRead(0); //- Offset4mA; // sensor on analog pin 0
}
MessVavg = MessV / 20; // calculate the average
MessVavg8bit = (MessVavg / 4) - Offset4mA; // scale to 8 bits (0 - 255) and deduct 4mA offset
return MessVavg8bit;
}
// ***Hauptprogramm***
void loop() {
// put your main code here, to run repeatedly:
int Fuellstand;
Fuellstand = Fuellstandsensor();
//Berechnung Füllstand in Liter und Ausgabe auf Seriellen Monitor
Fuellstand_Liter = ((float)76.755) * Fuellstand;
//Fuellstand_Liter = ((float)59.6535) * Fuellstand - float(4098);
// Fuellstand_Liter = ((float)Zisterne_max / (float)254) * Fuellstand;
// fl = ((float)maxSteps / (float)PotiMax) * sensorValue;
// Step = (long)(maxSteps * sensorValue) / PotiMax;
Serial.print (Fuellstand_Liter);
Serial.print("\t");
Serial.print(F("Liter"));
Serial.println("");
//Sensorüberwachung
if (Fuellstand_Liter < 0) Serial.println (" Füllstansensor pruefen !");
if (Fuellstand_Liter < 0) Fuellstand = 255; // Fehlerausgabe an HM
if (Fuellstand_Liter > 1000) Serial.println (" genug drin !");;
//*** Es werden 2 Ports benötigt, da PORDB teilweise für Debug verwendet wird ***
lowByte = Fuellstand & 0x1F; // Nur die unteren 5 Bit PB0-PB4
PORTB = lowByte;
// Serial.println (lowByte);//Ausgabe zu Testzwecken
highByte = Fuellstand & 0xE0; // Nur die oberen 3 Bit PD5-PD7
PORTD = highByte;
// Serial.println (highByte); //Ausgabe zu Testzwecken
Serial.print(F("8 Bit Wert: "));
Serial.print("\t");
Serial.println (highByte + lowByte);//Ausgabe zu Testzwecken
// blink led - LED Ausgabe wenn Messung erfolgt ist
digitalWrite(LED_BUILTIN, HIGH);
delay(250);
digitalWrite(LED_BUILTIN, LOW);
//BME280 Ausgabe
printValues();
delay(delayTime);
textausgabe(); // Draw scrolling text
delay(Pause_Ausgabe);
}
void printValues() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature() - offsettemp);
Serial.println(" *C");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();
}
- NilsG
- Beiträge: 1717
- Registriert: 09.08.2013, 23:44
- System: CCU
- Hat sich bedankt: 397 Mal
- Danksagung erhalten: 30 Mal
- Kontaktdaten:
Re: Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Sehrt geil ...
Baust Du die auch "im Auftrag"?!?
Nils
Baust Du die auch "im Auftrag"?!?
Nils
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- Beiträge: 20
- Registriert: 25.12.2018, 15:36
- Danksagung erhalten: 5 Mal
Re: Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Hallo Nils,
leider nein, dafür fehlt mit die Zeit. Obwohl ich weitestgehend Module verwende braucht man doch ca 2-3 h fürs Löten und nochmal 1/2 h für die mech Bearbeitung und das Lackieren.
Ab morgen bin ich wieder in der Firma eingespannt und dann geht nur noch Feintunning an dem Projekt. Würde zwar auch Spass machen aber.....
Gruß
Automation-Fan
leider nein, dafür fehlt mit die Zeit. Obwohl ich weitestgehend Module verwende braucht man doch ca 2-3 h fürs Löten und nochmal 1/2 h für die mech Bearbeitung und das Lackieren.
Ab morgen bin ich wieder in der Firma eingespannt und dann geht nur noch Feintunning an dem Projekt. Würde zwar auch Spass machen aber.....
Gruß
Automation-Fan
-
- Beiträge: 31
- Registriert: 13.03.2021, 19:19
- System: CCU
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 1 Mal
Re: Komfort Füllstandmessung mit Hydrostatik Sensor, OLED Display und HomeMatic Anbindung
Moin,
der thread liegt ja schon eine Weile brach. Ich hole ihn trotzdem noch mal hoch.
Ich würde gerne meine Zisterne ebenfalls mit einem Drucksensor überwachen. Gefällt mir irgendwie besser als die UltraSchall Lösung.
Allerdings brauche ich eigentlich kein Display und auch sonst keine Zusatzfunktionen.
Mir reicht die Info des Füllstandes in der CCU.
Bin daher nicht sicher ob es sich für mich lohnt, die hier beschriebene Variante nachzubauen oder ob es ggf. was einfacheres gibt.
Jemand einen Tip??
Frage: Meine Zisterne ist ein liegender Zylinder mit "nur" 3500L, die Füllhöhe ist also nur ca. 1,5 m. Wenn ich es richtig verstanden habe
heißt das, vom Messbereich eines 5m Sensors, nutze ich nur 30%. Umgerechnet auf meine 3500L und eine Auflösung von 256/20mV das (bei einem Behälter mit geraden Wänden) eine Genauigkeit von ca. 41 Litern. Sehe ich das richtig?
Kurzes Update:
Die Frage hat sich erledigt. Hab mir statt dessen nach der Anleitung von Mathias https://github.com/mdzio/hm-currentloop
die "hm-currentloop" Platine zusammen gelötet. Das reicht für meine Anforderungen voll und ganz.
Danke für die vielen Rückmeldungen
Gruß,
Karsten
der thread liegt ja schon eine Weile brach. Ich hole ihn trotzdem noch mal hoch.
Ich würde gerne meine Zisterne ebenfalls mit einem Drucksensor überwachen. Gefällt mir irgendwie besser als die UltraSchall Lösung.
Allerdings brauche ich eigentlich kein Display und auch sonst keine Zusatzfunktionen.
Mir reicht die Info des Füllstandes in der CCU.
Bin daher nicht sicher ob es sich für mich lohnt, die hier beschriebene Variante nachzubauen oder ob es ggf. was einfacheres gibt.
Jemand einen Tip??
Frage: Meine Zisterne ist ein liegender Zylinder mit "nur" 3500L, die Füllhöhe ist also nur ca. 1,5 m. Wenn ich es richtig verstanden habe
heißt das, vom Messbereich eines 5m Sensors, nutze ich nur 30%. Umgerechnet auf meine 3500L und eine Auflösung von 256/20mV das (bei einem Behälter mit geraden Wänden) eine Genauigkeit von ca. 41 Litern. Sehe ich das richtig?
Kurzes Update:
Die Frage hat sich erledigt. Hab mir statt dessen nach der Anleitung von Mathias https://github.com/mdzio/hm-currentloop
die "hm-currentloop" Platine zusammen gelötet. Das reicht für meine Anforderungen voll und ganz.
Danke für die vielen Rückmeldungen
Gruß,
Karsten
CCU3(RaspberryMatic) mit CUxD und Mediola und ca. 90 Komponenten (überwiegend HmIP)
dazu
Raspi 4 mit "Historian" und "AnalyzerXS" zur Überwachung der CCU
dazu
Raspi 4 mit "Historian" und "AnalyzerXS" zur Überwachung der CCU