Schlagwort-Archive: dosierung

Automatische Dosierung für den Pool (Teil 3: ph und Redox mit Arduino messen)

Zu einer automatischen Pool-Dosierung fehlten mir noch die Mess-Elektroden und vor allem das, womit ich sie auslesen und die Werte zu FHEM übertragen kann. In FHEM kann dann die ganze Dosierlogik stattfinden und die Dosierpumpen entsprechend geschaltet werden. Das Auslesen von feinen elektrischen Spannungen auf den ph-/Redox-Elektroden ist nicht trivial. Es gibt auf dem Markt kaum fertige Geräte mit Netzanbindung, um ph/ORP-Werte auszulesen. Ich habe mich daher für einen Eigenbau mit Arduino entschieden und in den Wintermonaten wochenlang dran geschraubt.

Arduino-Uno-Clones und passende Erweiterungsmodule dazu bekommt man bei Aliexpress für sehr kleines Geld. Es gibt im Angebot auch ein ph-Verstärker-Modul mit einer BNC-Buchse für ca. 16 USD inkl. Versand, was ich letztendlich auch genommen habe. In diesem Modul werden die paar Millivolt, die eine Sonde produziert, in eine am Arduino-Analogeingang messbare Spannung von 0 bis 5 Volt umgewandelt (Anschlusspin Po). In dem Modul ist vermutlich auch etwas für eine Temperatur-Bereinigung des ph-Wertes verbaut (Pins To und Do). Wie das genau funktioniert, konnte ich jedoch nicht rausfinden. Es gibt auch andere  ph-Module für Arduino, die etwas mehr kosten, z.B. von Atlas Scientific, von Phidgets oder von Dfrobot.  Alle haben ohne weitere Zusätze wahrscheinlich ein Problem: Die fehlende galvanische Trennung. Spätestens sobald man zwei Elektroden an einem Arduino anschließt und im gleichen Wasser hält, liefern sie beide Schrottwerte, da die Ströme zwischen den Elektroden fließen. (Wobei ein Blogger aus Frankreich mit Phidgets-Modulen das irgendwie geschafft hat, ph- und ORP-Elektrode an einem Arduino zu betreiben.)

Ein fertiges Verstärker-Modul mit galvanischer Trennung habe ich nicht gefunden. Es gibt ein-zwei Projekte im Internet, aber nichts lieferbares. Einen Messverstärker selbst zusammenzulöten, erschien mir zu aufwändig, zumal ich nur rudimentäre Kenntnisse der Elektronik habe. Deswegen habe ich die galvanische Trennung so hergestellt, dass ich pro Elektrode einen eigenen Arduino Uno nehme und diesen über einen eigenen linearen Stromwandler auf AMS1117-5.0 Basis und einen isolierenden DC-DC-Wandler mit Strom versorge (ich habe die Murata-Module NME0505SC mit 1 Watt genommen). Somit wird jeder Arduino Uno als Ganzes schon in der Stromversorgung galvanisch entkoppelt. Die Versorgungsspannung muss übrigens auch sehr stabil sein, da sonst die analogen Readings des Arduino, die die Versorgungsspannung als Referenz nehmen, driften. Deswegen ist jeweils ein eigener linearer Regler vorgeschaltet.

Die beiden Arduinos mit Verstärker-Modulen machen bei mir wenig anderes als die analogen Eingänge zu lesen, die Werte zu glätten und mit den eigenen sehr günstigen 433MHz-Radio-Modulen rauszufunken. So bleibt die galvanische Trennung intakt. Eine Temperatur-Kompensation habe ich gar nicht implementiert, denn diese ist im ph-Bereich um 7.0 eh kleiner als jede Messtoleranz. In den Mess-Arduinos habe ich auch die Kalibrierungslogik für die Elektroden einprogrammiert. Für den eigentlichen Kalibrierungsvorgang haben diese Module zwei Taster (für Kalibrierpunkte ph 7.0 und ph 4.0 – man kann natürlich beliebige andere Werte einprogrammieren) bzw. einen Taster (Kalibrierpunkt ORP 465 mV) bekommen. Somit ist die Kalibrierung super einfach: Die Elektrode in die Pufferlösung reinhalten, bis sich der Wert stabilisiert, und einmal drücken. Einen Redox-Verstärker habe ich übrigens mit einer kleinen Modifikation aus einem ph-Verstärker gemacht. Die ph-/ORP-Sonden liefern ja beide Millivolts, nur in etwas unterschiedlichen Ranges.

Ein dritter Arduino Uno empfängt bei mir dann auf 433MHz die ph- bzw. Redox-Werte von den beiden Mess-Arduinos. An der Nummer Drei werden drahtgebunden auch andere Sensoren angeschlossen: für Druck, Temperatur und Durchfluss. Mit einem Ethernet-Shield für Arduino wird hier auch ein minimalistischer Webserver aufgemacht und FHEM kann alle Werte ablesen. Für eine stabile Internet-Verbindung musste ich dem W5100-Chip auf dem Ethernet-Shield die Beine Nr. 64 und 65 durchschneiden. So läuft er fest auf 10 Mbit/Fullduplex und nicht im Auto-Modus, was zumindest mit meiner Fritzbox 7390 oft zu Aussetzern geführt hatte. An diesem dritten Arduino habe ich auch ein I2C 20×4-LCD-Display angeschlossen, wo die Werte permanent visialisiert werden.

Ein großes praktisches Problem schon beim Messen im Glas Wasser war das Rauschen. Vor allem die Schaltnetzteile induzieren Störungen auf die sensiblen Elektroden und hauptsächlich auf ihre Kabel. Die abgelesenen Werte zeigen im Ergebnis eine große Streuung von bis zu einigen Prozent. Ich habe dann per Zufall rausgefunden, dass die Streuung wesentlich geringer ausfällt, wenn man den Minuspol des Gleichstromausgangs vom Netzteil einfach erdet. Zum Befestigen der Komponenten im Gehäuse hat sich eine transparente 2mm-PVC-Platte als sehr praktisch erwiesen. Ein Gehäuse mit transparentem Deckel erspart Ausschnitte für LCD. Bei Fragen zu Details und Verbesserungsvorschlägen immer gern.

Die ersten Experimente mit Arduino und ph-Modul
Die ersten Experimente mit Arduino und ph-Modul
Zwischenstufe: Zwei Arduinos, zwei Elektroden und ihre galvanische Trennung mit DC-DC-Wandlern
Zwei Arduinos, zwei Sonden und galv. Trennung
Vorläufige Endausbaustufe für meinen Auslesecomputer
Vorläufige Endausbaustufe für meinen Auslesecomputer
Messverstärker für ph-Elektrode
Messverstärker für die ph-Elektrode
ph-Arduino mit eigenem Stromregler, Kalibrierbuttons und Funkmodul auf einem Proto-Shield
ph-Arduino mit Zusätzen auf einem Proto-Shield
Arduino mit galvanischer Trennung und PH-Messmodul
Arduino mit Anschluss und  PH-Messmodul

Automatische Dosierung für den Pool (Teil 1: Dosierpumpen)

Über den Winter habe ich mir Gedanken gemacht, wie ich im Pool eine automatische Chemie-Dosierung einrichten kann. Üblich in Dosieranlagen ist die Nutzung von 12%-Natriumhypochlorit (Flüssigchlor) als Wasserdesinfektionsmittel und 50%-Schwefelsäure als PH-Senker. Beides ist Gefahrgut, kann aber trotzdem im Internet bestellt werden. Komplettsysteme für Dosierung kosten saftige Summen, deswegen baue ich das mit Hilfe vieler Infos aus den Foren selbst.

Die Verrohrung im Poolhäuschen musste ich eh umbauen, da der alte Astral-Behälter für Chlortabletten raus muss. Dafür kam ein Rohrabschnitt rein, in dem zwei Impfventile (3/8″), eine Tauchhülse für Temperatursensor (1/2″) und ein Anschluss für die Messstrecke (1/4″) gesetzt wurden. Mit Klebeabzweigen ist das auch sehr kompakt. Es entstand sogar Platz für ein großes Regal, auf dem zwei Chemiekanister in IKEA-Plastikwannen hingestellt werden. Alles bleibt superkompakt und passt weiterhin in das kleine Häuschen. Nicht optimal: Die Chemikalien müssen bei mir ggf. durch den Solarkollektor, bevor sie im Pool landen, da der Abzweig zum Kollektor erst im Poolschacht kommt. Aber das kann ich durch die Steuerung heilen: Einfach während der Dosierung (plus eine halbe Minute) das Solarventil öffnen.

Die Dosierpumpen von Seko sind relativ teuer, da sie mit stark konzentrierter Chemie umgehen müssen. Hier werden pro Pumpe mit Impfventil und Schläuchen ca. 125 EUR fällig. Außerdem muss der Peristaltikschlauch alle 1-2 Jahre erneuert werden. Ich steuere die Dosierpumpen wie auch andere Geräte mit schaltbaren FritzDect-Steckdosen an. Die Pool-Steuerung in FHEM prüft dabei möglichst sorgfältig, dass die Pumpe grade im Filterbetrieb läuft (und nicht etwa beim Rückspülen) und dass nicht gleichzeitig Chlor und Säure eingespritzt werden, jedes Mal wenn die Dosierung in kleinen Häppchen startet. Zur zusätzlichen Absicherung gegen Dauerdosierung  sind noch Einschaltwischer-Relais (Finder 80.21.0.240.0000) dazwischengeschaltet. Ich habe sie so eingestellt, dass sie nach max. einer Minute Dauerbetrieb die Dosierpumpen abschalten. Ein Test mit Wasser hat gezeigt, was aus dem Impfventil in etwa rauskommt: 22 ml pro Minute. Solange ich keine PH/ORP-Messeinrichtung habe, dosiere ich Chlor nach Gefühl und überprüfe mit DPD-Tabletten. Beim zugedeckten Pool reichen pro Tag insg. ca. 3-5 min Dosieren, um den Chlorgehalt im Wasser zu halten, also etwa 70-110 ml.

Neue Verrohrung mit Abzweigen kleben
Neue Verrohrung mit Abzweigen kleben
Impfventile und Chlor-Kanister in Aktion
Impfventile und Chlor-Kanister in Aktion
Seko-Dosierpumpen und ihre Ansteuerung mit FritzDect
Seko-Dosierpumpen und Steuerung mit FritzDect