Sistem
Monitoring pH dan kekeruhan Aquarium berbasis IoT
Devata Sephani Putri1, Dhika Ardiyasa2
Jurusan Teknik Elektro, Prodi
Teknik Elektronika, Politeknik Negeri Semarang
Jl. Prof. Soedarto, Tembalang,
Kec. Tembalang, Kota Semarang, Jawa Tengah, 50275
1devasevani15@gmail.com,2 dhikaardiyasa09@gmail.com
Intisari- Ikan hias dan makhluk hidup lain dalam aquarium memiliki rentang toleransi terhadap nilai parameter lingkungan. Perubahan suhu, tingkat kekeruhan, dan juga pH air sangat mempengaruhi kualitas dan kesehatan makhluk hidup didalamnya. Dengan begitu hendaknya parameter tersebut harus senantiasa diawasi demi kelangsungan kehidupan di dalam aquarium. Maka dari itu dibuat system untuk memonitoring kekeruhan dan pH pada aquarium. Namun sistem ini membutuhkan biaya yang tinggi. Tujuan pembuatan Sistem Monitoring pH dan kekeruhan aquarium berbasis IoT. Ini adalah mengembangkan suatu model sistem monitoring dengan berbiaya rendah untuk memberikan informasi parameter pH dan kekeruhan air setiap saat kepada pemilik aquarium. Dengan arduino sebagai pengendali dan monitoring yang terintegrasi dengan Module Wifi Nodemcu ESP8266. Dan memanfaatkan blynk sebagai website untuk melihat indikator dan nilai kekeruhan serta nilai pH pada aquarium. Data monitoring digunakan untuk mengaktifkan buzzer, buzzer akan aktif apabila tingkat kekeruhan air melebihi atau kurang dari batas kekeruhan dan pH yang ditentukan dan buzzer akan berhenti berbunyi ketika tingkat kekeruhan dan pH normal. Air akan normal ketika kekeruhan aquarium ada pada nilai kurang dari 870 dan nilai pH normal ada pada nilai lebih dari 5,5 dan kurang dari 7,5 . Hasil pengujian menyimpulkan bahwa sistem monitoring yang dikembangkan telah berhasil diimplementasikan dengan baik.
Kata Kunci—Monitoring aquarium, Sensor pH, Sensor Turbidity, IoT, Blynk
I.
PENDAHULUAN
A.
LATAR BELAKANG
Teknologi
internet of things (IoT) merupakan teknologi penggunaan internet untuk hal-hal
fisik yang terdapat mikrokontroler yang dilengkapi dengan beberapa sensor yang
dapat menghasilkan data mentah yang benar dengan cara yang efisien untuk diolah
dan menghasilkan informasi lebih berharga. Internet of Things pada penerapannya
dapat mengidentifikasi , menemukan, melacak, memantau suatu sistem atau objek
yang menimbulkan efek secara otomatis dan real time .
Aquarium ialah suatu wadah untuk meletakkan ikan hias
ataupun tanaman air, aquarium membutuhkan perawatan untuk menjaga kelangsungan
hidup ikan dan vegetasi umumnya dilakukan secara manual. Terdapat hambatan yang
dialami oleh pecinta ikan hias Akuarium ini ialah kualitas air dalam Akuarium.
Kualitas dalam air mempunyai akibat negatif yang cukup besar terhadap ikan
hias.
Dengan adanya teknologi Internet of Things (IoT) yang
berkembang pesat memberikan manfaat dalam keperluan monitoring dan kontrol
kondisi air bisa lebih terpantau dan efektif. Dalam memantau kualitas air dan
pekan Akuarium, dibuat sebuah parameter lingkungan akuarium yang akan dimonitor
adalah pH air dan tingkat kekeruhan air.
B.
RUMUSAN MASALAH
Berdasarkan uraian di atas, terdapat beberapa perumusan
masalah yang harus diperhatikan, yaitu:
1. Bagaimana menggunakan menampilkan data kekeruhan dan pH air dan mengirim
data ke blynk?
2. Bagaimana
cara kerja sensor turbidity dan Sensor pH?
3. Bagaimana
cara mengintegrasikan antara ESP8266, Arduino Uno, sensor Kekeruhan Air, Sensor
pH dan LCD untuk dapat menghasilkan suatu alat yang dapat mengontrol Aquarium?
C. BATASAN MASALAH
Dalam pembuatan projek ini terdapat
Batasan masalah terhadap sistem ini, yaitu:
1. Sistem hanya dapat menampilkan
tingkat kekeruhan dan tingkat pH pada aquarium
2. Kurang adanya sistem pengurasan saat
terjadi ketidakseimbangan pH dan
kekeruhan pada air
3. Sistem ini
hanya dirancang untuk memantau kejernihan air aquarium dengan dengan menggunakan
sensor pH dan sensor Turbidity
D. TUJUAN
Tujuan dari pembuatan projek ini yaitu:
1.
Dapat membuat Sistem Monitoring
pH dan kekeruhan aquarium Berbasis IoT.
2.
Mengembangkan Sistem Monitoring pH dan kekeruhan
aquarium Berbasis IoT dengan harga lebih terjangkau
3.
Dapat mengetahui,
mempelajari, dan membuat program dari Sistem Monitoring pH dan kekeruhan aquarium Berbasis IoT
tersebut
4.
Menjaga ekosistem didalam aquarium
agar tetap seimbang
II. METODOLOGI
Tahap pertama yaitu dapat mengidentifikasi komponen
apa saja yang dipakai serta bagaimana cara memodelkan sebuah permasalahan yang
akan diselesaikan oleh sistem yang berkaitan dengan system yang akan dibuat untuk
membandingkan dengan system yang telah ada. Pada tahap kedua yaitu perancangan
hardware, pada tahap ini penulis dapat menentukan komponen apa saja yang akan
digunakan dalam pembuatan alat, dengan membaca jurnal ilmiah, buku dan artikel
di internet yang menunjang teknologi yang digunakan, cara kerja perangkat yang
digunakan. Sehinga pada tahap perancangan hardware dapat ditentukan peralatan
yang digunakan. Penentuan alat dan bahan yang tepat dan efisien perlu
diperhatikan agar nantinya alat bekerja dengan semestinya tanpa gangguan dan
kendala. Kemudian dilanjutkan perancangan Software menyusun script yang akan
dilakukan pada masing-masing komponen yang telah diprogram pada Software
arduino IDE dan ESP3266. Lalu dibuat perancangan website blynk memasukan data
sensor. Lalu pengujian sistem alat hasil perancangan, jika pengujian tidak
sesuai dengan parameter, maka akan dilakukan perancangan hardware kembali
hingga pengujian tersebut berhasil. Apabila pengujian tersebut telah berhasil
maka akan langsung melakukan pengambilan data untuk dianalisis dan dapat
mengambil kesimpulan dari pengujian sistem.
III.
KAJIAN PUSTAKA
Pembahasan dalam bagian ini meliputi
perancangan dan komponen apa saja yang digunakan dalam projek ini.
A.
Sensor pH
Sensor PH adalah instrumen untuk mengukur konsentrasi hidrogen dalam
sebuah larutan. Baik sensor pH untuk air maupun untuk tanah perlu dikalibrasi
berkala agar ke-akuratannya terjamin.
Untuk menjamin keakuratan sensor ph,
diperlukan bahan buffer solution dengan pH diketahui dan akurat. buffer
solution yang digunakan umumnya adalah dengan pH 4.0 dan pH 7.0.
Beberapa produsen sensor pH juga
menyertakan instrumen untuk melakukan kalibrasi secara manual. Namun jika
dihubungkan dengan arduino maka, arduino (instrumen baca) juga perlu
dikalibrasi. Dalam atikel ini disertakan program interface kalibrasi sensor pH
melalui serial monitor, yang merupakan pengembangan dari library sensor pH yang
ada. Hasil kalibrasi akan tersimpan dalam EEPROM untuk digunakan dalam
pengukuran normal.
Gambar 1. Sensor pH
B. Sensor Kekeruhan
Sensor
Turbidity berfungsi untuk membaca tingkat Kekeruhan air biasa yang disebabkan
oleh zat yang tersuspensi baik yang zat anorganik maupun organic. Zat anorganik
biasanya merupakan lapukan batuan dan logam, sedangkan organic berasal dari
buangan industry yang dapat menjadi makanan bakteri dan perkembangbiakkan
bakteri dapat menambah kekeruhan air.
Prinsip kerja turbidimeter yaitu mengukur hamburan cahaya yang
mengenai partikel yang terkandung dalam air dengan cara menyinarkan sumber
cahaya yang berasal dari lampu ke kuvet. Kemudian
partikel tersebut akan menyerap energi cahaya dan akan memantulkan cahaya ke
segala arah. Keterangan dari datasheet menjelaskan
bahwa output ideal untuk kalibrasi adalah tegangan sensor setelah uji coba
adalah 4,2 Volt ketika sensor berada di air yang jernih.
Gambar 2. Sensor kekeruhan
C.
ESP3266
ESP8266 merupakan modul wifi
yang berfungsi sebagai perangkat tambahan mikrokontroler
seperti Arduino agar dapat terhubung langsung dengan wifi dan membuat
koneksi TCP/IP.
Modul ini membutuhkan daya sekitar
3.3v dengan memiliki tiga mode wifi yaitu Station, Access Point dan Both
(Keduanya). Modul ini juga dilengkapi dengan prosesor, memori dan GPIO dimana
jumlah pin bergantung dengan jenis ESP8266 yang kita gunakan.
Gambar
3. ESP3266
D.
Arduino Uno
Arduino
Uno merupakan salah satu Arduino yang murah, mudah didapat dan sering
digunakan. Arduino Uno ini dibekali
dengan mikrokontroler ATMEGA328P. Versi terakhir yang dibuat adalah versi R3.
Modul ini sudah dilengkapi dengan berbagai hal yang dibutuhkan untuk mendukung
mikrokontroler untuk bekerja (Junaidi & Prabowo, 2018). Arduino Uno
mempunyai sebuah sekring reset yang melindungi port USB komputer dari hubungan
pendek dan arus lebih. Jika yang diterima port USB lebih dari 500 mA, sekring
secara otomatis akan memutuskan koneksi sampai hubungan pendek atau kelebihan
beban hilang (Sokop et al., 2016).
(Indianto
et al., 2017) Papan Arduino ini merupakan papan mikrokontroler yang berukuran kecil atau dapat
diartikan juga dengan suatu rangkaian berukuran kecil yang didalamnya terdapat
komputer berbentuk suatu chip. Pada perangkat keras arduino terdiri dari 20 pin
yang meliputi :
1)
14
pin IO Digital (pin 0-13) Sejumlah pin digital dengan nomor 0-13 yang dapat
dijadikan input atau output yang diatur dengan cara membuat program IDE.
2)
6
pin Input Analog (pin 0-5) Sejumlah pin analog bernomor 0-5 yang dapat
digunakan untuk membaca nilai input yang memiliki nilai analog dan mengubahnya
ke dalam angka antara 0 dan 1023.
3)
6
pin Output Analog (pin 3, 5, 6, 9, 10 dan 11) Sejumlah pin yang sebenarnya
merupakan pin digital tetapi sejumlah pin tersebut dapat diprogram kembali
menjadi pin output analog dengan cara membuat programnya pada Arduino IDE.
Gambar
4. Arduino Uno
E.
LCD I2C
LCD
I2C/IIC LCD I2C adalah Modul LCD (Liquid Crystal Display) yang dikendalikan
secara serial sinkron dengan menggunakan protokol I2C/IIC (Inter Integrated Circuit)
atau TWI (Two Wire Interface). Normalnya, modul LCD dikendalikan secara paralel
baik untuk jalur data maupun kontrolnya. LCD ini dapat berfungsi untuk
menampilkan sesuatu berupa teks atau angka yang sudah di program dari
mikrokontroler (Veronika Simbar and Syahrin, 2017). LCD I2C/IIC ini mempunyai 4
kaki pin, yaitu pin GND atau Ground, pin VCC 5 volt, pin kontrol SCL dan pin
kontrol SDA
Gambar
5. LCD I2C
F.
Buzzer
Buzzer
Elektronika adalah sebuah komponen elektronika yang dapat menghasilkan getaran
suara berupa gelombang bunyi. Buzzer elektronika akan menghasilkan getaran
suara ketika diberikan sejumlah tegangan listrik dengan taraf tertentu sesuai
dengan spesifikasi bentuk dan ukuran buzzer elektronika itu sendiri. Pada
umumnya, buzzer elektronika ini sering digunakan sebagai alarm karena
penggunaannya yang cukup mudah yaitu dengan memberikan tegangan input maka
buzzer elektronika akan menghasilkan getaran suara berupa gelombang bunyi yang
dapat didengar manusia.
Gambar 6.
Buzzer
G.
Blynk
Blynk adalah platform untuk aplikasi OS
Mobile (iOS dan Android) yang bertujuan untuk kendali module Arduino,
Raspberry Pi, ESP8266, WEMOS D1, dan module sejenisnya melalui Internet. Aplikasi ini dapat
digunakan untuk mengendalikan perangkat hardware ,menampilkan data sensor,
menyimpan data,visualisasi, dan lain-lain.
Cara kerjanya adalah server Blynk menghubungkan antara aplikasi Blynk di HP Android dengan NodeMCU yang
terhubung dengan jaringan
internet (WiFi) sehingga ketika ada command dari Blynk berupa signal untuk mengontrol relay maka lampu yang terhubung akan nyala
atau padam sesuai dengan perintahnya.
Gambar
7. Blynk
H.
Diagram Blok
Gambar
8. Diagram Blok
I.
Diagram Alir
Gambar 9. Diagram Alir Sistem Monitoring
Gambar 10. Diagram Alir Sistem
J.
Diagram Pengawatan
Gambar 11. Diagram Pengawatan
K.
Program
a.
Program Arduino
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include<SoftwareSerial.h>
SoftwareSerial mySUART(2, 3);
LiquidCrystal_I2C lcd(0x27, 16, 2);
float calibration_value = 21.34 -
0.4;
int phval = 0;
unsigned long int avgval;
int buffer_arr[10],temp;
int buzzer = 7;
int kondisi;
int kondisix;
float ph_act;
int keruh;
String v0, v1, v2, v3, v4;
void setup()
{
pinMode(buzzer,OUTPUT);
lcd.init();
lcd.backlight();
Serial.begin(115200);
mySUART.begin(115200);
kondisi=0;
}
void loop() {
keruh=analogRead(A1);
v2 = keruh;
lcd.setCursor(0,0);
lcd.print("pH");
lcd.setCursor(3,0);
lcd.print(ph_act);
lcd.setCursor(8,0);
lcd.print("|");
lcd.setCursor(8,1);
lcd.print("|");
delay(500);
if (kondisi==1){
lcd.setCursor(0,1);
lcd.print("BASA");
v1 = "Basa";
digitalWrite(buzzer,LOW);
v4 = "0";
}
if (kondisi==2){
lcd.setCursor(0,1);
lcd.print("ASAM");
v1 = "Asam";
digitalWrite(buzzer,LOW);
v4 = "0";
}
if (kondisi==0 && kondisix
== 0){
lcd.setCursor(10,1);
lcd.print("NORMAL");
digitalWrite(buzzer,HIGH);
v4 = "1";
}
if (kondisi==1 || kondisi ==2 ||
kondisix==1){
lcd.setCursor(10,1);
lcd.print("BURUK ");
}
if (ph_act > 7.5 ){kondisi = 1;}
if (ph_act < 5.5 ){kondisi=2;}
if (ph_act > 5.5 && ph_act < 7.5){
lcd.setCursor(0,1);
lcd.print("BAIK");
v1 = "Baik";
digitalWrite(buzzer,HIGH);kondisi=0;
v4 = "1";}
if (keruh > 870){
lcd.setCursor(10,0);
lcd.print("BENING");
v3 = "Bening";
digitalWrite(buzzer,HIGH);kondisix=0;
v4 = "1";}
if (keruh < 870){
lcd.setCursor(10,0);
lcd.print("KERUH");
v3 = "Keruh";
digitalWrite(buzzer,LOW);kondisix = 1;
v4 = "0";}
for(int i=0;i<10;i++)
{
buffer_arr[i]=analogRead(A0);
delay(30);
}
for(int i=0;i<9;i++)
{
for(int j=i+1;j<10;j++)
{
if(buffer_arr[i]>buffer_arr[j])
{
temp=buffer_arr[i];
buffer_arr[i]=buffer_arr[j];
buffer_arr[j]=temp;
}
}
}
avgval=0;
for(int i=2;i<8;i++)
avgval+=buffer_arr[i];
float volt=(float)avgval*5.0/1024/6;
ph_act = -5.70 * volt + calibration_value;
v0 = ph_act;
Serial.println(v0 + " " + v1 + " " + v2 + "
" + v3 + " " + v4);
mySUART.println(v0 + " " + v1 + " " + v2 + "
" + v3 + " " + v4);
//Serial.print("pH Val: ");
//Serial.println(ph_act);
//delay(500);
//lcd.clear();
}
b.
Program blynk
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID
"TMPLKisP26pa" //id
blynk
#define BLYNK_DEVICE_NAME
"Dhika" //nama
blynk
#define BLYNK_AUTH_TOKEN
"iFXs_X66tR-5aKKKTSSJidgwYL6UVggv"
#include <ESP8266WiFi.h>
#include
<BlynkSimpleEsp8266.h>
char ssid [] = "OPPO F9";
char pass [] =
"devacantik";
char auth[] =
"iFXs_X66tR-5aKKKTSSJidgwYL6UVggv";
String data;
char c;
BlynkTimer timer;
void blynkRun() {
while (Serial.available() > 0) {
delay(10);
c = Serial.read();
if (c != '\n') {
data += c;
}
}
data.trim(); //membagi
data menjadi 5 string
if (data.length() > 3) {
int StringCount = 0;
String strs[5];
while (data.length() > 0) {
int index = data.indexOf(' ');
if (index == -1) // No
space found
{
strs[StringCount++] = data;
break;
} else {
strs[StringCount++] =
data.substring(0, index);
data = data.substring(index + 1);
}
}
// Show the resulting substrings
if (StringCount == 5) {
for (int i = 0; i < StringCount;
i++) {
Serial.print(i);
Serial.print(": ");
Serial.println(strs[i]);
}
Blynk.virtualWrite(V0, strs[0] +
"'");
Blynk.virtualWrite(V1, strs[1]);
Blynk.virtualWrite(V2, strs[2]); //virtual pin pada blynk
Blynk.virtualWrite(V3, strs[3]);
if (strs[4] == "0") {
Blynk.virtualWrite(V4, 1);
Blynk.logEvent("asam_tinggi", "Ph air terlalu tinggi,
segera ambil tindakan");
} else {
Blynk.virtualWrite(V4, 0);
}
Serial.println("-------------------------------------");
Serial.println(" Terkirim Blynk ");
Serial.println("-------------------------------------");
}
data = "";
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, blynkRun);
}
void loop() {
// put your main code here, to run repeatedly:
Blynk.run();
timer.run();
}
IV. HASIL DAN PEMBAHASAN
A.
Gambar Alat
Gambar
12. Gambar Alat
B.
Cara Kerja
Jika nilai pH sudah sesuai dengan referensi maka akan ditampilkan status “Baik” pada LCD dan buzzer akan berhanti berbunyi. Begitu pula pada Sensor Turbidity apabila airnya terlalu keruh, maka buzzer akan berbunyi dan akan menampilkan “Keruh buruk” pada layar LCD dan saat kekeruhan normal akan menampilkan “bening normal”. Di blynk sendiri akan terbaca bilai pH dan kekeruhan. Saat sensor dalam keadaan tidak normal maka buzzer akan menyala dan terdapat notifikasi.
Arduino berperan sebagai kontrol yang akan mengatur komunikasi dan interaksi yang akan terjadi, sedangkan ESP8266 akan menjadi jembatan komunikasi yang nantinya akan mengirim maupun menerima perintah dari ke Arduino. Sensor pH dan sensor turbidity yang berperan sebagai masukan yang hasil keluaran sensor akan diolah oleh Arduno kemudian outputnya akan ditampilkan pada layar LCD. Apabila pH nya terlalu rendah atau terlalu tinggi dari set point yang telah ditentukan maka buzzer akan berbunyi dan akan ditampilkan status “Buruk” pada LCD.
C Hasil
Dari tugas akhir yang kita buat,
didapatkan sebuah sistem monitoring ph dan kekeruhan berbasis IoT dimana kita
bisa memantau berapa nilai ph air dalam aquarium dan seberapa keruh air yang
ada didalam aquarium, sehingga diharapkan pemilik aquarium mampu mengambil
tindakan preventif sebelum hal yang lebih fatal terjadi pada ekosistem
aquarium. Dengan adanya sistem ini, pemilik juga bisa memantau keadaan air
aquarium apakah masih baik untuk keberlangsungan makhluk hidup didalam
ekosistem aquarium tersebut atau tidak.
V. KESIMPULAN
Telah dirancang sebuah alat untuk
memonitoring tingkat kekeruhan dan pH pada air denan menggunakan ESP8266 dan
arduino uno yang dihubungkan dengan komunikasi serial. Dalam monitoring ini
menggunakan sensor turbidity dan sensor Ph yang akan ditampilkan pada blynk dan
LCD, serta dengan indikator buzzer. Dari hasil percobaan alat tersebut
bermanfaat agar makhluk hidup didalam aquarium tetap sehat dan dapat berkembang
dengan baik.
VI. REFERENSI
A. Junaidi, “Internet Of Things,
Sejarah, Teknologi Dan Penerapannya : Review,” J. Ilm. Teknol. Inf., vol. IV,
no. 3, pp. 62–66, 2015.
Arafat, M.K. 2016.
Sistem Pengamanan Pintu Rumah Berbasis Internet of Things (IoT) Dengan ESP8266.
Technologia: Jurnal Ilmiah. 7(4):262-268. doi : 10.1126/science.195.4279. 639
Baringbing,
R. M., (2020). Sistem Monitoring Kualitas Air Menggunakan Sensor Ph Dan Sensor
Tds Berbasis Android. Tugas Akhir. Medan: Universitas Sumatera Utara.
P
rafitri, D. & Saputra, A. B. (2020). Prototipe Sistem Pendeteksi Tingkat
Kekeruhan dan PH Air Berbasis Mikrokontroler Arduino. Teknomatika, Vol.12,
No.2, Januari 2020, pp. 57~62, ISSN:1979-7656.
Widyaman,
T. (2017). Komunikasi Arduino IDE Menggunakan Modul WiFi ESP8266, Warriornux,
26 November, diakses pada 14 Januari 2022, https://www.warriornux.com/komunikasiarduino-wifi-esp826
Lampiran :
%20(1).png)

Komentar
Posting Komentar