Arduino, Cara Membuat Alat Ukur Kulitas Air. pH, Suhu, Kekeruhan, Salinitas, Konduktifitas

Hello sahabat anak kendali,

Kali ini saya aka menuliskan pengalaman dan sedikit tutorial tetang Arduino, Cara Membuat Alat Ukur Kulitas Air, pH, Suhu, Kekeruhan, Salinitas, Konduktifitas

alat ukur atau alat monitoring kualitas air dengan 5 parameter sekaligus, beberapa bulan yang lalu saya dan teman saya membuat alat ini, dengan menggunakan mikrokontroller Arduino Due, dan beberapa sensor untuk mengukur air diantaranya yaitu,
Sensor pH,
Sensor Turbidity,
Sensor Suhu PT100
Sensor Salinitas,

adapun untuk tutorial masing masing setiap sensor bisa di baca pada artikel artikel berikut :

Cara Mengakses Sensor pH dan Kalibrasinya
Cara Mengakses Sensor Salinitas dan Kalibrasinya
Cara Mengakses Sensor Kekeruhan dan Kalibrasinya

sedangkan untuk tutorial sensor suhu PT100 kalian bisa langsung menggunakan example dari librarynya.

semua kalibrasi setiap masing masing sensor saya menggunakan Regresi Linier untuk mendapatkan nilai berdasarkan masing masing satuanya.

pertama yang harus dilakukan adalah pengambilan data dari beberapa sample, semakin banyak data, semakin baik pula hasilnya.

dan project ini hanya di tampilkan pada serial monitor, LCD 16×2, dan Serial Bluetooth Android

jika anda ingin mengembangkan project ini, untuk bisa berbasis IOT, sangat mudah sekali, karena sudah banyak saya menulis Artikel mengenai IOT didalam Blog ini,, hanya tinggal menambahkan Modul WIFI atau GSM, kemudian mengirimkan datanya ke database sendiri ataupun ke layanan IOT milik orang lain, anda sudah berhasil mengembangkan project ini,

Baca Juga :  Arduino,Arduino Rusak Jangan dibuang,Arduino USB TTL

ataupun jika anda mau mengembangkan untuk project tanaman di Aquaponik, atau air minum, atau kolam ikan, seharusnya sudah sangat mudah, apalagi dengan berbasis IOT, project anda akan terlihat sangat keren.

baiklah berikut adalah program arduino Due, untuk memonitoring kualitas air berdasarkan 5 paramter yaitu Suhu, pH, turbiditas, Konduktifitas, dan salinitas.

#include <SoftwareSerial.h>
SoftwareSerial serial(10,11);
#include<DFRobotHighTemperatureSensor.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);
const float voltageRef = 4.0; //2.785;   
DFRobotHighTemperature PT100 = DFRobotHighTemperature(voltageRef); //Define an PT100 object
float temperature[10];
int  rata_temperature;
#define pinSuhu A0
#define pinTur A1
#define pinPh A2
#define pinTds A3
float teg[10];
byte tur;
float rata_rata;
float total;
float teg1[10];
float konduktifitas;
int tds;
float rata_rata_teg;
float total_tds;
float voltage;
byte pHValue;
int adcPH;
void setup() {
  // put your setup code here, to run once:
lcd.begin();
lcd.backlight();
Serial.begin(38400);
serial.begin(9600);
}
void loop() {
  // put your main code here, to run repeatedly:
 
turbidity();
baca_suhu();
baca_tds();
ph();
lcd.clear();
lcd.setCursor(0,0);
lcd.print(“T”);
lcd.print(rata_temperature);
lcd.print((char)223);
lcd.setCursor(5,0);
lcd.print(“P”);
lcd.print(pHValue);
lcd.setCursor(9,0);
lcd.print(“Cn”);
lcd.print(konduktifitas);
lcd.setCursor(1,1);
lcd.print(“Tr”);
lcd.print(tur);
lcd.setCursor(8,1);
lcd.print(“Td”);
lcd.print(tds);
Serial.println(“Temp    pH    Cond    Turb    TDS “);
Serial.print(rata_temperature);Serial.print(”      “);Serial.print(pHValue);Serial.print(”      “);Serial.print(konduktifitas);Serial.print(”            “);Serial.print(tur);Serial.print(”         “);Serial.println(tds);
serial.println(“Temp        pH        Cond        Turb        TDS “);
serial.print(rata_temperature);serial.print(”               “);serial.print(pHValue);serial.print(”           “);serial.print(konduktifitas);serial.print(”            “);serial.print(tur);serial.print(”          “);serial.println(tds);
delay(500);
}
void turbidity (){
  for ( int i=0; i<10; i++){
int val = analogRead(pinTur);
teg[i] = val * (5.0/1023);
}
rata_rata = (teg[0] + teg[1] + teg[2] + teg[3] + teg[4] + teg[5] + teg[6] + teg[7] + teg[8] + teg[9])/10 ;
tur = (-1340.4762 * rata_rata) + 3495.1071;
}
void baca_tds(){
  for ( int i=0; i<10; i++){
  int val = analogRead(pinTds);
teg[i] = val * (5.0/1023);
 
}
rata_rata_teg = (teg[0] + teg[1] + teg[2] + teg[3] + teg[4] + teg[5] + teg[6] + teg[7] + teg[8] + teg[9])/10 ;
delay(1000);
lcd.clear();
tds = (211.2254 * rata_rata_teg) – 144.1466;
konduktifitas = (0.3442 * rata_rata_teg) – 0.253;
}
void ph(){
  adcPH = analogRead(pinPh);
voltage = adcPH *5.0/1022;
pHValue = (6.4516*voltage)-5.7742;
}
void baca_suhu(){
for (int i=0; i<10; i++){
  temperature[i] = PT100.readTemperature(pinSuhu);
}
rata_temperature = (temperature[0]+temperature[1]+temperature[2]+temperature[3]+temperature[4]+temperature[5]+temperature[6]+temperature[7]+temperature[8]+temperature[9])/10;
}

 yang belum bagus cara program diatas, saya mencari rata rata nya masih boros menggunakan syntax, karena harus menggunakan Array, sebenarnya, kita bisa mencari rata rata seprti program di bawah

for (int i=0; i<=sampling; i++){
int a = analogRead(pinAnalog);
banyakdata += a;
}
rata_rata = banyakdata/sampling;

dengan program seperti itu kita tinggal merubah nilai sampling nya saja, untuk memperbanyak data yang mau dirata rata kan.

Baca Juga :  Cara Mengakses Motor Driver VNH2SP30 Motor pg28

mungkin itu dulu tulisan kali ini, semoga bermanfaat, dan jika ada yang ingin di diskusikan, bisa di komentar bawah, atau chat WA dengan klik tombol WA di pojok kiri bawah.

(Visited 232 times, 2 visits today)