Tutorial Arduino Membuat Alat Monitoring Kualitas Air, PH, Suhu, Kekeruhan dan Konduktifitas

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.

Tutorial Arduino Membuat Monitoring Kulitas Air Ph, Suhu, Kekeruhan, Konduktiftas, TDS

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,

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 seperti 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.

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.

chaerul

View Comments

Recent Posts

Panduan Lengkap: Cara Menyiapkan Klaster Kubernetes pada Ubuntu 22.04 LTS

Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…

6 days ago

AplikasiAkademik.com: Solusi Terbaik untuk Manajemen Sekolah yang Efisien

Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…

7 months ago

Cara Mudah Menginstal OpenVPN Server di Ubuntu 20.04 di Huaweicloud Panduan Langkah demi Langkah

Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…

12 months ago

Install Docker Portainer dan Nginx Proxy Manager Ubuntu Server

Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…

1 year ago

Tutorial led blinking lengkap, Wiring & Code

Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…

1 year ago

Tutorial LCD Display Lengkap dengan wiring & code untuk pemula

Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…

1 year ago