Sonda pH cz.1

Parametr twardości wody jest jednym z najważniejszych parametrów badanych w akwariach. Wiele zwierząt a także roślin hodowanych w naszych zbiornikach jest bardzo wrażliwych na zmiany parametrów wody. Dotyczy to także zbyt niskich lub wysokich wartości. Do tego celu służy między innymi sonda pH która została dokładnie opisana.

Zacznijmy więc od początku. Skala pH jest to skala kwasowości oraz zasadowości roztworów wodnych. Rozbieżność skali (przedstawiona poniżej wraz z przykładowymi wartościami) kształtuje się od 0 do 14. Dla pH=0 mówimy o 1M kwasie solnym , natomiast pH=14 to roztwór którego odpowiednikiem jest 1M NaOH (Wodorotlenek sodu). Do pomiarów służą rożnego rodzaju odczynniki a także sonda pH która ma możliwość podłączenia do Arduino.

skala pH

Do przeprowadzenia tego rodzaju testów służą między innymi:

  • Testy kropelkowe
  • Papierki lakmusowe
  • Mierniki elektroniczne
  • Sondy pH

Należy pamiętać o tym iż poziom pH w akwarium nie jest wartością stałą. Wszelkie akcje które wykonujemy w akwarium wpływają na wahania jego poziomu.

Do czynników wpływających na zmianę poziomu pH możemy zaliczyć:

  • podmiany wody,
  • karmienie,
  • dozowanie nawozów,
  • sprzątanie,
  • przycinka roślin,
  • dozowanie CO2,
  • wkładanie szyszek olchy

Należy także pamiętać o tym iż w cyklu dobowym pH zmienia się nawet bez żadnych ingerencji ze strony użytkownika. Dzieje się to za sprawą tego, iż w nocy metabolizm roślin zmienia się w znaczącym stopniu. W ciągu dnia aparaty szparkowe roślin są otwarte i następuje wymiana gazowa oraz fotosynteza (dwutlenek węgla oraz woda zmieniane są na cukry oraz tlen – CO2 + H2O – Cukry + O2). 

W nocy aparaty szparkowe są zamknięte i  w związku z tym wymiana gazów nie występuje (lub jest bardzo mocno ograniczona). Nasuwa się wniosek, że dozowanie CO2 może powodować bardzo duże, wręcz niebezpieczne dla życia ryb stężenie gazu w wodzie. Jest także nieekonomiczne – skoro rośliny nie przyjmują gazu będzie on „uciekać” ze zbiornika niewykorzystany.

Zależność pomiędzy CO2 O2 oraz pH w zbiorniku w cyklu dobowym obrazuje poniższy wykres.

zależność CO2 O2 pH (foto: mn-tech.pl)

wykres zależności ilości Dwutlenku węgla, tlenu rozpuszczonego w wodzie oraz pH

Jak widać z powyższego wykresu wraz ze wzrostem ilości tlenu oraz spadkiem ilości dwutlenku węgla w zbiorniku pH maleje. Najniższe pH osiągane jest tuż przez zmrokiem (najdłuższy czas „pracy” roślin). Największe pH jest zaraz przed świtem. Dlatego tak ważne jest kontrolowanie ilości gazu w zbiorniku.

Dozowanie CO2 w akwarium w dość mocny sposób zmniejsza pH zbiornika. Istnieje także możliwość wystąpienia tzw. „przyduchy”. Może się to zdarzyć w przypadku zbyt intensywnego podawania co2 do akwarium w stosunku do tego jaką ilość tego składnika są w stanie przyswoić rośliny. W sprzedaży są dostępne indykatory CO2 – szklane zbiorniczki, które wypełnia się płynem reagującym na zmianę pH.

Ten prosty sposób pozwala na dość precyzyjne rozpoczęcia dozowania gazu. Jest to system który trzeba robić „na oko”. Wraz z nabraniem doświadczenia można użyć elektrozaworu oraz programatora czasowego. Pozwoli to na zautomatyzowanie dozowania (co wcale nie oznacza, że nie należy kontrolować co jakiś czas parametrów wody).

Idealnym narzędziem do kontroli pH w zbiorniku (i tym samym dozowania CO2) jest Arduino. W wielu filmach dostępnych na kanale na YouTube pokazywałem w jaki sposób używać go można  do kontroli temperatury, oświetlenia itp. Tym razem skupię się na podłączeniu do niego sondy pH oraz elektrozaworu kontrolującego włączanie gazu oraz awaryjne uruchamianie napowietrzanie jeśli poziom pH spadłby zbyt nisko.

Poniższy schemat przedstawia sposób podłączenia sondy do arduino a poniższy kod służy tylko i wyłącznie wyświetlaniu informacji o aktualnym pH.

pomiar pH

Skrypt

Oto przykładowy kod który po wgraniu do arduino wyświetla na serial monitorze informacje o aktualnym pH

/*
# This sample codes is for testing the pH meter V1.0.
 # Editor : YouYou
 # Date : 2013.10.12
 # Ver : 0.1
 # Product: pH meter
 # SKU : SEN0161
 # sonda pH arduino
*/

#define SensorPin 0 //pH meter Analog output to Arduino Analog Input 0
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=2.8*phValue; //convert the millivolt into pH value
    Serial.print(" pH:"); 
    Serial.print(phValue,2);
    Serial.println(" ");
    digitalWrite(13, HIGH); 
    delay(800);
    digitalWrite(13, LOW); 
    //site mn-tech.pl
    //youtube https://www.youtube.com/user/mntechpl
    //facebook https://www.facebook.com/mntechpl
  }

Zadaniem powyższego kodu jest tylko i wyłącznie zbieranie informacji i wyświetlanie ich na serial monitorze. W tym przypadku nie ma żadnych dodatkowych opcji w stylu sterowania przekaźnikami. Do tego służy drugi poniższy kod. Po włożeniu sondy do akwarium może się pojawić problem „skaczących” wyników.  Jeśli sonda zostanie zanurzona np. w szklance – tego problemu nie ma – wynik jest jeden i wahania są wręcz minimalne (rzędu 0,01).

Został on wyposażony w mechanizm pobierający dane z 10 kolejnych pomiarów odrzucenie dwóch najwyższych oraz dwóch najniższych wynikowi uśrednienie wartości pomiarów z pozostałych 6 wyników. Dzięki temu rozwiązaniu wyniki są bardziej równomierne.

Więcej informacji oraz skrypt do sterowania przekaźnikami w części 2.