Poziom pH roztworu jest jednym z często branych pod uwagę pomiarów w wielu branżach, np. rolnictwie czy medycynie. Taką funkcję realizują też urządzenia testowo-pomiarowe do laboratoriów, automatyki domowej (monitoring basenów), kontroli infrastruktury sieciowej (np. bieżące monitorowanie jakości wody pitnej) itd. Wiele gałęzi przemysłu wykorzystuje poziom pH do różnych celów. Wartość pH służy jako punkt odniesienia do monitorowania i zapobiegania korozji rur i kotłów. W procesach fermentacji ciągłe pomiary pH są istotne, aby uniknąć wytwarzania niepożądanych i szkodliwych produktów ubocznych. W przemyśle piwowarskim pH służy do określania starzenia, wzrostu twardości chmielu i stężenia goryczki. W przypadku produktów łatwo psujących się, takich jak mięso i ryby, poziom pH określa okres przydatności do spożycia i świeżość.
System pomiaru pH musi spełniać szereg wymagań funkcjonalnych, takich jak:
- wysoka impedancja wejściowa do próbkowania napięcia elektrody pH,
- pomiar temperatury w celu kompensacji zależności pH od temperatury,
- niski pobór mocy, aby zmaksymalizować czas pracy na baterii,
- efektywne tłumienie szumów, aby zminimalizować niepewność pomiaru.
Skrót pH pochodzi od łacińskiego terminu „potentia hydrogenii” (ang. potential of hydrogen), co można przetłumaczyć jako „potencjał wodoru”. Skala pH to ilościowa skala kwasowości i zasadowości roztworów wodnych związków chemicznych, oparta na aktywności jonów wodorowych H+ w roztworach wodnych. Dla celów pomiarowych norma ISO oraz Międzynarodowa Unia Chemii Czystej i Stosowanej (IUPAC) definiują kwasowość/zasadowość jako wartość pH roztworu, w którym jest zanurzone standardowe ogniwo galwaniczne zdefiniowane przez IUPAC i dla którego zmierzono wartość pierwszej siły elektromotorycznej [5]. Z definicji tej wynika, że pH roztworów jest jednostką bezwymiarową i ma charakter jedynie porównawczy, nieprzekładający się bezpośrednio na stężenie czy aktywność jonów wodorowych ani żadnych innych. Definicja ta jest np. wykorzystywana przy przygotowywaniu skal dla papierków uniwersalnych oraz pH-metrów. Skala pH została zdefiniowana pierwotnie dla rozcieńczonych roztworów kwasów, zasad i soli, więc jej zastosowanie poza zakresem od 0 do 14 jest rzadko spotykane [5]. pH równe 7 jest uważane za neutralne, poniżej 7 - kwaśne, a powyżej tego progu - zasadowe (alkaliczne). Orientacyjnie skala pH została pokazana na rysunku 1 [4].
Do pomiarów pH używa się zwykle papierków nasączonych mieszaniną substancji wskaźnikowych, które zmieniają kolor w szerokim zakresie. Dokładniejszych pomiarów dokonuje się metodą nazywaną pH-metrią. Większość pH-metrów to w istocie mierniki potencjału, w których pH ustala się na podstawie pomiaru siły elektromotorycznej (SEM) ogniwa utworzonego z elektrody wskaźnikowej (zanurzonej w roztworze badanym) i elektrody porównawczej (rysunek 2). Bardziej złożone pH-metry są dodatkowo zaopatrzone w termometry, gdyż temperatura ma wpływ na pomiar.
Istnieje wiele różnych konstrukcji elektrod pH-metrów. Najbardziej rozpowszechnione są jednak mierniki ze zintegrowanymi elektrodami w jednej sondzie, składającej się ze szklanej elektrody pomiarowej i elektrody odniesienia. Typowa konstrukcja bazuje na cienkiej, szklanej membranie, która otacza roztwór chlorowodoru (HCl). Wewnątrz obudowy znajduje się srebrny drut pokryty AgCl, który działa jako elektroda odniesienia i styka się z roztworem HCl. Jony wodoru, znajdujące się na zewnątrz szklanej membrany, dyfundują przez nią i wypierają odpowiednią liczbę jonów sodu (Na+), które normalnie występują w większości szkieł. Jony dodatnie ograniczają się głównie do powierzchni szkła po tej stronie membrany, po której stężenie jest niższe. Nadmiar ładunku Na+ generuje napięcie na wyjściu czujnika.
Sonda jest analogiczna do baterii. Po umieszczeniu czujnika w roztworze elektroda pomiarowa generuje potencjał zależny od aktywności wodoru w roztworze, który jest porównywany z potencjałem elektrody odniesienia. Wraz ze wzrostem kwasowości roztworu (niższe pH) potencjał elektrody szklanej staje się bardziej dodatni (+mV) w porównaniu z elektrodą odniesienia, a wraz ze wzrostem zasadowości roztworu (wyższa wartość pH) potencjał elektrody szklanej staje się bardziej ujemny (−mV) w porównaniu z elektrodą odniesienia. Typowa sonda pH generuje idealnie 59,154 mV/jednostkę pH w temperaturze 25°C. Zwykle wyraża się to równaniem Nernsta [14].
Elektroda pH jest czujnikiem pasywnym, co oznacza, że nie wymaga źródła wzbudzenia (napięcia ani prądu). Ponieważ wyjście elektrody może wahać się powyżej i poniżej punktu odniesienia, jest ona klasyfikowana jako czujnik bipolarny. Generuje ona napięcie wyjściowe, które jest liniowo zależne od pH mierzonego roztworu.
Impedancja elektrody pH jest bardzo wysoka, ponieważ cienka szklana bańka ma dużą rezystancję, zazwyczaj mieszczącą się w zakresie od 10 do 1000 MΩ. Oznacza to, że elektrodę można monitorować wyłącznie za pomocą urządzenia pomiarowego o wysokiej impedancji wejściowej [15].
W roztworze stężenie jonów wodorowych może zmieniać się wraz z temperaturą. W szczególności wartość pH wzrasta w roztworach kwaśnych, wraz ze wzrostem temperatury, natomiast w roztworach obojętnych lub zasadowych zależność ta jest odwrotna. Aby zapewnić dokładne odczyty, niezbędna jest zatem korekta termiczna wartości pH w odniesieniu do wyniku pomiaru zarejestrowanego w temperaturze 25°C.
Biorąc pod uwagę wysoką impedancję wyjściową, najbardziej klasycznym podejściem jest zaprojektowanie aktywnego obwodu wejściowego o wysokiej impedancji, aby uniknąć przesunięcia odczytów napięcia, wynikającego z prawa Ohma. Konsekwencją obecności w urządzeniu obwodu o wysokiej impedancji wejściowej jest wysoki poziom szumów, obserwowany np. w środowiskach przemysłowych (często wyższy niż deklarowana dokładność systemu).
Istnieją dwa praktyczne rozwiązania powyższego problemu:
- filtrowanie w domenie analogowej (w dowolny sposób niezbędny do zniwelowania szumu w torze sygnałowym przed przetwornikiem ADC),
- filtrowanie w domenie cyfrowej (umożliwiające uzyskanie średniej ruchomej i odchylenia standardowego, z dodatkową korzyścią: można łatwo zidentyfikować i odrzucić wartości odstające od normy).
Zestaw Gravity: Lab Grade Analog pH Sensor Kit
Zestaw Gravity: Lab Grade Analog pH Sensor Kit for Arduino/Raspberry Pi (with Calibration Solutions) (SEN0161-V2) [1] jest przeznaczony do testowania pH w warunkach laboratoryjnych. Całość składa się z laboratoryjnej sondy pomiarowej pH (fotografia 1), płytki Gravity pH Meter V2.0 (fotografia 2) oraz buteleczek z roztworami wzorcowymi dla pH 4,0 oraz 7,0. Pojemniki są szczelnie zamknięte aluminiową folią, znajdującą się pod nakrętką.
Sonda pomiarowa pH [1]:
- zakres detekcji pH: 0…14,
- zakres temperatur: 5…60°C,
- punkt zerowy: 7 ± 0,5;
- powtarzalność: < 0,017,
- szum: < 0,5 mV,
- czas reakcji: < 2 min,
- rezystancja wewnętrzna: < 250 MΩ,
- żywotność sondy: > 0,5 roku (w zależności od częstotliwości użytkowania),
- długość kabla: 100 cm.
Kabel sondy jest zakończony wtyczką BNC służącą do podłączania do płytki pomiarowej.
Moduł pomiarowy V2 [1]:
- napięcie zasilania: 3,3…5,5 V
- napięcie wyjściowe: 0…3,0 V,
- złącze sondy: BNC,
- złącze sygnałowe: PH2.0-3P (Gravity),
- dokładność pomiaru: ± 0,1 @ 25°C,
- wymiary: 42 mm × 32 mm/1,66 × 1,26 cala.
Na płytce pomiarowej został zastosowany precyzyjny wzmacniacz operacyjny LMC6482 typu CMOS z wejściem i wyjściem typu Rail-to-Rail oraz bardzo małym prądem wejściowym 0,02 pA (rezystancja wejściowa 10 TΩ). Sygnał pomiarowy jest sprzętowo filtrowany, co zapewnia niski poziom szumu.
Zalecenia dotyczące stosowania zestawu pomiarowego [2]:
- Złącze BNC i płytka konwersji sygnału muszą być suche i czyste, w przeciwnym razie wpłynie to na impedancję wejściową, co spowoduje niedokładny pomiar.
- Płytka konwersji sygnału nie może być umieszczona bezpośrednio na mokrej lub przewodzącej powierzchni. Zaleca się użycie nylonowego słupka do zamocowania płytki konwersji sygnału i zapewnienie pewnej odległości między płytką konwersji sygnału a powierzchnią podłoża.
- Czuła szklana bańka w głowicy sondy pH nie powinna dotykać twardego materiału. Jakiekolwiek uszkodzenia lub zarysowania spowodują uszkodzenie elektrody.
- Po zakończeniu pomiaru należy odłączyć sondę pH od płytki pomiarowej. Sonda nie powinna być podłączana do płytki pomiarowej bez zasilania przez dłuższy czas.
- Nakrętka butelki sondy zawiera płyn ochronny (3,3 mol/l KCL). Nawet jeśli nakrętka butelki jest mocno dokręcona, część płynu ochronnego może nadal wyciekać wokół nakrętki, tworząc białe kryształy. Jednak dopóki w nakrętce znajduje się płyn ochronny, nie wpłynie to na żywotność ani dokładność sondy. Zaleca się, aby białe kryształy umieścić z powrotem w płynie ochronnym w nakrętce butelki.
- Po zakończeniu pomiaru należy założyć nasadkę ochronną i wlać do niej niewielką ilość roztworu KCL o stężeniu 3 mol/l, aby utrzymać szklaną bańkę wilgotną.
- Gdy sonda jest używana po raz pierwszy lub nieużywana przez dłuższy czas, należy ją zanurzyć w roztworze 3N KCL na 8 godzin.
- Po długotrwałym użytkowaniu należy sondę przemyć wodą destylowaną, a następnie zanurzyć w roztworze 3N KCL.
- Należy unikać długotrwałego zanurzenia sondy w wodzie destylowanej, białku lub roztworze fluorku kwasu oraz unikać kontaktu z olejem silikonowym.
- Przed pomiarem innego roztworu należy umyć sondę w wodzie destylowanej i zebrać resztki wody papierem, aby zapobiec zanieczyszczeniu krzyżowemu między roztworami.
Sondy pH podlegają dryfowi po dłuższych pomiarach. W przypadku konieczności pomiaru roztworu przez dłuższy czas, zalecane jest użycie zestawu Gravity: 7/24 Industrial Analog pH Meter Kit (Arduino, Raspberry Pi) (SEN0169-V2) [6].
Zmodyfikowany moduł DFRobot I²C ADS1115
Moduł DFRobot I²C ADS1115 (DFR0553) firmy DFRobot [8] zawiera układ przetwornika analogowo-cyfrowego ADS1115. W celu zapewnienia optymalnych warunków zasilania, płytkę należy zmodyfikować zgodnie z opisem, który zamieściliśmy w poprzednich odcinkach niniejszego cyklu. Do pracy z układem ADS115 została zastosowana biblioteka języka MicroPython [9].
Płytka RPi Pico 2 firmy Raspberry Pi
Nowe płytki Pico 2 i Pico 2W firmy Raspberry Pi z procesorem RP2350 są zgodne elektrycznie z płytkami Pico pierwszej serii (Pico/Pico W) [10]. Na płytkach zostały zastosowane układy pamięci NOR Flash serii W25Q (Winbond) o częstotliwości pracy do 133 MHz (przepustowość do 66 MB/s). Dokładny opis zamieszczono w artykule „Płytka Raspberry Pi Pico 2/2W z procesorem RP2350” [11].
Płytka Pico 2 zawiera przetwornicę buck-boost, która dostarcza napięcie 3,3 V (do zasilania RP2350 i obwodów zewnętrznych) z szerokiego zakresu napięć wejściowych (od 1,8 do 5,5 V). Zapewnia to znaczną elastyczność w zasilaniu urządzenia z różnych źródeł, takich jak pojedyncze ogniwo litowo-jonowe lub 3 ogniwa AA połączone szeregowo. Najprostszym sposobem zasilania Pico 2 jest podłączenie kabla do umieszczonego na płytce gniazdka Micro USB. W dokumentacji płytki pokazano, jak poprzez dodanie tranzystora MOS można zrealizować podtrzymanie bateryjne zasilania modułu [12].
Czujnik temperatury DS18B20
Pomiary standardowe i kalibracyjne napięcia dostarczanego przez sondę są uzupełniane przez jednoczesny pomiar temperatury przez dwa czujniki DS18B20. Do pomiaru temperatury płynów zastosowano sondy wodoodporne DFR0198 (IP68, obudowa ze stali nierdzewnej) z czujnikiem temperatury DS18B20 [7]. Czujniki działają w trybie 3-przewodowym. Pracują na szynie 1-Wire dołączonej do wyprowadzenia GP16 procesora, ze wspólnym rezystorem podciągającym 5 kΩ.
Pico Inky Pack - moduł z wyświetlaczem e-Paper
Pico Inky Pack (PIM634) firmy Pimoroni to moduł z czarno-białym wyświetlaczem e-Paper o przekątnej 2,9” i rozdzielczości 296×128 px, przeznaczony do płytek z serii Raspberry Pi Pico. Ma wbudowany kontroler, który realizuje komunikację za pomocą interfejsu SPI. Pico Graphics to zunifikowana biblioteka grafiki i wyświetlania firmy Pimoroni umożliwiająca sterowanie wyświetlaczami z Pico w języku MicroPython [16].
Ekspander szyny Pico
Ekspandery firmy Pimoroni są przeznaczone do płytek z serii Raspberry Pi Pico. Wyposażone zostały w jedno standardowe złącze żeńskie do bezpośredniego wpięcia płytki RPi Pico oraz zestawy męskich listew 2×20 pinów, które umożliwiają podłączenie dodatkowych modułów rozszerzeń. Etykiety wyprowadzeń, umieszczone na górnej stronie płytki, znacznie ułatwiają prototypowanie. Ekspander Pico Decker (Quad Expander) (PIM555) ma cztery zestawy męskich listew, a Pico Omnibus (Dual Expander) PiM556 - dwa zestawy.
Przygotowanie środowiska programowego
Interpreter MicroPython firmy Pimoroni dla RPi Pico 2 zawiera dodatkowo sterowniki wielu czujników oraz wyświetlaczy, w tym Pico Inky Pack [17].
- Zmontuj elementy zgodnie z opisem.
- Pobierz najnowszy interpreter MicroPythona w pliku Pico2-v0.0.12-pimoroni-micropython.uf2 ze strony firmy Pimoroni [17].
- Trzymając wciśnięty biały przycisk BOOTSEL, podłącz Raspberry Pi Pico 2 do komputera kablem microUSB.
- Skopiuj pobrany plik .uf2 do pamięci Raspberry Pi Pico 2. Jest ono widoczne jako dysk RP2350 w eksploratorze plików Windows.
- W komputerze zainstaluj najnowszą wersję programu Thonny.
- Uruchom program Thonny.
- Kliknij na ikonkę trzech linii w prawym dolnym rogu i wybierz „Configure interpreter”.
- Ustaw typ interpretera na „MicroPython (Raspberry Pi Pico)”.
- Z menu w prawym dolnym rogu wybierz MicroPython (Raspberry Pi Pico) Board CD @COMxx. Interpreter w polu Shell z wyświetli informację o wersji: MicroPython feature/psram-and-wifi, Pico2 v0.0.12 on 2025-02-28; Raspberry Pi Pico2 with RP2350
- Pobierz folder code z kodem aplikacji z repozytorium https://ep.com.pl/files/evo/13752-internet_rzeczy_w_pomiarach_srodowiskowych_21._pomiar_ph.zip
- Otwórz w oknie Files folder code.
- Kliknij prawym klawiszem myszy na plik main.py i wybierz Upload to.
- Tak samo załaduj do płytki Pico 2 pozostałe pliki z folderu.
Oprogramowanie
Oprogramowanie przygotowane w języku Python jest wzorowane na bibliotece dostarczanej przez firmę DFRobot i przeznaczonej dla Arduino i języka Python [3]. Zostały przygotowane trzy pliki aplikacji.
- Reset.py - ustawianie domyślnych wartości parametrów przechowywanych w plikach neutralVoltage.txt oraz acidVoltage.txt. Początkowo (oraz po resecie) są one ustawione na następujące wartości (mV): neutralVoltage=1500,00 (pH 7,0), acidVoltage=2032,44 (pH 4,0).
- main.py - wykonywanie standardowych pomiarów pH i temperatury. Temperatura jest mierzona za pomocą dwóch czujników DS18B20. Pomiar napięcia jest dokonywany przez przetwornik ADS1115 o zakresie napięć wejściowych 4096 mV, z ustawionym najdłuższym czasem pomiaru (częstotliwość próbkowania: 8 sps). Pomiar napięcia z sondy pH jest wykonywany dziesięciokrotnie. Następnie dane w buforze są sortowane, a 6 środkowych wyników jest uśrednianych. Na podstawie bieżącego pomiaru napięcia obliczane jest pH. Do obliczeń pobierane są z plików dane dwóch punktów kalibracyjnych. Rezultaty pomiarów trafiają do terminala oraz na wyświetlacz e-Paper.
Plik Calibration wykonuje kalibrację metodą dwupunktową i automatycznie identyfikuje dwa standardowe roztwory buforowe (4,0 i 7,0). Pomiary są wykonywane tak samo, jak w przypadku skryptu main.py. Wartości parametrów punktów kalibracji są zapisywane do plików neutralVoltage.txt oraz acidVoltage.txt. Opis postępowania w trakcie kalibracji jest zamieszczony w dalszej części opisu.
Konfiguracja pomiarowa
Konfiguracja pomiarowa (fotografia tytułowa) została skompletowana z użyciem płytki RPi Pico 2 [10], modułu DFRobot I²C ADS1115 [8] (zmodyfikowanego), dwóch sond temperatury z czujnikiem DS18B20, zestawu Gravity: Lab Grade Analog pH Sensor Kit for Arduino/Raspberry Pi (SEN0161-V2) [1] (zawierającego: sondę pH, płytkę pomiarową Gravity pH Meter V2.0, oraz buteleczki roztworów wzorcowych dla pH 4,0 i 7,0), wyświetlacza Pico Inky Pack (PIM634) oraz ekspandera Pico Omnibus (PIM556).
- Do płytki pomiarowej V2 dołącz kablem z wtyczką BNC sondę pomiarową.
- Do Pinu A0+ modułu DFRobot I²C ADS1115 dołącz (kabelkiem) pin (+) płytki pomiarowej V2, do pinu A0 dołącz pin (A), zaś do pinu A0- dołącz pin (-).
- Do płytki RPi Pico 2 podłącz moduł DFRobot I²C ADS1115: VDD do szyny VSYS, SCL do GP5, SDA do GP4 i GND do GND.
- Do płytki RPi Pico 2 dołącz sondy DS18B20: VCC (czerwony) do szyny 3,3 V, DATA (zielony) do GP16, GND (żółty) do GND.
- Płytkę RPi Pico 2 dołącz kablem USB do komputera.
Do obsługi oprogramowania w języku Python najłatwiej jest zastosować środowisko Thonny.
Kalibracja dwupunktowa czujnika pH
Kalibrację wielopunktową przeprowadza się z użyciem maksymalnie pięciu buforów standardowych. Użycie więcej niż pięciu punktów nie przynosi znaczącej poprawy uzyskiwanych informacji statystycznych. Funkcja kalibracji jest dana przez regresję liniową zmierzonych różnic potencjałów [15].
Kalibracja jednopunktowa jest niewystarczająca do określenia obu przesunięć nachylenia - charakteryzuje się największą niepewnością pomiaru pH, ponieważ zarówno nachylenie, jak i przesunięcie mogą zmieniać się wraz z wiekiem elektrod. Jest to zatem najmniej wiarygodna procedura.
W większości praktycznych zastosowań szklane ogniwa elektrodowe kalibruje się metodą dwupunktową, do której wymagane są dwa standardowe roztwory o stężeniach 4,0 i 7,0 (załączone w zestawie fabrycznym).
Ponieważ elektrody szklane są głównie przeznaczone do pomiaru pH w roztworach wodnych, w przypadku pomiaru rozpuszczalnika innego niż woda odczyt pH będzie odbiegał od wartości oczekiwanych. W takich sytuacjach należy zbadać pomiar pH roztworu rozpuszczalnika mieszanego w laboratorium i porównać go z wynikiem uzyskanym w szklanej kuwecie przed rozpoczęciem właściwych pomiarów. Dodatkowo przed przystąpieniem do pracy w terenie należy wziąć pod uwagę stopień zużycia pierścienia uszczelniającego elektrody.
Aby zapewnić możliwie wysoką dokładność pomiarów, sondę pH należy skalibrować przed pierwszym użyciem oraz po dłuższym okresie nieużywania (najlepiej raz w miesiącu).
Pierwszy punkt kalibracyjny
- Umyj sondę wodą destylowaną, a następnie usuń resztki wody papierem.
- Umieść sondę pH w standardowym roztworze buforowym o stężeniu 7,0 i delikatnie zamieszaj.
- Uruchom program Calibration.py.
- Zatrzymaj pomiar po ustabilizowaniu się odczytów.
Drugi punkt kalibracyjny
- Umyj sondę wodą destylowaną, a następnie usuń resztki wody papierem.
- Umieść sondę pH w standardowym roztworze buforowym o stężeniu 4,0 i delikatnie zamieszaj.
- Uruchom skrypt Calibration.py.
- Zatrzymaj pomiar po ustabilizowaniu się wartości pomiarowych.
Po wykonaniu powyższych kroków kalibracja dwupunktowa jest zakończona, a następnie czujnik może zostać użyty do rzeczywistych pomiarów. Odpowiednie parametry procesu kalibracji zostały zapisane w plikach neutralVoltage.txt oraz acidVoltage.txt.
Pomiary pH
Zestaw uruchomieniowy SHT31 Smart Gadget firmy Sensirion to referencyjna płytka drukowana, która demonstruje dokładność, wydajność i łatwość użycia czujników wilgotności oraz temperatury SHT31 [13]. W ramach opisywanych eksperymentów zastosowano ją jako termometr odniesienia - pomiary temperatury dokonywane za pomocą obu czujników DS18B20 (położonych tak, żeby się stykały) oraz czujnika temperatury powietrza SHT31 wykazywały (po długim okresie stabilizacji) te same wartości, z dokładnością do drugiego miejsca po przecinku.
Wiarygodność danych pomiarowych zależy od dokładności i stabilności sondy pH. Dwa kluczowe czynniki to okresy stabilności po zmianie temperatury oraz wartości pH roztworu buforowego.
Przykładowe badanie sondy wyglądało następująco:
- Elektrodę przepłukano wodą dejonizowaną i umieszczono w buforze o pH 7,0. Sondę pozostawiono do ustabilizowania przez czas ok. 5 minut.
- Elektrodę przepłukano wodą dejonizowaną i przeniesiono do alikwotu buforu o pH 4,0 na okres ok. 5 minut.
- Elektrodę przepłukano wodą dejonizowaną i umieszczono w wodzie z kranu na okres ok. 10 minut.
Badania były przeprowadzone przy temperaturze roztworów ok. 23,44°C. Napięcie pomiarowe dla roztworu pH 7,0 dosyć szybko się ustabilizowało i pierwszy punkt pomiarowy został ustawiony na 1567,17 mV (rysunek 3).
Pomiar roztworu o pH 4,0 wolniej się stabilizował i drugi punkt pomiarowy został arbitralnie ustawiony (po 10 minutach) na 2074,94 mV (rysunek 4).
Producent podaje czas odpowiedzi poniżej 2 minut, co zgadza się tylko dla pierwszego punktu. Pomiar pH wody kranowej wykazywał wzrost pH (i wartości pomiarowej napięcia) od 7,03 na początku do 7,45 po 10 minutach oraz do 7,62 po 45 minutach (rysunek 5).
Typowy zakres pH w systemach wód powierzchniowych wynosi od 6,5 do 8,5, a w przypadku wód gruntowych - od 6,0 do 8,5.
Gwoli ścisłości należy dodać, że nakrętka butelki sondy została fabrycznie wyposażona w płyn ochronny (3,3 mol/l KCL), w którym czujnik powinien być przechowywany pomiędzy pomiarami. Jednak przy wykonywaniu pierwszych testów płyn ochronny zastosowanej w eksperymentach sondy został wylany i sensor przez ponad 6 miesięcy był przechowywany bez niego. Może to być przyczyną obserwowanego nadmiernego dryftu pomiarowego.
Pomiary zasilania
Do dynamicznego pomiaru prądu zasilania bardzo dobrze nadaje się zestaw Power Profiler Kit II (PPK2) firmy Nordic Semiconductor, opisany dokładniej w artykule „Profilowanie mocy z zastosowaniem Power Profiler Kit II” [18].
Pomiar był wykonywany przy zasilaniu z PPK2 szyny VBUS płytki RPi Pico 2 napięciem 5 V. Pobór mocy dla drugiego bloku pomiarowego, zrejestrowany po uruchomieniu programu, pokazano na rysunku 6. Kanały cyfrowe sygnalizują czas wykonywania operacji (poziom wysoki): CH0 - pomiar temperatury (589 ms), CH1 - pomiar napięcia z sondy pH (1,41 s), CH2 - przygotowanie (506 ms) i wyświetlanie danych (979 ms).
Przy włączaniu zasilania płytki Pico 2 pojawia się 0,88-milisekundowy pik prądu rozruchowego o maksymalnej wartości 0,67 A. Może to stwarzać problemy w przypadku źródeł zasilania małej mocy (np. odnawialnych).
Średni pobór prądu układu za okres 1 minuty wynosi 23,34 mA, a w czasie trwania bloku pomiarowego (3,6 s) 25,17 mA. Podczas pracy układu maksymalny pobór prądu nie przekracza 50 mA. Średni prąd pobierany przez procesor ma wartość rzędu 16,72 mA, a podczas operacji sleep - około 22,5 mA. Niestety implementacja MicroPythona na procesor RP2350 obecnie nie dostarcza obsługi trybów obniżonego poboru mocy, choć ta jest już dostępna w bibliotekach napisanych w języku C.
Podsumowanie
Czujnik pH DFRobot może być stosowany w różnych aplikacjach, takich jak akwaponika, akwakultura i badania środowiskowe wody. Zaprezentowany system pomiaru pH i temperatury pozwala na szybkie spełnienie szeregu wymagań funkcjonalnych.
W próbach został zastosowany jeden rdzeń Arm Cortex-M33 mikrokontrolera RP2350 oraz język MicroPython. Jednak usypianie rdzenia pomiędzy pomiarami okazało się niemożliwe z poziomu języka MicroPython. Pracujemy nad wdrożeniem użycia (w kodzie języka MicroPython) biblioteki języka C, oferującej taką funkcjonalność.
Warto dodać, że istnieje możliwość zastosowania płytki Raspberry Pico 2W zamiast Pico 2. Wtedy można obsługiwać zdalnie system z transmisją bezprzewodową, z użyciem protokołu Bluetooth lub Wi-Fi.
Opisane w artykule eksperymenty stanowią pierwsze podejście do zagadnienia pomiarów pH, które wymagają jednak przeprowadzenia szerszych badań. Dla poprawy jakości pomiarowej można też spróbować ekranowania płytki wzmacniacza pomiarowego oraz kabla doprowadzającego sygnał analogowy do przetwornika ADC.
Henryk A. Kowalski
Instytut Informatyki
Politechnika Warszawska
Literatura
[1] Gravity: Lab Grade Analog pH Sensor Kit for Arduino/Raspberry Pi (with Calibration Solutions), DFRobot, https://www.dfrobot.com/product-1782.html
[2] Gravity__Analog_pH_Sensor_Meter_Kit_V2_SKU_SEN0161-V2-DFRobot, DFRobot, https://wiki.dfrobot.com/Gravity__Analog_pH_Sensor_Meter_Kit_V2_SKU_SEN0161-V2
[3] DFRobot_PH, https://github.com/DFRobot/DFRobot_PH
[4] ph sensor Arduino, how do ph sensors work, application of ph meter, ph sensor calibration, Shahzada Fahad, Electroniclinic, https://www.electroniclinic.com/ph-sensor-arduino-how-do-ph-sensors-work-application-of-ph-meter-ph-sensor-calibration/
[5] Skala pH, Wikipedia, https://pl.wikipedia.org/wiki/Skala_pH
[6] Gravity: 7/24 Industrial Analog pH Meter Kit (Arduino, Raspberry Pi), https://www.dfrobot.com/product-2069.html
[7] Waterproof DS18B20 Digital Temperature Sensor (DFR0198), DFRobot, https://www.dfrobot.com/product-689.html
[8] Gravity: I²C ADS1115 16-Bit ADC Module, DFR0553, DFRobot, https://www.dfrobot.com/product-1730.html
[9] ADS1115_mpy, A MicroPython module for the ADS1115 ADC. Wolfgang (Wolle) Ewald, https://github.com/wollewald/ADS1115_mpy
[10] Raspberry Pi Pico 2, https://www.raspberrypi.com/products/raspberry-pi-pico-2/
[11] Płytka Raspberry Pi Pico 2/2W z procesorem RP2350, Henryk A. Kowalski, EP 3/2025, https://ep.com.pl/projekty/moduly-w-aplikacjach/16453-internet-rzeczy-w-pomiarach-srodowiskowych-15-plytka-raspberry-pi-pico-2-2w-z-procesorem-rp2350
[12] RP2350 Datasheet, 2024-10-16, Raspberry Pi, https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf
[13] SHT31 Smart Gadget Development Kit, Sensirion, https://sensirion.com/products/catalog/SHT31-Smart-Gadget
[14] pH Sensor Reference Design Enabled for RF Wireless Transmission, Erbe D. Reyta, Mark O. Ochoco, Nov 1 2016, Analog Devices, https://www.analog.com/en/resources/technical-articles/ph-sensor-reference-design-enabled-for-rf-wireless-transmission.html
[15] TI Designs - Wireless pH Sensor Transmitter (DevPack for SensorTag), June 2016, Texas Instruments, https://www.ti.com/lit/ug/tidua47b/tidua47b.pdf
[16] Pico Graphics, Pimoroni, https://github.com/pimoroni/pimoroni-pico/tree/main/micropython/modules/picographics
[17] Pimoroni Pico MicroPython for RP2350/Pico2 boards, https://github.com/pimoroni/pimoroni-pico-rp2350
[18] Profilowanie mocy z zastosowaniem Power Profiler Kit II, EP 5/2022, https://ep.com.pl/kursy/15267-systemy-dla-internetu-rzeczy-60-profilowanie-mocy-z-zastosowaniem-power-profiler-kit-ii