Dokumentasi Proyek Skripsi - Informatika UPN Veteran Jatim
Sistem akuaponik adalah sistem pertanian gabungan antara ikan dengan sayuran yang saling menguntungkan. Di sisi lain, gagal panen juga dapat menjadi kekhawatiran bagi para petani akuaponik karena hal ini dapat terjadi kapan saja. Kegagalan panen dapat dipengaruhi oleh banyak faktor, namun biasanya disebabkan oleh ketidakjelasan pH air yang tinggi di sekitar ruang lingkup budidaya. Para petani akuaponik khawatir jika gagal panen terus berlanjut akan membahayakan ketahanan pangan mereka. Proyek ini dibuat dengan harapan dapat mengatasi masalah pH tersebut. Proyek ini telah dilaksanakan dan memakan waktu kurang lebih 1 tahun. Sistem yang dibuat dapat mengontrol dan memonitoring perubahan pH air setiap saat. Sistem ini berbasis Internet of Things (IoT), dengan menggunakan MQTT sebagai protokol komunikasinya. Sistem ini juga dilengkapi dengan kecerdasan buatan, yang menggunakan IT2FL (Interval Type-2 Fuzzy Logic) sebagai pendukung keputusannya. Selain itu, antarmuka sistem menggunakan Bot Telegram, sehingga memudahkan pengguna untuk berinteraksi.
| Bagian | Deskripsi |
|---|---|
| Papan Pengembangan | DOIT ESP32 DEVKIT V1 |
| Papan Pendukung | Arduino Uno R3 |
| Editor Kode | Arduino IDE |
| Dukungan Aplikasi | • Bot Telegram • Matlab R2020 |
| Driver | CP210X USB Driver |
| Platform IoT | io-t.net |
| Protokol Komunikasi | • Inter Integrated Circuit (I2C) • Message Queuing Telemetry Transport (MQTT) • MTProto |
| Arsitektur IoT | 3 Lapisan |
| Matlab | Fuzzy Interface System |
| Bahasa Pemrograman | C/C++ |
| Pustaka Arduino | • WiFi (bawaan) • PubSubClient • LiquidCrystal_I2C • CTBot • ArduinoJson • RTClib |
| Aktuator | • Submersible pump aquarium (x1) • Pneumatic solenoid valve (x2) • Piezoelectric (x1) |
| Sensor | • pH Sensor (x1) • RTC (x1) |
| Layar | LCD I2C (x1) |
| Objek Percobaan | • Benih sawi pakcoy • Benih lele dumbo |
| Komponen Lainnya | • Kabel USB Mikro - USB tipe A (x1) • Kabel jumper (1 set) • Switching power supply 12V 1A (x1) • Relay elektromekanis 2-channel (x1) • Saklar bulat (x1) • Papan ekspansi ESP32 (x1) • PCB Dot Matrix (x1) • Terminal PCB block screw (x10) • Socket female jack DC (x1) • Connector male jack DC (x3) • Probe Elektroda pH (x1) • Pipa (1 set) • Netpot (1 set) • Rockwool (1 set) • Kain flanel (1 set) • Saringan air (x1) • Dop kaca (1 set) • Botol (x2) • Tatakan beroda akuarium (x1) • Akuarium (x1) • Kotak akrilik (x1) • Skun (1 set) • Plat galvanis (x1) • Baut plus (1 set) • Mur (1 set) |
-
Arduino IDE
https://www.arduino.cc/en/software
-
CP210X USB Driver
https://bit.ly/CP210X_USBdriver
-
Matlab R2020
https://bit.ly/MATLAB_R2020a_Installer
| Infrastruktur |
|---|
![]() |
| Diagram Ilustrasi | Desain Prototipe | Desain Wadah Utama |
|---|---|---|
![]() |
![]() |
![]() |
| Sistem Antarmuka Fuzzy IT2FL | Variabel Masukan IT2FL | Variabel Keluaran IT2FL |
|---|---|---|
![]() |
![]() |
![]() |
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(115200);
while (!Serial); // Tunggu monitor serial
Serial.println("\nI2C Scanner");
}
void loop() {
int nDevices = 0;
Serial.println("Scanning...");
for (byte address = 1; address < 127; ++address) {
// i2c_scanner menggunakan nilai balik dari Wire.endTransmission
// Untuk melihat apakah sebuah perangkat memang mengakui alamat tersebut
Wire.beginTransmission(address);
byte error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address 0x");
if (address < 16) {
Serial.print("0");
}
Serial.print(address, HEX);
Serial.println(" !");
++nDevices;
} else if (error == 4) {
Serial.print("Unknown error at address 0x");
if (address < 16) {
Serial.print("0");
}
Serial.println(address, HEX);
}
}
if (nDevices == 0) {
Serial.println("No I2C devices found\n");
} else {
Serial.println("done\n");
}
delay(5000); // Tunggu 5 detik untuk pemindaian berikutnya
} |
Sensor pH dapat di kalibrasi dengan menggunakan hasil perhitungan regresi linear. Persamaan regresi linear dapat anda lihat sebagai berikut.
| I |
|
Penjelasan dari simbol-simbol yang ada di persamaan I, dapat anda lihat selengkapnya pada tabel berikut.
| Simbol | Keterangan |
|---|---|
| 𝑌 | nilai buffer pH |
| 𝑋 | nilai tegangan yang diperoleh berdasarkan Y |
| 𝑎 dan 𝑏 | nilai ketetapan regresi linear |
Nilai ketetapan regresi linear (a dan b) dapat diperoleh melalui persamaan II dan III.
| II |
|
| III |
|
Contoh kalibrasi sensor pH: Klik Disini
Sensor RTC ini dapat di kalibrasi dengan menggunakan kode program berikut :
#include <RTClib.h> // Memanggil pustaka RTC
RTC_DS3231 rtc; // Konstruktor
void setup() {
RTCinit(); // Memanggil metode RTCinit
}
void loop() {}
void RTCinit() {
// Memulai RTC
rtc.begin();
// Pengaturan Tanggal dan Waktu
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// Atur Waktu Sekarang
// Jika sudah di kalibrasi, silakan tutup dengan komentar
rtc.adjust(DateTime(YYYY,MM,DD,HH,MM,SS));
} |
-
Buka
Arduino IDEterlebih dahulu, kemudian buka proyek dengan cara klikFile->Open:PH_IT2FL.ino
-
Isi
Url Pengelola Papan Tambahandi Arduino IDEKlik
File->Preferences-> masukkanBoards Manager Urldengan menyalin tautan berikut :https://dl.espressif.com/dl/package_esp32_index.json
-
Pengaturan Boarddi Arduino IDECara mengatur board
DOIT ESP32 DEVKIT V1• Klik
Tools->Board->Boards Manager-> Instalesp32.• Kemudian pilih papan dengan mengklik:
Tools->Board->ESP32 Arduino->DOIT ESP32 DEVKIT V1.• Board
Arduino Unoyang ada di proyek ini hanya digunakan sebagai filter atau pembagi tegangan.• Anda tidak perlu melakukan konfigurasi pada board
Arduino Uno, cukup hanya berfokus padaESP32saja.
-
Ubah Kecepatan Papandi Arduino IDEKlik
Tools->Upload Speed->9600
-
Instal Pustakadi Arduino IDEUnduh semua file zip pustaka. Kemudian tempelkan di:
C:\Users\Computer_Username\Documents\Arduino\libraries
-
Pengaturan Portdi Arduino IDEKlik
Port-> Pilih sesuai dengan port perangkat anda(anda dapat melihatnya di Device Manager)
-
Ubah
Nama WiFi,Kata Sandi WiFi, dan sebagainya sesuai dengan apa yang anda gunakan saat ini. -
Sebelum mengunggah program, silakan klik:
Verify. -
Jika tidak ada kesalahan dalam kode program, silakan klik:
Upload. -
Beberapa hal yang perlu anda lakukan saat menggunakan
board ESP32:• Jika
board ESP32tidak dapat memprosesSource Codesecara total -> Tekan tombolEN (RST)->Restart.• Jika
board ESP32tidak dapat memprosesSource Codesecara otomatis maka :-
Ketika informasi:
Uploading...telah muncul -> segera tekan dan tahan tombolBOOT. -
Ketika informasi:
Writing at .... (%)telah muncul -> lepaskan tombolBOOT.
• Jika pesan:
Done Uploadingtelah muncul ->Program yang diisikan tadi sudah bisa dioperasikan.• Jangan tekan tombol
BOOTdanENsecara bersamaan karena hal ini bisa beralih ke modeUnggah Firmware.
-
-
Jika masih ada masalah saat unggah program, maka coba periksa pada bagian
driver/port/yang lainnya.
-
Memulai io-t.net :
• Buka situs resminya di tautan berikut : io-t.net.
• Jika anda belum memiliki akun, silakan Daftar terlebih dahulu -> aktivasi akun melalui email.
• Jika anda sudah memiliki akun, silakan Masuk untuk dapat mengakses layanan io-t.net.
-
Buat node :
• Masuk ke menu
Instance->Atur Node.• Lalu berikan nama yang unik pada node yang anda gunakan.
-
Buat device :
• Masuk ke menu
Devices.• Pilih
Tambah Devices-> isi bagianClient ID,Access,Topicsesuai dengan kebutuhan. Contohnya :-
Client ID->Phiotnet_v1. -
Access->Publish & Subscribe. -
Topic->detect.
-
-
Buka @BotFather.
-
Ketik
/newbot. -
Ketik nama bot yang diinginkan, contoh:
phiotnet_bot. -
Ketik nama pengguna bot yang diinginkan, contoh:
phiotnet_bot. -
Lakukan juga untuk pengaturan gambar bot, deskripsi bot, dan lain sebagainya menyesuaikan dengan kebutuhan anda.
-
Salin
API token bot telegram anda-> lalu tempelkan pada bagian#define BOTtoken "YOUR_API_BOT_TOKEN".Contohnya yaitu :
#define BOTtoken "2006772150:AAE6Fdjk3KbiySkzV6CLbd6ClJDzgTfJ5y0"
-
Buka
Matlab. -
Buka kotak dialog
Set Pathmenggunakan perintah :pathtool -
Pilih
Add Folder...-> cari folderFIS-IT2FLS-Toolbox-MATLAB->Select Folder. -
Klik
Savedan kemudian klikClose. -
Buka
IT2FL Toolboxmenggunakan perintah :fuzzyt2 -
Selebihnya tinggal anda atur sesuai dengan kebutuhan anda.
-
Unduh dan ekstrak repositori ini.
-
Pastikan anda memiliki komponen elektronik yang diperlukan.
-
Pastikan komponen anda telah dirancang sesuai dengan diagram.
-
Konfigurasikan perangkat anda menurut pengaturan di atas.
-
Selamat menikmati [Selesai].
Via Telegram: @phiotnet_bot
| Produk | Sistem Pendukung Keputusan (SPK) IT2FL | Bot Telegram |
|---|---|---|
![]() |
![]() |
![]() |
Informasi lebih lanjut:
|
• Skripsi : Akses 1 atau Akses 2 • Jurnal : Artikel 1 atau Artikel 2 |
-
Saran Perbaikan Hardware :
1. Catu daya pada rangkaian mikrokontroler dan aktuator itu perlu diatur ulang secara terpisah agar sistem dapat berfungsi dengan baik dan aman. 2. Gunakan PSU standar dengan kapasitas 3A untuk menyuplai beberapa perangkat yang terpasang, misalnya aktuator. 3. Tambahkan Step Down Converter untuk mendapatkan tegangan yang lebih stabil dan sesuai dengan kebutuhan perangkat. Dengan adanya komponen ini, maka tidak membutuhkan Arduino Uno. 4. Ubah pengaturan Relay Elektromekanis 2-Channel dari NO (Normally Open) menjadi NC (Normally Close) untuk mengurangi panas berlebih. 5. Tambahkan isolator pada komponen listrik untuk mencegah arus bocor. 6. Tambahkan kipas atau ventilasi untuk meningkatkan aliran udara dan mencegah panas berlebih. 7. Tambahkan Heat Sink pada komponen yang rentan panas. 8. Tambahkan MCB (Miniature Circuit Breaker) untuk mencegah arus berlebih, sehingga perangkat tetap aman dan terlindungi. 9. Tambahkan casing khusus untuk melindungi Probe Sensor pH dari kerusakan, terutama akibat benturan. 10. Pertimbangkan untuk memilih lebih dari 1 Development Board untuk meningkatkan optimalisasi sistem. 11. Pertimbangkan untuk mengganti Relay Elektromekanis 2-Channel dengan Relay SSR DD untuk memperoleh kendali yang lebih halus (tanpa noise), respon lebih cepat, konsumsi daya lebih rendah, efisiensi lebih tinggi, serta daya tahan lebih baik untuk penggunaan jangka panjang. 12. Pertimbangkan untuk mengganti kotak akrilik dengan box panel standar agar perangkat yang ada jauh lebih aman dan rapi. 13. Pertimbangkan untuk mengganti kabel sesuai dengan standar penggunaan. Untuk listrik DC, gunakan kabel AVS 1 x 0,5mm², yang lebih tahan lama dibandingkan kabel pita. Sementara itu, untuk listrik AC, gunakan kabel NYY-HY 2 x 1,5mm², karena lebih tahan terhadap air, cuaca, serta gangguan fisik seperti gigitan tikus. -
Saran Perbaikan Firmware :
1. Optimalkan algoritma untuk mengurangi latensi pada proses pengambilan keputusan. Disarankan menggunakan RTOS (Real-Time Operating System) agar dapat mengatur lebih baik prioritas fungsi yang ada. 2. Tambahkan metode OTA (Over The Air) untuk meningkatkan keamanan jaringan, termasuk Bot Telegram. 3. Tambahkan EEPROM untuk menyimpan hasil kalibrasi sensor pH secara permanen, sehingga kalibrasi tidak perlu dituliskan di method loop() lagi. Hal ini dapat menghemat waktu dan meningkatkan efisiensi perangkat. 4. Tambahkan pustaka ArduLite dan gunakan sintaksnya untuk meringankan beban ESP32, karena dapat mengurangi penggunaan memori ESP32. ArduLite ini sangat ideal untuk proyek-proyek dengan sumber daya terbatas yang mengutamakan efisiensi dan kesederhanaan. Tautan: https://github.com/ArduLite/ArduLite. -
Saran Peningkatan Fitur Otomatisasi :
1. Pompa otomatis yang diintegrasikan dengan sensor level untuk mengontrol pengisian cairan berupa pH dan AB Mix. 2. Pemberian pakan otomatis berbasis waktu untuk memberikan pakan secara terjadwal. 3. Pompa otomatis yang dikendalikan melalui bot telegram untuk mempermudah proses pengurasan dan pengisian air. 4. Pemantauan kualitas air pada kolam atau akuarium menggunakan perpaduan antara sensor pH, suhu air, dan amonia. 5. Penyinaran tanaman dengan lampu pertumbuhan untuk menumbuhkan tanaman secara optimal meski dalam kondisi yang minim cahaya (sebagai pengganti sinar matahari). -
Saran Optimalisasi Media Tanam :
1. Tingkatkan jumlah modul hidroponik agar mampu menampung lebih banyak tanaman. 2. Eksplorasi media tanam alternatif seperti arang sekam atau cocopeat untuk meningkatkan efisiensi pertumbuhan tanaman.
Jika karya ini bermanfaat bagi anda, maka dukunglah karya ini sebagai bentuk apresiasi kepada penulis dengan mengklik tombol ⭐Bintang di bagian atas repositori.
Aplikasi ini merupakan hasil karya saya sendiri dan bukan merupakan hasil plagiat dari penelitian atau karya orang lain, kecuali yang berkaitan dengan layanan pihak ketiga yang meliputi: pustaka, kerangka kerja, dan lain sebagainya.
LISENSI MIT - Hak Cipta © 2022 - Devan C. M. Wijaya, S.Kom
Dengan ini diberikan izin tanpa biaya kepada siapa pun yang mendapatkan salinan perangkat lunak ini dan file dokumentasi terkait perangkat lunak untuk menggunakannya tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, menggabungkan, mempublikasikan, mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak ini, dan mengizinkan orang yang menerima Perangkat Lunak ini untuk dilengkapi dengan persyaratan berikut:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus menyertai semua salinan atau bagian penting dari Perangkat Lunak.
DALAM HAL APAPUN, PENULIS ATAU PEMEGANG HAK CIPTA DI SINI TETAP MEMILIKI HAK KEPEMILIKAN PENUH. PERANGKAT LUNAK INI DISEDIAKAN SEBAGAIMANA ADANYA, TANPA JAMINAN APAPUN, BAIK TERSURAT MAUPUN TERSIRAT, OLEH KARENA ITU JIKA TERJADI KERUSAKAN, KEHILANGAN, ATAU LAINNYA YANG TIMBUL DARI PENGGUNAAN ATAU URUSAN LAIN DALAM PERANGKAT LUNAK INI, PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB, KARENA PENGGUNAAN PERANGKAT LUNAK INI TIDAK DIPAKSAKAN SAMA SEKALI, SEHINGGA RISIKO ADALAH MILIK ANDA SENDIRI.











