Hallo Zusammen!
Wie in einem anderen Post von mir beschrieben, bin ich gerade dabei einen Aquarium-Computer zu bauen. Dieser ist für mein Meerwasser-Aquarium. Eine automatische Nachfüllanlage und eine Temperaturerfassung konnte ich schon realisieren.
Jetzt würde ich gerne die Salinität (den Salzgehalt im Wasser) bestimmen.
Dieser liegt bei 25°C bei 35psu. Also 35g Salz / L Wasser.
Ich hatte zuerst versucht etwas über den TDS - Sensor zu erfassen. Doch die am Markt erhältlichen haben nur eine Range von 0 - 1.000 ca. Es müssten jedoch mindestens 33.280 möglich sein. Also ist das schonmal raus.
Doch wie wäre es mit der Leitfähigkeit? Diese beträgt bei 35psu ca. 52mS/cm.
Gibt es eine möglichkeit die Leitfähigkeit zu messen? Habe nach Sensoren geschaut, leider nichts gefunden. Bzw nur einen aber der schafft nur bis 20 mS/cm.
Hat hier jemand noch eine Idee?
Leitfähigkeit ist Widerstand. Den kannst du ja bei maximal Salz, bei korekten Salz, bei minimal Salz messen. Dann hast du Eckpunkte für den Vergleich. Also der Stromfluss zwischen zwei Polen. Wie das bei der geringen Spannung ist, weiß ich nicht.
Hier ist ja das Thema. Ich bin ein Anfänger was das Programmieren von ESP, Arduino etc. angeht. Wie kann ich denn, ohne entsprechenden Sensor, die Leitfähigkeit eines Mediums messen?
Ich werde ja nicht nur einfach zwei offene Leitungen ins Wasser hängen und sagen müssen "Miss mir mal den Widerstand" oder?
man muss sich immer um seine Messtechnik kümmern. Mit Kontakten und Stromfluss frisst es die Kontakte weg. Egal wie egal womit, es muss alles gewartet werden. Ein Aquarium ist von Haus aus Wartungsintensiv. Darum habe ich keins.
ich hatte das Thema wegen Salzgehalt messen auch schon hier gestell und auch ein Lösung dafür bekommen die auch Funktioniert.
Als Hardware nutze eine TDS Sonde von DFRobot TDS Sonde
dann habe ich die Lib für den EC wert genommen und noch ein paar wenige Änderungen und siehe da es Funktioniert. Ich bekomme den Salzgehalt von meinem Schwimbecken angezeigt.
float voltage, ecValue, temperature = 25;
DFRobot_EC ec;
void e_zelle() // VNH5019 30Amp Motordriver
{
sensorwert = analogRead(Sensor);
SensorSpannung = (sensorwert / 1024.0) * 5.0; // Hier wird der Messwert in den Spannungswert am Sensor umgewandelt.
Ampere = ((SensorSpannung - Nullpunkt) / VpA); // Im zweiten Schritt wird hier die Stromstärke berechnet.
Amp = SensorSpannung *10.0;
}
void EC() // ermitteln des ec wertes
/***********Notice and Trou ble shooting***************
1. This code is tested on Arduino Uno with Arduino IDE 1.0.5 r2 and 1.8.2.
2. Calibration CMD:
enter -> ENTEREC the calibration mode
CALEC:ec value -> calibrate with the known ec value(25^c). e.g.cal:707
EXITEC -> save the parameters and exit the calibration mode
****************************************************/
{
static unsigned long timepoint = millis();
if (millis() - timepoint > 1000U) //time interval: 1s
{
timepoint = millis();
voltage = analogRead(EC_PIN) / 1024.0 * 5000; // read the voltage
//temperature = readTemperature(); // read your temperature sensor to execute temperature compensation
ecValue = ec.readEC(voltage, temperature); // convert voltage to EC with temperature compensation
Serial.print(F("temperature:"));
Serial.print(temperature, 1);
Serial.print(F("^C EC:"));
Serial.print(ecValue, 2);
Serial.println("ms/cm");
}
ec.calibration(voltage, temperature); // calibration process by Serail CMD
}
float readTemperature() {
//add your code here to get the temperature from your temperature sensor
}
float salzGehalt(float ecValue, float temperature) {
const float SF = 553;
float salzgehalt = 0;
float A1, A2, A3;
if (temperature <= 10) {
A1 = -0.044532198;
A2 = -0.013174538;
A3 = 1.085694313;
} else {
A1 = -0.073894632;
A2 = -0.010947644;
A3 = 1.09173096;
}
float mS_cm = ecValue;
float base = 10;
float exponent = (A1 + temperature * A2 + A3 * log10 ( abs(mS_cm)));
salzgehalt = pow(base, exponent);
salzgehalt = salzgehalt * SF/1000.0;
salz = salzgehalt;
return salzgehalt;
}
Tut mir leid, ich bin leider nicht so tief in der Materie was das Dielektrikum angeht. Das hier ist mehr ein Freizeitprojekt. Nicht dass es mich nicht interessieren würde aber davon habe ich nun wirklich keine Ahnung.
Den TDS Sensor habe ich, ich bin nur nicht davon ausgegangen, dass man damit auch den EC-Wert erfassen kann. Ich müsste mal schauen wie hoch das geht. Wir sprechen hier von 52mS/cm.