Co je pH modul PH4502C?
pH modul PH4502C umožňuje ESP32 měřit kyselost nebo zásaditost kapalin na stupnici 0–14. Modul má vestavěné potenciometry pro kalibraci, digitální výstup (DO) pro prahové upozornění a analogový výstup (PO) pro přesné napěťové čtení, které lze převést na hodnoty pH.
Na samotném modulu se nachází dva trimry. Trimr umístěný blíže k BNC konektoru slouží ke kalibraci měření, kdy je možné využít dodávaný roztok jako referenci s hodnotou pH 7. Druhým trimrem pak můžeme nastavit hranici, při jejímž překročení se rozsvítí červená kontrolní LED dioda na modulu.
Tento modul se hodí pro orientační měření kyselosti vody – pro orientační měření je rozhodně přesnější než lakmusové papírky.
Hlavní vlastnosti
- Rozsah měření pH 0–14
- Analogový výstup pro kontinuální monitoring a digitální prahový výstup (DO) pro upozornění na vysoké nebo nízké pH
- BNC konektor pro vyměnitelnou pH sondu
- Napájení 5V
- Kompatibilní s ESP32 a Arduino
Potřebné komponenty
- ESP32
- pH modul PH4502C
- pH sonda s BNC konektorem
- Kalibrační roztok pH 7 (nebo prášek pH 6,86 rozpuštěný ve 250 ml destilované vody)
- Propojovací vodiče
⚠️ Přesnost měření závisí na správné kalibraci. Sondu skladujte v roztoku KCl, když se nepoužívá – nikdy ji nenechávejte suchou, jinak se poškodí membrána.
Zapojení
Pin V+ připojte na 5V, pin G na GND a pin Po na analogový pin ESP32. Použijte GPIO 34 – je určen pouze pro vstup a neruší ostatní periferie.
Pin Do (digitální výstup) připojte na GPIO 35 pokud chcete využít prahové upozornění.
pH sondu zasuňte do BNC konektoru na modulu.
⚠️ Výstup Po je napětí pH senzoru (-0,4V až 0,4V) zesílené 2×. Střední hodnota napětí pH senzoru 0V (pH 7) je posunutá pomocí potenciometru na cca 1V až 2,5V. Modul proto napájejte z 5V, ne z 3,3V – jinak bude rozsah měření zkrácený.
Kalibrace před prvním použitím
Před nahráním kódu proveďte mechanickou kalibraci trimrem:
- Připravte kalibrační roztok pH 7 (rozpusťte kalibrační prášek ve 250 ml destilované vody)
- Ponořte sondu do roztoku a počkejte 2–3 minuty
- Nahrájte Kód 1 níže a otevřete Serial Monitor
- Trimrem blíže k BNC konektoru otáčejte pomalu dokud Serial Monitor nezobrazí hodnotu 7.00
- Kalibrace je hotová – trimr už nenastavujte
Kód 1 – jednoduché čtení pH (pro kalibraci)
1#define PH_PIN 34
2
3// Kalibrační konstanta – upravte pokud hodnoty nesedí
4// Výchozí hodnota pro napájení 5V a střední napětí ~2.5V
5const float OFFSET = 0.0;
6
7float prectiPH() {
8 int suma = 0;
9
10 // průměr z 10 vzorků pro stabilnější hodnotu
11 for (int i = 0; i < 10; i++) {
12 suma += analogRead(PH_PIN);
13 delay(10);
14 }
15
16 float prumer = suma / 10.0;
17
18 // přepočet ADC hodnoty (0-4095) na napětí (0-3.3V)
19 float napeti = prumer * (3.3 / 4095.0);
20
21 // přepočet napětí na pH
22 // lineární vztah: pH = 7 + ((2.5 - napeti) / 0.18)
23 float ph = 7.0 + ((2.5 - napeti) / 0.18) + OFFSET;
24
25 return ph;
26}
27
28void setup() {
29 Serial.begin(115200);
30 Serial.println("pH metr připraven – kalibrujte trimrem na pH 7.00");
31}
32
33void loop() {
34 float ph = prectiPH();
35
36 Serial.print("Naměřené pH: ");
37 Serial.println(ph, 2); // 2 desetinná místa
38
39 delay(1000);
40}Kód 2 – pH metr s hodnocením kvality vody
Po kalibraci použijte tento kód pro reálné měření s textovým hodnocením:
1#define PH_PIN 34
2#define DO_PIN 35 // digitální prahový výstup (volitelné)
3
4const float OFFSET = 0.0; // upravte po kalibraci
5
6float prectiPH() {
7 int suma = 0;
8 for (int i = 0; i < 10; i++) {
9 suma += analogRead(PH_PIN);
10 delay(10);
11 }
12 float prumer = suma / 10.0;
13 float napeti = prumer * (3.3 / 4095.0);
14 return 7.0 + ((2.5 - napeti) / 0.18) + OFFSET;
15}
16
17String hodnoceniPH(float ph) {
18 if (ph < 0 || ph > 14) return "Mimo rozsah – zkontrolujte sondu";
19 if (ph < 4.0) return "Silně kyselé";
20 if (ph < 6.0) return "Kyselé";
21 if (ph < 6.5) return "Slabě kyselé";
22 if (ph <= 7.5) return "Neutrální ✓";
23 if (ph <= 8.5) return "Slabě zásadité";
24 if (ph <= 10.0) return "Zásadité";
25 return "Silně zásadité";
26}
27
28void setup() {
29 Serial.begin(115200);
30 pinMode(DO_PIN, INPUT);
31 Serial.println("pH metr spuštěn.");
32 Serial.println("-------------------------");
33}
34
35void loop() {
36 float ph = prectiPH();
37 int prahovySignal = digitalRead(DO_PIN);
38
39 Serial.print("pH: ");
40 Serial.print(ph, 2);
41 Serial.print(" | ");
42 Serial.println(hodnoceniPH(ph));
43
44 if (prahovySignal == LOW) {
45 Serial.println("⚠️ UPOZORNĚNÍ: pH překročilo nastavený práh!");
46 }
47
48 Serial.println("-------------------------");
49 delay(2000);
50}Výstup v Serial Monitoru bude vypadat například takto:
1pH metr spuštěn.
2-------------------------
3pH: 7.02 | Neutrální ✓
4-------------------------
5pH: 6.43 | Slabě kyselé
6-------------------------
7pH: 4.31 | Kyselé
8-------------------------Jak to funguje
pH sonda generuje malé napětí v závislosti na koncentraci vodíkových iontů v kapalině. Výstup senzoru je zesílen 2× a střední hodnota (pH 7 = 0V) je posunutá pomocí potenciometru na rozsah 1V–2,5V, aby bylo možné signál číst na ADC pinu ESP32.
V kódu čteme 10 vzorků a průměrujeme je – ADC na ESP32 je citlivý na šum a bez průměrování by hodnoty skákaly. Napětí pak přepočítáváme na pH podle lineárního vzorce.
Přesnost tohoto modulu je přibližně ±0,5 pH po správné kalibraci – pro akvaristiku, hydroponii nebo monitoring bazénu zcela dostačující.
Časté problémy
Hodnoty skáčou nebo jsou nestabilní → Průměrujte více vzorků (zvyšte počet ze 10 na 20) → Napájejte modul ze stabilního 5V zdroje → Umístěte modul co nejblíže k sondě – dlouhé vodiče přidávají šum
Hodnoty nesedí ani po kalibraci trimrem → Upravte konstantu OFFSET v kódu (např. +0.5 nebo -0.3) → Ověřte čerstvost kalibračního roztoku – starý roztok zkresluje kalibraci
Sonda ukazuje stále stejnou hodnotu → Zkontrolujte BNC konektor – sonda musí být pevně zasunutá → Sonda mohla vyschnout – ponořte ji na hodinu do KCl roztoku nebo vody
Digitální výstup DO nefunguje → Nastavte druhý trimr na modulu pro požadovaný práh
Péče o sondu
Správné skladování výrazně prodlužuje životnost sondy:
- Po měření vždy opláchněte sondu destilovanou vodou
- Skladujte v roztoku KCl nebo v pH 7 kalibračním roztoku – nikdy suchou
- Nikdy nesahat prsty na skleněnou membránu na špičce sondy
- Před měřením nechte sondu aklimatizovat 2–3 minuty v kapalině
