SISTEM MONITORING PH DAN KEKERUHAN AQUARIUM BERBASIS IOT

 

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.





                                                                  Gambar 13. Tampilan pada blynk


                                                     Gambar 14. Tampilan notifikasi pada smartphone

  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 :


Video Simulasi


PPT


Jurnal


Program Arduino


Program Blynk

Komentar