Module ph meter sensor
Modul sensor ini merupakan module yang berfungsi untuk mendeteksi tingkat ph air yang dimana outputnya berupa tegangan analog.
Sehingga untuk mengkonversi nilai pembacaan harus dimasukan ke dalam rumus di kode program yang dibuat.
Dikarenakan module ph meter sensor ini range output tegangan analognya dari 0 – 3Vdc dengan inputan power supply 3.3 – 5.5Vdc.
Dipasaran module ph meter sensor banyak dijual dari produsen DRFROBOT dengan kode SKU : SEN0161-V2.
Kelengkapan modul sensor ph meter V.2 :
- Kabel ke mikrokontroler (example : arduino)
- pH signal Conversion
- Kabel probe
- Probe pH meter
Spesifikasi
- pH signal Conversion Board V2
- Tegangan kerja antara 3.3 ~ 5.5V
- Output tegangan analog : 0 ~ 3.0V
- Jenis konektor probe yang digunakan tipe “BNC”
- Tingkat akurasi pengukuran : ±0.1 (pada suhu pengujian 25℃)
- Signal Connector : PH2.0-3P
- Dimensi board : 42mm x 32mm
- Probe pH
- termasuk dalam grade laboratorium
- Range deteksi pH : 0 ~ 14
- Suhu kerja antara 5 ~ 60 ° C
- Titik netral pada pH 7 ± 0,5
- Internal Resistance: < 250MΩ
- Waktu Respons kurang dari 2 menit
- Masa lifetime Probe : > 0,5 tahun (tergantung dengan frekuensi penggunaan)
- Panjang kabel probe : 100cm
Modul sensor ini difungsikan kedalam berbagai aplikasi seperti aquaponik, pengujian air lingkungan, hidroponik dan lain-lain.
Tipe SEN0161-V2 merupakan module versi kedua dimana telah diimprove dari segi tingkat kepresisian pembacaan datanya.
Selain itu telah diimprove juga untuk bagian hardware yang memiliki jitter yang rendah.
Jitter itu merupakan perbedaan waktu antara pembacaan dan pengiriman sinyal.
Secara pengertian, pH itu merupakan nilai yang digunakan untuk mengukur tingkat keasaman atau alkalinitas dalam suatu larutan.
Range nilai PH yaitu antara angka antara 0 hingga 14 dengan ketentuan seperti pada tabel dibawah ini
pH larutan | Sifat |
pH < 7 | Asam |
pH = 7 | Netral |
pH > 7 | Basa |
Tutorial Sederhana pembacaan pH meter via Serial Monitor
Bahan – bahan yang diperlukan :
- Arduino Uno
- Module pH meter 1 set
- buffer basa nilai 4
- buffer netral nilai 7
- sensor DS18B20
Rangkaian project
Alasan kenapa menggunakan ds18b20 dikarenakan sebagai kompensasi pembacaan nilai pH air.
Jenis sensor ds18b20 yang digunakan ini yaitu tipe waterproof, dan sudah diberikan resistor 4k7 sebagai pull up datanya.
Pada datasheet module sensor tersebut diukur pada suhu air yang telah dikondisikan pada 25’C akan tetapi pada kondisi aktual kadang bisa lebih atau kurang.
Dan pada library yang digunakan sudah terdapat fitur kompesasi pembacaan suhu tersebut.
Library yang dibutuhkan :
- pH meter : [ddownload id=”2919″]
- ds18b20 : [ddownload id=”2360″]
- Dallastemperature : [ddownload id=”2361″]
Pеlеtаkаn Lіbrаrу раdа mаѕіng – mаѕіng Oреrаtіоn Sуѕtеm :
- PC (Wіndоwѕ) : Document/Arduіnо/lіbrаrіеѕ
- Mас : (hоmе dіrесtоrу)/Aррlісаtіоnѕ/Arduіnо (Shоw Pасkаgе Cоntеnt) / Cоntеntѕ / Jаvа / Lіbrаrіеѕ)
- Lіnux : (hоmе dіrесtоrу)/ѕkеtсhbооk/lіbrаrіеѕ
Atau dapat install via Arduino IDE langsung
- Download libraries
- Buka Arduino IDE
- Pilih sketch > include library > add. ZIP library
- pilihlah file DFRobot_PH.h > open
- Jika sudah ada tulisan “Library added to your libraries“
- Pastikan dengan File > Examples > DFRobot_PH
Untuk pembacaan ds18b20 atau module sensor suhunya diharapkan, discan dulu menggunakan one wire search yang terdapat pada example library.
Gunanya untuk memastikan sensor terpasang dan terdeteksi dengan semestinya dan terdapat alamat saat pembacaan.
Koding Program
/* www.nyebarilmu.com * 2019 * Program pembacaan pH meter dan ds18b20 via serial monitor */ #include "DFRobot_PH.h" //library yang diinstal seperti instruksi diatas #include <OneWire.h> //library untuk pembacaan sensor ds18b20 #include <DallasTemperature.h> #define sensor_ds18b20 2 //pada pin 2 untuk sensor ds18b20 OneWire oneWire(sensor_ds18b20); DallasTemperature sensors(&oneWire); //penggunaan interface 1 wire untuk pengaksesan int sensorPin = A0;//pembacaan sensor ph menggunakan ADC float tegangan,nilaiph,suhu; DFRobot_PH ph; void setup() { Serial.begin(9600); //serial monitor ph.begin(); //mulai untuk pembacaan sensor ph meter sensors.begin(); //mulai untuk pembacaan sensor ds18b20 } void loop() { sensors.requestTemperatures(); static unsigned long timepoint = millis(); if(millis()-timepoint>1000U){ //time interval: 1s timepoint = millis(); tegangan = analogRead(sensorPin)/1024.0*5000; //mengubah tegangan analog menjadi digital dan menjadi tegangan suhu = sensors.getTempCByIndex(00); nilaiph = ph.readPH(tegangan,suhu); //konversi tegangan menjadi ph meter dengan kompensasi suhu Serial.print("Celsius temperature: "); Serial.print(suhu,1); //nilai pembacaan suhu Serial.print("^C pH:"); Serial.println(nilaiph,2); //nilai pembacaan ph meter } ph.calibration(tegangan,suhu); }
Hasil pembacaan data
Tutorial Kedua pembacaan pH meter dengan display LCD 16×2
Bahan – bahan yang diperlukan :
- Arduino Uno
- Module pH meter 1 set
- buffer basa nilai 4
- buffer netral nilai 7
- sensor DS18B20
- LCD 16×2 dan PCF8574
Installing Libraries
Langkah – langkah untuk installing library driver LCD 16×2 PCF8574 dengan catatan terhubung internet :
- Buka Software arduino uno IDE
- Arahkan cursor pada menu sketch -> include libraries -> manage libraries
- Ketikan “PCF8574“
- Pilih “LiquidCrystal_PCF8574 by Matthias Hertel“
- Klik install dan closed
Sebelum masuk ke program harap dicek dahulu untuk address driver lcd nya menggunakan i2c scanner dapat dicek pada link ini :
[irp posts=”657″ name=”Cara mencari tahu alamat interface i2c module arduino”]
Wiring Schematic
Koding Program
[sociallocker id=1344]
/* www.nyebarilmu.com * 2019 * Program pembacaan pH meter dan ds18b20 display lcd 16x2 */ #include "DFRobot_PH.h" //library yang diinstal seperti instruksi diatas #include <OneWire.h> //library untuk pembacaan sensor ds18b20 #include <DallasTemperature.h> #include <LiquidCrystal_PCF8574.h> #include <Wire.h> LiquidCrystal_PCF8574 lcd(0x27); #define sensor_ds18b20 2 //pada pin 2 untuk sensor ds18b20 OneWire oneWire(sensor_ds18b20); DallasTemperature sensors(&oneWire); //penggunaan interface 1 wire untuk pengaksesan int sensorPin = A0;//pembacaan sensor ph menggunakan ADC float tegangan,nilaiph,suhu; DFRobot_PH ph; void setup() { Serial.begin(9600); //serial monitor ph.begin(); //mulai untuk pembacaan sensor ph meter sensors.begin(); //mulai untuk pembacaan sensor ds18b20 lcd.begin(16, 2); lcd.setBacklight(255); lcd.setCursor(0,0); lcd.print("TRIAL PH METER"); lcd.setCursor(0,1); lcd.print("nyebarilmu.com"); delay(2000); lcd.clear(); } void loop() { sensors.requestTemperatures(); static unsigned long timepoint = millis(); if(millis()-timepoint>1000U){ //time interval: 1s timepoint = millis(); tegangan = analogRead(sensorPin)/1024.0*5000; //mengubah tegangan analog menjadi digital dan menjadi tegangan suhu = sensors.getTempCByIndex(00); nilaiph = ph.readPH(tegangan,suhu); //konversi tegangan menjadi ph meter dengan kompensasi suhu Serial.print("Celsius temperature: "); Serial.print(suhu,1); //nilai pembacaan suhu Serial.print("°C pH:"); Serial.println(nilaiph,2); //nilai pembacaan ph meter lcd.setCursor(0,0); lcd.print("Suhu:"); lcd.setCursor(5,0); lcd.print(suhu,1); lcd.print((char)223); //derajat lcd.setCursor(0,1); lcd.print("PH :"); lcd.setCursor(4,0); lcd.print(nilaiph,2); lcd.setCursor(10,1); if(nilaiph ==7) lcd.print("Normal"); if(nilaiph <7) lcd.print("Asam "); if(nilaiph >7) lcd.print("Basa "); } ph.calibration(tegangan,suhu); }
[/sociallocker]