pH-Sensor

http://sites.schaltungen.at/arduino-sketch/ph-sensor

http://www.linksammlung.info/

http://www.schaltungen.at/

                                                                                        Wels, am 2022-04-03

BITTE nützen Sie doch rechts OBEN das Suchfeld  [                                                              ] [ Diese Site durchsuchen]

DIN A3 oder DIN A4 quer ausdrucken
*******************************************************************************I**
DIN A4  ausdrucken   (Heftrand 15mm / 5mm)     siehe     http://sites.schaltungen.at/drucker/sites-prenninger
********************************************************I*
~015_b_PrennIng-a_arduino.sketch-ph.sensor (xx Seiten)_1a.pdf

pH-Elektroden  pH-Mess-Sonde  pH-Sonde  pH-Sensor

Quelle:
https://www.webers.de/pH-Elektroden?
https://de.wikipedia.org/wiki/pH-Elektrode
https://www.at.endress.com/de/messgeraete-fuer-die-prozesstechnik/fluessigkeitsanalyse-produktuebersicht/pH-Elektroden-Messumformer
https://www.testo.com/de-AT/produkte/ph-messgeraet?gclid=CjwKCAjw0a-SBhBkEiwApljU0s3bKhcbyPeFGHwiI23yr_mWI5ACG8nBBjgQ8qFMCKJVbQIei0TtfhoCo5AQAvD_BwE

Lassen Sie uns den PH-Wert der Substanz für den täglichen Gebrauch sehen
Tabelle 1: PH-Wert der Substanz für den täglichen Gebrauch
Substanz PH-Bereich
Zitronensaft 2.2 bis 2.6
Essig 2,5 bis 2,9
Apfelsaft 3.5
Kaffee 5,0 bis 5,5
Milch 6.5
Wasser 7.0
Meerwasser 8.0
Seife 9,0 bis 10,0
Bleichen 13.0



Leitfaden zur pH-Messung für Prozessanwendungen
Wird ein pH- oder Redox-Sensor bei normaler Raumtemperatur mit der am Ende der Elektrode aufgesetzten Originalaufbewahrungskappe gelagert, kann er ohne Leistungsverlust eine Lebensdauer von weit über einem Jahr erreichen.
Wie lange hält eine pH Elektrode im Aquarium?
Lebensdauer. Spätestens nach 1,5 Jahren muss eine neue ran. wobei man hier alle 6 Monate das Elektrolyt auswechseln muss.
Warum wird bei der Kalibrierung des pH Meters bei pH 7 eine Spannung gemessen?
Die Spannung muss zweimal bestimmt werden, damit die Steigung und der Nullpunkt der pH-Elektrode beziehungsweise der pH-Sonde bestimmt werden können. Für die Messung werden zwei verschiedene Messpunkte herangezogen. Diese müssen unterschiedliche pH-Werte aufzeigen.
Wie oft Sie Ihr pH-Meter kalibrieren müssen, hängt vom Gebrauch und eventuellen Verschmutzungen ab. Je höher diese Werte liegen, umso öfter müssen Sie den pH-Meter kalibrieren. Tun Sie dies mindestens 2 Mal im Monat.
Wie reinigt man eine PH Elektrode?
Reinigen Sie die Elektrode nach der Messung sofort mit entionisiertem, destilliertem Wasser. Überprüfen und Reinigen Sie die Elektrode regelmäßig. Vermeiden Sie Schmutzanhaftungen an der Membranoberfläche, am Diaphragma und im Innenraum. Messungen in aggressiven, heißen Medien führen zu einer Verkürzung der Lebenszeit.
Was ist eine Redox Sonde?
Die Redoxmessung im Schwimmbad ist ein Verfahren zur Bestimmung der Wirksamkeit der Wasserdesinfektion. Mit einer speziellen Elektrode wird ein Spannungswert in mV (Millivolt) ermittelt, der Auskunft über das Verhältnis von Desinfektionsmittel (Chlor) und Verunreinungen (organische Stoffe, Keime) gibt.
Warum wird die Kalibrierung zuerst bei pH 7 und danach erst bei pH 4 durchgeführt?
Die Reihenfolge, in welcher die Pufferlösungen verwendet werden, spielt für die Kalibrierung der Messgeräte keine Rolle. Demnach kann auch zuerst die Pufferlösung mit dem pH-Wert 4,0 verwendet werden, danach folgt die Lösung mit dem Wert 7,0.
Warum Glaselektrode kalibrieren?
Besonderheiten. Das Potential einer Glasmembran folgt nicht der Nernst-Gleichung. Aus diesem Grunde muss die Glaselektrode vor ihrem Einsatz kalibriert werden. Es handelt sich nicht nicht um eine Redox-Elektrode, sondern sie beruht auf einem Grenzflächenpotential.
Wie wird eine pH Elektrode kalibriert?
Die Kalibrierung wird mit einer Pufferlösung durchgeführt. Hierbei wird nur der Nullpunkt der pH-Elektrode überprüft und angenommen, dass die Steigung der verwendeten Elektrode in etwa der Nernst-Steigung entspricht. Der Zeitaufwand ist für diese Form der Kalibrierung am geringsten.
Was versteht man unter einer Pufferlösung?
Ein Puffersystem, kurz Puffer, ist ein Stoffgemisch, dessen pH-Wert (Konzentration der Wasserstoffionen) sich bei Zugabe einer Säure oder Base wesentlich weniger stark ändert, als dies in einem ungepufferten System der Fall wäre.
Ist der pH-Wert temperaturabhängig?
13,017). Die pH-Werte von Lösungen sind temperaturabhängig. Beispiel: Eine einmolare Phenollösung hat bei einer Temperatur der Lösung von 30 °C einen pKS-Wert des Phenols als Phenyl-OH von 10. Die Lösung hat einen pH-Wert von etwa 4,5.
Wie hoch ist der pH-Wert einer Zitrone?
Zitronensaft zum Beispiel hat einen pH-Wert von 2,4.
Wie funktioniert einstabmesskette?
Die pH-Einstabmesskette und deren Funktionsweise
Das pH-empfindliche Element ist die Glasmembran aus Silicatglas – meist eine Kuppe am unteren Ende der pH-Einstabmesskette. Die Oberfläche der Membran ist elektrisch negativ geladen. Bei einem niedrigen pH-Wert ergibt sich eine hohe Wasserstoffionenaktivität (H+).
Was ist das Asymmetriepotential?
Das Asymmetriepotential, hier mit Uas bezeichnet, ist ein Maß dafür, wie hoch die Elektrode von Haus aus vom idealen "0" - Punkt abweicht. Mit der Nullpunkt-Einstellung wird nun die linke Kurve parallel zu sich selbst soweit nach rechts verschoben, bis sie durch den Punkt pH = 7 geht.
Wie ist eine Glaselektrode aufgebaut?
Die Glaselektrode besteht aus einer dünnwandigen Glaskugel, die mit einer Lösung mit bekanntem und konstantem pH -Wert (Pufferlösung) gefüllt ist und in die Probelösung mit unbekanntem pH -Wert eintaucht.
pH-Elektroden sollen in KCl-Lösung gelagert werden
Warum soll eine pH-Elektrode nicht in Wasser gelagert werden?
Durch Osmose würde Wasser in die Elektrode gezogen und damit mittelfristig der Elektrolyt verdünnt. Dann ändert sich auch das Potenzial des Refernzelements.
Wichtig: Bitte achten Sie stehts darauf, dass sich bei der Messung der Füllstand des Elektrolyten stets oberhalb des Flüssigkeitsstandes der zu messenden Flüssigkeit befindet.
              Somit wird eine mögliche Kontaminierung des Elektrolyten vermieden.
Bei Gel-Elektroden besteht die Gefahr, dass der Elektrolyt ausgewaschen wird. Hierdurch verkürzt sich die Lebensdauer.
pH-Elektroden sollen in KCl-Lösung gelagert werden.
Zu empfehlen ist hier die "pH Elektrodenlagerlösung" Artikel-nr 2756549
KCL Lösung zur Aufbewahrung von Elektroden 50 ml
https://www.umwelt-electronic.de/bezugselektrolyte.htm

pH-Wertmessung – gut zu wissen:

Der pH-Wert ist ein wichtiger Indikator in zahlreichen chemischen und biochemischen Reaktionen und heißt übersetzt „Wasserstoffgewicht“. Warum?

  • Der pH-Wert quantifiziert die Konzentration der Wasserstoffionen in oder auf einem Medium. Dafür wird die Wasserstoffionenkonzentration in elektrische Spannung umgesetzt.
  • Die pH-Wert Skala reicht von 0 = extrem sauer (z.B. Salzsäure) bis 14 (extrem alkalisch/basisch wie z.B. Natronlauge).
  • Die pH-Messwerte erlauben genaue Aussagen über den sauren oder alkalischen/basischen Charakter eines Stoffes, bzw. seine Neutralität bei einem pH-Wert von 7. So kann eine gleichbleibende Qualität von Lebensmitteln oder Medikamenten sichergestellt werden.
  • Rein rechnerisch gibt es auch pH-Werte, die über oder unter der Skala liegen. Sie haben aber keine praktische Bedeutung.
Quelle:
https://www.chemie.de/lexikon/PH-Meter.html






A) Measure pH with a low-cost Arduino pH-Sensor-Board
B) pHmeter – Arduino pH Meter
C) DIY-pH-Meter mit Arduino und pH-Sensor und Kalibrierung auf Genauigkeit
D) pH Meter using Arduino Uno and LCD Display
E) DIY Ph Meter using PH Sensor & Arduino with OLED Display
F) Arduino PH Meter using PH Sensor
G) pH-Sensor VIDEOs



A) Measure pH with a low-cost Arduino pH-Sensor-Board
Messen Sie den pH-Wert mit einer kostengünstigen Arduino pH-Sensorplatine
www.e-tinkers.com/
Analog PH meter PH-4502C

Ich habe kürzlich ein Arduino-pH-Sensor-Kit zur Messung des pH-Werts meines Hydroponik-Setups gekauft, es ist billig, hat aber nur sehr wenige Informationen / Dokumente zur Verwendung, also habe ich beschlossen, es selbst herauszufinden, wie es funktioniert und wie man es benutzt.

Beliebte pH-Messkits für Arduino
Wenn Sie im Internet nach einem pH-Sensor mit Arduino suchen, sehen Sie wahrscheinlich 3 große kommerziell erhältliche oder massenproduzierte Lösungen:

1)
Atlas Scientific bietet qualitativ hochwertige und gut gestaltete Sensorkits für die pH-Messung an.
Das Gravity-Analog-pH-Kit besteht aus einem verbrauchergerechten pH-Sensor und einer Schnittstellenkarte sowie 3 Paketen mit Kalibrierpufferlösungen und kostet 65,00 $.
Die Hardware von Atlas Scientific ist von hoher Qualität, scheint aber nicht Open Source zu sein.
2)
DFRobot hat auch eine Lösung mit dem gleichen Namen Gravity  wie Atlas Scientific.
Seine Version 1 Gravity: Analoges pH-Sensor-Kit besteht aus einer pH-Sonde plus Sensorplatine und kostet 29,50 $.
Es gibt eine Version 2 von Gravity: Analog pH Sensor Kit , die mit der Platine mit verbessertem Design für 39,50 $ geliefert wird, indem Pufferlösungen und Befestigungsschrauben für die Platine enthalten sind.
DFRobot veröffentlichte seinen Schaltplan, das PCB-Layout und den Arduino-Code für Version 1 auf seiner Website und github unter der GPL2-Lizenz.
Aber es veröffentlicht nur das PCB-Layout für Version 2 ohne Schaltplan, daher weiß ich nicht, was genau im Design für die Version 2 verbessert wurde.
3)
Das dritte allgemein verfügbare pH-Sensor-Kit für Arduino, das Sie fast auf allen E-Commerce-Marktplätzen wie Taobao, AliExpress und Amazon sehen, ist dieses „mysteriöse“ pH-Sensor-Kit, das ich gekauft habe.
Sie können es für nur 17,00 $ für eine pH-Sonde mit der Sensorplatine finden.
Es ist „mysteriös“, weil es scheint, dass es mehrere chinesische Hersteller gibt, die dasselbe Board produzieren, aber ich kann nicht wirklich herausfinden, welcher Firma das Design tatsächlich gehört.
Ich habe es trotzdem gekauft, weil ich dachte, wenn ich verstehen könnte, wie die pH-Sonde funktioniert, und mit ein wenig „Reverse-Engineering“ des Schaltungsdesigns, um mir zu helfen, die Schaltung besser zu verstehen, dann sollte ich in der Lage sein, es herauszufinden heraus, wie es funktioniert.
Das passt gut zu meinem Tüftlergeist !

Abgesehen von diesen drei allgemein erhältlichen pH-Sensor-Kits gibt es noch andere auf dem Markt, aber sie sind eine relative Nische mit begrenzter Verbreitung.

Wenn Sie sich für die pH-Messung oder das pH-Sensor-Board interessieren, lesen Sie vielleicht weiter unter 




Liquid PH0 – 14 Value + BNC PH Electrode Probe Sensor Module for Arduino  HM-41272
PH-4502C  PH4502C   0-14 pH-Meter Wert Detektor modul   pH-Sensor with Module  TOL-0063  SKU: SEN-PH-01
pH Sensor Amplifier
https://www.diymore.cc/

https://www.diymore.cc/products/diymore-liquid-ph-value-detection-detect-sensor-module-monitoring-control-for-arduino-m?


Quelle:
https://deu.grandado.com/products/flussigkeit-ph-wert-erkennung-erkennen-sensor-modul-uberwachung-control-board-fur-arduino-bnc-elektrode-sonde-controller-1?
https://de.aliexpress.com/item/32797327021.html
https://de.aliexpress.com/item/32995322213.html
https://www.amazon.de/Liquid-PH0-14-Wert-Sensor-Modul-PH-Elektrode-Arduino/dp/B01LWLHPRR





Links

Atlas Scientific
https://atlas-scientific.com/ph/

Gravity analog pH Kit


https://atlas-scientific.com/kits/gravity-analog-ph-kit/

DFRobot
https://www.dfrobot.com/product-1649.html

1) Gravity: Analog pH Sensor Kit

https://www.dfrobot.com/product-1025.html

2) Gravity: Analog pH Sensor Kit

https://www.dfrobot.com/product-1782.html

A review on Seeed Studio pH and EC Sensor Kits – Part 1

https://www.e-tinkers.com/2020/07/a-review-on-seeed-studio-ph-and-ec-sensor-kits-part-1/

pH theory guide    cannot find

Arduino forum
pH sensor detection circuit design




a

a


Logo_pHsensor.sch
https://forum.arduino.cc/t/ph-sensor-detection-circuit-design/478631

https://en.wikipedia.org/wiki/Wheatstone_bridge


https://oxscience.com/the-wheatstone-bridge/


Using a NTC-Thermistor with Arduino and Unexpected ESP32 ADC Non-linearity
    // NTC B3950 Thermistor    // the formula for temp in kelvin is    //                 1    // T = ----------------------------    //     1/To + (1/beta) * ln(Rt/Ro)    //    // https://en.wikipedia.org/wiki/Thermistor    int ThermistorPin;    double adcMax, Vs;    double R1 = 10000.0;   // voltage divider resistor value    double Beta = 3950.0;  // Beta value    double To = 298.15;    // Temperature in Kelvin for 25 degree Celsius    double Ro = 10000.0;   // Resistance of Thermistor at 25 degree Celsius    void setup() {      Serial.begin(9600);      ThermistorPin = A0;      adcMax = 1023.0;   // ADC resolution 10-bit (0-1023)      Vs = 5.0;          // supply voltage    }    void loop() {      double Vout, Rt = 0;      double T, Tc, Tf = 0;      Vout = analogRead(ThermistorPin) * Vs/adcMax;      Rt = R1 * Vout / (Vs - Vout);      T = 1/(1/To + log(Rt/Ro)/Beta);  // Temperature in Kelvin      Tc = T - 273.15;                 // Celsius      Tf = Tc * 9 / 5 + 32;            // Fahrenheit      Serial.println(Tc);      delay(2000);    }

-------------------------------------------------------------------------------------------------------------------------
const float ADC_LUT[4096] PROGMEM = { 0, 17.0000,18.4000,19.8000,21.2000,22.8000,24.0000,25.8000,27.0000,28.8000,30.0000,31.6000,32.8000,34.0000,35.2000,36.6000,37.8000, . . . . . . 3990.6001,3991.0000,3991.8000,3992.6001,3993.0000,3993.8000,3994.6001,3995.0000,3995.8000,3996.6001,3997.0000,3997.8000,3998.6001,3999.0000,3999.80 }; void loop() { double Vout, Rt = 0; double T, Tc, Tf = 0; double adc = 0; if (esp32) { adc = analogRead(ThermistorPin); adc = ADC_LUT[(int)adc]; } else { adc = analogRead(ThermistorPin); } Vout = adc * Vs/adcMax; Rt = R1 * Vout / (Vs - Vout); T = 1/(1/To + log(Rt/Ro)/Beta); // Temperature in Kelvin Tc = T - 273.15; // Celsius Tf = Tc * 9 / 5 + 32; // Fahrenheit if (Tc > 0) Serial.println(Tc); delay(2000); }
Quelle:
https://www.e-tinkers.com/2019/10/using-a-thermistor-with-arduino-and-unexpected-esp32-adc-non-linearity/








Quelle:
https://electronics.stackexchange.com/questions/467643/how-to-calculate-the-value-of-the-thermistor-based-on-the-output-voltage-of-this



NTC Thermistor
https://en.wikipedia.org/wiki/Thermistor#Steinhart-Hart_equation

A review on Seeed Studio pH and EC sensor kits – Part 1(PH)”.
https://www.e-tinkers.com/2020/07/a-review-on-seeed-studio-ph-and-ec-sensor-kits-part-1/
https://www.e-tinkers.com/2020/07/a-review-on-seeed-studio-ph-and-ec-sensor-kits-part-2/

Hysteresis
Quelle:
https://en.wikipedia.org/wiki/Hysteresis






Wie funktioniert die pH-Sonde elektronisch?

Eine pH-Sonde besteht aus zwei Hauptteilen:
einer Glaselektrode und einer Referenzelektrode, wie im Bild unten gezeigt.
Ich bin nicht sehr gut in Chemie, also werde ich nicht versuchen, es so zu erklären, dieser Leitfaden zur pH-Theorie bietet eine sehr umfassende Erklärung der dahinter stehenden Theorie.
Kurz gesagt wird der pH-Wert im Wesentlichen durch Messen der Spannungsdifferenz zwischen diesen beiden Elektroden bestimmt.
Source: AN-1852 Designing with pH Electrodes, Texas Instruments
Typische pH-Sonde und Eigenschaften


Die pH-Sonde ist ein passiver Sensor, d. h. es wird keine Erregerspannung oder Erregerstrom benötigt.
Es erzeugt eine Ausgangsspannung, die linear vom pH-Wert der zu messenden Lösung abhängt.
Eine ideale pH-Sonde erzeugt einen 0V Ausgang, wenn der pH Wert bei 7 liegt (reines Wasser), und sie erzeugt eine positive Spannung (einige hundert Millivolt  max. +420mV), wenn der pH-Wert sinkt, und einen negativen Spannungspegel (max -420mV), wenn der pH-Wert steigt, verursacht durch das Wasserstoffeisen sich an der Außenseite (und Innenseite) der Membranglasspitze der pH-Sonde bildet, wenn die Membran mit Lösung in Kontakt kommt.
Die Quellenimpedanz einer pH-Sonde ist sehr hoch, da der dünne Glaskolben einen großen Widerstand hat, der typischerweise im Bereich von 10M Ohm bis 1G Ohm liegt.
Welche Meßschaltung auch immer mit der Sonde verbunden ist, muß sehr hochohmig sein, um den Belastungseffekt der Schaltung zu minimieren.

Hardware – Die pH-Sensorplatine erklärt
Die gekaufte pH-Sensorplatine wurde ohne Benutzerhandbuch, Schaltplan oder Beispielcode geliefert.
Ich bat den kleinen chinesischen Anbieter um Informationen, aber vergebens.
Ich habe mich für das „Reverse-Engineering“ des Schaltplans entschieden, aber schließlich finde ich den Schaltplan im Anhang dieser Diskussion im Arduino-Forum . Die pH-Sensorplatine kann basierend auf ihrer Funktionalität in 3 verschiedene Abschnitte unterteilt werden.
Ich färbe die drei Schlüsselabschnitte für die Diskussion hier mit unterschiedlichen Farben ein.

grün  gelb  blau

Funktionshighlights der pH-Sensorplatine 

- pH-Messkreis
Der hellgrüne Teil mit dem hochohmigen Operationsverstärker TLC4502 besteht im Wesentlichen aus einem Spannungsteiler und einem Eins-Verstärker.
Der pH-Ausgang (Po) stellt einen analogen Ausgang für die pH-Messung bereit.
Da die pH-Sonde zwischen positiver und negativer Spannung schwingt und da der TLC4502 mit einer einzigen Stromquelle betrieben wird, wird die Hälfte des TLC4502 als Spannungsteiler verwendet, um eine Referenzspannung von 2,5 V bereitzustellen, um den Eingang der pH-Sonde so zu „schweben“, dass der Ausgang von Po beträgt +/-2,5 V basierend auf dem pH-Wert.
Ein Potentiometer RV1 wird für Kalibrierungszwecke verwendet, auf die ich später noch näher eingehen werde.
Dieser Teil der Schaltung ist gut durchdacht und reicht für die Messung des pH-Wertes aus.
Die anderen Teile des Boards sind meiner Meinung nach nicht gut gestaltet und eher in der Kategorie „nice-to-have“ und nicht unbedingt erforderlich.

- pH-Schwellenwert-Erkennungsschaltung
Der gelbe Abschnitt bietet eine pH-Schwellenerkennungs-/Benachrichtigungsschaltung.
Beispielsweise könnten Sie das Potentiometer RV2 so einstellen, dass, wenn der pH-Wert einen Schwellenwert erreicht (z. B. 7,5), die ROTE LED D1 eingeschaltet wird (der digitale Ausgang Do ändert sich von hoch nach niedrig).
Alternativ können Sie es verwenden, um den unteren pH-Wert-Schwellenwert zu erkennen, sagen wir, wenn der pH-Wert unter 5,5 liegt, wird die ROTE LED ausgeschaltet und Do wechselt von niedrig zu hoch.
Aber Sie können mit dieser Schaltung nicht sowohl untere als auch obere Schwellen einstellen.
Meiner Meinung nach wird es einfacher sein, nur eine Softwarelösung zu verwenden als diese Hardwarelösung für die Schwellenwerterkennung.

- Schaltkreis zur Temperaturmessung
Der hellblaue/cyanfarbene Abschnitt der Platine besteht aus anderthalb LM358 OpAmp und liefert einen analogen Messwert bei To .
U2B von LM358 fungiert als nicht so genauer Spannungsteiler und liefert eine Spannungsreferenz von 2,5 V an eine Wheatstone-Brücke , die aus R13 – R15 und einem Thermistor TH1 besteht.
Der U3A verhält sich wie ein differenzieller OpAmp, der Ausgang wird dann durch einen Tiefpassfilter geleitet und durch einen nicht invertierenden OpAmp U3B weiter verstärkt.
Diese ganze Schaltung hat nichts mit der pH-Messung zu tun, zumindest nicht direkt.
Ich werde darüber gegen Ende dieses Artikels sprechen.

Der einzige Grund für die Temperaturmessung im Zusammenhang mit der Messung des pH-Werts ist, dass sich die Steigung der pH-Kurve ändert, wenn sich die Temperatur zwischen 0 und 100 Grad Celsius ändert.
Es ist daher wichtig, die Temperatur der Lösung zu messen und den Temperaturkompensationsfaktor in die pH-Berechnung einzubeziehen.

Eine interessante Sache ist, dass alle Hersteller für dieses Platinendesign, die ich auf dem Markt gesehen habe, den Temperatursensor (Thermisto) auf der Platine hatten, anstatt eine wasserdichte Thermistorsonde zu haben, wie die, die ich in meinem vorherigen Beitrag beschrieben habe.
Durch Löten des Thermistors an Bord, d.h. der Thermistor misst die Umgebungstemperatur in der Nähe der Platine anstelle der Temperatur der Lösung, in der der pH-Wert gemessen wurde, macht dies einfach keinen Sinn.
Dies lässt mich denken, dass all diese chinesischen Hersteller einfach das Design aus einem Schaltplan kopieren oder rückentwickeln, ohne den Zweck des Thermistors zur Temperaturmessung im Kontext der pH-Messanwendung zu verstehen.

Jetzt habe ich den Schaltplan studiert und verstanden, es ist Zeit, den pH-Sensor zu kalibrieren und einen Code für die Messung des pH-Werts zu schreiben!

Wie wird der pH-Sensor kalibriert?
Wie bereits erwähnt, schwingt die pH-Sonde konstruktionsbedingt zwischen negativen und positiven Werten.
Wenn der pH-Wert 7,0 beträgt, wird der pH-Ausgang um 2,5 V versetzt, sodass sowohl negative als auch positive Werte, die von der pH-Sonde erzeugt werden, als positive Werte im gesamten Bereich dargestellt werden können.
Dies bedeutet, dass bei einem pH-Wert von 0 der Po würde bei 0 V sein,
und wenn der pH-Wert bei 7 liegt, würde der Po bei 2,5 V liegen.
und wenn der pH-Wert bei 14 liegt, würde der Po bei 5 V liegen.

Um sicherzustellen, dass der pH-Wert bei 7,0 liegt, können wir den Messwert kalibrieren, um sicherzustellen, dass Po bei 2,5 V liegt, indem wir die Sonde vom Stromkreis trennen und den inneren Stift des BNC-Steckers mit dem äußeren BNC-Ring kurzschließen.
Messen Sie mit einem Multimeter den Wert des Po -Pins und stellen Sie das Potentiometer auf 2,5 V ein.
Keine Sorge, wenn Sie kein Multimeter haben, können Sie eine Arduino-Sketch schreiben, um den analogen Eingang zu lesen, indem Sie den Po an den analogen Eingang A0 des Arduino anschließen.

Arduino-Sketch

ph_calibrate.ino
#include <Arduino.h>const int adcPin = A0;void setup() {  Serial.begin(115200);}void loop() {  int adcValue = analogRead(adcPin);  float phVoltage = (float)adcValue * 5.0 / 1024;  Serial.print("ADC = "); Serial.print(adcValue);  Serial.print(";  Po  = "); Serial.println(phVoltage, 3);  delay(1000);}

Verbinden Sie Po mit dem Analog-Eingang A0 auf Arduino und G mit Arduino GND.
Führen Sie den Arduino-Sketch aus und öffnen Sie den seriellen Monitor der Arduino IDE, um den Messwert zu beobachten.
Stellen Sie das Potentiometer RV1 (das in der Nähe des BNC-Anschlusses auf der Platine) langsam ein, bis der Po -Messwert 2,50 V entspricht.

Dies setzt voraus, dass alle pH-Sonden gleich sind und genau 0V bei einem pH-Wert von 7,0 erzeugen, aber in Wirklichkeit unterscheiden sich alle Sonden geringfügig voneinander, insbesondere bei pH-Sonden für Verbraucher.
Auch die Temperatur wirkt sich leicht auf die Messwerte des pH-Sensors aus, daher ist es besser, eine pH-Pufferlösung mit pH = 7,0 zu verwenden, um die Sonde zu kalibrieren.
Alle Pufferlösungen haben auf ihrer Verpackung Informationen zur Temperaturkompensation, die Sie für Ihre Kalibrierung berücksichtigen können.
pH-Pufferlösung zur Kalibrierung


pH-Pufferpackungen für Kalibrierungszwecke sind in flüssiger Form oder in Pulverform erhältlich, die Flüssigkeitspackung ist einfach zu verwenden, aber die Pulverpackung ist gut für die Aufbewahrung.
Diese Lösungen werden in verschiedenen Werten verkauft, aber die gebräuchlichsten sind pH 4,01, pH 6,86 und pH 9,18.

pH-Werte sind über einen bestimmten Bereich (zwischen ph 2 bis ph 10) relativ linear, wir benötigen zwei Kalibrierungspunkte, um die lineare Linie zu bestimmen, und leiten dann die Steigung der Linie ab, sodass wir jeden pH-Wert mit einer bestimmten Ausgangsspannung berechnen können (siehe Diagramm in Abbildung 2 oben). Welcher Wert des pH-Puffers für diese zweite Kalibrierung zu verwenden ist, hängt von Ihrer Anwendung ab.
Wenn Ihre Anwendung die Messung einer sauren Lösung ist, verwenden Sie Pufferlösung für pH = 4,01 für die zweite Kalibrierung; buf Wenn Ihre Anwendung hauptsächlich zur Messung basischer/alkanischer Lösungen dient, verwenden Sie für die zweite Kalibrierung eine Pufferlösung mit pH = 9,18.
Da Hydroponik für den Gemüseanbau dazu neigt, mit einem pH-Wert zwischen 5,5 und 6,5 leicht sauer zu sein, verwende ich in meinem Fall eine Pufferlösung mit einem pH-Wert von 4,01 für meine Kalibrierung.

Um eine Kreuzkontamination zu vermeiden, tauchen Sie die Sonde einige Minuten in destilliertes Wasser, bevor Sie sie in verschiedene Pufferlösungen tauchen.
Um die Genauigkeit zu erhöhen, lassen Sie die Sonde einige Minuten in der Pufferlösung, bevor Sie den Messwert als Ergebnis übernehmen.

Verwenden Sie dieselbe Arduino-Sketch, um den Spannungswert für pH = 4,01 zu erhalten, und notieren Sie den Spannungswert.
In meinem Fall beträgt die Spannung 3,06 bei pH = 4,01.
Die Spannungsmesswerte bei ph von 4,01 Vph4 und bei pH von 7,0 Vph7 ermöglichen es uns, eine gerade Linie zu ziehen, und wir können die Spannungsänderung pro pH-Wert m erhalten als:


m = (ph7 - ph4) / (Vph7 - Vph4) /m = (7 - 4.01) / (2.5 - 3.05)m = -5.436


Der pH-Wert bei jedem Spannungsmesswert an Po lässt sich also mit dieser Formel ableiten:

pH = pH7 - (Vph7 - Po) * mi.e.pH = 7 - (2.5 - Po) * m

pH-Wert messen

Mit der Formel können wir den Arduino-Sketch erstellen, um den pH-Wert basierend auf dem Spannungsmesswert am Po zu messen .

#include <Arduino.h>const int adcPin = A0;  // calculate your own m using ph_calibrate.ino// When using the buffer solution of pH4 for calibration, m can be derived as:// m = (pH7 - pH4) / (Vph7 - Vph4)const float m = -5.436; void setup() {  Serial.begin(115200);}void loop() {  float Po = analogRead(adcPin) * 5.0 / 1024;  float phValue = 7 - (2.5 - Po) * m;  Serial.print("ph value = "); Serial.println(phValue);  delay(5000);}

Wie wäre es mit einer Temperaturmessung?
Wie ich bereits erwähnt habe, macht es keinen Sinn, die Umgebungstemperatur in der Nähe der Platine zu messen, also habe ich als erstes den On-Board-Thermistor ausgelötet und durch einen dieser wasserdichten Thermistoren ersetzt .

Eine Wheatstone-Brückenschaltung ist nichts anderes als zwei einfache Serien-Parallel-Anordnungen von Widerständen, die zwischen einer Referenzspannungsversorgung und Masse verbunden sind und im symmetrischen Zustand eine Nullspannungsdifferenz zwischen den beiden parallelen Zweigen erzeugen.
Wenn einer der Arme der Widerstandsanordnungen aus einem Thermistor besteht, ändert sich sein Widerstand, wenn sich die Temperatur ändert, wodurch ein Ungleichgewicht zwischen zwei Widerstandsarmen und eine zwischen den beiden parallelen Zweigen entwickelte Spannungsdifferenz entsprechend der Änderung des Thermistorwiderstands verursacht wird, die direkt ist im Zusammenhang mit der Änderung der Temperatur.

Speziell für diese Schaltung wird die Spannungsreferenz von U2B bereitgestellt, der einen Spannungsteiler bildet und eine Referenzspannung (nennen wir sie Vref) von 2,5 V an Pin 7 von U2B erzeugt. Gemäß den Eigenschaften des Thermistors hat der Thermistor einen Widerstand von 10k Ohm bei einer Temperatur von 25 Grad Celsius.
Die Wheatstone-Brücke wird abgeglichen und die Ausgangsspannung Vd der Wheatstone-Brücke an den Anschlüssen der Widerstände R16 und R18 wird Null sein und wird über und unter 0 Volt schwingen, wenn sich die Temperatur ändert.
Die Vd wird dann durch U3A verstärkt, der ein Differenzverstärker zu sein scheint, der U3B ist ein typischer nicht invertierender Verstärker.
Da ich mir über den Gewinn von U3A nicht ganz sicher bin, habe ich mich entschieden, bei Elektrotechnik nachzufragen StackExchange, und meine Fragen wurden innerhalb einer Stunde beantwortet.
Die Schaltung hat eine Gesamtverstärkung von 14,33, wenn der Thermistor bei 10k liegt (d.h. wenn die Temperatur 25 Grad Celsius beträgt).
Die Verstärkung von U3A ändert sich jedoch, wenn sich der Thermistorwiderstand ändert, offensichtlich ist dies kein sehr gutes Design.

Ich wurde auch in meinem Verdacht bestätigt, dass zwischen Pin 3 von U3A und Masse auf dem Schaltplan ein 20k Widerstand fehlt, interessanterweise ist die Platine für diesen Widerstand ausgelegt, aber wo der Widerstand sein soll, ist leer gelassen (warum ?).
Untersuchen Sie die Schaltung weiter.
Ich habe festgestellt, dass der R12 auf der Platine tatsächlich einen Wert von 51,1 k anstelle von 100 k hat, wie im Schaltplan gezeigt.
Die Überverstärkung beträgt also 1,33 + 5,11 + 1 = 7,44.

Wir können Vd basierend auf der gemessenen Spannung von To ableiten und weiter den Widerstandswert von TH1 bei der Temperatur ableiten, bei der To gemessen wird:
    Vd = To / 7.44    Vd = Vref * (R14 / (R14 + R15)) - Vref * (R13 / (R13 + TH1))

Die absolute Temperatur T basierend auf der Steinhart-Hart-Gleichung für die Thermistorberechnung kann dann abgeleitet werden aus:

 T = 1 / (1/To + 1/B * ln(TH1/Ro))

Wobei:
T die zu messende absolute Temperatur in Kelvin ist;
To ist die Referenztemperatur in Kelvin bei 25 Grad Celsius;
Ro ist der Thermistorwiderstand bei To;
B ist Beta oder B-Parameter = 3950, angegeben vom Hersteller in seiner Spezifikation.

Theoretisch besteht der Hauptvorteil der Wheatstone-Brückenschaltung darin, dass sie im Gegensatz zu einem einfachen Spannungsteiler äußerst genaue Messungen liefert, da ein Spannungsteiler häufig von der Lastimpedanz der Messschaltung beeinflusst wird. In der tatsächlichen Anwendung hängt die Genauigkeit der Wheatstone-Brücke stark von der Genauigkeit der Widerstände ab, die zur Bildung der Wheatstone-Brücke verwendet werden, der Genauigkeit der Spannungsreferenz sowie der Schaltung, die mit der Wheatstone-Brücke verbunden ist.
Obwohl ich die Formel zum Messen der Temperatur herausgefunden habe, habe ich den Code nicht geschrieben, um die Temperatur zu berechnen, da die Verstärkung von U3A variiert, wenn sich der Wert des Thermistors entsprechend der Temperatur ändert.

Zusammenfassend
Insgesamt hat diese pH-Sensorplatine ein gutes Schaltungsdesign für die pH-Messung, die restlichen Teile der Schaltung sind ziemlich nutzlos und ein wenig überdimensioniert.
Indem der schlechte Teil des Schaltungsdesigns eliminiert und der gute Teil beibehalten wird, könnte es einfacher und vielleicht etwas billiger sein als das aktuelle Design für eine pH-Sensorplatine.

Verwandtes Thema:
Ein Überblick über pH- und EC-Sensorkits von Seeed Studio – Teil 1 (PH)“ .
Eine Übersicht über pH- und EC-Sensorkits von Seeed Studio – Teil 2 (EC) .

Nachnavigation

22 Kommentare von Lesern

  1. Huysonyoung Akihabara

    Lieber Herr!
    Es ist ein wirklich hilfreiches Thema. Vielen Dank für Ihr Teilen. Ich habe seit September 2019 bis jetzt 1 pH-Meter-Kit hergestellt, also habe ich 1 Problem;

    Ich habe mit pH7,01 Pufferlösung getestet, es zeigt mir pH = 7,04 bei 2,51 V; und mit pH4.01 Pufferlösung bekam ich pH = 3.98 bei 3.02V.

    Jetzt nehme ich 1 Liter Abwasserprobe aus der Sammelgrube (Abwassersystem) und teste dann, es zeigt pH = 7,62 bei 2,49 V ….. aber ich habe die pH-Sonde fallen gelassen, um direkt mit dem Abwasserbehandlungssystem zu testen, dann zeigte es pH = – 6,68 bei 4,83 V.

    Können Sie mir erklären, warum die „Po“-Spannung bei derselben Wasserprobe von 2,49 V auf 4,83 V so hoch ausfällt?

    Ich danke dir sehr,

    1. Ich weiß nicht, was es verursacht hat, aber ph = -6,68 bei 4,83 V liegt im Grunde außerhalb des linearen Bereichs, den die Sonde genau messen könnte, oder Ihre Sonde ist nicht angeschlossen. Messen Sie den pH-Wert auch nicht bei laufendem Durchfluss, da der Wert nicht genau ist, und wenn Sie eine TDS-Sonde haben, legen Sie sie von der pH-Sonde weg.

  2. John Smith

    Danke für den schönen Artikel. Folgendes möchte ich hinzufügen.
    Wenn das pH-Sensormodul mit einem Mikrocontroller wie Arduino verwendet wird, können Berechnungen und Kalibrierungen vereinfacht werden, indem die Spannungsberechnung eliminiert wird. Bei Kalibrierung mit 7,0 pH-Lösung kann RV1 float phVoltage = (float)adcValue * 5.0 / 1024 = 2.5nur dann darauf abgestimmt werden. Die PisteadcValue = 512

    m = (ph7 - ph4) / (adc7Value - adc4Value)

    kann in Gleichungen verwendet werden

    pH = pH7 - (adc7Value - adcValue) * m = 7 - (512 - adcValue) * m

    Ich denke, die Spannungsberechnung ist nützlich, wenn jemand eine Schaltung ohne Verwendung von Software entwirft und in diesem Fall das Signal von „Do“ verwendet werden kann, um ein Gerät wie ein Relais auszulösen, um etwas ein- oder auszuschalten. Je nach Schaltung können Active-High- oder Active-Low-Relais verwendet werden.

    1. Danke für den Kommentar.

      Bei 'Do' hat es einen Hysterese - Effekt, dh wenn Sie erwarten, dass es etwas auslöst, wenn ein Wert einen bestimmten Punkt erreicht, wird es nicht unbedingt am selben Punkt ausgelöst, wenn der Wert zurückfällt. Daher bevorzuge ich persönlich eine Softwarelösung als das „Do“.

      1. John Smith

        Ich bevorzuge auch den Software-Ansatz.
        Viele dieser Boards basieren auf abgelaufenen Patenten, deshalb sind sie „low-cost“. Was bedeutet, dass sie alt sind und Software damals nicht weit verbreitet war. Die meisten Schaltungen wurden basierend auf Hardware entworfen und ausgeführt. Ich könnte mir ein paar Anwendungen vorstellen, die die Funktion nutzen könnten. Natürlich kann Genauigkeit erreicht werden, nicht in der Geschwindigkeit, an die wir gewöhnt sind, aber ausreichend, um die Anforderungen zu erfüllen.

  3. Dan

    Hallo,
    toller Artikel.
    Der pH-Wert ändert sich mit der Temperatur. Wie würden wir die Temperaturkompensation auf die pH-Werte anwenden?

    Danke

    1. Die PH-Variation aufgrund der Temperatur ist weniger signifikant als die EC-Messung, zum Beispiel wird ein pH-Wert von 4,00 bei 25 Grad C etwa 4,01 bei 30 C betragen und um 0,01 für etwa alle 5 Grad Temperaturänderung steigen, aber er bleibt bei etwa 4,00 in der Bereich zwischen 10 – 25 C. Daher werde ich den Temperaturfaktor bei der pH-Messung einfach ignorieren, es sei denn, Sie messen den pH-Wert bei etwa 30 Grad C oder unter 10 Grad C. Ich werde der Temperaturmessschaltung für diese spezielle Platine aus dem Grund nicht vertrauen, dass ich in meinem Artikel erwähnt. Wenn Sie wirklich eine Temperaturmessung haben möchten, holen Sie sich einen wasserdichten DS18B20.

    2. Jäger Lu

      Hi

      Sehen Sie sich die unten verlinkte PDF-Datei an, die ein Formular zur Anwendung der Zeitkompensation enthält.
      https://www.hach.com/quick.search-download.search.jsa?keywords=pH

  4. Chan

    Hallo Henry,
    ich bin kein Experte, aber ich möchte einen intelligenten PH- und EC-Sensor bauen, der mir hilft, die Wassernährstoffe und den PH-Wert für ein Indoor-Hydrokultursystem zu regulieren.
    Können Sie mich auf einen wirtschaftlichen Weg führen, um dies zu erreichen?
    Gruß
    Chan

  5. Jäger Lu

    Hi

    Danke für den Beitrag und die Diskussion, ich habe auch die gesamte Schaltung für die PH-Messung dupliziert und den wasserdichten DS18B20 und den EC-Sensor auf der Leiterplatte hinzugefügt, in der ich geplant hatte, ein Öko-Messsystem für die Messung des Pflanzenwachstums in der Tür zu bauen. Alles funktionierte gut, aber ich hatte zwei Probleme:
    1. Große Schwankungen des PH-Wert-Ausgangs gemessen allein ohne DS18B20 und EC-Sensor, nicht sicher warum, da ich keinen Oszillator habe, konnte ich nicht erkennen, woher die Schwankung kommt, vielleicht könnten Sie dabei helfen.
    2. Alle 3 Sensoren zusammen, DS18B20 und EC-Sensoren funktionieren gut, aber der PH-Sensor wurde durch DS18B20 und EC-Sensor erheblich gestört, was vernünftig erscheint (jeder von ihnen emittierte Potenzial in die Lösung mit Auswirkungen auf den Mikrospannungspegel-PH-Sensor. Ich muss den DS18B20 und den EC-Sensor über die Arduino-Software und den Hardware-Schaltkreis isolieren/trennen.

    Die Kalibrierung des PH-Sensors verlief gut, wobei ich die Standardpufferauflösung verwendete, die Daten genau wie erwartet ausgab, aber als ich sie in ein Glas mit Leitungswasser gab, gab es große Unterschiede, wie ich oben erwähnt habe…

    Wäre dankbar, wenn mir jemand weiterhelfen könnte.

    1. Die Dinge, die mir einfallen: 1) Der PH-Sensor funktioniert nicht gut mit fließendem Wasser oder in einem Stromfluss. 2) Welche MCU verwendest du? Arduino? Ich würde vorschlagen, dass Sie einen 10uF- und einen 100nF-Kondensator parallel zu Vcc und Masse der PH-Sensorplatine hinzufügen. 3) Wenn Sie eine andere PH-Sensorplatine als dieses Design verwenden, stellen Sie sicher, dass die Ausgangsimpedanz der Platine, die in den ADC von Arduino eingespeist wird, weniger als 10 kOhm beträgt. Sie können über meine jüngsten Erfahrungen bei der Bewertung der pH-Sensorplatine von Seeed Studio lesen das Problem, auf das ich gestoßen bin.

      Ich habe kein Problem damit, den DS18B20-Temperatursensor zusammen mit dem PH-Sensor zu haben, tatsächlich befindet sich mein PH-Sensor in meinem Setup direkt neben dem DS18B20 mit weniger als 1 cm Abstand, der DS18B20 sollte sich vom EC-Sensor fernhalten, da der EC-Sensor einen Magneten erzeugt /Elektrodenfeld um seine Spitze.

  6. Jäger Lu

    Danke für die schnelle Antwort, Henry.

    Meiner Ansicht nach haben der DS18B20 und der EC-Sensor nach dem Einschalten direkten Einfluss auf den PH-Sensor. Wie durch Ihren Kommentar bestätigt, kann ich verstehen, dass der EC-Sensor Auswirkungen auf den PH-Sensor hat, DS18B20 sollte keinen Einfluss auf den PH-Sensor haben, ich verstehe diesen Teil nicht, muss es herausfinden. Eine weitere Alternative ist die Verwendung des wasserdichten Thermowiderstands B 3950 mit Überwurfmutter für eine einfache Installation.

    Ich mache gerade eine Platine mit allen Komponenten, einschließlich PH- und EC-Sensorschaltungen, wobei die ATMEGA328P-MCU als Arduino Nano simuliert wird. 10uF und 100nF zu VCC des Verstärkers CD4052 hinzuzufügen ist eine gute Idee, irgendwie habe ich es übersehen. Das Layout muss verbessert werden, um den CD4052 näher am PH-BNC-Steckplatz zu haben.

    Ich habe das ADC-Problem mit Impedanzproblemen nicht erlebt, werde Ihren Blog später als Referenz überprüfen.

    Tolle Kommentare, danke Henry.

  7. Mohamed

    Ich habe in meiner Recherche erwähnt, dass der Temperatursensor entfernt und ein anderer Sensor installiert wurde.
    Kann der Sensor an Ort und Stelle belassen und die gemessene Temperatur angepasst werden?
    Wie wirkt sich die Temperatur auf den pH-Wert aus?

    1. Informationen zur pH-Abhängigkeit von der Temperatur finden Sie im Benutzerhandbuch Ihres Sondenherstellers. Im Allgemeinen beträgt der pH-Wert von reinem Wasser beispielsweise bei 0 °C etwa 7,47. Bei 25 °C beträgt sie 7,00 und bei 100 °C 6,14. Für die praktische Anwendung hängt es davon ab, wo sich Ihre Region befindet, ich lebe in einer tropischen Region und siehe meine Antwort auf Frage 3 oben.

  8. Gennadiy

    Hallo Heinrich!
    Zuallererst möchte ich sagen, dass es sehr, sehr nützliche Informationen sind – wirklich zu schätzen wissen.
    Ich mache Abschlussprojekt – automatisches Steuersystem für Hydroponik.
    Wie Sie am Anfang des Beitrags geschrieben haben, gibt es sehr wenig – fast keine Informationen darüber, wie man diese Sensoren richtig kalibriert. Ihr Beitrag ist sehr informativ, aber ich konnte den Punkt zur Temperaturkompensation immer noch nicht herausfinden.
    Können Sie es bitte klären? Soweit ich verstanden habe, haben Sie keinen Code für temp geschrieben. Kompensation aufgrund der Tatsache, dass der eingebaute Thermistor nutzlos ist, da er die Umgebungstemperatur misst. (nicht im Wasser).
    Ich möchte meinen EC-Sensor genau kalibrieren und habe einen tauchfähigen DS18B20-Sensor.
    Sollte ich den T1-Stift (Temperaturausgang) am EC-Sensor nicht angeschlossen lassen? Oder wenn ich es nicht verwenden möchte – mit GND verbinden?
    Jede Hilfe ist willkommen.

    1. Ich habe in den Kommentaren einige Gründe angegeben, warum ich bei pH-Messungen keine Temperaturkompensation durchgeführt habe. Sie können nach oben scrollen und sie lesen. Für den EC bin ich mir nicht sicher, welchen EC-Sensor Sie verwenden, daher kann ich nicht wirklich sagen, wie er angeschlossen werden sollte. Wenn Sie ihn nicht verwenden, sollte es im Allgemeinen in Ordnung sein, ihn offen zu lassen. Sie können auch meinen anderen Beitrag lesen , der einen wasserdichten DS18B20 mit einem EC-Sensor verwendet.

  9. Steve

    Hallo Henry,
    ich fand deinen Artikel wirklich sehr interessant.
    Ich habe alle Schritte in Ihrem Artikel befolgt und festgestellt, dass der maximale Bereich, den ich durch Einstellen des Trimmers erreichen kann, 2,4 bis 4,99 Volt beträgt, wenn ich das BNC-Signal kurzschließe, um die 2,5-Volt-Einstellung vorzunehmen. Mein Board geht nicht unter 2,4 Volt.
    Meint ihr es ist defekt?

    1. Jean-Philippe

      Hallo,
      ich habe das gleiche Problem beim Kalibrieren des Minimums, ich kann es 2,6 Volt bekommen, ich kann nicht einmal 2,5 erreichen…
      Für mich ist der Bereich 2,6-4,99

      1. David

        Sie können tun, was ich getan habe, während ich beim Kalibrieren des Minimums nur 2,59 V erhalten konnte, um korrekte Messwerte des pH-Werts zu erhalten, lasse ich einfach das bnc-Potentiometer auf dem minimal möglichen Wert und bekomme die Messwerte der Pulverlösungen : 6,86 und 4,01.
        Und damit könnte die Verwendung der Gleichung y = ax + bi die korrekten pH-Werte erhalten.
        Beispiel :
        pH = a*xV + b
        4,01 = a*(3,04)+b
        6,86 = a*(2,54)+b
        Dann bekomme ich das Ergebnis y = -5,7*21,338 und das war's.

    2. Jon Wong

      Hallo,
      ich habe das gleiche Problem! Wenn ich den BNC verkürzt habe, um die 2,5-Volt-Einstellung vorzunehmen, geht der ADC-Wert nur auf 831 und nicht auf 512? Ich kann RV1 nicht weiter auf 2,5 Volt einstellen! Meinst du das Board ist defekt? Danke für Ihre Hilfe!

  10. Saitama

    Hallo, beim Versuch, den Sensor zu kalibrieren, erhalte ich eine falsche Spannung von PO, wenn ich versuche, ihn mit dem Potentiometer (BOATER 3296) einzustellen. Ich versuche, es vom PO-Pin zu lesen, aber es liest nur ADC = 872; Po = 4,262 V. Die tatsächlichen Messwerte können am externen Teil der BNC-Sonde oder am Potentiometer gemessen werden. Sie zeigen die korrekte Spannung, die ich für die 7-Ph-Grundlinie auf 2,5 V eingestellt habe. Liegt das an der BNC-Schnittstelle?

    Ich führe diesen Code aus, um die Spannung an PO, dem Potentiometer und dem BNC-Anschluss zu messen


    #include
    const int adcPin = A0;

    void setup() {
    Serial.begin(115200);
    }

    void loop() {
    int adcValue = analogRead(adcPin);
    float phVoltage = (float)adcValue * 5.0 / 1023;
    Serial.print(“ADC = “); Serial.print(adcValue);
    Serial.print(“; Po = “); Serial.println(phVoltage);
    delay(1000);

    }

  11. dekip

    Soweit ich sehen kann, gibt es keine Daten von C-Werten des Schaltplans. Kennt jemand von euch die Werte?

Hinterlasse eine Antwort


Quelle:
https://www.e-tinkers.com/2019/11/measure-ph-with-a-low-cost-arduino-ph-sensor-board/









********************************************************I*
B)                 pHmeter – Arduino pH Meter

pH-Meter sind wissenschaftliche Instrumente zur Messung der Aktivität und Konzentration von Wasserstoffionen in wässrigen Lösungen mit dem Ziel, deren Säure- oder Alkalinität, ausgedrückt als pH-Wert, anzuzeigen.
Sie finden Anwendung in der Wasser- und Abwasserbehandlung, Pharmazie, Chemie und Petrochemie, Lebensmittel und Getränke, Bergbau und landwirtschaftlichen Prozessen, um nur einige zu nennen.
Für das heutige Tutorial werden wir versuchen, eine genaue DIY-Version dieses sehr nützlichen Tools zu erstellen.


DIY-pH-Meter
pH-Meter bestehen hauptsächlich aus einer Sonde und einer Verarbeitungseinheit, die die Daten von der Sonde interpretiert und in einem für Menschen lesbaren Format anzeigt.
Das pH -Meter misst im Wesentlichen die elektrische Potentialdifferenz zwischen einer pH-Elektrode und einer Referenzelektrode.
Aus diesem Grund werden pH-Meter manchmal auch als „potentiometrische pH-Meter“ bezeichnet.

Gravitations-Analog-pH-Meter-Breakout-Board

Während es im Internet mehrere DIY-pH-Meter-Beispiele gibt, basiert das heutige Projekt auf den von Atlas Scientific bereitgestellten Beispielen .
Wir werden die pH-Sonde von Atlas Scientific und ihr analoges Gravity-pH-Meter-Breakout-Board verwenden.
Das Breakout-Board für analoge pH-Meter von Gravity ist eine ziemlich genaue, kostengünstige pH-Meter-Lösung, die speziell für Studenten/Ausbildung, Proof-of-Concept-Entwicklungen und pH-Meter-Anwendungen entwickelt wurde, die eine mittlere Genauigkeit erfordern.
Es verfügt über einen BNC -Anschluss, über den es an die pH-Sonde von Atlas Scientific angeschlossen werden kann.


pH-Sonde von Atlas Scientific

Neben dem pH-Breakout und der Sonde verwenden wir ein Arduino Uno und ein 20 × 4-LCD-Display.
Der Arduino dient als Gehirn für das Projekt, das den pH-Wert von der Sonde erhält, während das LCD dazu dient, den Benutzern visuelles Feedback zu geben, da der vom Arduino erhaltene Wert auf dem LCD angezeigt wird.
Um das Projekt übersichtlich zu gestalten, hat Atlas Scientific auch ein schönes Gehäuse erstellt, und wir werden die von ihnen beschriebenen Schritte befolgen, um unser eigenes zu erstellen. 


Erforderliche Komponenten
Wir beginnen damit, dass wir zuerst Vorräte für unseren Bau besorgen.
Die folgenden Komponenten werden benötigt, um dieses Projekt zu erstellen;
  1. Arduino Uno ix1
  2. Schwerkraftanaloger pH-Sensor x1
  3. pH-Sonde x1
  4. 20×4 LCD-Modul
  5. 158 x 90 x 60 mm Gehäuse
  6. Mini-Steckbrett
  7. Überbrückungsdrähte
  8. Acrylglas (Plexiglas)
  9. 11 mm Abstandshalter und Schrauben (im Lieferumfang des pH-Sensors enthalten) x4
  10. Widerstände 220Ω $ 1kΩ
Um den Arbeitsaufwand zu reduzieren, der mit der Suche nach den genauen Komponenten verbunden ist, die für dieses Tutorial verwendet werden, habe ich Links eingefügt, über die die einzelnen Komponenten gekauft werden können.
Abgesehen von den Komponenten werden ein paar Werkzeuge benötigt, um das Gehäuse zu entwickeln, aber da das nicht so wichtig ist, belassen wir es, bis wir so weit sind.

Schema
Die Schaltpläne für das heutige Projekt sind recht einfach.
Wir verbinden das LCD im 4-Pin-Modus, während wir den Signalstift des PH-Sensors mit einem analogen Stift des Arduino verbinden, da sein Ausgang analog ist.
Verbinden Sie die Komponenten wie in den folgenden Schemata gezeigt:


Schemata

Um die Schaltpläne leicht verständlich zu machen, ist unten eine Pin-Karte angegeben, die zeigt, wie die Komponenten mit dem Arduino verbunden sind;

PH-Meter – Arduino

+/VCC - 5V-/GND - GNDA/OUT - A0

LCD – Arduino

K - GNDA - 3.3VD7 - D7D6 - D6D5 - D5D4 - D4E - D3RS - D2R/W - GNDVSS - GNDVDD - 5VVO - 5V Via Widerstände als Spannungsteiler

Gehen Sie die Verbindungen durch, wenn Sie fertig sind, um sicherzustellen, dass alles so ist, wie es sein sollte.

Gehäusedesign
Nachdem die Verbindungen fertig waren, wurde ein Gehäuse erstellt, um das Projekt ordentlich und vorzeigbar zu machen.
Das Gehäuse basiert auf den beliebten ABS-Kunststoffgehäusen
und wurde mit Bohrern und anderen Werkzeugen so modifiziert, dass es den Bildschirm aufnimmt und perfekt für andere Projekte passt.
Ein Bild des fertiggestellten Gehäuses wird im Bild unten angezeigt.

DIY-pH-Meter

Um das ABS-Gehäuse für die gewünschte ordentliche und klare Form zu modifizieren, wie im Bild oben gezeigt, wurden verschiedene Arten von Werkzeugen verwendet, darunter; a Bohrer, Bohrer, Trockenbaufräser, Feilen, Schraubendreher, Schraubstock, Bandsäge, Klebepistole und Klebestift, Lötkolben und Lötzinn, digitaler Messschieber, Lineal.
Während diese Werkzeuge den Prozess der Erstellung des Gehäuses einfacher und schneller machen, können Sie auch Make-Shift-Werkzeuge verwenden, die auf die eine oder andere Weise dazu beitragen, das Ziel eines ordentlichen Gehäuses zu erreichen.

Alle am ABS-Gehäuse vorgenommenen Modifikationen basieren auf dem unten stehenden Diagramm.
Möglicherweise müssen Sie heranzoomen, um die Abmessungen richtig zu sehen.





Sie können die folgenden Schritte ausführen, um dies mit guter Genauigkeit zu erreichen.
Fühlen Sie sich frei, bei Bedarf andere Werkzeuge/behelfsmäßige Werkzeuge zu verwenden.

Schnittöffnung für das LCD

  1. Das LCD befindet sich im oberen Teil (Abdeckung) des Gehäuses. Zentrieren Sie ein 98 x 40 mm großes Rechteck auf der Abdeckung.
  2. Legen Sie das Teil in den Schraubstock und bohren Sie ein 3,2 mm (1/8″) Führungsloch in das markierte Rechteck.
  3. Verwenden Sie dieses Pilotloch als Ausgangspunkt für den 3,2 mm (1/8″) Trockenbau-Schneideinsatz. Da dies eine kleine Arbeit ist, verwenden wir den Bohrer eher auf der Handbohrmaschine als auf einer Trockenbau-Schneidemaschine. Arbeiten Sie an der Innenseite des Rechtecks ​​statt an den Linien, da es etwas schwierig sein kann, mit diesem Bit auf dem Bohrer gerade zu schneiden.
  4. Als nächstes verwenden Sie eine Handfeile, um das überschüssige Material zu entfernen und das Rechteck auf die erforderliche Größe zu formen.

Schneiden Sie Öffnungen für BNC-Stecker und Arduino-Ports

Die Öffnungen für den BNC-Stecker und die Arduino-Anschlüsse befinden sich seitlich am unteren Teil des Gehäuses.

  1. Markieren Sie mit den oben angegebenen Maßen den Mittelpunkt für den Kreis und die Umrisse für die beiden Rechtecke.
  2. Legen Sie das Stück in den Schraubstock und schneiden Sie die Öffnungen. Die kreisförmige Öffnung wird mit Bohrern hergestellt. Die rechteckigen werden nach einem ähnlichen Verfahren hergestellt, das verwendet wird, um die Öffnung für das LCD herzustellen.

Rüsten Sie die Grundplatte zur Montage von Komponenten aus

Die Grundplatte dient zur Montage von Arduino, pH-Sensor und Mini-Breadboard. Es wird eine 6,4 mm (1/4″) dicke Acrylplatte verwendet.

  1. Schneiden Sie die Acrylplatte mit einer Bandsäge auf 135 × 62,5 mm.
  2. Markieren Sie die Positionen für die vier Löcher wie gezeigt. Bohren Sie Löcher mit einem Durchmesser von 2,38 mm (3/32″). Senken Sie die Löcher auf einer Seite der Platte auf eine Tiefe von 3 mm und einen Durchmesser von 4,4 mm (11/64″). Dies ist notwendig, um eine ebene Unterseite zu erhalten, wenn die Schrauben zum Halten der Abstandshalter eingesetzt werden.
  3. Befestigen Sie die 11-mm-Abstandshalter mit den mitgelieferten Schrauben. Der pH-Sensor wird mit 4 Abstandshaltern und Schrauben geliefert. Verwenden Sie zwei davon für den Arduino.

Wenn das Gehäuse fertig ist, ordnen Sie die Komponenten darin so an, dass die Einrichtung wie in der Abbildung unten aussieht.


Zusammenbau der Komponenten im Gehäuse

Code

Der Code für das heutige Projekt ist recht einfach.
Unsere Aufgabe, wie in der Einführung erwähnt, besteht darin, den pH-Wert mit dem pH-Meter zu erfassen und auf dem angeschlossenen LCD anzuzeigen.

Wir werden die Arduino IDE für die Entwicklung des Codes verwenden und 2 Hauptbibliotheken verwenden; die Liquid Crystal Display-Bibliothek und die Atlas-Schwerkraftsensor-Bibliothek.
Die Bibliothek für Flüssigkristallanzeigen wird verwendet, um den Arbeits-/Codeaufwand zu reduzieren, der erforderlich ist, um das Arduino dazu zu bringen, mit dem LCD zu interagieren, während die Atlas Gravity Sensor Library es einfach macht, eine Schnittstelle mit dem PH-Messgerät herzustellen und Daten zu erhalten.
Die Liquid Crystal Library wird normalerweise mit der Arduino IDE geliefert, aber für den Fall, dass dies nicht der Fall ist, können Sie sie jederzeit über den Arduino Library Manager installieren.
Die Atlas Gravity Sensor-Bibliothek hingegen muss manuell installiert werden, daher müssen Sie sie über den beigefügten Link herunterladen, entpacken und ihren Inhalt in den Arduino Library-Ordner kopieren.
Der Bibliotheksordner befindet sich normalerweise im selben Ordner wie Ihre Arduino Sketches.

Nachdem die Bibliotheken installiert sind, können wir nun mit dem Schreiben des Codes fortfahren.

Der Sketch beginnt mit der Aufnahme der zu verwendenden Bibliotheken.
#include "ph_grav.h"       //Header-Datei für den Gravitations-pH-Sensor von Atlas Scientific#include "LiquidCrystal.h" //Header-Datei für Flüssigkristallanzeige (LCD)

Als nächstes deklarieren wir einige der Variablen, die während des Codes verwendet werden, deklarieren den analogen Pin des Arduino, mit dem der analoge Ausgangspin des PH-Sensors verbunden ist, und erstellen Instanzen sowohl der Atlas Gravity Sensor Library als auch der Liquid Crystal Library .

String inputstring = "";                  //a string to hold incoming data from the PCboolean input_string_complete = false;    //a flag to indicate have we received all the data from the PCchar inputstring_array[10];               //a char array needed for string parsingGravity_pH pH = A0;                       //assign analog pin A0 of Arduino to class Gravity_pH. connect output of pH sensor to pin A0LiquidCrystal pH_lcd(2, 3, 4, 5, 6, 7);   //make a variable pH_lcd and assign arduino digital pins to lcd pins (2 -> RS, 3 -> E, 4 to 7 -> D4 to D7)
Wenn dies erledigt ist, fahren wir mit der Funktion void setup () fort .
Wir starten die Funktion, indem wir die serielle Kommunikation initialisieren, die für Debug-Zwecke verwendet wird, und das LCD-Display, auf dem ein Begrüßungs-/Initialisierungsbildschirm angezeigt wird.
void setup() {  Serial.begin(9600);                                 //enable serial port  pH_lcd.begin(20, 4);                                //start lcd interface and define lcd size (20 columns and 4 rows)  pH_lcd.setCursor(0,0);                              //place cursor on screen at column 1, row 1  pH_lcd.print("--------------------");               //display characters  pH_lcd.setCursor(0,3);                              //place cursor on screen at column 1, row 4  pH_lcd.print("--------------------");               //display characters  pH_lcd.setCursor(5, 1);                             //place cursor on screen at column 6, row 2  pH_lcd.print("pH Reading");                         //display "pH Reading" 

zuletzt wird das PH-Meter initialisiert und die Steuerbefehle zur Kalibrierung werden auf dem seriellen Monitor angezeigt.

if (pH.begin()) { Serial.println("Loaded EEPROM");}   Serial.println(F("Use commands \"CAL,4\", \"CAL,7\", and \"CAL,10\" to calibrate the circuit to those respective values"));  Serial.println(F("Use command \"CAL,CLEAR\" to clear the calibration")); }

Als nächstes kommt die Funktion void loop() .

Die Void-Loop-Funktion ist ziemlich einfach. Wir beginnen damit, zu prüfen, ob ein Kalibrierungsparameter über den seriellen Monitor empfangen wurde.
Wenn ja, werden die Daten als Argument in die parse_cmd- Funktion geparst, wo sie verwendet werden, um das erforderliche Kalibrierungsniveau einzustellen.
void loop() {  if (input_string_complete == true) {                //check if data received    inputstring.toCharArray(inputstring_array, 30);   //convert the string to a char array    parse_cmd(inputstring_array);                     //send data to pars_cmd function    input_string_complete = false;                    //reset the flag used to tell if we have received a completed string from the PC    inputstring = "";                                 //clear the string  }

Als nächstes wird der PH-Wert vom PHmeter unter Verwendung der Funktion ph.read_ph() erhalten .

Die erhaltenen Werte werden dann auf dem seriellen Monitor und auf dem LCD angezeigt.

  Serial.println(pH.read_ph());                       //output pH reading to serial monitor  pH_lcd.setCursor(8, 2);                             //place cursor on screen at column 9, row 3  pH_lcd.print(pH.read_ph());                         //output pH to lcd  delay(1000);}

Andere Teile des Codes sind die Funktion serialEvent() , die verwendet wird, um Benutzereingaben vom seriellen Monitor zu erhalten, und die Funktion parse_cmd() , die die Daten von der seriellen Schnittstelle übernimmt und sie verwendet, um den Kalibrierungspegel des PHmeters einzustellen.

void serialEvent() {                                  //if the hardware serial port_0 receives a char  inputstring = Serial.readStringUntil(13);           //read the string until we see a <CR>  input_string_complete = true;                       //set the flag used to tell if we have received a completed string from the PC}void parse_cmd(char* string) {                      //For calling calibration functions  strupr(string);                                   //convert input string to uppercase  if (strcmp(string, "CAL,4") == 0) {               //compare user input string with CAL,4 and if they match, proceed    pH.cal_low();                                   //call function for low point calibration    Serial.println("LOW CALIBRATED");  }  else if (strcmp(string, "CAL,7") == 0) {          //compare user input string with CAL,7 and if they match, proceed    pH.cal_mid();                                   //call function for midpoint calibration    Serial.println("MID CALIBRATED");  }  else if (strcmp(string, "CAL,10") == 0) {         //compare user input string with CAL,10 and if they match, proceed    pH.cal_high();                                  //call function for highpoint calibration    Serial.println("HIGH CALIBRATED");  }  else if (strcmp(string, "CAL,CLEAR") == 0) {      //compare user input string with CAL,CLEAR and if they match, proceed    pH.cal_clear();                                 //call function for clearing calibration    Serial.println("CALIBRATION CLEARED");  }}

Der vollständige Code für das Projekt wird unten bereitgestellt und auch im Downloadbereich angehängt.

/*Öffnen Sie nach dem Hochladen den seriellen Monitor, stellen Sie die Baudrate auf 9600 ein und hängen Sie "CR" an.Der Code ermöglicht es dem Benutzer, pH-Werte in Echtzeit zu beobachten und den Sensor zu kalibrieren.Es kann eine Ein-, Zwei- oder Dreipunktkalibrierung durchgeführt werden.Calibration commands: low-point: "cal,4" mid-point: "cal,7" high-point: "cal,10" clear calibration: "cal,clear"*/#include "ph_grav.h"                                  //header file for Atlas Scientific gravity pH sensor#include "LiquidCrystal.h"                            //header file for liquid crystal display (lcd)String inputstring = "";                              //a string to hold incoming data from the PCboolean input_string_complete = false;                //a flag to indicate have we received all the data from the PCchar inputstring_array[10];                           //a char array needed for string parsingGravity_pH pH = A0;                                   //assign analog pin A0 of Arduino to class Gravity_pH. connect output of pH sensor to pin A0LiquidCrystal pH_lcd(2, 3, 4, 5, 6, 7);               //make a variable pH_lcd and assign arduino digital pins to lcd pins (2 -> RS, 3 -> E, 4 to 7 -> D4 to D7)void setup() {  Serial.begin(9600);                                 //enable serial port  pH_lcd.begin(20, 4);                                //start lcd interface and define lcd size (20 columns and 4 rows)  pH_lcd.setCursor(0,0);                              //place cursor on screen at column 1, row 1  pH_lcd.print("--------------------");               //display characters  pH_lcd.setCursor(0,3);                              //place cursor on screen at column 1, row 4  pH_lcd.print("--------------------");               //display characters  pH_lcd.setCursor(5, 1);                             //place cursor on screen at column 6, row 2  pH_lcd.print("pH Reading");                         //display "pH Reading"   if (pH.begin()) { Serial.println("Loaded EEPROM");}   Serial.println(F("Use commands \"CAL,4\", \"CAL,7\", and \"CAL,10\" to calibrate the circuit to those respective values"));  Serial.println(F("Use command \"CAL,CLEAR\" to clear the calibration")); }void loop() {  if (input_string_complete == true) {                //check if data received    inputstring.toCharArray(inputstring_array, 30);   //convert the string to a char array    parse_cmd(inputstring_array);                     //send data to pars_cmd function    input_string_complete = false;                    //reset the flag used to tell if we have received a completed string from the PC    inputstring = "";                                 //clear the string  }  Serial.println(pH.read_ph());                       //output pH reading to serial monitor  pH_lcd.setCursor(8, 2);                             //place cursor on screen at column 9, row 3  pH_lcd.print(pH.read_ph());                         //output pH to lcd  delay(1000);}void serialEvent() {                                  //if the hardware serial port_0 receives a char  inputstring = Serial.readStringUntil(13);           //read the string until we see a <CR>  input_string_complete = true;                       //set the flag used to tell if we have received a completed string from the PC}void parse_cmd(char* string) {                      //For calling calibration functions  strupr(string);                                   //convert input string to uppercase  if (strcmp(string, "CAL,4") == 0) {               //compare user input string with CAL,4 and if they match, proceed    pH.cal_low();                                   //call function for low point calibration    Serial.println("LOW CALIBRATED");  }  else if (strcmp(string, "CAL,7") == 0) {          //compare user input string with CAL,7 and if they match, proceed    pH.cal_mid();                                   //call function for midpoint calibration    Serial.println("MID CALIBRATED");  }  else if (strcmp(string, "CAL,10") == 0) {         //compare user input string with CAL,10 and if they match, proceed    pH.cal_high();                                  //call function for highpoint calibration    Serial.println("HIGH CALIBRATED");  }  else if (strcmp(string, "CAL,CLEAR") == 0) {      //compare user input string with CAL,CLEAR and if they match, proceed    pH.cal_clear();                                 //call function for clearing calibration    Serial.println("CALIBRATION CLEARED");  }}
// deutsch//Header-Datei für den Schwerkraft-pH-Sensor von Atlas Scientific//Header-Datei für Flüssigkristallanzeige (LCD)//ein String, um eingehende Daten vom PC zu halten// ein Flag, das anzeigt, ob wir alle Daten vom PC erhalten haben//ein char-Array, das für das Parsen von Strings benötigt wird// analogen Pin A0 von Arduino der Klasse Gravity_pH zuweisen. Verbinden Sie den Ausgang des pH-Sensors mit Pin A0// eine Variable pH_lcd erstellen und den LCD-Pins arduino digitale Pins zuweisen (2 -> RS, 3 -> E, 4 bis 7 -> D4 bis D7)// Serielle Schnittstelle aktivieren// LCD-Schnittstelle starten und LCD-Größe definieren (20 Spalten und 4 Zeilen)//Cursor auf dem Bildschirm in Spalte 1, Zeile 1 platzieren// Zeichen anzeigen//Cursor auf dem Bildschirm in Spalte 1, Zeile 4 platzieren// Zeichen anzeigen//Cursor auf dem Bildschirm in Spalte 6, Zeile 2 platzieren// Anzeige "pH-Messwert"um die Schaltung auf diese jeweiligen Werte zu kalibrieren"));(F ("Verwenden Sie den Befehl "CAL, CLEAR", um die Kalibrierung zu löschen"));//überprüfen, ob Daten empfangen wurden// Konvertiere den String in ein Char-Array// Daten an die Funktion pars_cmd senden// Setzen Sie das Flag zurück, das verwendet wird, um festzustellen, ob wir eine vollständige Zeichenfolge vom PC erhalten haben// Zeichenfolge löschen// pH-Wert an seriellen Monitor ausgeben//Cursor auf dem Bildschirm in Spalte 9, Zeile 3 platzieren// pH-Wert auf LCD ausgeben// wenn der serielle Hardware-Port_0 ein Zeichen empfängt//Lesen Sie den String, bis wir ein <CR> sehen// Setzen Sie das Flag, das verwendet wird, um festzustellen, ob wir eine vollständige Zeichenfolge vom PC erhalten haben//Zum Aufrufen von Kalibrierungsfunktionen// Eingabestring in Großbuchstaben umwandeln//Benutzereingabe-String mit CAL,4 vergleichen und bei Übereinstimmung fortfahren// Funktion für Tiefpunktkalibrierung aufrufen//Benutzereingabe-String mit CAL,7 vergleichen und bei Übereinstimmung fortfahren// Funktion für Mittelpunktkalibrierung aufrufen//Benutzereingabe-String mit CAL,10 vergleichen und bei Übereinstimmung fortfahren// Funktion für Highpoint-Kalibrierung aufrufen//Benutzereingabe-String mit CAL,CLEAR vergleichen und bei Übereinstimmung fortfahren// Funktion zum Löschen der Kalibrierung aufrufen Kalibrierung



Kalibration
Um die Genauigkeit der Ergebnisse des pH-Meters sicherzustellen, muss das Gerät genau kalibriert werden. pH-Meter sind über 3 Ebenen kalibriert; 4, 7 und 10 unter Verwendung von Standard-Pufferlösungen, die bereits bei diesem PH-Wert existieren.
Diese Standardlösungen werden manchmal von den Verkäufern des PH-Sensors bereitgestellt, aber wenn sie nicht bereitgestellt werden, können Sie sie jederzeit in Ihrem örtlichen Chemiegeschäft erhalten.

Um das Messgerät zu kalibrieren, laden Sie die oben entwickelte Skizze auf Ihren Arduino hoch. Nehmen Sie sich etwas Zeit, um sicherzustellen, dass die Komponenten richtig angeschlossen sind, bevor Sie dies tun.
Wenn das Hochladen der Skizze abgeschlossen ist, öffnen Sie den seriellen Monitor. Basierend auf unserem Code fordert Sie der serielle Monitor auf, die Kalibrierungswerte einzugeben, wobei Beispiele zeigen, wie Sie sie richtig eingeben.
Befolgen Sie in diesem Stadium die nachstehenden Schritte, um das Messgerät mit den drei Pufferlösungen zu kalibrieren.
Entfernen Sie die Tauchflasche und spülen Sie die pH-Sonde
Beginnen Sie mit der Standardpufferlösung für pH4. Gießen Sie etwas von der pH-4-Lösung, genug, um die Sonde zu bedecken, in eine Tasse.
Legen Sie die Sonde in die Tasse und rühren Sie sie um, um eingeschlossene Luft zu entfernen.
Beobachten Sie die Messwerte auf dem seriellen Monitor und lassen Sie die Sonde dort, bis sich die Messwerte stabilisieren.
Wenn die Messwerte stabil werden, geben Sie den Befehl cal,4 in den seriellen Monitor ein, um ihn anzuweisen, diesen Wert als Kalibrierwert für pH4 zu speichern.
Wiederholen Sie diese Schritte mit den pH7- und pH10-Lösungen und stellen Sie sicher, dass Sie die Sonde spülen, wenn Sie von einer Lösung zur anderen wechseln.

Damit ist das pH-Meter nun kalibriert und sollte in der Lage sein, den korrekten pH-Wert für jede Lösung anzugeben, mit der die Sonde getestet wird.
Die Kalibrierwerte werden auf dem EEPROM des Arduino gespeichert, damit sie nicht verloren gehen, wenn das Messgerät von der Stromversorgung getrennt wird. Dadurch ist eine Kalibrierung nicht vor jedem Gebrauch erforderlich, aber Sie sollten das System nach einiger Zeit erneut kalibrieren, damit Sie immer den Befehl cal,clear auf dem seriellen Monitor eingeben können, um die zuvor gespeicherten Kalibrierungswerte zu löschen und die oben erläuterten Schritte zu wiederholen.

Demo
Wenn der Code hochgeladen und die Kalibrierung abgeschlossen ist, können Sie jetzt fortfahren und die Sonde in eine beliebige Lösung eintauchen, und Sie sollten den pH-Wert auf dem LCD sehen, wie im Bild unten gezeigt.
AtlasScientific    atlas-scientific.com

Die Genauigkeit des pH-Meters variiert mit der Temperatur, daher ist es wichtig zu beachten, dass der in diesem Projekt verwendete Sensor eine Genauigkeit von +/- 0,2 % hat und dass das pH-Meter mit dieser Genauigkeit arbeitet, wenn der Temperaturbereich dazwischen liegt 7 – 46 °C .

Außerhalb dieses Bereichs muss das Messgerät modifiziert werden, um dies zu kompensieren.

Während der Umfang dieses Projekts in Zukunft auf den pH-Wert beschränkt ist, können Sie mehrere andere Sensoren hinzufügen, um das Projekt nützlicher zu machen. Ein gutes Beispiel für Sensoren, die für mehr Wert hinzugefügt werden könnten, sind Temperatur- und Feuchtigkeitssensoren .

Gibt es etwas, das ich übersehen habe, oder Sie haben das eine oder andere Problem bei der Umsetzung des Projekts?

 melde dich gerne über die Kommentarfunktion bei mir.

Downloads

arduino_pH_meter.zip

arduino_pH_meter.ino


Quelle:
https://www.electronics-lab.com/project/phmeter-arduino-ph-meter/









********************************************************I*
C) DIY-pH-Meter mit Arduino und pH-Sensor und Kalibrierung auf Genauigkeit

Erfahren Sie, wie Sie ein pH-Meter herstellen. Verbinden Sie den pH-Sensor mit Arduino und zeigen Sie die pH-Werte auf einem seriellen Monitor, einem 16x2-LCD-Display und einem OLED-Display an.



 

Inhaltsverzeichnis

Überblick

In diesem Quick-Tutorial verbinden wir pH-Sensor und Arduino , um ein pH-Meter herzustellen, das die pH-Werte beliebiger Flüssigkeiten messen und die pH-Werte auf einem LCD-Display, einem OLED-Display und einem seriellen Monitor anzeigen kann. Sie können auch lernen, wie Sie den pH-Sensor kalibrieren, um die genauen Ergebnisse anzuzeigen.

https://www.circuitschools.com/what-is-arduino-how-it-works-and-what-you-can-do-with-arduino/


Bevor Sie mit dem Projekt beginnen, lernen Sie einige Themen kennen.

Was ist pH

Es ist eine  Maßeinheit für die Alkalinität oder Säure einer Lösung , genauer gesagt misst der pH-Wert die Menge an Wasserstoffionen, die eine bestimmte Lösung enthält, die Bedeutung von pH in seinem Akronym ist das  Potenzial von Wasserstoffionen , dies ist zu einer praktischen Methode geworden Umgang mit Alkalitätszahlen statt anderer etwas komplizierterer Methoden. Es kann mit einem als pH-Meter bekannten Werkzeug genau gemessen werden. Dieses Gerät kann die Potentialdifferenz zwischen einem  Elektrolytpaar messen .

Die Skala des Wasserstoffionenpotentials ist von 1 bis 14 nummeriert, wobei zwischen 1 und 6 bedeutet, dass die Substanz saurer ist, 7 im Fall von destilliertem Wasser einen neutralen Wert hat und 8 bis 14 bedeutet, dass die Substanz alkalischer ist.

Die Reihenfolge, die die pH-Skala hat, ist  logarithmisch , was bedeutet, dass der Unterschied zwischen einer Zahleneinheit und einer anderen je nach Fall 10-mal basischer oder saurer sein kann.

Was ist ein pH-Meter, wie es funktioniert und seine technischen Daten

Das pH-Meter ist ein Instrument, das verwendet wird, um das Potential von Wasserstoffionen in einer Flüssigkeit zu messen und den Säuregehalt und die Alkalität einer Flüssigkeit mit nummerierten Einheiten von 0-14 zu unterscheiden. pH-Meter misst die elektrische Potentialdifferenz zwischen Bezugselektrode und Innenelektrode. Daher wird es auch als „potentiometrisches pH-Meter“ bezeichnet. Die Potentialdifferenz zwischen den Elektroden definiert den Säuregehalt der Lösung, in der der pH-Sensor platziert wird.

Funktionsweise des pH-Meters

Das pH-Meter verfügt über ein Modul und eine pH-Elektrode, wobei das Modul über einen Spannungsregler verfügt, der eine Gleichstromversorgung von 3,3 V bis 5,5 V unterstützen kann, und einige über einen 5-V-Gleichstrom, der mit vielen programmierbaren Platinen wie Arduino, ESP 8266, STM und ESP kompatibel ist 32. Mit Hardware ausgestattetes Modul, das gefilterte Signale mit weniger Jitter ausgeben kann. Das Modul verfügt außerdem über ein Potentiometer zum Kalibrieren der pH-Elektrode.

Funktion der pH-Elektrodensonde:

Es gibt zwei Arten von Elektroden Glas- und Nichtglaselektroden, in unserem Fall haben wir es nur mit Glaselektroden zu tun. Hier ist also bei einer Glaselektrode das pH-Sensorelement ein Glaskolben, an dessen Ende sich ein Glasrohr befindet, an dem sich diese Glasrohrelektrode befindet gefüllt mit der neutralen Kaliumchloridlösung mit pH 7 und enthält einen mit Silberchlorid beschichteten Silberdraht. Das Strukturdiagramm ist im folgenden Bild dargestellt.


Wie Sie auf dem obigen Bild sehen können, befindet sich das Referenzsystem auf dem äußeren Glas- oder Kunststoffrohr und besteht ebenfalls aus Silberchlorid, das in einer gesättigten Kaliumchloridlösung auf Silberdraht aufgetragen ist. Da sowohl die Glaselektrode als auch die Referenzelektrode dieselbe bekannte pH-Lösung haben, gibt es zwischen ihnen keinen Potentialunterschied. der poröse Stecker schützt das Referenzsystem vor dem zu messenden Medium, ohne die elektrische Verbindung zwischen ihnen zu trennen.

Der pH-Wert wird durch Messung der Potentialdifferenz zwischen Referenzsystem und Messsystem berechnet.

Der wichtige Teil der Sonde, die pH-empfindliche Glasmembran, ist speziell so konstruiert, dass sich die H + -Ionen zur Oberfläche der Glasmembran bewegen und an ihr haften bleiben, wenn das Glas in eine Lösung getaucht wird, um das Positive zu messen Geladene H+-Ionen aus der Lösung bewegen sich zur Oberfläche der Glasmembran, dasselbe passiert mit der inneren Lösung, die die H+-Ionen intern zur Glasmembran bringt. Der Unterschied in den H+-Ionen auf beiden Seiten verursacht also eine Potentialdifferenz. Diese Potentialdifferenz wird vom Signalumwandlungsmodul erfasst und wendet die Nernst-Gleichung an, um den pH-Wert zu erhalten.


Ist die Wasserstoffionenkonzentration innen niedriger als außen, ist die Messlösung sauer und der pH-Wert kleiner als 7, oder ist die H+-Ionenkonzentration innen höher als außen, ist die Messlösung basisch und der pH-Wert wird größer als 7 sein.

Pinbelegungsdiagramm und technische Merkmale des analogen pH-Sensors:


 pH-Sensor-Module pinout diagramm


Signalkonvertierungsmodul:

  • Versorgungsspannung: 3,3 ~ 5,5 V
  • Hohe Genauigkeit: ±0,1 bei 25 °C
  • BNC-Sondenanschluss
  • Erkennungsbereich: 0~14

PH-Elektrode:

  • Betriebstemperaturbereich: 5~60°C
  • Einfache Kalibrierung
  • Innenwiderstand: <250 MΩ
  • Nullpunkt (Neutral): 7±0,5

Bauen Sie ein pH-Meter, das Arduino und ein pH-Sensor-Kit verbindet

Jetzt, nach einer detaillierten Übersicht und den Arbeitsprinzipien des pH-Sensor-Kits, bauen Sie ein pH-Meter, das einen analogen pH-Sensor mit Arduino Uno R3 verbindet, und zeigen Sie den pH-Wert auf dem LCD-Display an.

Erforderliche Komponenten zum Bau eines pH-Meters mit Arduino

  • 1x Arduino Uno R3
  • 1x analoges pH-Sensor-Kit
  • 16×2 LCD-Modul mit I2C
  • Wenige Anschlussdrähte

Schaltplan:

Schließen Sie nun alle erforderlichen Komponenten wie in der folgenden schematischen Darstellung gezeigt an.


pH-Meter Interfacing ARDUINO UNO R3 and pH-Sensor Circuit Diagramm


Wie aus dem obigen Anschlussdiagramm ersichtlich, ist das pH-Sensormodul VCC mit 5 V von Arduino verbunden, GND mit GND von Arduino und der Sensor-OUT-Pin ist mit A0 von Arduino verbunden.

Da wir das 16X2-LCD-Display mit dem I2C-Adapter verbinden, verbinden wir den SDA und SCL des LCD-Moduls mit A4 bzw. A5 von Arduino. und VCC und GND des LCD-Moduls an 5 V bzw. GND von Arduino.

Wenn Sie das LCD-Display ohne I2C-Adapter anschließen müssen, lesen Sie unseren vorherigen Artikel über die Schnittstelle zwischen LCD-Display und Arduino im Detail .

https://www.circuitschools.com/interfacing-lcd-display-with-arduino-in-detail/

Nachdem Sie alles wie oben beschrieben angeschlossen haben, verbinden Sie Arduino mit dem PC oder Laptop, um den Code hochzuladen.

Quellcode:

Kopieren Sie den folgenden Code, fügen Sie die Arduino IDE ein, wählen Sie das richtige Board und den richtigen Port auf der Registerkarte Tools aus und tippen Sie auf Upload.

Da wir das LCD-Display mit I2C verwenden, müssen Sie die LiquidCrystal_I2C-Bibliothek hier herunterladen. Links

https://www.circuitschools.com/libraries/


#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int phval = 0; // the pH meter Analog output is connected with the Arduino’s A0
unsigned long int avgval; //Store the average value of the sensor feedback
int buffer_arr[10],temp;
void setup()
{
Serial.begin(9600);
  lcd.init();
  lcd.begin(16, 2);
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("For more projects");
  lcd.setCursor(0, 1);
  lcd.print("CircuitSchools");
  delay(2000);
  lcd.clear();
}
void loop() {
for(int i=0;i<10;i++) //Get 10 sample value from the sensor for smooth the value
{
buffer_arr[i]=analogRead(A0);
delay(30);
}
for(int i=0;i<9;i++) //sort the analog from small to large
{
for(int j=i+1;j<10;j++)
{
if(buffer_arr[i]>buffer_arr[j])
{
temp=buffer_arr[i];
buffer_arr[i]=buffer_arr[j];
buffer_arr[j]=temp;
}
}
}
avgval=0;
for(int i=2;i<8;i++)   //take the average value of 6 center sample
avgval+=buffer_arr[i];
float volt=(float)avgval*5.0/1024/6; //convert the analog into millivolt
float ph_act = 3.5*volt; //convert the millivolt into pH value
lcd.setCursor(0, 0);
lcd.print("pH Val:");
lcd.setCursor(8, 0);
lcd.print(ph_act);
delay(1000);
}
#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x27, 16, 2);int phval = 0; // the pH meter Analog output is connected with the Arduino’s A0unsigned long int avgval; //Store the average value of the sensor feedbackint buffer_arr[10],temp;void setup() { Serial.begin(9600); lcd.init(); lcd.begin(16, 2); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("For more projects"); lcd.setCursor(0, 1); lcd.print("CircuitSchools"); delay(2000); lcd.clear();}void loop() { for(int i=0;i<10;i++) //Get 10 sample value from the sensor for smooth the value { buffer_arr[i]=analogRead(A0); delay(30); } for(int i=0;i<9;i++) //sort the analog from small to large { for(int j=i+1;j<10;j++) { if(buffer_arr[i]>buffer_arr[j]) { temp=buffer_arr[i]; buffer_arr[i]=buffer_arr[j]; buffer_arr[j]=temp; } } } avgval=0; for(int i=2;i<8;i++) //take the average value of 6 center sample avgval+=buffer_arr[i]; float volt=(float)avgval*5.0/1024/6; //convert the analog into millivolt float ph_act = 3.5*volt; //convert the millivolt into pH value lcd.setCursor(0, 0); lcd.print("pH Val:"); lcd.setCursor(8, 0); lcd.print(ph_act); delay(1000);}

Überprüfen Sie nach dem Hochladen des Codes das LCD-Display, das wie unten abgebildet angezeigt wird


Hier haben wir die Elektrodensonde in das Zitronenwasser eingeführt, da das Zitronenwasser sauer ist, beträgt der pH-Wert weniger als 7. Auf die gleiche Weise sollte der Wert 7 angezeigt werden, wenn wir ihn in reines destilliertes Wasser einführen, wenn nicht Sie müssen das Gerät kalibrieren, das wir am Ende lernen.

Schnittstelle zwischen OLED-Display und Arduino-pH-Meter

Hier in dieser Methode ersetzen wir nur das LCD-Display durch ein OLED-Display, alle anderen Anschlüsse sind gleich, mit Ausnahme des OLED-Display-Anschlusses, den Sie aus dem folgenden schematischen Diagramm entnehmen können.

Erforderliche Komponenten zum Bau eines pH-Meters mit Arduino

  • 1x Arduino Uno R3
  • 1x analoges pH-Sensor-Kit
  • OLED-Display 0,96″ I2C
  • Wenige Anschlussdrähte

Schaltplan

Schließen Sie alle erforderlichen Komponenten wie im folgenden Anschlussplan gezeigt an


pH-Meter Interfacing ARDUINO and pH-Sensor Circuit Diagramm


Die Verbindungen zwischen Arduino und pH-Sensormodul sind die gleichen wie bei der obigen Methode.

Da wir das OLED-Display anschließen, verbinden wir den SDA und SCL des LCD-Moduls mit A4 bzw. A5 von Arduino. und VCC und GND des LCD-Moduls an 5 V bzw. GND von Arduino.

Nachdem Sie alles wie oben beschrieben angeschlossen haben, verbinden Sie Arduino mit dem PC oder Laptop, um den Code hochzuladen.

Quellcode:

Kopieren Sie den folgenden Code, fügen Sie die Arduino IDE ein, wählen Sie das richtige Board und den richtigen Port auf der Registerkarte Tools aus und tippen Sie auf Upload.

Da wir das OLED-Display verwenden, müssen Sie die Bibliotheken Adafruit_GFX.h, Adafruit_SSD1306.h hier herunterladen. Links

https://www.circuitschools.com/libraries/


Sensor Libraries:
DHT sensor library: Link
Dallas Temperature library: Link
RTC module library: Link
Adafruit fingerprint sensor Library: Link
GravityTDS Library: Link
PulseSensor Playground Library: Link
SHT3x Temperature and humidity library : Link
MAX30100 Pulse oximeter sensor library: Link
 
Display Libraries:

LiquidCrystal : Link
Adafruit_SSD1306: Link
Monochrome Oled display Library: Link
Adafruit-GFX-Library: Link
 
Microcontroller libraries:
Onewire library: Link
Simpletimer Library: Link
EEPROM Library: Link
Blynk Library: Link
ESP8266WiFi Library: Link
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SensorPin 0          // the pH meter Analog output is connected with the Arduino’s Analog
unsigned long int avgValue;  //Store the average value of the sensor feedback
float b;
int buf[10],temp;
#define SCREEN_WIDTH 128  // OLED display width, in pixels
#define SCREEN_HEIGHT 64  // OLED display height, in pixels
#define OLED_RESET    -1  // Reset pin # (or -1 if sharing reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup()
{
  pinMode(13,OUTPUT);  
  Serial.begin(9600);  
  Serial.println("Ready");    //Test the serial monitor
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
}
display.display();
delay(2);
display.clearDisplay();
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(0,5);
display.print("PH Sensor");
display.display();
delay(3000);
  
}
void loop()
{
  for(int i=0;i<10;i++)       //Get 10 sample value from the sensor for smooth the value
  {
    buf[i]=analogRead(SensorPin);
    delay(10);
  }
  for(int i=0;i<9;i++)        //sort the analog from small to large
  {
    for(int j=i+1;j<10;j++)
    {
      if(buf[i]>buf[j])
      {
        temp=buf[i];
        buf[i]=buf[j];
        buf[j]=temp;
      }
    }
  }
  avgValue=0;
  for(int i=2;i<8;i++)                      //take the average value of 6 center sample
    avgValue+=buf[i];
  float phValue=(float)avgValue*5.0/1024/6; //convert the analog into millivolt
  phValue=3.5*phValue;                      //convert the millivolt into pH value
  Serial.print("    pH:");  
  Serial.print(phValue,2);
  Serial.println(" ");
  
  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(20,0);
  display.println("Ph Value");
  display.setTextSize(3);
  display.setCursor(30,30);
  display.print(phValue);
  display.display();
  digitalWrite(13, HIGH);      
  delay(800);
  digitalWrite(13, LOW);
}

Überprüfen Sie nach dem Hochladen des Codes das LCD-Display, das wie unten abgebildet angezeigt wir



Hier haben wir die Elektrodensonde in das Zitronenwasser eingeführt, da das Zitronenwasser sauer ist, beträgt der pH-Wert weniger als 7, was wir als 2,93 erhalten. Auf die gleiche Weise, wenn wir es in das reine destillierte Wasser einlegen, sollte der Wert 7 angezeigt werden, wenn nicht, müssen Sie das Gerät kalibrieren, das wir am Ende lernen.

Kalibrieren des an Arduino angeschlossenen pH-Sensors

Die Kalibrierung eines pH-Sensors ist sehr wichtig, um genaue Messwerte zu erhalten, dies ist in diesem Projekt sehr einfach.

Die Kalibrierung des Sensors ist einfach, Sie benötigen lediglich eine bekannte pH-Pufferlösung. Nehmen Sie zum Beispiel eine Pufferlösung mit pH-Wert 7 und tauchen Sie die Elektrodensonde in die Lösung und beobachten Sie den Messwert. Wenn der Ausgang ungleich 7 oder Dezimalstellen nahe 7 ist, drehen Sie das Potentiometer auf der Signalumwandlungsplatine bis zum angezeigten Ausgang 7. Damit ist Ihr pH-Meter genau kalibriert und einsatzbereit.

Zu befolgende Vorsichtsmaßnahmen:

  • Das Sensor-Kit, dh die Signalumwandlungsplatine, muss an einem trockenen Ort aufbewahrt werden, Feuchtigkeit kann die Messwerte beeinträchtigen
  • Vermeiden Sie es, den Glaskolben in der Sonde zu berühren oder zu zerkratzen, da dies zu falschen Messwerten führen kann
  • Trennen Sie die Sonde nach Gebrauch von der Signalumwandlungsplatine. Ohne Stromversorgung sollte die Sonde nicht längere Zeit mit der Platine verbunden sein.

Mitarbeiter der CircuitSchools

Wir bei CircuitSchools veröffentlichen über Grundlagen der Elektronik und elektrische Komponenten und alles, was mit der Entwicklung der Elektrotechnik zu tun hat, mit vollständiger Analyse von Entwicklungsplatinen und Modulen sowie neuesten Projekten mit innovativen Ideen.

Schnittstelle zwischen SHT3x-Temperatur- und Feuchtigkeitssensor und Arduino

Schnittstelle zwischen SSD1306 OLED-Display mit Arduino, ESP32 und ESP8266




Quelle:
https://www.circuitschools.com/diy-ph-meter-using-arduino-and-ph-sensor-and-calibrating-it-for-accuracy/







********************************************************I*
D) pH Meter using ARDUINO UNO and LCD Display
pH-Meter mit Arduino Uno und LCD-Display

DurchDebasis Parida 28. Mai 20202

Analog PH meter PH-4502C

Arduino pH-Meter

Die pH-Skala wird verwendet, um den Säuregehalt und die Basizität einer Flüssigkeit zu messen. Es kann Messwerte von 1 bis 14 haben, wobei 1 die sauerste Flüssigkeit und 14 die basischste Flüssigkeit anzeigt. 7 pH ist für neutrale Substanzen, die weder sauer noch basisch sind. Heutzutage spielt der pH-Wert eine sehr wichtige Rolle in unserem Leben und wird in verschiedenen Anwendungen eingesetzt. Es kann beispielsweise in einem Schwimmbad zur Überprüfung der Wasserqualität eingesetzt werden. Ebenso wird die pH-Messung in einer Vielzahl von Anwendungen wie Landwirtschaft, Abwasserbehandlung, Industrie, Umweltüberwachung usw. eingesetzt.

In diesem Projekt werden wir ein Arduino-pH-Meter herstellen und lernen, wie man den pH-Wert einer flüssigen Lösung mit einem Schwerkraft-pH-Sensor und Arduino misst. Ein 16x2 LCD wird verwendet, um den pH-Wert auf dem Bildschirm anzuzeigen. Wir werden auch lernen, wie man den pH-Sensor kalibriert , um die Genauigkeit des Sensors zu bestimmen. Also lasst uns anfangen!

Erforderliche Komponenten

  • Arduino Uno
  • 16*2 Alphanumerisches LCD
  • I2C-Modul für LCD
  • Gravitation Analoger pH-Sensor
  • Verbindungsdrähte
  • Brotschneidebrett

Was ist der pH-Wert?

Die Einheit, die wir verwenden, um den Säuregehalt einer Substanz zu messen, wird pH genannt . Der Begriff „H“ ist als negativer Logarithmus der Wasserstoffionenkonzentration definiert . Der pH-Bereich kann Werte von 0 bis 14 annehmen. Ein pH-Wert von 7 ist neutral, da reines Wasser einen pH-Wert von genau 7 hat. Werte unter 7 sind sauer und Werte über 7 basisch oder basisch.



Wie funktioniert der analoge Gravitations-pH-Sensor?
Der analoge pH-Sensor misst den pH-Wert einer Lösung und zeigt die Säure oder Alkalität der Substanz an. Es wird häufig in verschiedenen Anwendungen wie Landwirtschaft, Abwasserbehandlung, Industrie, Umweltüberwachung usw. verwendet. Das Modul verfügt über einen integrierten Spannungsreglerchip, der die breite Spannungsversorgung von 3,3-5,5 V DC unterstützt, die mit 5 V und kompatibel ist 3,3 V einer beliebigen Steuerplatine wie Arduino. Das Ausgangssignal wird durch Hardware-Low-Jitter gefiltert.

Technische Eigenschaften: 

Signalkonvertierungsmodul:

  • Versorgungsspannung: 3,3 ~ 5,5 V
  • BNC-Sondenanschluss
  • Hohe Genauigkeit: ±0,1 bei 25 °C
  • Erkennungsbereich: 0~14

PH-Elektrode:

  • Betriebstemperaturbereich: 5~60°C
  • Nullpunkt (Neutral): 7±0,5
  • Einfache Kalibrierung
  • Innenwiderstand: <250 MΩ
pH-Elektrode

Analog PH meter PH-4502C

pH-Signalumwandlungsplatine:

Pin-Beschreibung:
V+: 5 V DC-Eingang
G: Erdungsstift
Po: pH-Analogausgang
Do: 3,3 V DC-Ausgang
Bis: Temperaturausgang



Aufbau der pH-Elektrode:

Der Aufbau eines pH-Sensors ist oben dargestellt. Der pH-Sensor sieht aus wie ein Stab, der normalerweise aus einem Glasmaterial besteht und eine Spitze hat, die als „Glasmembran“ bezeichnet wird. Diese Membran ist mit einer Pufferlösung mit bekanntem pH-Wert (typischerweise pH = 7) gefüllt. Dieses Elektrodendesign gewährleistet eine Umgebung mit konstanter Bindung von H+-Ionen auf der Innenseite der Glasmembran. Wenn die Sonde in die zu testende Lösung getaucht wird, beginnen Wasserstoffionen in der Testlösung mit anderen positiv geladenen Ionen auf der Glasmembran auszutauschen, wodurch ein elektrochemisches Potential über der Membran erzeugt wird, das dem elektronischen Verstärkermodul zugeführt wird, das das Potential misst zwischen beiden Elektroden und rechnet sie in pH-Einheiten um. Die Differenz dieser Potentiale bestimmt nach der Nernst-Gleichung den pH-Wert.

Nernst-Gleichung:

Die Nernst-Gleichung gibt einen Zusammenhang zwischen Zellpotential einer elektrochemischen Zelle, Temperatur, Reaktionsquotient und dem Standard-Zellpotential. Unter nicht standardmäßigen Bedingungen wird die Nernst-Gleichung verwendet, um Zellpotentiale in einer elektrochemischen Zelle zu berechnen. Die Nernst-Gleichung kann auch verwendet werden, um die gesamte elektromotorische Kraft (EMK) für eine vollständige elektrochemische Zelle zu berechnen. Diese Gleichung wird auch verwendet, um den PH-Wert einer Lösung zu berechnen. Die Reaktion der Glaselektrode wird durch die Nernst-Gleichung bestimmt und kann wie folgt angegeben werden:

E = E0  - 2.3 (RT/nF) ln QWhereQ= Reaction coefficientE = mV output from the electrodeE0 = Zero offset for the electrodeR = Ideal gas constant= 8.314 J/mol-KT = Temperature in ºKF = Faraday constant = 95,484.56 C/molN = Ionic Charge

Arduino pH-Meter Schaltplan



Schaltplan für dieses Arduino pH-Meter-Projekt ist unten angegeben:


Verbindung des pH-Signalkonvertierungsboards mit Arduino:

Die Verbindung zwischen Arduino und der PH-Signalumwandlungsplatine ist in der folgenden Tabelle dargestellt.

Arduino PH-Sensorplatine
5V V+
Masse g
A0 Po

Analog PH meter PH-4502C

Programmieren von Arduino für pH-Meter

Nach erfolgreichen Hardwareverbindungen ist es nun an der Zeit, den Arduino zu programmieren. Der vollständige Code für dieses pH-Meter mit Arduino ist im unteren Teil dieses Tutorials angegeben. Die schrittweise Erläuterung des Projekts ist unten angegeben.

Das erste, was Sie in das Programm tun müssen, ist, alle erforderlichen Bibliotheken einzubinden. Hier habe ich in meinem Fall die Bibliothek „ LiquidCrystal_I2C.h“ für die Verwendung der I2C-Schnittstelle eines LCD-Displays und „ Wire.h “ für die Verwendung der I2C-Funktionalität auf Arduino eingefügt.

#include <Wire.h>#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x27, 16, 2);

Als nächstes wird der Kalibrierwert definiert, der nach Bedarf modifiziert werden kann, um einen genauen pH-Wert von Lösungen zu erhalten. (Dies wird später im Artikel erklärt)

float calibration_value = 21.34;

Innerhalb von setup () werden LCD-Befehle geschrieben, um eine Willkommensnachricht auf dem LCD anzuzeigen.

  lcd.init();  lcd.begin(16, 2);  lcd.backlight();  lcd.setCursor(0, 0);  lcd.print("   Welcome to      ");  lcd.setCursor(0, 1);  lcd.print(" Circuit Digest    ");  delay(2000);  lcd.clear();

Lesen Sie in loop() 10 analoge Beispielwerte und speichern Sie sie in einem Array. Dies ist erforderlich, um den Ausgangswert zu glätten.

for(int i=0;i<10;i++) { buffer_arr[i]=analogRead(A0); delay(30); }

Sortieren Sie dann die empfangenen Analogwerte in aufsteigender Reihenfolge. Dies ist erforderlich, da wir in einer späteren Phase den laufenden Durchschnitt der Stichproben berechnen müssen.

 for(int i=0;i<9;i++) { for(int j=i+1;j<10;j++) { if(buffer_arr[i]>buffer_arr[j]) { temp=buffer_arr[i]; buffer_arr[i]=buffer_arr[j]; buffer_arr[j]=temp; } } }

Berechnen Sie schließlich den Durchschnitt von 6 mittleren analogen Abtastwerten. Dann wird dieser Durchschnittswert in den tatsächlichen pH-Wert umgerechnet und auf einem LCD-Display ausgedruckt.

for(int i=2;i<8;i++) avgval+=buffer_arr[i]; float volt=(float)avgval*5.0/1024/6; float ph_act = -5.70 * volt + calibration_value; lcd.setCursor(0, 0); lcd.print("pH Val:"); lcd.setCursor(8, 0); lcd.print(ph_act); delay(1000);}

Kalibrierung der pH-Elektrode

Die Kalibrierung der PH-Elektrode ist in diesem Projekt sehr wichtig. Dafür brauchen wir eine Lösung, deren Wert uns bekannt ist. Diese kann als Referenzlösung für die Kalibrierung des Sensors verwendet werden.

Angenommen, wir haben eine Lösung, deren PH-Wert 7 ist (destilliertes Wasser). Wenn die Elektrode nun in die Referenzlösung getaucht wird und der auf dem LCD angezeigte PH-Wert 6,5 beträgt. Um es dann zu kalibrieren, fügen Sie einfach 7-6,5 = 0,5 in die Kalibrierungsvariable „ calibration_value“ im Code ein. dh machen Sie den Wert 21,34 + 0,5 = 21,84 . Nachdem Sie diese Änderungen vorgenommen haben, laden Sie den Code erneut auf Arduino hoch und überprüfen Sie den pH-Wert erneut, indem Sie die Elektrode in die Referenzlösung eintauchen. Jetzt sollte das LCD den korrekten pH-Wert anzeigen, dh 7 (kleine Abweichungen sind beträchtlich) . Passen Sie diese Variable auf ähnliche Weise an, um den Sensor zu kalibrieren. Suchen Sie dann nach allen anderen Lösungen, um die genaue Ausgabe zu erhalten.

Testen des Arduino pH-Testers

Wir haben dieses Arduino pH-Meter ausprobiert, indem wir es in reines Wasser und Zitronenwasser getaucht haben, Sie können das Ergebnis unten sehen.



Reines Wasser:

Testen des pH-Werts von reinem Wasser mit dem Arduino pH Meter

Zitronenwasser:

Analog PH meter PH-4502C

Testen des pH-Werts von Zitronenwasser mit dem Arduino pH Meter

So können wir mit Arduino einen pH-Sensor bauen und damit den pH-Wert verschiedener Flüssigkeiten überprüfen.

Der vollständige Code und das Demonstrationsvideo  sind unten angegeben.

Arduino Sketch

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
float calibration_value = 21.34;
int phval = 0;
unsigned long int avgval;
int buffer_arr[10],temp;
void setup()
{
 Serial.begin(9600);
  lcd.init();
  lcd.begin(16, 2);
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("   Welcome to      ");
  lcd.setCursor(0, 1);
  lcd.print(" Circuit Digest    ");
  delay(2000);
  lcd.clear();
}
void loop() {
 for(int i=0;i<10;i++)
 {
 buffer_arr[i]=analogRead(A0);
 delay(30);
 }
 for(int i=0;i<9;i++)
 {
 for(int j=i+1;j<10;j++)
 {
 if(buffer_arr[i]>buffer_arr[j])
 {
 temp=buffer_arr[i];
 buffer_arr[i]=buffer_arr[j];
 buffer_arr[j]=temp;
 }
 }
 }
 avgval=0;
 for(int i=2;i<8;i++)
 avgval+=buffer_arr[i];
 float volt=(float)avgval*5.0/1024/6;
 float ph_act = -5.70 * volt + calibration_value;
 lcd.setCursor(0, 0);
 lcd.print("pH Val:");
 lcd.setCursor(8, 0);
 lcd.print(ph_act);
 delay(1000);
}

Video
How to Build a pH meter using Arduino

Quelle:
https://circuitdigest.com/microcontroller-projects/arduino-ph-meter




********************************************************I*
E) DIY pH Meter using pH Sensor & Arduino with OLED Display
DIY-pH-Messgerät mit pH-Sensor und Arduino mit OLED-Display

In diesem Projekt werden wir ein Ph-Meter entwerfen, indem wir einen analogen Ph-Sensor mit Arduino verbinden .

Inhaltsverzeichnis

Überblick

In der Chemie ist der pH -Wert eine Skala, die verwendet wird, um anzugeben, wie sauer oder basisch eine Lösung auf Wasserbasis ist. Saure Lösungen haben einen niedrigeren pH-Wert, während basische Lösungen einen höheren pH-Wert haben. Somit hat der pH-Sensor die Fähigkeit, den pH-Wert jeder Lösung zu bestimmen, dh er sagt, ob die Substanz sauer, basisch oder neutral ist. Indem wir den pH-Wert kennen, können wir die Wasserqualität in landwirtschaftlichen Betrieben und auch in der Fischzucht überwachen. In ähnlicher Weise hat der Ph-Sensor ein breites Anwendungsspektrum wie Abwasserbehandlung, Pharmazeutika, Chemikalien und Petrochemikalien.

In diesem grundlegenden Tutorial lernen wir, wie man den Gravity Ph Sensor mit Arduino verbindet . Wir werden ein einfaches Ph-Messgerät entwerfen und den Ph-Wert auf einem OLED/LCD-Display anzeigen . Wir werden auch etwas über den Aufbau und die Funktionsweise des Ph-Sensors erfahren. Schließlich lernen wir die Kalibrierungsmethode kennen, die die Richtigkeit und Genauigkeit des Sensors bestimmt. Der Ph-Sensor kann auch mit anderen übergeordneten Mikrocontrollern wie NodeMCU ESP8266 und STM32 verbunden werden, die ich in Zukunft besprechen werde.

Sie können diesem Projekt einige weitere zusätzliche Sensoren hinzufügen, z. B. TDS-Sensor , Trübungssensor und Sensor für gelösten Sauerstoff zur Überwachung der Wasserqualität.


Stückliste

Im Folgenden sind die Komponenten aufgeführt, die für die Erstellung dieses Projekts erforderlich sind. Alle Komponenten können einfach bei Amazon erworben werden . Der Link zum Kauf der Komponenten ist angegeben.

SN Komponenten Beschreibung Menge
1 Arduino UNO Arduino UNO R3 Entwicklungsboard 1 https://amzn.to/388eC7D
2 pH-Sensor-Kit DFRobot Analog-Ph-Sensor-Kit 1 https://amzn.to/2Pjo7u8
3 OLED-Display 0,96" I2C OLED-Display 1 https://amzn.to/2HUxGeE
4 Verbindungsdrähte Überbrückungsdrähte 10 https://amzn.to/2L8Xc1p
4 BreadBoard - 1 https://amzn.to/2YM6YyS


Was ist Ph?

Der Begriff PH ist ein quantitatives Maß für die Acidität oder Basizität von wässrigen oder anderen flüssigen Lösungen . Der in Chemie, Biologie und Agronomie weit verbreitete Begriff übersetzt die Werte der Konzentration des Wasserstoffions , die normalerweise zwischen etwa 1 und 10−14 Grammäquivalenten pro Liter liegt, in Zahlen zwischen 0 und 14.

pH-Skala 0..7..14


In reinem Wasser , das neutral (weder sauer noch alkalisch) ist, beträgt die Konzentration des Wasserstoffions 10−7 Grammäquivalente pro Liter, was einem pH-Wert von 7 entspricht. Eine Lösung mit einem pH-Wert von weniger als 7 wird als sauer angesehen ; eine Lösung mit einem pH-Wert über 7 wird als basisch oder alkalisch 
betrachtet .

Was ist ein Ph-Meter?

Ein pH-Meter ist ein wissenschaftliches Instrument, das die Wasserstoffionenaktivität in Lösungen auf Wasserbasis misst und deren Säure- oder Alkalinität , ausgedrückt als pH-Wert, anzeigt. Das pH-Meter misst den Unterschied im elektrischen Potential zwischen einer pH-Elektrode und einer Referenzelektrode, weshalb das pH-Meter manchmal als „ potentiometrisches pH-Meter “ bezeichnet wird. Der Unterschied im elektrischen Potential bezieht sich auf die Acidität oder den pH-Wert der Lösung.

Bau und Funktion des Ph-Messgeräts

Der pH-Sensor hat eine stabförmige Struktur, die normalerweise aus Glas besteht, mit einer Glühbirne , die den Sensor an der Unterseite enthält. Die Glaselektrode zur Messung des pH-Werts hat einen speziell für die Wasserstoffionenkonzentration ausgelegten Glaskolben . Beim Eintauchen in die zu testende Lösung tauschen sich Wasserstoffionen in der Testlösung gegen andere positiv geladene Ionen auf dem Glaskolben aus, wodurch ein elektrochemisches Potential über dem Kolben erzeugt wird. Der elektronische Verstärker erfasst die bei der Messung entstehende elektrische Potentialdifferenz zwischen den beiden Elektroden und rechnet die Potentialdifferenz in pH-Einheiten um. Die Größe des elektrochemischen Potentials über dem Glaskolben ist gemäß der Nernst-Gleichung linear mit dem pH-Wert verbunden .


Bau und Funktion des pH-Sensors

Die Referenzelektrode ist gegenüber dem pH-Wert der Lösung unempfindlich, da sie aus einem metallischen Leiter besteht, der mit der Anzeige verbunden ist. Dieser Leiter wird in eine Elektrolytlösung, typischerweise Kaliumchlorid , eingetaucht, die durch eine poröse Keramikmembran mit der Testlösung in Kontakt kommt .
Die Anzeige besteht aus einem Voltmeter , das die Spannung in pH-Einheiten anzeigt.

Fa. Gravity Analog-pH-Sensor/Meter-Kit



DFRobot pH-Sensor

DFRobot Gravity : Das analoge pH-Meter V2 wurde speziell entwickelt, um den pH-Wert der Lösung zu messen und den Säure- oder Alkaligehalt wiederzugeben . Als aktualisierte Version des pH-Meters V1 verbessert der Sensor die Präzision und das Benutzererlebnis erheblich. Der Onboard-Spannungsregler-Chip unterstützt die breite Spannungsversorgung von 3,3 bis 5,5 V. Das hardwaremäßig gefilterte Ausgangssignal ist jitterarm . Mit diesem pH -Sensor können Sie schnell das pH-Meter bauen, um den pH -Wert der verschiedenen wässrigen Lösungen zu messen .

Merkmale

  1. Eingangsspannung: 3,3 ~ 5,5 V
  2. Hardware-gefiltertes Ausgangssignal, geringer Jitter
  3. Schwerkraftanschluss und BNC-Anschluss
  4. Einfache Kalibrierung
  5. Einheitliche Größe von Sensor und Stecker für einfache mechanische Montage.

Spezifikationen

Das pH- Sensor-Kit verfügt über eine Signalumwandlungsplatine (Sender) V2 und eine pH-Sonde . Beide sind miteinander verbunden. Die Merkmale dieser beiden Teile sind wie folgt.


Signalumwandlungsplatine (Sender) V2
  1. Versorgungsspannung: 3,3 ~ 5,5 V
  2. Ausgangsspannung: 0 ~ 3,0 V
  3. Sondenanschluss: BNC
  4. Signalanschluss: PH2.0-3P
  5. Messgenauigkeit : ± 0,1 bei 25
  6. Abmessungen: 42 mm 32 mm/1,66 1,26 Zoll

pH-Sonde
  1. Sondentyp: Laborqualität
  2. Erkennungsbereich: 0~14
  3. Temperaturbereich: 5~60°C
  4. Nullpunkt: 7±0,5
  5. Reaktionszeit: <2min
  6. Innenwiderstand: <250 MΩ
  7. Sondenlebensdauer: >0,5 Jahre (abhängig von der Nutzungshäufigkeit)
  8. Kabellänge: 100 cm


Um mehr über den pH-Sensor zu erfahren, können Sie den offiziellen Artikel von DfRobot hier lesen:
 
Anbindung eines analogen Gravitations-PH-Sensors an Arduino

Lassen Sie uns nun den Ph-Sensor mit Arduino mit Simple Arduino Code verbinden . Die Verbindung ist ziemlich einfach und Schaltung / Schaltplan ist unten angegeben.

Schnittstelle des pH-Sensors mit dem ARDUINO UNO

Ph Sensor hat 3 Pins, die mit Arduino verbunden werden müssen. Verbinden Sie also den VCC-Pin mit 5 V von Arduino und GND mit GND. Verbinden Sie den analogen Pin mit A0 von Arduino, wie im Bild oben gezeigt.


Quellcode/Programm/Sketch

Der Quellcode für die Schnittstelle zwischen DFRobot Gravity Ph Sensor und Arduino ist unten angegeben.
Kopieren Sie einfach den Code und laden Sie ihn auf das Arduino Board hoch.

#define SensorPin A0          // the pH meter Analog output is connected with the Arduino’s Analog
unsigned long int avgValue;  //Store the average value of the sensor feedback
float b;
int buf[10],temp;
void setup()
{
  pinMode(13,OUTPUT);  
  Serial.begin(9600);  
  Serial.println("Ready");    //Test the serial monitor
}
void loop()
{
  for(int i=0;i<10;i++)       //Get 10 sample value from the sensor for smooth the value
  {
    buf[i]=analogRead(SensorPin);
    delay(10);
  }
  for(int i=0;i<9;i++)        //sort the analog from small to large
  {
    for(int j=i+1;j<10;j++)
    {
      if(buf[i]>buf[j])
      {
        temp=buf[i];
        buf[i]=buf[j];
        buf[j]=temp;
      }
    }
  }
  avgValue=0;
  for(int i=2;i<8;i++)                      //take the average value of 6 center sample
    avgValue+=buf[i];
  float phValue=(float)avgValue*5.0/1024/6; //convert the analog into millivolt
  phValue=3.5*phValue;                      //convert the millivolt into pH value
  Serial.print("    pH:");  
  Serial.print(phValue,2);
  Serial.println(" ");
  digitalWrite(13, HIGH);      
  delay(800);
  digitalWrite(13, LOW);
}

Wässrige Lösung zum Testen des pH-Wertes verschiedener Flüssigkeiten.

Zum Testen des oben entworfenen Ph-Meters habe ich 4 verschiedene Lösungen mit unterschiedlichen Ph-Werten verwendet.
Folgende Lösungen habe ich genommen

1. Seifenwasser : Der pH-Wert liegt zwischen 9 und 10.
2. Milch : Der pH-Wert liegt zwischen 6,5 und 6,7
3. Leitungswasser : Der pH-Wert liegt zwischen 6,5 und 8,5 .
4. Zitronensaft : Der pH-Wert liegt zwischen 2 und 3


Tests & Ergebnisse

Sobald der Code auf das Arduino Board hochgeladen wurde, können Sie den seriellen Monitor öffnen und mit dem Testen des pH-Sensors beginnen.
Ich habe den pH-Sensor mit allen 4 oben angegebenen Lösungen getestet und die folgenden Ergebnisse gefunden

COM10

pH:6.92
pH:3.36
pH:12.00



Schnittstelle des pH-Sensors mit Arduino und OLED-Display

Lassen Sie uns nun den pH-Wert auf dem OLED-Display anstelle des seriellen Monitors anzeigen. Dazu müssen wir dem Arduino Uno ein 0,96″ I2C OLED Display hinzufügen. Daher ist das Anschlussdiagramm unten dargestellt.


Der Anschluss ist wieder recht einfach. Verbinden Sie den Analog-Pin des Ph-Sensors mit dem Arduino A0-Pin und versorgen Sie ihn mit 5 V. Verbinden Sie außerdem 

den SDA SCL-Pin des OLED-Displays mit dem Arduino A4- bzw. A5-Pin.

Quellcode/Programm

Der Quellcode für die Verbindung des DFRobot-Schwerkraft-pH-Sensors mit Arduino und OLED-Display ist unten angegeben. Kopieren Sie einfach den Code und laden Sie ihn auf das Arduino Board hoch.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
 
#define SensorPin 0          // the pH meter Analog output is connected with the Arduino’s Analog
unsigned long int avgValue;  //Store the average value of the sensor feedback
float b;
int buf[10],temp;
 
#define SCREEN_WIDTH 128  // OLED display width, in pixels
#define SCREEN_HEIGHT 64  // OLED display height, in pixels
#define OLED_RESET    -1  // Reset pin # (or -1 if sharing reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup()
{
  pinMode(13,OUTPUT);  
  Serial.begin(9600);  
  Serial.println("Ready");    //Test the serial monitor
 
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
}
display.display();
delay(2);
display.clearDisplay();
 
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(0,5);
display.print("PH Sensor");
display.display();
delay(3000);
  
}
void loop()
{
  for(int i=0;i<10;i++)       //Get 10 sample value from the sensor for smooth the value
  {
    buf[i]=analogRead(SensorPin);
    delay(10);
  }
  for(int i=0;i<9;i++)        //sort the analog from small to large
  {
    for(int j=i+1;j<10;j++)
    {
      if(buf[i]>buf[j])
      {
        temp=buf[i];
        buf[i]=buf[j];
        buf[j]=temp;
      }
    }
  }
  avgValue=0;
  for(int i=2;i<8;i++)                      //take the average value of 6 center sample
    avgValue+=buf[i];
  float phValue=(float)avgValue*5.0/1024/6; //convert the analog into millivolt
  phValue=3.5*phValue;                      //convert the millivolt into pH value
  Serial.print("    pH:");  
  Serial.print(phValue,2);
  Serial.println(" ");
  
  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(20,0);
  display.println("Ph Value");
 
  display.setTextSize(3);
  display.setCursor(30,30);
  display.print(phValue);
 
  display.display();
 
  digitalWrite(13, HIGH);      
  delay(800);
  digitalWrite(13, LOW);
}


Tests & Ergebnisse
Sobald der Code hochgeladen ist, beginnt das OLED-Display mit der Anzeige des pH-Werts. Das Eintauchen der pH-Elektrode in verschiedene Lösungen ergibt
unterschiedliche Werte, wie in den Abbildungen unten gezeigt.


pH-Sensorkalibrierung

Wenn Sie zuvor mit der PH-Messung gearbeitet haben, wissen Sie, dass die PH-Werte im Bereich von 0-14 liegen . Wo PH 0 sehr sauer ist, ist PH 7 neutral und PH 14 sehr alkalisch. Das größte Problem bei der Verwendung des pH-Sensors ist die Kalibrierung . Da der Ph-Sensor ein analoger Sensor ist, muss er kalibriert werden, da der Ausgang von der Spannung abhängt. Wir brauchen also eine Lösung, deren Ph-Stärke uns bekannt ist. Auf dem Markt sind verschiedene Pufferlösungen erhältlich, deren PH-Wert festgelegt ist.

Kalibrier-Flüssigkeite pH 7.00 pH4.01  pH1,68   pH10,00

Die einfachste Methode zum Kalibrieren des pH-Sensors besteht darin, die pH-Elektrode in die Lösung bekannter Stärke zu tauchen und den Messwert zu beobachten. Wenn die Elektrode beispielsweise in eine Lösung getaucht wird, deren pH-Wert 7 beträgt, sollte der Messwert 7 anzeigen. Falls er nicht den korrekten Messwert anzeigt, müssen Sie das Potentiometer auf der Signalumwandlungsplatine (Transmitter) V2 drehen . Sobald der Messwert übereinstimmt, können Sie aufhören zu drehen und somit ist der Sensor kalibriert.

pH Meter V1.0

Hinweis:
In meinem Fall habe ich Milch zum Kalibrieren des Sensors verwendet, da ich keine Pufferlösungen hatte.
Der pH-Wert von Milch liegt zwischen 6,5 und 6,7 .
Sie können also auch Milch zum Kalibrieren verwenden.

Vorsichtsmaßnahmen und zu beachtende Dinge

  1. Der BNC-Anschluss und die Signalumwandlungsplatine müssen trocken und sauber gehalten werden , andernfalls wird die Eingangsimpedanz beeinflusst , was zu einer ungenauen Messung führt . Wenn es feucht ist, muss es getrocknet werden.
  2. Die Signalumwandlungsplatine kann nicht direkt auf eine nasse oder Halbleiteroberfläche gelegt werden, da sie sonst die Eingangsimpedanz beeinflusst , was zu einer ungenauen Messung führt. Es wird empfohlen, die Nylonsäule zur Befestigung der Signalumwandlungsplatine zu verwenden und einen gewissen Abstand zwischen der Signalumwandlungsplatine und der Oberfläche zu lassen.
  3. Die empfindliche Glasblase im Kopf der pH-Sonde sollte eine Berührung mit dem harten Material vermeiden. Beschädigungen oder Kratzer führen zum Ausfall der Elektrode.
  4. Trennen Sie nach Abschluss der Messung die pH-Sonde von der Signalumwandlungsplatine . Die pH-Sonde sollte nicht für längere Zeit ohne Stromversorgung an die Signalumwandlungsplatine angeschlossen werden.




Video-Tutorial & Erklärung
Ph Senor Arduino-Schnittstellen-Tutorial | Funktion, Kalibrierungsmethode und Code
Sehen Sie sich dieses Video auf YouTube an .

Wenn Sie ein IoT-basiertes pH-Meter möchten, können Sie dem IoT-pH-Meter-Tutorial folgen und es mit ESP32 & Thingspeak Server zum Laufen bringen.

Falls Sie mit dem analogen Ph-Sensor nicht zufrieden sind, können Sie den Atlas Scientific Ph-Sensor verwenden , der aufgrund der I2C- und UART-Schnittstelle eine bessere Genauigkeit und ein besseres Ergebnis bietet.

6 Kommentare

  1. Riccardosagt:

    Hallo, ich kann den Code nicht finden, hast du ihn noch nicht eingegeben? Danke sehr

    Wird geladen...
    1. Herr Alamsagt:

      Hey, der Code ist schon da.
      Bitte versuchen Sie, die Seite über einen Computer anzuzeigen. Manchmal ist der Code für Smartphone-Benutzer nicht sichtbar.

      Wird geladen...
  2. Macsagt:

    Hallo, danke für das Diagramm und den Code. Mein pH-Meter ist ein Gravity pH Meter V2.0 und hat keine Potentiometerschraube zum Drehen. Wie würde ich in diesem Fall meinen pH-Sensor kalibrieren?

    Wird geladen...
  3. karlossagt:

    hallo sir .. ich möchte lernen, wie man den tds-sensor gleichzeitig mit dem ph-sensor kombiniert und sich dann mit dem IOT verbindet.
    Hilfe,
    danke

    Wird geladen...
  4. cemsagt:

    Hallo Herr Alam,

    Danke für das Teilen. Hast du Code für v2? Der aktuelle Code funktioniert dafür nicht. Ich glaube, weil sich das Kalibrierungsverfahren geändert hat. Nicht sicher. Ich habe im dfrobot-Forum einen Code für v2 gefunden, aber er hat kein Oled-Display. Trotzdem teile ich mit, für wen jemand ohne Anzeige vorgeht.

    https://wiki.dfrobot.com/Gravity__Analog_pH_Sensor_Meter_Kit_V2_SKU_SEN0161-V2

    Wird geladen...
  5. Jeffsagt:

    Hallo. Ich stelle fest, dass Sie in der Einleitung zu Ihrem großartigen Video unter https://www.youtube.com/watch?v=eCxrU_tfb9w „. . . .Der pH-Sensor kann auch mit anderen übergeordneten Mikrocontrollern wie NodeMCU ESP8266 und STM32 verbunden werden, die ich in Zukunft besprechen werde.“

    Kommt das Video, das zeigt, wie man eine Verbindung mit dem Esp8266 (oder sogar Esp32?) herstellt, oder ist es bereits verfügbar?

    Wird geladen...

Stelle eine Frage .......


Quelle:
https://how2electronics.com/ph-meter-using-ph-sensor-arduino-oled/






********************************************************I*

F) Arduino pH Meter using pH Sensor

Arduino pH-Meter mit pH-Sensor

pH ist eine Skala, mit der wir feststellen können, ob die wässrige Lösung sauer oder basisch ist.
pH wird als die Kraft des Wasserstoffs oder das Potenzial des Wasserstoffs dargestellt (Quelle: Wikipedia ).
Mit Hilfe von Elektroden können wir den pH-Wert der Lösung elektronisch messen, was für die Messung und Automatisierung des pH-Werts des Aquariums oder der Hydroponik oder Aquaponik vorteilhafter sein könnte.
In diesem Artikel lernen wir also, wie man ein Arduino pH-Meter herstellt.

Nach Abschluss dieses Videos kann man
Informieren Sie sich über Elektroden und ihre Arbeitsweise
Kalibrieren Sie das Modul
Messen Sie den pH-Wert einer Lösung auf Wasserbasis mit Arduino
Messen Sie die Temperatur der Lösung und der Umgebung

Anwendungen des Arduino PH-Messgeräts
1) Automatisierung von Aquaponik, Hydroponik oder sogar Aquarium.
2) Die meisten Pflanzen benötigen einen sauren pH-Wert, um das Mineral für ein angemessenes Wachstum abzubauen.
Mit Hilfe dieses Messgeräts kann man den pH-Wert von Wasser messen und geeignetes Wasser auswählen.
3) Die meisten Süßwasser-Aquarienfische benötigen einen pH-Wert von 6,8 bis 7,6, um am besten zu funktionieren.

Was ist eine PH-Elektrode?
Die pH-Elektrode ist ein Gerät, das zwei verschiedene Sensoren (Elektrode) enthält, wobei der Hauptsensor aus pH-Glas besteht, das das Vorhandensein von Wasserstoffionen erkennt, und ein Referenzsensor, der normalerweise aus Silber oder Silberchlorid besteht.



Abbildung: PH-Elektrode für Arduino

Wenn die PH-Elektrode in Flüssigkeit oder Lösung eingetaucht wird, erzeugt sie eine Spannung entsprechend dem pH-Wert.
Das Verhältnis von Ausgangsspannung und pH-Wert ist umgekehrt, dh bei niedrigem pH-Wert (saure Lösung) wird eine hohe Spannung erzeugt und bei steigendem pH-Wert beginnt die Ausgangsspannung zu fallen.

Lassen Sie uns den PH-Wert der Substanz für den täglichen Gebrauch sehen
Tabelle 1: PH-Wert der Substanz für den täglichen Gebrauch
Substanz PH-Bereich
Zitronensaft 2.2 bis 2.6
Essig 2,5 bis 2,9
Apfelsaft 3.5
Kaffee 5,0 bis 5,5
Milch 6.5
Wasser 7.0
Meerwasser 8.0
Seife 9,0 bis 10,0
Bleichen 13.0

Arbeiten am PH-Modul Logo-Rnaenaor V2.0
Die Ausgangsspannung der Elektrode reicht nicht aus, dass jeder Mikrocontroller oder Arduino lesen kann.
Diese Spannung muss entweder verstärkt werden oder wir müssen einen High-Bit-ADC verwenden.
Dieses Modul verstärkt diese Elektrodenspannung, die Arduino leicht und ohne große Fehler ablesen kann.
Das Modul ist ideal für allgemeine Laborfachleute und den Feldeinsatz. Sehen wir uns nun die Funktionen dieses Moduls an.



Abbildung 1: PH-Modul Logo-Rnaenaor V2.0

Merkmal dieses Boards

  1. Integrierter Temperatursensor (LM35), mit dem wir die Umgebungstemperatur messen können.
  2. Spezieller Anschluss für den wasserdichten Sensor DS18B20, damit wir die Temperatur einer Lösung auf Wasserbasis messen können.
  3. BNC-Anschluss für PH-Elektrode daher einfach anzuschließen und zu trennen.
  4. Für minimalen Leistungsverlust und Energieeinsparung wird ein P- und N-Kanal-DS-MOSFET verwendet.
  5. Anstelle eines passiven Spannungsteilers wird eine präzise programmierbare Referenz verwendet, um eine stabile Referenzspannung bereitzustellen.
  6. Zwei dedizierte Potentiometer, eines für die Offset-Regulierung und das andere für die PH-Grenze.
Pin Beschreibung des Moduls
Vcc = Positiver Stromversorgungsstift
GND = Masse der Stromversorgung
GND = Masse des analogen Sensors
P0 = PH-Ausgangspin (Analog-Pin)
T1 = Ausgangspin der Bordtemperatur. Sensor LM35 (Analog Pin)
T2 = Ausgangsstift von DS18B20 wasserdichte Temp. Sensor (Digital-Pin)


Schaltungsbeschreibung des Arduino PH-Meters
Die Schaltung des Arduino pH-Meters ist in Abbildung 1 dargestellt. +5V von Arduino ist mit Vcc des Moduls verbunden, wobei GND-Pin auf GND liegt.
Der Ausgang der Elektrode und des Temperatursensors T1 (LM35) ist analog, der Pin P0 repräsentiert den Ausgang der Elektrode und der T1 repräsentiert den Ausgangspin von LM35.
Sehen Sie sich den Artikel über die Verbindung von LM35 mit Arduino an .
Diese beiden Pins sind mit dem analogen Pin von Arduino verbunden.

Sie können jeden analogen Pin außer A4 und A5 verwenden, da wir hier das I2C-Protokoll für LCD verwenden.
Beispielsweise ist P0 mit A0 verbunden und T1 ist mit A1 verbunden.
Pin T2 des Moduls ist DQ (Ausgang von DS18B20) ist digital.
Somit ist Pin T2 mit dem digitalen Pin D5 verbunden, wie im Schaltplan gezeigt.
Eine Elektrode wird an BNC angeschlossen, wo DS18B20 mit dem Anschluss verbunden ist. VCC und GND von DS18B20 sind mit + und – Pin verbunden, die in der Nähe des Anschlusses markiert sind, wo der DQ-Pin mit dem mittleren Pin des Anschlusses verbunden ist.
Schauen Sie sich das Tutorial an , wie Sie DS18B20 mit Arduino verbinden .


LCD ist im I2C-Protokoll mit Arduino verbunden, dh SDA- und SCL-Pin von LCD sind mit SDA (A4) bzw. SCL (A5) von Arduino verbunden.
Zur besseren Leistungsregelung wird ein Kondensator von 100 uF über den Arduino 5V-Pin und den GND-Pin angeschlossen, wie im Schaltplan gezeigt.

Laut Herstellerdatenblatt bei PH 7 erzeugt es Nullpotential.
Für saure Lösungen erzeugt es ein positives Potential und für eine basische Lösung erzeugt es ein negatives Potential.
Da Arduino negatives Potential nicht direkt lesen kann, benötigen wir eine ordnungsgemäße Kalibrierung.
Wir müssen negatives Potential in positives Potential umwandeln.
Wir machen also eine PH 7,0-Lösung als Mittelpunkt, sagen wir 2,5 V, d.h. wenn wir die Elektrode in reines Wasser eintauchen, zeigt sie 2,5 V an.

Kalibrierung des PH-Messgeräts
Schritt 1: Schließen Sie die Schaltung wie im Schaltplan dargestellt an.
Schritt 2: Laden Sie das unten angegebene Programm auf Ihr Arduino-Board hoch.
(Dieses Programm dient nur zum Ablesen der Spannung, wenn Sie das Potential an Pin P0 mit einem Multimeter messen möchten, ist dieser Schritt nicht obligatorisch).


#include <LiquidCrystal_I2C.h> //Library for I2C lcd
LiquidCrystal_I2C lcd(0x27,20,4);

void setup() {
lcd.init(); //initialization the lcd
lcd.backlight();
}

// the loop routine runs over and over again forever:
void loop() {

int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
lcd.setCursor(0,0);
lcd.print("3.04");
lcd.setCursor(4,0);
lcd.print("V");
delay(500);
}



Schritt 3: Entfernen Sie die Elektrode vom BNC-Stecker und schließen Sie den inneren Stecker mit einem äußeren BNC-Stecker kurz.
d.h. Plus- und Minuspol des BNC-Steckers sind kurzgeschlossen.
BNC-Stecker kurzschließen eben 0V = 7pH

Schritt 4: Stellen Sie das Offset-Kalibrierungs-Potentiometer (näher am BNC-Anschluss) ein, bis 2,5 V erreicht werden.

Schritt 5: Tauchen Sie die Elektrode in ähnlicher Weise in eine Standardpufferlösung von Phosphat mit einem pH-Wert von 6,86 (bei einer Temperatur von 25 °C) ein, schütteln Sie sie vorsichtig und notieren Sie die entsprechende Spannung .

Schritt 6: Tauchen Sie die Elektrode erneut in pH4,01 oder pH9,18, die Standard-Pufferlösung von Borax, und notieren Sie die entsprechende Spannung.


Mathematik Berechnung erforderlich
Die von Arduino gelesene Spannung wird nun in PH umgewandelt, indem die Gleichung der geraden Verbindung verwendet wird, dh Y = mX + C.
Zum Umwandeln benötigen wir Steigung (m) und Konstante (C).
Zur Berechnung von m und C hatten wir die Spannungsmessung bei zwei verschiedenen pH-Lösungen vorgenommen.
Beim Testen im Best Engineering Projects Lab haben wir eine entsprechende Lektüre gefunden

Spannung bei pH 6,86 = 2,54 V

Spannung bei pH 4,01 = 3,04 V

Formel für Steigung: m = \dfrac{Y_2-Y_1}{X_2-X_1}.

Sei der X-Parameter die Spannung und der Y-Parameter der PH-Wert.

Somit ist X 2 = 3,04, X 1 = 2,54 V, Y 2 = 4,01, Y 1 = 6,86

Setzen Sie diese Werte nun in eine Gleichung ein

m = \dfrac{4,01-6,86}{3,04-2,54} = \dfrac{-2,85}{0,5}

Daher m = -5,7

Setzen Sie nun den Wert der Steigung (m) in die Gleichung Y = mX + C mit dem Wert von X = 2,54 und Y = 6,86 ein.

C = Y – mX = 6,86 – (-5,7) x 2,54

Daher ist C = 21,34


Dies sind die Werte, die wir in unserem Softwarecode zur Berechnung des PH-Werts der wasserbasierten Lösungen benötigen.

Softwarecode für Arduino PH-Meter
Software ist in der Programmiersprache Arduino geschrieben und mit Arduino IDE kompiliert.
Diese Software nimmt Messwerte von der Elektrode, LM35 und DS18B20 und wandelt sie in den PH-Wert der Lösung, die Umgebungstemperatur und die Lösungstemperatur um.
Um an diesem Softwarecode zu arbeiten, benötigen wir vier Bibliotheken.
LiquidCrystal_I2C für I2C 20 × 4 LCD, ein Draht, und DallasTemperature für den wasserdichten DS18B20-Temperatursensor und math.h werden verwendet, um den Absolutwert der Float-Typ-Menge für die Kalibrierung zu berechnen.
Im Softwarecode hatten wir auch ein Sonderzeichen für generiert .
Dieser Softwarecode nimmt 10 verschiedene Messwerte in einem festen Zeitintervall und berechnet den Durchschnitt.
Dieser Durchschnittswert wird weiter in Spannung und dann PH unter Verwendung der Formel einer geraden Linie umgewandelt.
Später vergleichen wir die Temperatur der Umgebung und der Lösung und kalibrieren den PH-Wert weiter.


Abbildung 6: Autor-Prototyp des Arduino PP Meter


Hinweis:
#include <math.h> ist nicht erforderlich, da es standardmäßig bereits enthalten ist, aber hier für die Demo (Arbeiten von Fabs) schließen wir es ein.
Die Verwendung und Nichtverwendung dieser Bibliothek wirkt sich also nicht auf den Code aus.

//Header declearation Start
#include <LiquidCrystal_I2C.h> //Library for I2C lcd
#include <OneWire.h> //One wire library
#include <DallasTemperature.h> //Library for DS18B20 Sensor
#include <math.h>// Library for math function
//Header Declearation End
 
//Pin Assignment and declearation Start
#define ONE_WIRE_BUS 5 //data pin  DQ pin of DS18B20 connected to digital pin D5
LiquidCrystal_I2C lcd(0x27,20,4);  //set the LCD address to 0x27 for a 20 chars and 4 line display
const int analogPhPin = A0; //PH module pin P0 connected to analog pin A0
const int analogTemPin = A2; //PH module pin T1 connected to analog pin A1
 
OneWire oneWire(ONE_WIRE_BUS); //Ste up one wire instance
DallasTemperature sensors(&oneWire); //pass one wire reference to DS18B20 library
 
long phTot, temTot;
float phAvg, temAvg;
int x;
const float C = 21.34; //Constant of straight line (Y = mx + C)
const float m = -5.70; // Slope of straight line (Y = mx + C)
//Pin Assignment and declearation end
 
// start for generate custom character
byte customChar[] = {
  B00100,
  B00100,
  B11111,
  B00100,
  B00100,
  B00000,
  B11111,
  B00000
};
//End for generate custom character
 
//Setup Function Start
void setup() {
  lcd.init(); //initialization the lcd
  lcd.backlight();
  sensors.begin(); //Start the DS18B20 Library
  lcd.setCursor(0,0);
  lcd.print("PH and Temperature");
  lcd.setCursor(0,1);
  lcd.print("Meter Using");
  lcd.setCursor(0, 2);
  lcd.print("Arduino");
  delay(3000);
  lcd.clear();
}
//Setup Function End
 
//Main function Start
void loop() {
  phTot = 0;
  temTot = 0;
  phAvg = 0;
  temAvg = 0;
 
  //taking 10 sample and adding with 10 milli second delay
  for(x=0; x<10 ; x++)
    {
        phTot += analogRead(A0);
        temTot += analogRead(A1);
        delay(10);
    }
    float temAvg = temTot/10;
    float phAvg = phTot/10;
    float temVoltage = temAvg * (5000.0 / 1023.0); //convert sensor reading into milli volt
    float phVoltage =  phAvg * (5.0 / 1023.0); //convert sensor reading into milli volt
 
    sensors.requestTemperatures(); // Send the command to get temperatures
    float Etemp = temVoltage*0.1; //convert milli volt to temperature degree Celsius
    float pHValue = phVoltage*m+C;
    float Wtemp = sensors.getTempCByIndex(0);
    float TempDif = fabs(Etemp-Wtemp); //calculating the absolute value of floating
   // lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Env.Tmp.");
    lcd.setCursor(12,0);
    lcd.print("Sol.Tmp.");
    lcd.setCursor(1,1);
    lcd.print(Etemp);
    lcd.setCursor(6,1);
    lcd.write(B11011111);
    lcd.setCursor(7,1);
    lcd.print("C");
    lcd.setCursor(13,1);
    lcd.print(Wtemp);
    lcd.setCursor(18,1);
    lcd.write(B11011111);
    lcd.setCursor(19,1);
    lcd.print("C");
    lcd.setCursor(0,2);
    lcd.print("PH Value of Solution");
    lcd.setCursor(3,3);
    lcd.print(pHValue);
    lcd.setCursor(9,3);
    lcd.print("PH");
    if (TempDif<= 5)
    {
      lcd.setCursor(11,3);
      lcd.write(customChar);
      lcd.setCursor(14,3);
      lcd.print("0.1PH");
      }
 
    if (TempDif> 5)
    {
      lcd.setCursor(11,3);
      lcd.write(customChar);
      lcd.setCursor(14,3);
      lcd.print("0.2PH");
      }
      delay(1000);
}


Video machen Teil 1:


Nachnavigation

5 Gedanken zu „Arduino PH-Meter mit PH-Sensor“

  1. T

    Hallo,

    Ich arbeite mit diesem Sensor, kann aber nicht auf 2,5 V kalibrieren, wie in den Schritten 3 und 4 erwähnt. Die niedrigste Spannung, die ich erreichen kann, beträgt 2,6 V. Wenn keine Sonde angeschlossen ist, beträgt die Spannung ~0,7 V und kann bis zu 2 V variieren, ist aber inkonsistent. Der LM35-Temperaturmesswert ist ebenfalls sehr inkonsistent und zeigt einen hohen Wert an.

    Sie fragen sich, ob Sie Vorschläge haben?

    1. Da die maximale Spannung, die Arduino messen kann, 5 V beträgt, musste ich auf 2,5 V kalibrieren.
      Wenn die Spannung weniger als 2,5 V beträgt, ist die Lösung basisch, und wenn die Spannung größer als 2,5 V ist, ist die Lösung sauer.
      Sie können diese Spannung (2,6 V) in der Berechnung anstelle von 2,5 V verwenden.
      Für einen stabilen Messwert von LM35 lesen Sie bitte den Artikel:
      LM35: So erhalten Sie einen stabilen Temperaturmesswert

  2. T

    Danke für die Antwort. Ich werde deine Vorschläge ausprobieren.

  3. uri ben-joya

    Fehler in Zeile 68 – float phAvg = temTot/10;
    Sollte geschrieben werden - float phAvg = phTot/10;

    1. Vielen Dank, wir hatten den Code aktualisiert.






********************************************************I*
  G)               pH-Sensor VIDEOs

pH Meter Arduino, pH Meter Calibration, DIYMORE pH Sensor, pH Sensor Arduino Code, pH of liquids
https://www.youtube.com/watch?v=zUEl3Y3yKL4

DIY IoT Water pH Meter using pH Sensor & ESP32
https://www.youtube.com/watch?v=nsqEcekJ8-E

Arduino Project: pH Sensor Working, application & Calibration "Water quality Monitoring"
https://www.youtube.com/watch?v=dfoH5iPWkwo

How to Build a pH Meter using Arduino
https://www.youtube.com/watch?v=JalHLxhPv_E

pH Senor Arduino Interfacing Tutorial | Working, Calibration Method & Code
https://www.youtube.com/watch?v=eCxrU_tfb9w

Measuring pH with an Arduino and pH Sensor – Arduino Tutorial
https://www.seeedstudio.com/blog/2020/05/14/measuring-ph-with-an-arduino-and-ph-sensor-arduino-tutorial/

pH Meter Arduino, pH Meter Calibration, DIYMORE pH Sensor Arduino Code
https://www.electroniclinic.com/ph-meter-arduino-ph-meter-calibration-diymore-ph-sensor-arduino-code/

pH Meter using Arduino Uno and LCD Display
https://www.youtube.com/watch?v=NlnJpreJY9g

pH meter Arduino, pH Meter Calibration, DIYMORE

https://www.youtube.com/watch?v=zUEl3Y3yKL4





********************************************************I*
300_c_fritz-x_DFRobot pH-Meter Sensor SKU SEN0161_1a.pdf
https://wiki.dfrobot.com/PH_meter_SKU__SEN0161_

Gravity: Analoger pH-Sensor / Messgerät-Kit V2

Analoges pH-Meter Kit     € 32,50

von DFRobot    Art.-Nr. RB-Dfr-483

DFRobot Gravity Analog pH Sensor / Meter Kit For Arduino  € 42,29

Conrad  Best.-Nr.  802236884-62

Gravity: Analog pH Sensor / Meter Pro Kit For Arduino  € 52,50

ARDUINO Store  Code: TPX00017  /  Barcode: 6959420908417

DFRobot Gravity Analog pH Sensor / Meter Kit For Arduino

Gravity: Analog pH Sensor / Meter Kit For Arduino € 29,50

DFRobot 1025   SKU: SEN0161   Brand: DFRobot    Reward Points: 295

Gravity - Analog pH Sensor / Meter Kit V2 for Arduino SEN0161-V2

Brand: DFRobot


Num Label Description
1 - Power GND(0V)
2 + Power VCC(3.3~5.5V)
3 A Analog Signal Output(0~3.0V)
4 BNC pH Probe Connector





• Analoges pH-Meter für Arduino-Controller
• LED Betriebsanzeige, BNC-Anschluss und PH2.0-Sensor-Interface enthalten
• Messbereich: 0-14PH
• Genauigkeit: ± 0.1pH (25 ° C)



Beschreibung
DFRobot analoges pH-Meter, speziell für ARDUINO UNO R3 entwickelt und verfügt über einen praktischen "Gravity"-Anschluss und eine Reihe von Funktionen.
Sofortiger Anschluss an Ihre Sonde und Ihr Arduino, um pH-Messungen bei ± 0,1pH (25 °C) zu erhalten.
Es hat eine LED, die als Betriebsanzeige dient, einen BNC-Anschluss und eine PH2.0-Sensorschnittstelle.
Um es zu verwenden, schließen Sie einfach den pH-Sensor mit BND-Stecker an und stecken Sie die PH2.0-Schnittstelle in den analogen Eingangsport eines beliebigen Arduino-Controllers.
Wenn Sie vorprogrammiert sind, erhalten Sie den pH-Wert einfach.
Bauen Sie Ihr eigenes PH-Meter gadjet, oder eine Wasserüberwachungsstation für Ihre Wassertanks.
Dieses und unsere anderen Wasser-Sensorgeräte könnten das ultimative Wasser-Kontrollgerät darstellen.
Verwenden Sie es für Ihre Aquaponics- oder Fischbecken oder andere Materialien, die Messungen benötigen.
Hinweis:
Pufferlösungen sind nicht enthalten.
Nach Erhalt des Paketes!
Auf dem Schutzschaum, der die KCl-Kristallisation aus der Kappe darstellt, können Sie einige weiße Partikel finden.
Bitte machen Sie sich keine Sorgen über die Kristallisation in der Packung, das ist normal.
Eigentlich, da die Transportbeschränkung auf Flüssigkeit, haben wir die KCL3N Lösung in der Kappe ausgegossen, die leichte Kristallisation in der Packung sollte seit dem Rest ausgelaufen sein.
Sobald Sie die Sonde erhalten haben, sollten Sie sie in einer KCL3N-Lösung aufbewahren, sie dürfen sie nicht trocken liegen lassen.

Technische Daten
Modulleistung                    : 5V
Modulgröße                       : 43 x 32mm
Messbereich                      :0 - 14pH
Messtemperatur               : 0 .. 60 °C
Genauigkeit                        : ± 0,1pH (25 °C)
Ansprechzeit                       : <= 1min pH
pH-Sensor-Anschluß        : mit BNC-Stecker
Schnittstelle                      : pH2.0 Interface (3 foot patch)
Verstärkungseinstellung  : mit Potentiometer
Power-Anzeige                   :LED
Lieferumfang:
1x pH-Sonde (BNC-Stecker)
1x pH-Sensorplatine
1x Analogkabel

Professionelles pH-Sensor-Meter-Kit mit Industrieelektrode.
Es verfügt über eine einfache, bequeme und praktische Verbindung und eine lange Lebensdauer (bis zu 1 Jahr), wodurch es sich sehr gut für die langfristige Online-Überwachung eignet.
Es verfügt über eine LED, die als Betriebsanzeige fungiert, einen BNC-Anschluss und eine PH2.0-Sensorschnittstelle.
Um es zu verwenden, verbinden Sie einfach den pH-Sensor mit dem BND-Anschluss und stecken Sie dann die PH2.0-Schnittstelle in den analogen Eingangsanschluss eines beliebigen Arduino-Controllers.
Wenn programmiert, erhalten Sie den pH-Wert ganz einfach.
Diese industrielle pH-Elektrode besteht aus einer empfindlichen Glasmembran mit niedriger Impedanz.
Es kann in einer Vielzahl von PH-Messungen mit schneller Reaktion und ausgezeichneter thermischer Stabilität verwendet werden.
Es hat eine gute Reproduzierbarkeit, ist schwer zu hydrolysieren und kann einen basischen Alkalifehler eliminieren.
 Im Bereich von 0 pH bis 14 pH ist die Ausgangsspannung linear.
Das Referenzsystem, das aus der Ag/AgCl-Gel-Elektrolyt-Salzbrücke besteht, hat ein stabiles Halbzellenpotential und eine hervorragende Anti-Verschmutzungsleistung. Die Ring-PTFE-Membran lässt sich nicht leicht verstopfen, daher ist die Elektrode für die Langzeit-Online-Erkennung geeignet.





Beschreibung  Gravity: Analoger pH-Sensor / Messgerät-Kit V2  / SEN0161-V2
Das DFRobot Gravity: Analog pH Meter V2 dient zur Messung des pH-Werts einer Lösung.
Mit dem Sensor können Sie den Säuregehalt oder die Alkalität anzeigen.
Es wird häufig in Anwendungen wie Aquaponik, Aquakultur, Umwelttests verwendet.
Dies ist die V2-Version und ist daher im Vergleich zur V1 verbessert.
Benutzererfahrung und Präzision wurden erheblich verbessert.
Der eingebaute Spannungsregler-Chip unterstützt die breite Versorgungsspannung von 3,3 bis 5,5 V.
Es ist kompatibel mit 5V und 3,3V Hauptsteuerkarte.
Das Ausgangssignal ist hardwaregefiltert und weist einen geringen Jitter auf.
Die Softwarebibliothek verwendet die Zweipunktkalibrierungsmethode.
Es kann automatisch zwei Standardpufferlösungen (4.0 und 7.0) identifizieren.

Mit diesem Produkt in Kombination mit beispielsweise einem Arduino und der Softwarebibliothek können Sie schnell ein pH-Messgerät herstellen.
Dank der Gravity-Schnittstelle von DFRobot müssen Sie nichts löten.

Der pH-Wert ist ein Wert, der den Säuregehalt oder die Alkalität der Lösung misst.
Es wird auch als Wasserstoffionenkonzentrationsindex bezeichnet.
Der pH-Wert ist eine Skala der Wasserstoffionenaktivität in Lösung.
Der pH-Wert wird in Anwendungen wie Medizin, Chemie und Landwirtschaft verwendet.
Normalerweise liegt der pH-Wert zwischen 0 und 14.
Unter normalen thermodynamischen Bedingungen beträgt der pH-Wert 7.
Dies bedeutet, dass die Lösung neutral ist.
Bei einem niedrigeren pH als 7 ist es sauer.
Bei einem höheren pH-Wert als 7 ist es alkalisch.

Punkte der Aufmerksamkeit:

1. Der BNC-Anschluss und die Signalumwandlungskarte müssen trocken und sauber gehalten werden.
Andernfalls wirkt sich dies auf die Eingangsimpedanz aus, was zu einer ungenauen Messung führt.
Wenn es feucht ist, sollte es getrocknet werden.

2. Die Signalumwandlungskarte kann nicht direkt auf eine nasse oder Halbleiteroberfläche gelegt werden.
Andernfalls wirkt sich dies auf die Eingangsimpedanz aus, was zu einer ungenauen Messung führt.
Es wird empfohlen, die Nylonsäule zur Befestigung der Signalumwandlungsplatine zu verwenden.
Lassen Sie einen gewissen Abstand zwischen der Signalumwandlungskarte und der Oberfläche.

3. Die empfindliche Glasluftblase im Kopf der pH-Sonde sollte den Kontakt mit dem harten Material vermeiden.
Beschädigungen oder Kratzer führen zum Ausfall der Elektrode.

4. Trennen Sie nach Abschluss der Messung die pH-Sonde von der Signalumwandlungsplatte.
Die pH-Sonde sollte nicht längere Zeit ohne Stromversorgung an die Signalumwandlungsplatine angeschlossen werden.

Merkmale Analoger pH-Sensor / Messgerät-Kit V2

  • 3.3 ~ 5.5 V breiter Spannungseingang
  • Hardware gefiltertes Ausgangssignal, geringer Jitter
  • Schwerkraftanschluss und BNC-Anschluss, Plug and Play, kein Schweißen
  • Die Softwarebibliothek unterstützt die Zweipunktkalibrierung und identifiziert automatisch die Standardpufferlösung
  • Einheitliche Größe und Stecker, nützlich für die Konstruktion mechanischer Strukturen

Technische Daten Analoger pH-Sensor / Messgerät-Kit V2

Signalumwandlungskarte (Sender) V2

  • Versorgungsspannung: 3.3 ~ 5.5V
  • Ausgangsspannung: 0 ~ 3.0V
  • Sondenanschluss: BNC
  • Signalanschluss: PH2.0-3P
  • Messgenauigkeit: ± 0,1 @ 25 ℃
  • Größe: 42 mm * 32 mm / 1,66 * 1,26 Zoll

pH-Sonde

  • Sondentyp: Laborqualität
  • Erfassungsbereich: 0 ~ 14
  • Temperaturbereich: 5 ~ 60 ° C.
  • Nullpunkt: 7 ± 0,5
  • Reaktionszeit: <2min
  • Innenwiderstand: <250 MΩ
  • Sondenlebensdauer: 6 Monate (abhängig von der Verwendungshäufigkeit)
  • Kabellänge: 100cm

Dokumente

Das Kit enthält

  • pH-Sonde (Laborqualität) x1
  • pH-Signalumwandlungskarte x1
  • Analoges Schwerkraftsensorkabel x1
  • pH-Standardpufferlösung 4,0 x2
  • pH-Standardpufferlösung 7,0 x2
  • Wasserdichte Dichtung x2
  • Schraubverschluss für BNC-Stecker x1
  • M3 * 10 Nylonsäule x4
  • M3 * 5 Schrauben x8

SKU: SEN0161-V2
https://wiki.dfrobot.com/Gravity__Analog_pH_Sensor_Meter_Kit_V2_SKU_SEN0161-V2
https://wiki.dfrobot.com/Gravity__Analog_pH_Sensor_Meter_Kit_V2_SKU_SEN0161-V2#More_Documents




DFRobot PH_meter_SKU__SEN0161_
https://wiki.dfrobot.com/PH_meter_SKU__SEN0161_
https://www.dfrobot.com/product-1025.html
https://www.dfrobot.com/category-35.html
https://www.dfrobot.com/category-104.html







DFRobot  pH-Meter SKU SEN0161
https://wiki.dfrobot.com/PH_meter_SKU__SEN0161_
Q&A Some general Arduino Problems/FAQ/Tips
A For any questions, advice or cool ideas to share, please visit the DFRobot Forum
https://www.dfrobot.com/forum/

Schematic  pH-Meter V1.0.SCH

https://www.dfrobot.com/image/data/SEN0161/pH%20meter%20V1.0%20SCH.pdf
PCB Design layout

https://www.dfrobot.com/image/data/SEN0161/ph%20meter%20V1.0%20layout.pdf
pH Electrode Manual
Type and main technical parameters
https://www.dfrobot.com/image/data/SEN0161/PH%20composite%20electrode%20manual.pdf
Arduino Sample Code
phMeterSample..zip
phMeterSample.ino
https://www.dfrobot.com/image/data/SEN0161/phMeterSample.zip
Zips For All Above
DFRobot SEN0161.zip
https://www.dfrobot.com/image/data/SEN0161/DFRobot%20SEN0161.zip
New  Version Wiki(V2)
https://www.dfrobot.com/wiki/index.php/Gravity:_Analog_pH_Sensor/Meter_Kit_V2_SKU:SEN0161-V2

Get Analog pH Sensor / Meter Kit For Arduino
Gravity: Analog pH Sensor / Meter Kit For Arduino

https://www.dfrobot.com/product-1025.html


DFRobot Store or DFRobot Distributor in EUROPA
Deutschland
KOMPUTER.DE
RobotShop.com
MKelectronics.de
Schweiz
MAKER-SHOP.ch
bastelgarage.ch
https://www.dfrobot.com/index.php?route=information/distributorslogo




/* # This sample code is used to test the pH meter V1.0. # Editor : YouYou # Ver    : 1.0 # Product: analog pH meter # SKU    : SEN0161*/#define SensorPin A0            //pH meter Analog output to Arduino Analog Input 0#define Offset 0.00            //deviation compensate#define LED 13#define samplingInterval 20#define printInterval 800#define ArrayLenth  40    //times of collectionint pHArray[ArrayLenth];   //Store the average value of the sensor feedbackint pHArrayIndex=0;void setup(void){  pinMode(LED,OUTPUT);  Serial.begin(9600);  Serial.println("pH meter experiment!");    //Test the serial monitor}void loop(void){  static unsigned long samplingTime = millis();  static unsigned long printTime = millis();  static float pHValue,voltage;  if(millis()-samplingTime > samplingInterval)  {      pHArray[pHArrayIndex++]=analogRead(SensorPin);      if(pHArrayIndex==ArrayLenth)pHArrayIndex=0;      voltage = avergearray(pHArray, ArrayLenth)*5.0/1024;      pHValue = 3.5*voltage+Offset;      samplingTime=millis();  }  if(millis() - printTime > printInterval)   //Every 800 milliseconds, print a numerical, convert the state of the LED indicator  {    Serial.print("Voltage:");        Serial.print(voltage,2);        Serial.print("    pH value: ");    Serial.println(pHValue,2);        digitalWrite(LED,digitalRead(LED)^1);        printTime=millis();  }}double avergearray(int* arr, int number){  int i;  int max,min;  double avg;  long amount=0;  if(number<=0){    Serial.println("Error number for the array to avraging!/n");    return 0;  }  if(number<5){   //less than 5, calculated directly statistics    for(i=0;i<number;i++){      amount+=arr[i];    }    avg = amount/number;    return avg;  }else{    if(arr[0]<arr[1]){      min = arr[0];max=arr[1];    }    else{      min=arr[1];max=arr[0];    }    for(i=2;i<number;i++){      if(arr[i]<min){        amount+=min;        //arr<min        min=arr[i];      }else {        if(arr[i]>max){          amount+=max;    //arr>max          max=arr[i];        }else{          amount+=arr[i]; //min<=arr<=max        }      }//if    }//for    avg = (double)amount/(number-2);  }//if  return avg;}

suche nach
 # This sample code is used to test the pH meter V1.0.
https://wiki.dfrobot.com/PH_meter_SKU__SEN0161_
https://forum.arduino.cc/t/ph-sensor-circuit-v1-1-arduino-ide-code/550118/2
https://karttur.github.io/arduino/module/module-ph-meter01/
https://how2electronics.com/ph-meter-using-ph-sensor-arduino-oled/
https://wiki.seeedstudio.com/Grove-PH-Sensor-kit/
https://www.okdo.com/de/wp-content/uploads/sites/7/2020/08/SEN0161.pdf
https://cb-electronics.com/products/sen0161-ph-sensor/



Quelle:
https://www.robotshop.com/de/de/analoges-ph-meter-kit.html
https://www.conrad.de/de/p/dfrobot-gravity-analog-ph-sensor-meter-kit-for-arduino-802236884.html
https://store.arduino.cc/collections/dfrobot/products/gravity-analog-ph-sensor-meter-pro-kit-for-arduino?selectedStore=eu
https://eckstein-shop.de/DFRobotGravityAnalogpHSensor2FMeterKitForArduino
https://www.dfrobot.com/product-1025.html
https://www.amazon.de/Gravity-pH-Sensor-Messger%C3%A4t-Aquaponik-Materialien/dp/B07L2RSHYN
https://www.bastelgarage.ch/dfrobot-gravity-analog-ph-sensor-meter-kit-v2
https://www.makerlab-electronics.com/product/gravity-analog-ph-sensor-meter-kit-for-arduino/
https://besomi.com/shop/uncategorized/gravity-analog-ph-sensor-meter-kit-for-arduino/
https://wiki.seeedstudio.com/Grove-PH-Sensor-kit/
https://www.komputer.de/zen/index.php?main_page=product_info&products_id=499





DIN A4  ausdrucken
********************************************************I*
Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected]
ENDE