PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TUGAS AKHIR SISTEM TELEMETRI KUALITAS AIR KOLAM IKAN MENGGUNAKAN TX02-433D DAN RX01-433D SEBAGAI TERMINAL UNIT Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro Oleh : JOHN FISHER JEFFERSON PAKPAHAN NIM : 115114010 PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TUGAS AKHIR SISTEM TELEMETRI KUALITAS AIR KOLAM IKAN MENGGUNAKAN TX02-433D DAN RX01-433D SEBAGAI TERMINAL UNIT Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro Oleh : JOHN FISHER JEFFERSON PAKPAHAN NIM : 115114010 PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 i PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI FINAL PROJECT THE TELEMETRY SYSTEM OF FISH POND WATER QUALITY USING TX02-433D AND RX01-433D AS A TERMINAL UNIT Presented As Partial Fulfillment Of The Requirements To Obtain The Sarjana Teknik Degree In Electrical Engineering Study Program By: JOHN FISHER JEFFERSON PAKPAHAN NIM : 115114010 ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTMENT SCIENCE AND TECHNOLOGY FACULTY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015 ii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN PERSEMBAHAN DAN MOTO HIDUP MOTTO : Hidup itu adalah pilihan yang berat Jadi hadapi hidup dengan penuh senyuman Skripsi ini kepersembahkan untuk….. Yesus Kristus,Bunda Maria,Saint Yohannes Fisher Pelindungku Bapak Thomas Pakpahan dan Ibu Alquirina yang aku banggakan Teman dan Sahabat yang ada pada saat proses skripsi ini berlangsung Elektro 2011 atas bantuan candaan dan kenangan indah vi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI INTISARI Kualitas air kolam ikan harus terjaga untuk menjamin kelangsungan hidup ikan. Air sungai yang masuk ke kolam menentukan kualitas air kolam. Kualitas air kolam tersebut dapat diukur dengan bantuan sensor seperti suhu, oksigen, keasaman, kekeruhan air serta konduktivitas. Permasalahan yang ada pemilik kolam perlu sering meninjau kondisi kolam. Penelitian ini bertujuan membuat sistem telemetri antara bagian pengukur sensor serta bagian penampil untuk mempermudah pemilik kolam dalam menjaga kualitas air kolam. Sistem telemetri dilakukan dengan cara modul terminal unit melakukan pengukuran parameter kualitas air kolam serta menentukan posisi buka-tutup pintu air kolam. Informasi tersebut kemudian dikirimkan ke modul sentral unit yang bertugas sebagai penampil secara telemetri menggunakan modul RX01-433D dan RX02-433D. Mikrokontroler Atmega128 pada modul terminal unit digunakan untuk mengambil data-data pada sensor yang kemudian dikumpulkan menjadi satu paket data dan dikirimkan ke sentral unit. Terminal unit ini juga melakukan kendali dari nilai sensor yang didapat dan dibandingkan dengan batasan sensor yang telah ditentukan. Pengiriman paket data dapat menempuh jarak lebih dari sama dengan 20 meter. Modul terminal unit telah berhasil menerima data sensor, terima data dan pengiriman data dari sentral unit serta terminal unit telah berhasil melakukan pengendalian sesuai perancangan. Pegiriman paket data dari terminal unit ke sentral unit telah bekerja sesuai dengan waktu yang ditentukan. Kata kunci : kualitas air, parameter, sistem telemetri. viii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI ABSTRACT Fish pond water quality must be maintained to ensure the survival of fish. Water is the most important thing of that. The quality can be measurement with the sensor of temperature, oxygen, pH, turbidy and conductivity. The problem is the owners should frequently review to his fish pond. This study has the objective to make a telemetry system between the sensor and the screen to make the owners more easier in maintaining the quality of his fish pond water. Telemetry system can be done by means of a terminal unit measuring the quality of the pool water and determine the position of opening and closing the door of the pool water. Data from the measurement will be sent to the central units that has the task of monitoring telemetry using TX02-433D and RX1-433D module. Microcontroller Atmega128 in the terminal units is used to retrieve the data from the sensor. Data that have been taken are collected into one data packet and sent to the central units. Terminal units will doing controlling by comparing the sensor value obtained and compared with a predetermined limit sensor. Transmission of data packets can travel a distance equal to more than 20 meters. Terminal module unit has successfully send data from the sensors, receive data and transmission data from the central control unit and controlling. Data packets can be sent from the terminal unit to the central unit has been working with the specified time. Keyword : quality of the water, parameter, telemetry system. ix PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR ISI HALAMAN JUDUL............................................................................................... i HALAMAN PERSETUJUAN ............................................................................. iii HALAMAN PENGESAHAN .............................................................................. iv PERNYATAAN KEASLIAN KARYA ............................................................. v HALAMAN PERSEMBAHAN DAN MOTTO HIDUP .............................. vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ....................................... vii INTISARI .................................................................................................................. viii ABSTRACT .............................................................................................................. ix KATA PENGANTAR ............................................................................................ x DAFTAR ISI............................................................................................................. xi DAFTAR GAMBAR .............................................................................................. xvi DAFTAR TABEL ................................................................................................... xxi BAB I : PENDAHULUAN 1.1. Latar Belakang ................................................................................................... 1 1.2. Tujuan dan Manfaat Penelitian ........................................................................... 2 1.3. Batasan Masalah................................................................................................. 2 1.4. Metodologi Penelitian ........................................................................................ 3 BAB II : DASAR TEORI 2.1. State of The Art................................................................................................... 4 2.1.1. Pengendalian Temperatur Air ............................................................... 5 2.1.2. Pengendalian Derajat Keasaman Air .................................................... 5 2.1.3. Pengendalian Derajat Kekeruhan ......................................................... 7 2.1.4. Pengendalian Kandungan Oksigen ....................................................... 8 2.1.5. Pengendalian Konduktivitas Air ........................................................... 8 2.1.6. Pengambilan Data Sensor..................................................................... 9 xi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.1.7. Aksi Pengendalian ............................................................................... 11 2.2. Dummy Data ...................................................................................................... 12 2.3. Mikrokontroler AVR .......................................................................................... 13 2.3.1. Port Input/Output ................................................................................. 14 2.3.2. – Two-Wire Serial Communication ................................................ 14 2.3.3. USART (Universal Synchronous and Asynchronou serial Receiver and Transmitter) .................................................................................. 15 2.4. 2.3.4. Serial Peripheral Interface (SPI).......................................................... 16 2.3.5. External Interupt .................................................................................. 18 2.3.5. EEPROM (Electrical Erasable Programmable Read-Only Memory) ..... 19 Modul Pemancar ................................................................................................ 20 2.4.1. RX01 - 433D ....................................................................................... 20 2.4.2. TX02 - 433D........................................................................................ 22 2.5. LCD 16x2 .......................................................................................................... 23 2.6. IC DS1307 – Real Time Clock (RTC) ................................................................ 24 2.7. Push Button ........................................................................................................ 26 2.8. LED (Light-Emitting Diode) .............................................................................. 26 BAB III : PERANCANGAN PENELITIAN 3.1. 3.2. Perancangan Perangkat Keras ............................................................................. 30 3.1.1. Rangkaian Minimum System ATmega128 ........................................... 30 3.1.2. Rangkaian RTC – IC DS1307 .............................................................. 30 3.1.3. Rangkaian LCD ................................................................................... 31 3.1.4. Rangkaian Sistem Pengendali .............................................................. 32 3.1.5. Modul Pemancar .................................................................................. 32 Perancangan Perangkat Lunak ............................................................................ 33 3.2.1. Diagram Alir Program Utama .............................................................. 33 3.2.2. Diagram Alir Setting Waktu Pengiriman Data ...................................... 37 3.2.3. Diagram Alir Nilai Data Sensor ........................................................... 38 3.2.4. Diagram Alir Single Data Sensor ......................................................... 39 3.2.5. Diagram Alir Subrutin Menu................................................................ 40 3.2.6. Diagram Alir Pengambilan Data .......................................................... 40 xii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.2.7. Diagram Alir Subrutin Kontrol Sistem ................................................. 43 3.2.8. Diagram Alir Subrutin Aksi ................................................................ 43 3.2.9. Diagram Alir Aksi Pengendalian .......................................................... 44 3.2.10. Diagram Alir Pengiriman Data ............................................................. 45 BAB IV HASIL DAN PEMBAHASAN 4.1. Mekanik Kotak Sistem ....................................................................................... 47 4.2. Subsistem Elektronik .......................................................................................... 49 4.3. 4.2.1. Rangkaian LCD 16x2........................................................................... 50 4.2.2. Rangkaian TX02-433D dan RX01-433D.............................................. 50 4.2.3. Rangkaian Mikrokontroler ................................................................... 51 Cara Penggunaan Alat ........................................................................................ 51 4.3.1. Pengaturan waktu RTC ........................................................................ 52 4.3.2. Pengaturan jadwal pengiriman ............................................................. 53 4.3.3. Menu pengambilan salah satu data sensor ............................................ 53 4.3.3.1. Pengambilan Data Suhu ....................................................... 53 4.3.3.2. Pengambilan data keasaman ................................................. 54 4.3.3.3. Pengambilan data oksigen .................................................... 54 4.3.3.4. Pengambilan data kekeruhan ................................................ 55 4.3.3.5. Pengambilan data konduktivitas ........................................... 56 4.3.4. Menu ambil paket data ........................................................................ 56 4.3.5. Menu reset batasan kendali ................................................................. 57 4.3.6. Menu Metode Kendali ........................................................................ 57 4.3.7. Pengaturan Kendali Manual ................................................................ 59 4.3.7.1. Pengendalian pintu masuk .................................................. 59 4.3.7.2. Pengendalian pintu keluar .................................................. 59 4.3.7.3. Pengendalian pompa air ....................................................... 60 4.3.7.4. Pengendalian pompa aerator ................................................. 61 4.4. 4.3.8. Pengaturan Kendali Otomatis .............................................................. 62 4.3.9. Tampilan Batasan Sensor .................................................................... 62 Pengujian Sistem ................................................................................................ 63 4.4.1. Pengujian Minimum Sistem Dan LCD 16x2 ........................................ 63 4.4.2. Pengujian TX02-433D dan RX01-433D ............................................... 63 xiii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.5. Pengujian Software............................................................................................. 66 4.5.1. 4.6. Perubahan Perancangan Perangkat Lunak ............................................ 66 4.5.1.1. Diagram Alir Utama ......................................................... 66 4.5.1.2. Diagram Alir Subrutin Data Masuk .................................. 68 4.5.1.3. Diagram Alir Subrutin Menu ............................................ 70 4.5.1.4. Diagram Alir Subrutin Kendali Manual ............................ 71 4.5.1.5. Diagram Alir Subrutin Pengiriman Data ........................... 73 4.5.2. Pengujian Pengambilan Data Sensor .................................................... 74 4.5.3. Pengujian Kendali ................................................................................ 76 4.5.3.1. Kendali Manual ................................................................ 76 4.5.3.2. Kendali Otomatis .............................................................. 78 4.5.4. Pengujian Kirim Paket Data Ke Sentral Unit ........................................ 81 4.5.5. Pengujian Terima Paket Data dari Sentral Unit..................................... 83 4.5.5.1. Pengaturan Jadwal Pengiriman ......................................... 84 4.5.5.2. Pengaturan Batasan Sensor ............................................... 85 4.5.5.3. Pengiriman Salah Satu Sensor .......................................... 87 Pengujian Alat Terminal Unit ............................................................................. 91 4.6.1. Pengujian Tombol ................................................................................ 91 4.6.2. Pengujian waktu RTC .......................................................................... 95 4.6.3. Pengujian Jadwal Kirim ....................................................................... 97 4.6.4. Pengujian Reset Batasan Kendali ......................................................... 98 BAB V : KESIMPULAN DAN SARAN 5.1. Kesimpulan ....................................................................................................... 101 5.2. Saran…… ......................................................................................................... 101 DAFTAR PUSTAKA LAMPIRAN LAMPIRAN A Perancangan Keseluruhan Elektronik Sistem Pengendali ....................... L1 LAMPIRAN B Listing Program Utama Mikrokontroler 8535 ........................................ L2 LAMPIRAN C Listing Program Utama Visual Basic ..................................................... L4 LAMPIRAN D Lembar Pengujian Modul Sentral Unit .................................................. L20 xiv PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LAMPIRAN E Lembar Pengujian Modul Sentral Unit ................................................... L25 LAMPIRAN F Lembar Pengujian Modul Sentral Unit ................................................... L26 LAMPIRAN G Lembar Pengujian Modul Sentral Unit .................................................. L27 LAMPIRAN H Lembar Pengujian Modul Sentral Unit .................................................. L28 LAMPIRAN I Lembar Pengujian Modul Sentral Unit .................................................... L29 LAMPIRAN J Lembar Pengujian Modul Sentral Unit .................................................... L31 LAMPIRAN K Lembar Pengujian Modul Sentral Unit .................................................. L32 LAMPIRAN L Lembar Pengujian Modul Sentral Unit ................................................... L33 LAMPIRAN M Lembar Pengujian Modul Sentral Unit .................................................. L34 xv PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR GAMBAR Hal Gambar 2.1. Gambar plan pengendalian air kolam ....................................................... 4 Gambar 2.2. Sensor Suhu ............................................................................................. 5 Gambar 2.3. Sensor Keasaman ..................................................................................... 6 Gambar 2.4. PCB Sensor keasaman ............................................................................. 6 Gambar 2.5. Sensor Cahaya ......................................................................................... 7 Gambar 2.6. Konstruksi Ketinggian Sensor Konduktivitas ........................................... 8 Gambar 2.7. Sensor Konduktivitas ............................................................................... 9 Gambar 2.8. Konstruksi Bagian Master ........................................................................ 10 Gambar 2.9. Hasil Pengujian ........................................................................................ 10 Gambar 2.10. Gambar konfigurasi pin ATmega 128 ...................................................... 13 Gambar 2.11. Register TWCR ....................................................................................... 15 Gambar 2.12. USART Data Register.............................................................................. 16 Gambar 2.13. Hubungan antara Master-Slave dengan SPI .............................................. 16 Gambar 2.14. SPI control register.................................................................................. 17 Gambar 2.15. SPI Data Register..................................................................................... 18 Gambar 2.16. Register EICRA ....................................................................................... 18 Gambar 2.17. Register EICRB ....................................................................................... 19 Gambar 2.18. Register EIMSK ...................................................................................... 19 Gambar 2.19. Konfigurasi Pin IC RX01-433D ............................................................... 20 Gambar 2.20. Schematic Pin RX01-433D ...................................................................... 20 Gambar 2.21. Konfigurasi Pin IC TX02-433D ............................................................... 22 Gambar 2.22. Schematic Pin TX02-433D....................................................................... 23 Gambar 2.23. LCD 16x2 ................................................................................................ 24 Gambar 2.24. Rangkaian umum dari IC DS1307 ............................................................ 25 Gambar 2.25. Register Control IC DS1307 .................................................................... 26 Gambar 2.26. Gambar Push Button ................................................................................ 26 Gambar 2.27. Konfigurasi LED ..................................................................................... 27 Gambar 2.28. Rangkaian indikator LED......................................................................... 27 Gambar 3.1. Konsep perancangan ................................................................................ 29 xvi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 3.2. Rangkaian RTC ....................................................................................... 31 Gambar 3.3. Rangkaian LCD 16x2 .............................................................................. 31 Gambar 3.4. Rangkaian Sistem Pengendali .................................................................. 32 Gambar 3.5. Rangkaian Modul Pemancar .................................................................... 32 Gambar 3.6. Diagram Alir Utama ................................................................................ 34 Gambar 3.7. Diagram Alir Setting Waktu Pengiriman Data .......................................... 37 Gambar 3.8. Diagram Alir Setting nilai data sensor ...................................................... 38 Gambar 3.9. Diagram Alir Single Data Sensor ............................................................. 39 Gambar 3.10. Diagram Alir Subrutin Menu ................................................................... 40 Gambar 3.11. Diagram Alir Subrutin Pengambilan Data Suhu dan pH ........................... 41 Gambar 3.12. Diagram Alir Subrutin Pengambilan Data DO dan Kekeruhan ................. 42 Gambar 3.13. Diagram Alir Subrutin Data Koduktivitas dan semua sensor .................... 42 Gambar 3.14. Diagram Alir Kontrol Sistem ................................................................... 43 Gambar 3.15. Diagram Alir Subrutin Aksi ..................................................................... 44 Gambar 3.16. Diagram Alir Aksi Pengendalian .............................................................. 44 Gambar 3.17. Diagram Alir Subrutin Kirim Data ........................................................... 45 Gambar 4.1. Mekanik kotak sistem tampak depan ........................................................ 46 Gambar 4.2. Mekanik kotak sistem tampak samping kanan .......................................... 47 Gambar 4.3. Mekanik kotak sistem tampak samping kiri .............................................. 47 Gambar 4.4. Mekanik kotak sistem tampak belakang ................................................... 47 Gambar 4.5. Rangkaian LCD 16x2 .............................................................................. 48 Gambar 4.6. Rangkaian TX02-433D dan RX01-433D.................................................. 48 Gambar 4.7. Rangkaian mikrokontroler........................................................................ 49 Gambar 4.8. Tampilan Awal Alat Terminal Unit .......................................................... 50 Gambar 4.9. Tampilan menu RTC................................................................................ 50 Gambar 4.10. Tampilan menu jadwal pengiriman paket data .......................................... 51 Gambar 4.11. Tampilan menu ambil data suhu ............................................................... 54 Gambar 4.12. Tampilan menu ambil data Keasaman ...................................................... 54 Gambar 4.13. Tampilan menu ambil data oksigen .......................................................... 55 Gambar 4.14. Tampilan menu ambil data kekeruhan ...................................................... 55 Gambar 4.15. Tampilan menu ambil data konduktivitas ................................................. 56 Gambar 4.16. Tampilan menu ambil semua data sensor .................................................. 57 Gambar 4.17. Tampilan menu reset batasan kendali ....................................................... 57 xvii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 4.18. Tampilan menu pilihan kendali manual .................................................... 58 Gambar 4.19. Tampilan menu pilihan kendali otomatis .................................................. 58 Gambar 4.20. Tampilan kendali pintu air masuk tertutup................................................. 59 Gambar 4.21. Tampilan kendali pintu air masuk terbuka ................................................. 59 Gambar 4.22. Tampilan kendali pintu air keluar tertutup ................................................. 60 Gambar 4.23. Tampilan kendali pintu air keluar terbuka ................................................. 60 Gambar 4.24. Tampilan kendali pompa air keadaan mati................................................. 60 Gambar 4.25. Tampilan kendali pompa air keadaan hidup ............................................... 61 Gambar 4.26. Tampilan kendali pompa aerator keadaan mati .......................................... 61 Gambar 4.27. Tampilan kendali pompa aerator keadaan hidup ........................................ 61 Gambar 4.28. Tampilan akses ditolak pada kendali otomatis ........................................... 62 Gambar 4.29. Tampilan batasan sensor suhu dan keasaman ............................................ 62 Gambar 4.30. Tampilan batasan sensor kekeruhan, konduktivitas dan oksigen ................ 62 Gambar 4.31. Tampilan LCD 16x2 ................................................................................. 63 Gambar 4.31. Tampilan LCD 16x2 kirim karakter .......................................................... 64 Gambar 4.32. Tampilan LCD 16x2 terima karakter ......................................................... 64 Gambar 4.33. Tampilan LCD 16x2 tidak terima data ...................................................... 64 Gambar 4.34. Diagram alir utama(1) ............................................................................... 67 Gambar 4.34. Diagram alir utama(2) ............................................................................... 68 Gambar 4.35. Diagram alir subrutin data masuk(1) ......................................................... 68 Gambar 4.35. Diagram alir subrutin data masuk(2) ......................................................... 69 Gambar 4.36. Diagram alir subrutin menu(1) .................................................................. 70 Gambar 4.36. Diagram alir subrutin menu(2) .................................................................. 71 Gambar 4.37. Diagram alir subrutin kendali manual ........................................................ 72 Gambar 4.38. Diagram alir subrutin pengiriman data ...................................................... 73 Gambar 4.39. Tampilan LCD 16x2 dummy sensor .......................................................... 74 Gambar 4.40. Tampilan LCD 16x2 data suhu .................................................................. 74 Gambar 4.41. Tampilan LCD 16x2 tidak terima data suhu .............................................. 75 Gambar 4.42. Program Pengambilan data sensor ............................................................. 75 Gambar 4.43. Tampilan awal kendali LCD ..................................................................... 76 Gambar 4.44. Tampilan awal kendali LED ...................................................................... 76 Gambar 4.45. Tampilan LCD kendali pintu masuk keadaan hidup................................... 77 Gambar 4.46. Tampilan LED kendali pintu masuk keadaan hidup ................................... 77 xviii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 4.47. Program tampil status kendali pada LCD .................................................. 77 Gambar 4.48. Tampilan status kendali pada LED ............................................................ 78 Gambar 4.49. Nilai sensor sebelum percobaan kendali otomatis ...................................... 79 Gambar 4.50. Kendali sebelum percobaan kendali otomatis ............................................ 79 Gambar 4.51. Status kendali sebelum percobaan kendali otomatis ................................... 79 Gambar 4.52. Nilai sensor yang telah diubah kendali otomatis ........................................ 79 Gambar 4.53. Status kendali telah berubah pada kendali otomatis ................................... 80 Gambar 4.54. Status kendali telah berubah pada kendali otomatis ................................... 80 Gambar 4.55. Program kendali otomatis .......................................................................... 80 Gambar 4.56. LCD 16x2 terima paket data di sentral unit ............................................... 82 Gambar 4.57. LCD 16x2 data dummy sensor yang dikirim ke sentral unit ....................... 82 Gambar 4.58. Program paket data yang dikirim(1) .......................................................... 82 Gambar 4.58. Program paket data yang dikirim(2) .......................................................... 83 Gambar 4.59. Program penerimaan karakter dari sentral unit........................................... 83 Gambar 4.60. Tampilan LCD 16x2 terima data waktu kirim paket data ........................... 84 Gambar 4.61. Tampilan LCD 16x2 jadwal waktu pengiriman paket data......................... 84 Gambar 4.62. Program terima karakter J dari sentral unit ................................................ 84 Gambar 4.63. Tampilan LCD 16x2 terima setting batasan suhu terminal unit .................. 85 Gambar 4.64. Tampilan LCD 16x2 terima setting batasan keasaman terminal unit .......... 86 Gambar 4.65. Tampilan LCD 16x2 batasan suhu dan keasaman di terminal unit ............. 86 Gambar 4.66. Tampilan LCD 16x2 terima setting batasan oksigen terminal unit ............. 86 Gambar 4.67. Tampilan LCD 16x2 terima setting batasan kekeruhan terminal unit ......... 86 Gambar 4.68. Tampilan LCD 16x2 terima setting batasan konduktivitas terminal unit .... 86 Gambar 4.69. Tampilan LCD 16x2 batasan kekeruhan, konduktivitas dan oksigen.......... 87 Gambar 4.70. Program terima batasan sensor oksigen, kekeruhan dan konduktivitas ....... 87 Gambar 4.71. Tampilan LCD 16x2 terima karakter sensor suhu ...................................... 88 Gambar 4.72. Tampilan LCD 16x2 nilai suhu pada dummy sensor .................................. 89 Gambar 4.73. Tampilan LCD 16x2 kirim data suhu ke sentral unit .................................. 89 Gambar 4.74. Tampilan LCD 16x2 terima data suhu dari terminal unit ........................... 89 Gambar 4.75. Program pengiriman salah satu sensor ke sentral unit(1)............................ 90 Gambar 4.75. Program pengiriman salah satu sensor ke sentral unit(2)............................ 91 Gambar 4.77. Tampilan awal waktu RTC pada pengujian ............................................... 95 Gambar 4.78. Tampilan atur waktu RTC pada mode menu .............................................. 95 xix PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 4.79. Tampilan atur jam RTC ............................................................................ 95 Gambar 4.80. Tampilan atur menit RTC ......................................................................... 96 Gambar 4.81. Tampilan atur tanggal RTC ....................................................................... 96 Gambar 4.82. Tampilan atur bulan RTC .......................................................................... 96 Gambar 4.83. Tampilan atur tahun RTC .......................................................................... 96 Gambar 4.84. Tampilan waktu RTC berhasil diubah ....................................................... 97 Gambar 4.85. Tampilan awal waktu RTC yang telah diubah ........................................... 97 Gambar 4.86. Tampilan waktu sebelum pengiriman paket data ....................................... 98 Gambar 4.87. Tampilan waktu jadwal pengiriman paket data .......................................... 98 Gambar 4.88. Tampilan kirim paket data dari terminal unit ............................................. 98 Gambar 4.89. Tampilan kirim paket data dari terminal unit ............................................. 98 Gambar 4.90. Tampilan batasan suhu dan keasaman diubah sentral unit .......................... 99 Gambar 4.91. Batasan kekeruhan, konduktivitas dan oksigen diubah sentral unit ............ 99 Gambar 4.92. Tampilan berhasil reset batasan kendali .................................................... 99 Gambar 4.93. Batasan suhu dan keasaman setelah melakukan reset ................................ 99 Gambar 4.94. Batasan kekeruhan, konduktivitas dan oksigen setelah melakukan reset ... 100 xx PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR TABEL Hal Tabel.2.1. Aksi pengendalian ...................................................................................... 11 Tabel.2.2. Pengaturan Bit ISCn1 dan ISCn0 ............................................................... 18 Tabel.2.3. Fungsi Pin RX01-433D .............................................................................. 21 Tabel.2.4. Fungsi Pin TX02-433D .............................................................................. 23 Tabel.2.5. Tabel Konfigurasi PIN LCD 16x2 .............................................................. 24 Tabel.2.6. Memori IC DS1307 .................................................................................... 25 Tabel.3.1. Tabel karakter Perintah dari sentral unit ..................................................... 35 Tabel.3.2. Tabel Karakter Data(1) ............................................................................... 35 Tabel.3.2. Tabel Karakter Data(2) ............................................................................... 36 Tabel.3.3. Format Data ............................................................................................... 36 Tabel.4.1. Pengujian komunikasi frekuensi 434Mhz ................................................... 65 Tabel.4.2. Pengujian komunikasi frekuensi 435Mhz ................................................... 65 Tabel.4.3. Contoh pengambilan data sensor ................................................................ 74 Tabel.4.4. Contoh paket data yang dikirim .................................................................. 81 Tabel.4.5. Pengujian kirim paket data ......................................................................... 81 Tabel.4.6. Contoh terima data batasan sensor .............................................................. 85 Tabel.4.7. Contoh paket data ambil salah satu sensor .................................................. 88 Tabel.4.8. Pengujian tombol pada tampilan awal ........................................................ 92 Tabel.4.9. Pengujian tombol pada menu RTC ............................................................. 92 Tabel.4.10. Pengujian tombol pada jadwal kirim........................................................... 93 Tabel.4.11. Pengujian tombol pada menu pengambilan data sensor ............................... 93 Tabel.4.12. Pengujian tombol pada menu reset batasan kendali .................................... 94 Tabel.4.13. Pengujian tombol pada menu metode kendali ............................................. 94 Tabel.4.14. Hasil Pengujian waktu RTC........................................................................ 97 xxi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB I PENDAHULUAN 1.1. Latar Belakang Tidak dapat dipungkiri bahwa penggunaan bibit dan induk yang unggul akan meningkatkan produksi dan keuntungan budidaya ikan air tawar. Direktorat Jenderal Perikanan Budidaya Kementerian Kelautan dan Perikanan menyebutkan bahwa, produksi perikanan budidaya terus mengalami peningkatan dari tahun ke tahun. Selama periode 2010 – 2013, produksi perikanan budidaya meningkat sekitar 28,64% per tahun, yaitu 6,28 juta ton pada tahun 2010 dan mencapai 13,31 juta ton pada tahun 2013 (data sementara). Sedangkan nilai produksinya mengalami kenaikan sekitar 22,51 % per tahun dalam kurun waktu yang sama. Capaian peningkatan yang signifikan selain dari rumput laut, juga dari peningkatan jenis ikan air tawar, utamanya ikan nila, mas, dan lele. Ketiga jenis ikan tersebut semakin diandalkan, baik untuk mendukung pertumbuhan ekonomi dan perolehan devisa Negara, menyediakan lapangan kerja di pedesaan dan juga dapat dilakukan berkesinambungan dengan menerapkan budidaya ramah lingkungan [1]. Peningkatan produksi budidaya air tawar yang sangat signifikan ini merupakan hasil dari penggunaan induk dan benih unggul, pakan yang sesuai dan efisien, penerapan teknologi yang aplikatif dan inovatif serta intensifikasi budidaya yang ramah lingkungan dan ini merupakan bagian dari Total Akuakultur [1]. Hal penting lain adalah pengelolaan air kolam. Untuk mendapatkan hasil maksimal kualitas dan kuantitas air harus tetap terjaga. Kesesuaian lingkungan hidup untuk setiap ikan berbeda tergantung pada jenis ikan. Jenis ikan tertentu yang sesuai dengan kondisi lingkungannya dapat bertumbuh dan berkembang. Sebaliknya jika keadaan tidak sesuai akan menghambat pertumbuhan dan perkembangannya. Suhu, pH dan oksigen merupakan faktor yang paling sering ditemukan dalam khasus kematian ikan. Dalam penelitian Payara, dkk (2014) telah berhasil dibuat alat untuk mengendalikan kualitas air kolam dengan parameter yang dikendalikan meliputi suhu, kandungan oksigen , pH, kekeruhan air serta konduktivitas air kolam. Sistem pengendalian kualitar air terdiri dari pengendalian pintu inlet, pengendalian pintu outlet, pengendalian aerator, dan penjernihan air. Sistem tersebut memiliki komunikasi jarak dekat yang dilengkapi dengan mikrokontroler dalam menentukan aksi yang akan dilakukan berdasarkan masukan hasil pengukuran [2]. Dari 1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2 hasil survey yang didapatkan, kebutuhan para petani kolam ikan ini ialah pengendalian dan monitoring jarak jauh dikarenakan keberadaan kolam ikan yang jauh sehingga dapat mempermudah para petani ikan memonitoring dan mengendalikan air kolam ikan dari jarak jauh tanpa harus melihat langsung kolam ikan tersebut. Berdasarkan hal tersebut peneliti ingin mengembangkan penelitian tersebut dengan sistem telemetri antara pengendali utama sistem tersebut atau sebagai sentral unit dengan terminal unit yang bertugas mengumpulkan data-data dari sensor yang ada. Pada sistem ini penulis akan lebih berkonsentrasi pada bagian terminal unit, dimana tugas dari terminal unit ini sendiri adalah mengumpulkan data dari setiap sensor yang ada, kemudian data-data ini akan dijadikan satu paket data yang siap dikirimkan ke sentral unit. Bila parameter-parameter tersebut berada di luar standar maka secara otomatis terminal unit akan melakukan beberapa pengendalian atau aksi, antara lain : menutup saluran masuk air, mengurangi air kolam dengan membuka saluran air kolam ke pembuangan, menarik air dari sumber lain untuk mengendalikan kualitas air, mengaktifkan aerator saat DO berada di bawah standar. Pengendalian ini juga dapat dilakukan secara manual dari sentral unit ketika data yang di terima tidak sesuai dengan yang diinginkan. 1.2. Tujuan dan Manfaat Penelitian Tujuan dilakukan penelitian ini adalah Membuat alat monitoring dan kontrol sistem komunikasi yang dapat memudahkan dalam proses monitoring kualitas air pada kolam ikan sehingga dapat dikendalikan dari jarak jauh. Manfaat dilakukan penelitian ini adalah: 1. Menjaga kualitas air kolam ikan untuk menghasilkan kualiatas ikan yang baik. 2. Mendukung pembudidayaan ikan. 3. Membantu peternak ikan air tawar memonitoring kolam ikan dari jarak jauh. 1.3. Batasan Masalah Batasan masalah dalam penelitian ini berisikan tentang batasan komponen yang akan digunakan: 1. Menggunakan ATMega128 sebagai mikrokontroler. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3 2. LCD 16X2 sebagai penampil menu dan waktu RTC. 3. Proses pengiriman perintah dan pengambilan paket data dilakukan secara bergantian atau half duplex. 4. Komunikasi antara terminal unit dengan dummy sensor menggunakan komunikasi USART sedangkan komunikasi TX02-433D dan RX01-433D menggunakan SPI. 5. Data dari setiap sensor memiliki karakter khusus yang mewakili sensor tersebut. 6. TX02-433D sebagai pengirim paket data ke sentral unit dan RX01-433D sebagai penerima intruksi dari sentral unit. 7. Pada proses percobaan kendali menggunakan LED, dengan push button sebagai masukan pengaturan kendali. 1.4. Metodologi Penelitian Metode penulisan yang digunakan adalah : 1. Studi lineatur berupa pengumpulan referensi buku, internet, jurnal dan artikel. 2. Studi kasus terhadap alat yang sudah dibuat sebelumnya. Tahap ini dilakukan untuk memahami prinsip kerja dari alat yang telah dibuat sebelumnya. 3. Perancangan sistem hardware dan software. Tahap ini bertujuan mencari bentuk model yang optimal dari sistem yang dibuat dengan mempertimbangkan dari berbagai factor permasalahan dan kebutuhan yang telah ditentukan. 4. Pembuatan sistem hardware dan software. Sistem bekerja apabila, Terminal unit dapat menerima data dari dummy sensor yang telah disediakan dan melakukan aksi pengendalian dari hasil data sensor yang didapatkan. Kemudian data dari dummy sensor ini dikumpulkan menjadi satu paket data yang siap dikirimkan ke sentral unit sesuai jadwal waktu yang telah ditentukan. Paket data ini akan dikirimkan dua kali ke sentral unit. 5. Pengujian alat menggunakan LED sebagai keluaran kendali dan push button sebagai masukan, dimana hasil yang didapatkan menggunakan dummy variable. 6. Analisa dan pengambilan kesimpulan dilakukan dengan membandingkan data yang dikirim Terminal Unit dengan hasil yang diterima pada sentral Unit. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB II DASAR TEORI 2.1. State of The Art Faktor lingkungan seperti air, temperatur, derajat keasaman (pH), kandungan oksigen (DO), dan lain-lain sangat diperlukan untuk biota air tawar (ikan, plankton, ganggang, zooplankton, dll). Kesesuaian lingkungan hidup untuk setiap ikan berbeda tergantung pada jenis ikan. Jenis ikan tertentu yang sesuai dengan kondisi lingkungannya dapat bertumbuh dan berkembang[3]. Sebaliknya, jika keadaan tidak sesuai akan menghambat pertumbuhan dan perkembangannya. Pada penelitian [11] yang sudah ada telah berhasil dibuat prototype model kolam ikan. Gambar 2.1. Model Kolam Ikan Pada gambar 2.1. ukuran bak prototype yang digunakan ialah ; panjang bak 51,5cm, lebar bak 36cm dan tinggi bak 31,5cm, dengan keterangan gambar; (1) bak sumber, (2) boks elektronik, (3) bak kolam, (4) penampang aerator, (5) bak pembuangan, (6) bak sumur (sumber lain). Pengujian pengendalian air merupakan pengujian yang dilakukan untuk mengendalikan kualitas air pada bak kolam. Pengujian dilakukan dengan menambahkan 1cm air ke bak kolam pada ketinggian minimum, penambahan air dilakukan sampai air keluar melalui jalur inlet. 4 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 5 2.1.1. Pengendalian Temperatur Air Temperatur air sangat berpengaruh pada pertumbuhan dan perkembangan ikan. Temperatur air yang tidak cocok, misalnya terlalu tinggi atau terlalu rendah dapat menyebabkan ikan tidak dapat bertumbuh dengan baik. Temperatur yang cocok untuk pertumbuhan ikan adalah berkisar antara 15ºC - 30ºC dan perbedaan suhu antara siang dan malam kurang dari 5ºC. Perubahan suhu yang mendadak berpengaruh buruk pada kehidupan ikan karena ikan tidak dapat hidup dengan baik pada suhu yang telalu dingin atau terlalu panas[3]. Sensor suhu terdiri dari dua bagian yaitu bagian kerangka sensor dan sensor LM35. Sensor LM35 terletak di ujung kerangka sensor dan mengalami kontak langsung dengan sampel air seperti pada gambar 2.2. Gambar 2.2. Sensor Suhu[4] 2.1.2. Pengendalian Derajat Keasaman Air Derajat keasaman air dapat berpengaruh terhadap pertumbuhan ikan. Derajat keasaman air yang sangat rendah atau sangat asam dapat menyebabkan kematian ikan dengan gejala gerakannya tidak teratur, tutup insang bergerak sangat aktif, dan berenang sangat cepat pada permukaan air. Keadaan air yang sangat basa juga dapat menyebabkan pertumbuhan ikan terhambat. Kisaran derajat keasaman air cocok untuk budidaya ikan gurami adalah 6,5 – 8,0 dan untuk ikan nila 7 – 8. Namun, ikan nila masih dapat hidup pada pH air antara 5 – 11[3]. Sedangkan pH air yang cocok untuk ikan mas berkisar 7,5 – 8,5. Perairan yang asam juga sangat berpengaruh terhadap nafsu makan ikan (selera makan akan berkurang). Pengujian pengendalian keasaman air dibagi menjadi 2 yaitu pengujian pengendalian potential of Hydrogen (pH) asam (dari pH di bawah normal ke normal), dan pengendalian pH PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 6 basa (dari pH di atas normal ke normal). Pengendalian pH asam dilakukan dengan mencampurkan air kolam dengan air sumur, air kolam yang memiliki pH 4,6 telah kurang dari batas normal pH air untuk ikan. Untuk mengendalikan pH air kolam maka dicampurkan dengan air sumur yang memiliki pH 6,3 untuk mendapatkan pH kurang dari 5. Pengendalian pH basa dilakukan dengan air kolam yang memiliki 8,7 telah kurang dari batas normal pH air untuk ikan maka air kolam dicampurkan dengan air sumur yang memiliki pH sebesar 6,3. Untuk mendapatkan pH yang lebih dari 8,7. Gambar 2.3. Sensor pH Mekanik sensor dapat dilihat dari gambar 2.4. dalam kotak mekanik sensor ini terdapat beberapa bagian (1) kipas DC, (2) rangkaian driver motor, (3) rangkaian sisterm mikrokontroler dan LCD, (4) rangkaian catu daya, (5) trafo 1 A. Gambar 2.4. PCB Sensor pH5] PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 7 2.1.3. Pengendalian Derajat Kekeruhan Air yang terlalu keruh dapat menyebabkan ikan mengalami gangguan pernafasan (sulit bernafas) karena insangnya terganggu oleh kotoran. Di samping itu juga air keruh dapat menurunkan atau dapat melenyapkan selera makan karena daya penglihatan ikan terganggu. Batas kekeruhan dapat diukur dengan memasukan benda yang terang (berwarna putih) sampai kedalaman 40cm[3]. Jika masih kelihatan, maka kekeruhan air masih belum mengganggu kehidupan ikan. Satuan yang biasa dipakai dalam kekeruhan ialah NTU (Nephelometric Turbidity Units). Kekeruahan juga sering digambarkan dengan dalam satuan TSS (Total Suspended Solids) atau mg/l (miligram per liter). Air murni memiliki NTU kurang dari 1 atau 0 mg/l. Standar kekeruhan air yang baik bagi ikan harus kurang dari 400 NTU[6], bila kekeruhan berada di atas 400 NTU maka akan mengganggu pertumbuhan ikan. Dalam pengujian pengendalian kekeruhan air dilakukan dengan mencampurkan air sumur dengan air kolam. Air kolam yang dibuat keruh (434 NTU) dikendalikan dengan air sumur yang memiliki kekeruhan sebesar 104 NTU. Pada pengendalian ini menggunakan sensor cahaya untuk mendeteksi apakah air di dalam kolam berada pada kondisi keruh atau jernih, berikut adalah rangkaian sensor cahaya terdapat pada Fototransistor dalam pengujian derajat kekeruhan. Gambar 2.5. Sensor Cahaya[7] PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 8 2.1.4. Pengendalian Kandungan Oksigen Oksigen sangat diperlukan untuk pernapasan dan metabolisme ikan serta jasad – jasad renik dalam air. Kandungan oksigen yang tidak mencukupi kebutuhan ikan dan biota lainya dapat menyebabkan penurunan daya hidup ikan. Kandungan oksigen terlarut dalam air cocok untuk kehidupan dan pertumbuhan ikan gurami sebesar 5ppm, untuk ikan nila lebih dari 3ppm, dan ikan mas berkisar 5 – 7ppm (5 – 7cc per liter air)[3]. Pengaliran air yang baik dan permukaan kolam yang selalu terbuka dapat meningkatkan kadar oksigen dalam air. Peningkatan nilai kandungan oksigen dapat ditingkatkan dengan menggunakan aerator. Peningkatan kandungan oksigen dikarenakan kontak yang terjadi antara air dan udara, sehingga oksigen dalam air meningkat dari sebelumnya 0.07339% menjadi 0.33763%. Gambar 2.6. Konstruksi Ketinggian Sensor Konduktivitas[8] 2.1.5. Pengendalian Konduktivitas Air Nilai konduktivitas merupakan ukuran terhadap konsentrasi total elektrolit di dalam air. Kandungan elektrolit yang pada prinsipnya merupakan garam-garam yang terlarut dalam air, berkaitan dengan kemampuan air di dalam menghantarkan arus listrik. Standar konduktivitas yang baik bagi ikan ialah kurang dari 5000μS (mikro simens) dengan suhu 25 ºC [9]. Bila konduktivitas berada di atas 5000μS maka akan mengganggu kehidupan ikan. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 9 Pengendalian konduktivitas dilakukan dengan mencampurkan air kolam dengan air sumur. Air kolam yang memiliki konduktivitas 5548 uS/cm dengan suhu sebesar 250C, telah melewati batas normal konduktivitas air untuk ikan maka harus dikendalikan. Untuk mengendalikan konduktivitas air kolam, maka air kolam dicampurkan dengan air sumur yang memiliki konduktivitas sebesar 543 uS/cm. Untuk mendapatkan konduktivitas yang lebih dari 500uS/cm maka air kolam dicampurkan dengan garam. Gambar 2.7. Sensor Konduktivitas[4] 2.1.6. Pengambilan Data Sensor Pengambilan data dari sensor dilakukan menggunakan ATMega128, dimana master akan mengirimkan karakter ke slave (sensor), jika dapat diterima oleh slave, maka slave akan membalas kiriman tersebut dengan data. Pengambilan data dari sensor dilakukan secara bergantian dengan master mengirimkan karakter satu per satu ke setiap sensornya. Lalu data dari sensor tersebut dikumpulkan menjadi satu paket data yang akan siap dikirimkan ke komputer yang akan ditampilkan dalam bentuk grafik, namun telah disediakan tabel untuk mempermudah pengguna dalam melihat data. Berikut adalah gambar konstruksi bagian dari master.[3] PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 2.8. Konstruksi Bagian Master Gambar 2.9. Hasil Pengujian[10] 10 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 11 2.1.7. Aksi Pengendalian Pada sistem ini digunakan beberapa aktuator yang diaktifkan berdasarkan data input bagian monitoring, aktuator yang digunakan adalah pintu inlet, pintu outlet, pompa sumur dan pompa aerator. Salah satu output diaktifkan berdasarkan perbandingan hasil pengukuran dari bagian monitoring dan standar yang telah ditentukan. Karena adanya perbedaan standar kualitas air untuk tiap jenis ikan, maka ditetapkan standar air yang dikendalikan sistem. Hal ini ditetapkan agar sistem dapat digunakan untuk semua jenis ikan seperti pada tabel 2.1. Pada tabel tersebut juga ditentukan aksi pengendalian berdasarkan standar yang ditentukan; Tabel 2.1. Aksi Pengendalian[11] PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.2. 12 Dummy Data Data dummy adalah data yang menyerupai data aslinya tetapi tidak memiliki fungsi aslinya. Data ini akan digunakan untuk menggantikan data setiap sensor dalam pengujian dan pengambilan data. Data yang digunakan disimpan pada eeprom setiap mikro untuk menggantikan sensor. Sensor suhu untuk kualitas kolam batas pengukurannya adalah 15ºC 39ºC dengan perbedaan data setiap 1,5ºC, untuk sensor keasaman batas pengukurannya adalah 4 pH – 10,5 pH dengan perbedaan data setiap 0,5 pH, sensor kekeruhan memiliki batas pengukuran sebesar 25 NTU – 475 NTU dengan perbedaan data sebesar 25 NTU, dan sensor DO memiliki batas pengukuran 3 ppm – 9,5 ppm dengan perbedaan data setiap 0,5 ppm [10]. Setiap sensor memiliki waktu pengukuran yang berbeda. Sensor kekeruhan, dan keasaman waktu yang dibutuhkan untuk mendapatkan data yang valid selama 5 setik [5]. Untuk sensor kadar oksigen waktu yang dibutuhkan untuk mendapatkan data yang valid sekitar 20 menit [8]. Dalam pengujian, data yang digunakan mengikuti data yang sudah pernah didapat dari tugas akhir Charles Wilianto yang berjudul Sistem Komunikasi Pengendalian Kualitas Air Kolam Ikan Berbasis Atmega128. Setiap mikro mewakili 1 sensor yang memiliki jumlah data yang berbeda. Mikro yang mewakili sensor suhu memiliki 17 data dari 15ºC - 39ºC dengan perbedaan data setiap 1,5º, untuk mikro yang mewakili sensor keasaman memiliki 14 data dari 4 pH – 10,5 pH dengan perbedaan data setiap 0,5 pH, sedangkan mikro yang mewakili sensor kekeruhan mimiliki 19 data dari 25 NTU – 475 NTU dengan perbedaan data sebesar 25 NTU, dan untuk mikro yang mewakili sensor DO memiliki 14 data dari 3 ppm – 9,5 ppm dengan perbedaan data setiap 0,5 ppm. Setiap mikro menampilkan data yang sudah disimpan di eeprom ke LCD yang terhubung ke mikro tersebut. Mikro yang mewakili sensor kekeruhan dan keasaman data yang ditampilkan berubah setiap 5 detik, untuk mikro yang mewakili sensor DO datanya berubah setiap 20 menit. Waktu tersebut mengikuti waktu sebenarnya yang diperlukan sensor untuk mendapatkan data yang valid. Untuk mikro yang mewakili sensor suhu, data yang ditampilkan berubah setiap 5 detik mengikuti waktu dari sensor kekeruhan dan keasaman karena tidak ada referensi yang menunjukan waktu untuk mendapatkan data yang valid. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.3. 13 Mikrokontroler ATmega 128[12] ATmega128 merupakan sebuah mikrokontroler CMOS 8-bit berdaya rendah yang berdasarkan arsitektur AVR RISC (Reduced Instruction Set Computing). Mikrokontroler ATmega 128 merupakan mikrokontroler buatan Atmel Corporation yang memiliki 53 pin dengan catu daya tunggal 4,5 – 5,5 volt.. a) Saluran I/O sebanyak 53 buah, yaitu Port A, Port B, Port C, Port D, Port E, Port F dan Port G. b) ADC 10 bit sebanyak 8 saluran. c) Internal SRAM sebesar 4 kbyte. d) Memori flash sebesar 128 kBytes. e) Interupsi Eksternal. f) Port antarmuka SPI. g) EEPROM sebesar 4 kbyte. h) Dua buah port USART untuk komunikasi serial. Gambar 2.10. Gambar konfigurasi pin ATmega 128 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 14 2.2.1. Port Input/Output ATmega128 mempunyai 53 pin I/O yang terbagi menjadi tujuh port dan mampu difungsikan sebagai masukan atau keluaran. Setiap pin I/O mempunyai tiga register yaitu DDRxn, PORTxn dan PINxn yang nilainya tergantung dari aplikasi pin I/O itu sendiri. Huruf “x” mewakili Port I/O tersebut, sedangkan huruf “n” mewakili nomor pin I/O yang dituju. Untuk mengatur sebuah pin I/O menjadi sebuah keluaran maka register DDR pada pin tersebut harus diberi logika tinggi, sedangkan agar berfungsi sebagai masukan, maka DDR pada pin tersebut diberi logika rendah [13]. Saat berfungsi sebagai pin masukan, maka register PINxn digunakan untuk membaca nilai pada pin tersebut. Sedangkan saat berfungsi sebagai sebuah pin keluaran, register PORTxn digunakan untuk mengatur nilai keluaran pin I/O tersebut. 2.2.2. – Two-Wire Serial Communication Two-wire serial communication (TWI) adalah salah satu fitur yang sering dipakai pada aplikasi mikrokontroler. TWI memungkinkan pengguna untuk terhubung dengan 128 perangkat yang berbeda dengan hanya menggunakan dua jalur data, SCL sebagai pengatur clock dan SDA sebagai jalur utama. Terdapat lima register yang digunakan untuk mengatur penggunaan TWI, yaitu TWI Bit Rate Register (TWBR), TWI Control Register (TWCR), TWI Status Register (TWSR), TWI Data Register (TWDR), dan TWI (Slave) Address Register (TWAR). Register TWBR digunakan sebagai pengatur bit rate dari komunikasi serial. Nilai TWBR dapat dihitung dari rumus: (2.4) Register TWCR digunaakn sebagai pengatur operasi TWI. Register ini terdiri dari 8-bit data seperti ditunjukkan gambar 2.11. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 15 Gambar 2.11. Register TWCR Memberi logika high pada bit TWSTA membuat perangkat menjadi master device pada jalur data. Perangkat akan mendeteksi keberadaan jalur data, apabila jalur data tersedia, maka perangkat akan menginisialisai kondisi START. Apabila jalur data sedang digunakan oleh perangkat lain, maka perangkat akan menunggu sampai terdeteksi kondisi STOP kemudian menginisialisasi kondisi START dan mengambil alih jalur data. Sedangkan bit TWSTA digunakan untuk menginisialisasi kondisi STOP pada jalur data. Apabila perangkat diatur sebagai slave device, maka bit ini dapat digunakan untuk memulihkan kondisi eror. Bit TWEN digunakan untuk mengaktifkan antarmuka TWI, saat TWEN bernilai 1, maka antarmuka TWI akan mengambil alih pin I/O SDA dan SCL dan menggunakannya sebagai jalur data. 2.2.3. Universal Synchronous and Asynchronous serial Receiver and Transmitter (USART) Universal Synchronous and Asynchronous Serial Receiver and Transmitter (USART) merupakan salah satu mode komunikasi serial yang dimiliki ATmega128. USART merupakan komunikasi yang memiliki fleksibilitas tinggi yang dapat digunakan untuk melakukan transfer data baik antara mikrokontroler maupun dengan modul modul eksternal termasuk PC yang mempunyai fitur UART. USART memungkinkan transmisi data baik secara synchronous maupun asynchronous sehingga USART kompatibel dengan UART. Pada ATmega128 umumnya pengaturan mode komunikasi baik synchronous maupun asynchronous adalah sama. Perbedaannya terletak pada sumber clocknya. Pada mode synchronous mempunyai sumber clock sendiri sedangkan pada asynchronous menggunakan satu sumber clock secara bersamaan. Mode asynchronous secara PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 16 hardware hanya membutuhkan dua pin yaitu TXD dan RXD sedangkan untuk mode synchronous membutuhkan 3 pin yaitu RXD, TXD, dan SCK. Register yang digunakan adalah USART Data Register (UDR). Meskipun register UDR hanya menempati satu lokasi memori yaitu 0x0C (0x02C) tetapi sebenarnya register UDR mempunyai dua register I/O yaitu RXB sebagai buffer untuk menyimpan data yang diterima dan TXB sebagai buffer untuk menyimpan data yang dikirim. Bagan UDR dapat dilihat pada gambar 2.12. Gambar 2.12. USART Data Register 2.2.4. Serial Peripheral Interface (SPI) Transfer data pada SPI digunakan antara master dan slave dalam jarak dekat dengan kecepatan cukup tinggi. Terdapat empat buah pin yang mengatur komunikasi serial antara master dan slave yaitu: 1. SCLK dari master ke slave yang berfungsi sebagai clock. 2. MOSI jalur data dari master yang masuk ke dalam slave. 3. MISO jalur data keluar dari slave dan masuk kedalam master. 4. SS (Slave Select) merupakan pin yang berfungsi mengaktifkan slave. Gambar 2.13. Hubungan antara Master-Slave dengan SPI PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 17 Setiap bit dari register yang berhubungan dengan SPI mempunyai fungsinya masing-masing. Dan untuk mengaktifkan SPI. Pada gambar 2.14. menunjukan register yang berhubungan dengan SPI. Gambar 2.14. SPI control register a) Bit 7 – SPIE: SPI Interrupt Enable. SPIE digunakan untuk mengaktifkan interupsi SPI. b) Bit-6 SPE (SPI Enable). SPE digunakan untuk mengaktifkan dan menonaktifkan komunikasi SPI dimana jika SPI bernilai 1 maka komunikasi SPI aktif sedangkan jika bernilai 0 maka komunikasi SPI tidak aktif. c) Bit 5 – DORD: Data Order. DORD digunakan untuk memilih urutan pengiriman data, dari LSB atau MSB terlebih dahulu. Nilai satu untuk LSB dan nilai nol untuk MSB. d) Bit-4 MSTR (Master or Slave Select). MSTR digunakan untuk mengkonfigurasi sebagai master atau slave secara software dimana jika MSTR bernilai 1 maka terkonfigurasi sebagai master sedangkan MSTR bernilai 0 maka terkonfigurasi sebagai slave. Pengaturan bit MSTR ini tidak akan bisa dilakukan jika pin SS dikonfigurasi sebagai input karena jika pin SS dikonfigurasi sebagai input maka penentuan master atau slavenya otomatis dilakukan secara hardware yaitu dengan membaca level tegangan pada SS. e) Bit-3 CPOL dan Bit-2 CPHA digunakan untuk pengaturan polaritas dan fasa dari clock. f) Bit-1 SPR1/0 (SPI Clock Rate Select) SPR1 dan SPR0 digunakan untuk menentukan kecepatan clock yang digunakan dalam komunikasi SPI. SPIF (SPI Interrupt Flag) SPIF digunakan untuk mengetahui bahwa proses pengiriman data satu byte sudah selesai. Jika proses pengiriman data sudah selesai maka SPIF akan bernilai PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 18 satu (high). SPIF ini berada dalam SPI Status Register (SPSR). SPI Data Register (SPDR) SPDR merupakan register yang digunakan untuk menyimpan data yang akan dikirim atau diterima pada komunikasi SPI. Gambar 2.15. SPI Data Register 2.2.5. External Interupt Mikrokontroler ATmega128 mempunyai delapan buah pin yang dapat digunakan sebagai external interupt. Empat register utama digunakan sebagai pengatur kerja external interupt. Gambar 2.16. Register EICRA Register EICRA digunakan untuk mengatur kerja pin INT0 sampai INT3. Bit ISCn1 dan ISCn0 digunakan sebagai pengatur sinyal yang dapat digunakan sebagai perintah interupsi pada mikrokontroler, dengan huruf “n” menyatakan pin interupsi yang dituju. Tabel 2.2. Pengaturan Bit ISCn1 dan ISCn0 ISCn1 0 0 ISCn0 0 1 1 0 1 1 Keterangan Logika rendah pada pin INTn menyatakan interupsi Reserved Perubahan logika tinggi ke rendah pada pin INTn menyatakan interupsi Perubahan logika rendah ke tinggi pada pin INTn menyatakan interupsi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 19 Gambar 2.17. Register EICRB Register EICRB digunakan untuk mengatur kerja pin INT4 sampai INT7. Bit ISCn1 dan ISCn0 digunakan sebagai pengatur sinyal yang dapat digunakan sebagai perintah interupsi pada mikrokontroler, dengan huruf “n” menyatakan pin interupsi yang dituju. Sinyal pada pin INTn akan diambil contohnya (sampling) sebelum dilakukan pengambilan keputusan interupsi. Sinyal yang panjangnya lebih besar dari sumber detak mikrokontroler akan digunakan sebagai sumber interupsi. Gambar 2.18. Register EIMSK Register EIMSK digunakan untuk mengaktifkan fungsi interupsi pada pin INTn. Apabila bit INTn pada register ini bernilai satu, maka pin INT pada mikrokontroler akan berfungsi sebagai sumber interupsi program. 2.2.6. EEPROM (Electrical Erasable Programmable Read-Only Memory) Mikrokontroler ATmega128 mempunyai memori EEPROM sebesar 4 kBytes. Memori ini dapat dibaca dan ditulis melalui program dan data yang tersimpan tidak akan hilang walaupun mikrokontroler kehilangan catu daya. Alamat memori yang dituju oleh program sebelum membaca atau menulis data pada EEPROM ditunjukan oleh register EEARH dan EEARL. Register ini adalah register 11-bit yang menyimpan alamat EEPROM dari alamat 0 sampai alamat 4095. Register EEDR digunakan untuk membaca dan menulis data pada alamat yang ditunjukan oleh register EEAR. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.4. 20 Modul Pemancar 2.3.1 RX01 - 433D RX01-433D merupakan modul receiver dimana modul tersebut bekerja menggunakan modulasi Frequency Shift Keying (FSK) dengan menggunakan frekuensi kerja 433 Mhz[14]. Untuk konfigurasi pin IC RX01-433D dapat dilihat pada gambar 2.19. sedangkan Schematic pin dapat dilihat pada gambar 2.20. Fungsi setiap pinnya dapat dilihat pada table 2.3. Gambar 2.19. Konfigurasi Pin IC RX01-433D Gambar 2.20. Schematic Pin RX01-433D PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 21 Tabel 2.3. Fungsi Pin RX01-433D Pin Nama Tipe Fungsi 1 VDI DO Valid Data Indicator output 2 SDI DI Data input of serial control interface 3 nSEL DI Chip select input of three-wire control interface (active low) 4 NRES DO Reset output (active low) 5 nIRQ DO Interrupt request output, (active low) 6 FFIT DO FIFP IT (active low) FIFO empety function can be achieved when FIFO IT level is set to one 7 VDD S Digital VDD (connect to VDD) 8 SCK DI Clock input of serial control interface 9 SDO DO FIFO IT (active low) or serial data out for Status Read Command. Tristate with bushold cell if nSEL = H 10 VSS S Digital VSS (connect to VSS) 11 nFFS DI FIFO select input 12 CLK DO Clock output for the microcontroller RX01-433D memiliki spesifikasi, diantaranya sebagai berikut[14]: a. Tidak membutuhkan tuning pada frekuensi. b. Menggunakan teknologi PLL. c. Bit rate sampai 115.2 kbps saat mode digital dan 256 kbps saat mode analog. d. Differential antenna. e. Tuning antena otomatis dilakukan oleh modul. f. Tegangan Supply 2.2 V sampai 5.4 V. g. Bandwidth dapat diatur antara 67 KHz sampai 400 KHz. h. Automatic Frequency Control dan Data Quality Detection. i. Menggunakan Antarmuka SPI. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 22 2.3.2 TX02 - 433D TX02-433D merupakan modul transmitter dimana modul tersebut bekerja menggunakan modulasi Frequency Shift Keying (FSK) dengan menggunakan frekuensi kerja 433 Mhz[10]. Untuk konfigurasi pin IC TX02-433D dapat dilihat pada gambar 2.21. serta schematic pin pada TX02-433D dapat dilihat pada gambar 2.22. Fungsi setiap pinnya dapat dilihat pada table 2.4. TX02-433D memiliki spesifikasi, diantaranya sebagai berikut[15]: a. Tidak membutuhkan tuning pada frekuensi. b. Menggunakan teknologi PLL. c. Menggunakan modulasi FSK yang stabil dan akurat. d. Differential antenna. e. Tuning antena otomatis dilakukan oleh modul. f. Tegangan Supply 2.2 V sampai 5.4 V. g. Menggunakan Antarmuka SPI. Gambar 2.21. Konfigurasi Pin IC TX02-433D PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 23 Gambar 2.22. Schematic Pin TX02-433D Tabel 2.4. Fungsi Pin TX02-433D[15] Pin Nama Tipe Fungsi 1 FSK DI Serial data input for FSK modulation 2 VDD S Digital VDD (Connect to VDD) 3 SDI DI Data input of serial control interface 4 VSS S Digital VSS (Connect to VSS) 5 CLK DO Microcontroller clock (1 MHz-10 MHz) 6 NIRQ DO Interrupt request output for microcontroller (active low) and status read output 7 SCK DI Clock input of serial control interface 8 NSEL DI Chip select input of serial control interface (active Low) 2.5. LCD 16x2 Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD tipe ini memiliki 2 baris dimana masing-masing baris memiliki 16 karakter. LCD yang digunakan dapat dilihat pada gambar 2.23 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 24 Gambar 2.23. LCD 16x2 Terdapat tiga register utama pada modul LCD karakter 16x2 yaitu register DDRAM (Display Data Random Access Memory), register CGRAM (Character Generator Random Access Memory), register CGROM (Character Generator Read Only Memory). Register DDRAM merupakan memori tempat karakter yang akan dikirimkan / ditampilkan. Register CGROM merupakan memori untuk menggambarkan sebuah karakter dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan..[16] Tabel 2.5. Tabel Konfigurasi PIN LCD 16x2 [17] 2.6. IC DS1307 – Real Time Clock (RTC) IC DS1307 bekerja dengan menggunakan komunikasi serial I 2C yang dapat digunakan untuk menyimpan waktu, mulai dari detik, menit, jam, tanggal, hingga hari, bulan, tahun. Ketika catu utama tidak aktif maka IC ini secara otomatis akan berpindah ke catu dari baterai 3,2 V. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 25 Gambar 2.24. Rangkaian umum dari IC DS1307 [18] Pertukaran data menggunakan antarmuka , yang setiap memulai pertukaran data, master device harus mengisialisai keadaan START dan diakhiri dengan keadaan STOP. Keadaan START terjadi apabila pin SDA berubah dari logika satu ke logika nol saat pin SCL berada pada logika satu. Tabel 2.6. Memori IC DS1307 [18] Alamat 00h 01h Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 CH 10 detik detik 0 10 menit menit 02h 12 02h 03h 04h 10 jam 10 jam 05h 0 0 0 0 10 tanggal 10 Rentang 00-59 00-59 1-12 jam Jam jam Jam hari tanggal Hari Tanggal 01-07 00-23 01-31 bulan Bulan 01-12 Tahun Kontrol 00-99 - RAM 56x8 00h-FFh +AM/PM 1-12 00-23 24 AM/ PM 10 jam 0 0 Fungsi Detik Menit 0 +AM/PM Bulan 06h 07h 08h-3Fh Out 10 tahun 0 0 SQWE 0 tahun 0 RS1 RS0 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 26 Gambar 2.25. Register Control IC DS1307 Bit ini mengontrol tingkat output dari bit SQW / OUT ketika gelombang output dinonaktifkan. Jika bit SQW sama dengan satu maka tingkat logika pada bit SQW / OUT juga bernilai satu sedangkan jika bit SQW bernilai nol maka SQW / OUT juga bernilai nol. [18] 2.7. Push Button Push Button adalah saklar tekan yang berfungsi untuk menghubungkan atau memisahkan bagian – bagian dari suatu instalasi listrik satu sama lain (suatu sistem saklar tekan push button terdiri dari saklar tekan start. Stop reset dan saklar tekan untuk emergency. Push button memiliki kontak NC (normally close) dan NO (normally open). Push button ini digunakan sebagai tombol menu dan pengaturan pada sistem. Push button dapat dilihat pada gambar 2.26. Gambar 2.26. Gambar Push Button [19] 2.8. LED (Light-Emitting Diode) LED adalah komponen elektronika yang terbuat dari bahan semi konduktor jenis dioda yang mampu memancarkan cahaya. LED mampu menghasilkan cahaya yang berbeda menurut semi konduktor yang digunakan dan jenis bahan semi konduktor tersebut akan menghasilkan panjang gelombang yang berbeda sehingga cahaya yang dihasilkan berbeda pula. LED adalah salah satu jenis dioda, maka LED memiliki 2 kutub yaitu anoda dan katoda. Dalam hal ini LED akan menyala bila ada arus listrik mengalir dari anoda menuju katoda. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 27 Pemasangan kutub LED tidak boleh terbalik karena apabila terbalik kutubnya maka LED tersebut tidak akan menyala. LED memiliki karakteristik berbeda-beda menurut warna yang dihasilkan. Semakin tinggi arus yang mengalir pada LED maka semakin terang pula cahaya yang dihasilkan, namun perlu diperhatikan bahwa arus yang diperbolehkan 10mA20mA dan pada tegangan 1,6V-3,5V menurut karakter warna yang dihasilkan. Apabila arus yang mengalir lebih dari 20mA, maka LED akan terbakar. Untuk menjaga agar LED tidak terbakar perlu digunakan resistor sebagai penghambat arus. LED ditunjukkan pada gambar 2.27. Gambar 2.27. Konfigurasi LED Berdasarkan gambar 2.28, persamaan untuk mencari nilai tegangan menggunakan hokum ohm adalah V = I.R, sehingga persamaan untuk mencari nilai resistor yang digunakan sebagai indikator adalah : (2.7) Gambar 2.28. Rangkaian indikator LED Dimana : V = Tegangan I = Arus Listrik R = Resistor PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Vs 28 = Tegangan sumber = Tegangan LED Tegangan kerja pada sebuah LED menurut warna yang dihasilkan [20]: 1. Merah : 1,8 V – 2,1 V 2. Biru : 3,0 V – 3,5 V 3. Putih : 3,0 V – 3,6 V Pada umumnya tegangan yang digunakan pada perancangan adalah tegangan minimal LED ( ), tegangan minimal LED adalah sebesar 1,5 V. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB III RANCANGAN PENELITIAN Perancangan sistem telemetri kualitas kolam air ikan ini dibagi menjadi menjadi dua bagian utama, yaitu: 1. Perancangan hardware yang terdiri dari mikrokontroler dan perangkat pendukung, RX01-433D dan TX02-433D, IC RTC DS1307, push button dan LCD. Gambar 3.1. menunjukkan blok diagram sistem yang akan dibuat. 2. Perancangan software yang terdiri dari pemograman utama, dan subrutin – subrutinnya seperti, IC RTC, dan LCD Gambar 3.1. Konsep Perancangan Berikut merupakan keterangan cara kerja sistem yang ditunjukan pada gambar 3.1. 1. RX01-433D dan TX02-433D digunakan untuk komunikasi pengiriman data antara sentral unit dan terminal unit, dimana terminal unit akan mengambil data dari sensor 29 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 30 yang telah ditentukan kemudian dijadikan dalam satu paket data dan dalam jangka waktu yang telah ditentukan data-data dari sensor akan dikirimkan ke sentral unit dengan dua kali pengiriman data yang sama. Sentral unit akan memproses dan menyesuaikan kedua paket data yang telah diterima, jika sesuai maka data-data tersebut akan langsung ditampilkan pada komputer, namun jika kedua data yang diterima sentral unit tidak sama, maka sentral unit akan mengirimkan perintah kepada terminal unit untuk mengirimkan data lagi. Jika sampai lima kali pengiriman data dan tidak sesuai, maka data kelima yang akan digunakan. 2. Push Button digunakan untuk memberikan masukan berupa pengaturan dari pengguna. Pengaturan ini memungkinkan pengguna untuk mengubah konfigurasi dan mode – mode pengendalian yang dilakukan sistem. 3. IC RTC DS1307 digunakan sebagai penjaga waktu mikrokontroler, sehingga pengiriman paket data bisa disesuaikan sesuai keinginan pengguna. 4. Mikrokontroler akan mengambil data dari setiap sensor yang kemudian di tampilkan di LCD sekaligus diubah menjadi paket data yang siap untuk dikirim ke Cental Unit. 3.1. Perancangan Perangkat Keras 3.1.1. Rangkaian Minimum System ATmega128 Minimum system merupakan pusat kontrol dan pengolahan data. Gambar 3.2. merupakan minimum sistem dengan IC mikrokontroler ATMEGA128 CPU sebagai komponen utama. Setiap pin dalam ATmega128 ini telah dihubungkan dengan konektor female yang terpasang di dalam board pcb, sehingga memudahkan dalam pemakaiannya. 3.1.2. Rangkaian RTC – IC DS1307 Pada datasheet IC DS1307 telah terdapat rangkaian standar IC ini. Rangkaian IC DS1307 ini menggunakan protokol I2C untuk berkomunikasi dengan mikrokontroller dan menggunakan input 5v. Pull up resistor yang digunakan 4.7K atau 10K agar tidak mengurangi masa pemakaian baterai. Kristal oscillator yang digunakan adalah Kristal yang memiliki frekuensi 32,768 kHz. Baterai menggunakan tipe CR2032 untuk sumber daya ketika catu utama tidak aktif. Berikut gambar rangkaian RTC dengan IC DS1307: PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 31 Gambar 3.3. Rangkaian RTC 3.1.3. Rangkaian LCD LCD merupakan perangkat interface yang menampilkan data-data dari sensor yang telah dikumpulkan dan aksi yang akan dilakukan, LCD yang digunakan dalam perancangan ini adalah LCD 16x2. LCD ini memiliki lampu latar yang dapat dinyalakan dengan tegangan 4,2V pada pin A dan menyambungkan pin K pada jalur ground, namun tegangan kontras maksimum pada LCD ini adalah 5V sehingga diberikan variable resistor sebesar 10K agar lampu latar belakang LCD tidak menyala terlalu terang. Gambar 3.4. Rangkaian LCD 16x2 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 32 3.1.4. Rangkaian Sistem Pengendali Rangkaian sistem pengendali ini dapat digunakan oleh pengguna dari terminal unit. Pada sistem pengendali ini menggunakan tombol sebagai masukan dan lampu sebagai keluarannya, satu tombol digunakan untuk satu aksi pengendalian dimana pengendalian yang dapat dilakukan terdiri dari pintu inlet, pintu outlet, pompa sumur dan pompa aerator. LED yang digunakan untuk pintu inlet yaitu merah, pintu outlet yaitu biru, pompa sumur yaitu hijau, pompa aerator yaitu putih. Resistor yang digunakan untuk LED sendiri menggunakan nilai 330ohm. Gambar 3.7. Rangkaian Sistem Pengendali 3.1.5. Modul Pemancar Modul pemancar ini digunakan sebagai komunikasi dari sentral dan terminal unit, modul pemancar ini menggunakan RX01 dan TX02 yang bekerja pada frekuensi 433MHz. Gambar 3.8. Rangkaian Modul Pemancar PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.2. 33 Perancangan Perangkat Lunak 3.2.1. Diagram Alir Program Utama Pada program utama ini terdapat dua masukan, yaitu setting pengguna dari sentral unit dan setting pengguna dari terminal unit. Setting waktu pengiriman data merupakan setting pengguna dari sentral unit, pada setting ini sentral unit dapat mengatur waktu pengiriman paket data yang akan dikirimkan dari terminal unit ke sentral unit. Setting parameter baru merupakan setting pengguna dari sentral unit, pada setting ini sentral unit akan mengganti nilai-nilai parameter yang sudah ditentukan sebelumnya. Subrutin pengiriman satu data merupakan setting pengguna dari sentral unit, pada setting ini sentral unit akan meminta data single dari terminal unit. Setting Menu, pada setting ini terdapat dua pilihan diantaranya setting RTC dan setting sistem pengendalian. Setting RTC dilakukan untuk mengatur pewaktuan dan tanggal untuk pewaktuan dalam pengiriman data dari terminal unit ke sentral unit. Pada sistem pengendalian digunakan agar pengguna dapat mengatur pintu inlet outlet, pompa sumur, dan aerator dari terminal unit secara manual untuk menentukan apakah akan dibuka atau ditutup, Subrutin ambil data dari sensor, pada subrutin ini terminal unit akan mengambil data dari setiap sensor dan data-data tersebut dikumpulkan menjadi satu paket data yang siap dikirimkan ke sentral unit. Subrutin kontrol sistem, pada kontrol sistem ini adalah aksi yang akan dilakukan jika data yang didapatkan dari sensor tidak sesuai dengan nilai yang telah ditetapkan maka sistem pengendali akan melakukan aksi seperti yang telah ditentukan. Subrutin kirim data, pada subrutin ini terminal unit akan mengirimkan paket data yang telah dikumpulkan dari sensor ke sentral unit, paket data akan dikirimkan sebanyak dua kali secara berurutan dan dua paket data yang telah dikirimkan ke sentral unit akan dibandingkan oleh sentral unit apakah sesuai atau tidak. Jika paket data yang dikirimkan tidak sesuai maka sentral unit akan mengirimkan perintah ke terminal unit untuk mengirim ulang paket data tersebut, jika paket data tersebut tidak sesuai hingga liman kali pengiriman paket data, maka paket data terakir yang akan digunakan atau disimpan oleh sentral unit PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 34 Gambar 3.9. Program Utama Berikut adalah table karakter perintah yang akan digunakan dalam komunikasi sentral dan terminal unit, terminal unit dan sensor. Terdapat juga tabel karakter data dan format pengiriman data yang akan digunakan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 35 Tabel 3.1. Tabel karakter Perintah Karakter Keterangan A Perintah dari sentral unit ke terminal unit untuk mengirimkan data Suhu B Perintah dari sentral unit ke terminal unit untuk mengirimkan data pH C Perintah dari sentral unit ke terminal unit untuk mengirimkan data DO D Perintah dari sentral unit ke terminal unit untuk mengirimkan data Kekeruhan E Perintah dari sentral unit ke terminal unit untuk mengirimkan data Kondukttivitas J Perintah dari sentral unit ke terminal unit untuk mengubah waktu pengriman data U Perintah dari sentral unit ke terminal unit untuk mengirimkan ulang paket data V Perintah dari sentral unit ke terminal unit untuk mengubah nilai batasan Suhu W Perintah dari sentral unit ke terminal unit untuk mengubah nilai batasan DO X Perintah dari sentral unit ke terminal unit untuk mengubah nilai batasan pH Y Perintah dari sentral unit ke terminal unit untuk mengubah nilai batasan Kekeruhan Z Perintah dari sentral unit ke terminal unit untuk mengubah nilai batasan Konduktivitas a Perintah dari terminal unit ke sensor untuk mengambil data Suhu b Perintah dari terminal unit ke sensor untuk mengambil data pH c Perintah dari terminal unit ke sensor untuk mengambil data DO d Perintah dari terminal unit ke sensor untuk mengambil data Kekeruhan e Perintah dari terminal unit ke sensor untuk mengambil data Konduktivitas Tabel 3.2. Tabel Karakter Data Karakter Keterangan S Karakter yang menunjukkan parameter Suhu P Karakter yang menunjukkan parameter pH D Karakter yang menunjukkan parameter DO H Karakter yang menunjukkan parameter Kekeruhan O Karakter yang menunjukkan parameter Konduktivitas PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Tabel 3.2. Tabel Karakter Data (lanjutan) K Karakter yang menunjukkan pintu inlet L Karakter yang menunjukkan pintu outlet M Karakter yang menunjukkan pompa sumur N Karakter yang menunjukkan pompa aerator Tabel 3.3. Format Data Format Data Keterangan “S”;”aaaa”;”#” Sensor Suhu “P”;”bbbb”;”#” Sensor pH “D”;”cccc”;”#” Sensor Do “H”;”dddd”;”#” Sensor Kekeruhan “O”;”eeee”;”#” Sensor Konduktivitas “J”;”ff”;”#” Mengubah waktu pengiriman data “V”;”gggg”;”hhhh”;”#” Mengubah parameter suhu “W”;”gggg”;”hhhh”;”#” Mengubah parameter DO “X”;”kkkk”;”#” Mengubah parameter pH “Y”;”kkkk”;”#” Mengubah parameter Kekeruhan “Z”;”kkkk”;”#” Mengubah parameter Konduktivitas “K”;”0”;”#” Pintu Inlet dalam keadaan mati “K”;”1”;”#” Pintu Inlet dalam keadaan Hidup “L”;”0”;”#” Pintu Outlet dalam keadaan mati “L”;”1”;”#” Pintu Outlet dalam keadaan hidup “M”;”0”;”#” Pompa Sumur dalam keadaan mati “M”;”1”;”#” Pompa Sumur dalam keadaan hidup “N”;”0”;”#” Pompa Aerator dalam keadaan mati “N”;”1”;”#” Pompa Aerator dalam keadaan hidup 36 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 37 Setiap siklus program utama dilakukan proses pengambilan data waktu dari RTC, dan pengambilan data sensor selalu dilakukan berulang – ulang selama sistem berjalan, dan pengiriman data akan dilakukan sesuai jadwal yang sudah ditentukan (default) kecuali ada perubahan jadwal pengiriman dari user sentral unit. Nilai pada parameter-parameter sudah ditentukan dari awal dan akan dikirimkan dalam bentuk satu paket data, namun user dapat mengubah nilai parameter sesuai dengan keinginan user, dan pada subrutin single data sendiri user dapat mengambil parameter satu per satu dan tidak dalam bentuk paket data. Dalam diagram alir ini terdapat beberapa karakter yang akan digunakan untuk berkomunikasi antara sentral unit dan terminal unit, terdapat karakter perintah dan karakter yang menunjukan data. Dimana karakter perintah adalah karakter yang akan dikirimkan sentral unit ke sentral unit untuk meminta data satu per satu, perintah untuk mengubah nilai parameter yang ada, terdapat juga karakter perintah dari terminal unit untuk mengambil paket data dari sensor. Sedangkan untuk karakter data adalah karakter yang menunjukkan bahwa data tersebut suhu, pH, DO, kekeruhan dan konduktivitas, selain itu terdapat pula karakter yang menunjukkan pintu inlet, pintu outlet, pompa sumur dan pompa aerator. 3.2.2. Diagram Alir Setting Waktu Pengiriman Data Waktu pengiriman data dapat diatur oleh pengguna dari sentral unit setiap beberapa menit atau beberapa jam sekali, namun jika pengguna tidak mengatur waktu pengiriman data, maka pengiriman data tersebut akan menggunakan default yang telah ditentukan. Diagram alir setting waktu pengiriman data ditunjukan pada gambar 3.10. Gambar 3.10. Diagram Alir Setting Waktu Pengiriman Data PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 38 3.2.3. Diagram Alir Nilai Data Sensor Gambar 3.11. Diagram Alir Setting nilai data sensor Pada gambar 3.11. menunjukan cara kerja dalam mengubah setting nilai untuk yang ada. Dimana pengguna dari sentral unit dapat merubah nilai sensor yang telah ditentukan, namun jika pengguna dari sentral unit tidak memberikan nilai untuk sensor ini maka nilai yang akan digunakan adalah nilai awal (default). Parameter tersebut antara lain Suhu, Do, Ph, Kekeruhan, dan Konduktifitas. Saat melakukan perubahan batasan nilai pada sensor terdapat karakter yang membedakan antara sensor yang ada. “V” perintah untuk mengubah nilai batasan pada Suhu. “W” perintah untuk mengubah nilai batasan pada DO. “X” perintah untuk mengubah nilai batasan pada pH. “Y” perintah untuk mengubah nilai batasan pada Kekeruhan. “Z” perintah untuk mengubah nilai batasan pada Konduktifitas PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 39 3.2.4. Diagram Alir Single Data Sensor Gambar 3.12. Diagram Alir Single Data Sensor Pada gambar 3.12. merupakan penjelasan diagram alir saat user menginginkan pengambilan data pada salah satu sensor. Dalam pemilihan sensor terdapat instruksi yang diawali dengan beberapa karakter. “A” berarti data yang akan dikirim ke sentral unit adalah sensor Suhu. “B” berarti data yang akan dikirim ke sentral unit adalah sensor Do. “C” berarti data yang akan dikirim ke sentral unit adalah sensor Ph. “D” berarti data yang akan dikirim ke sentral unit adalah sensor Kekeruhan. “E” berarti data yang akan dikirim ke sentral unit adalah sensor Konduktivitas. Data yang dikirimkan ke sentral unit sejumlah dua kali pengiriman data yang sama. Kemudian data tersebut akan dibandingkan dimana bila data tersebut sama akan disimpan dan bila berbeda maka sentral unit akan meminta instruksi ulang untuk mengirim kembali. Jika terdapat lima kali perulangan dikarenakan data pertama dan kedua berbeda maka akan disimpan data yang terakhir. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 40 3.2.5. Diagram Alir Subrutin Menu Gambar 3.13. Diagram Alir Subrutin Menu Pada gambar 3.13. merupakan penjelasan dari subrutin menu. Dimana didalam subrutin menu ini terdapat dua masukan yaitu setting RTC dan setting sistem pengendalian. 3.2.6. Diagram Alir Pengambilan Data Pengambilan data sensor dilakukan dengan mengirimkan karakter ke slave yang mewakili sensor. Format data setiap 1 sensor yang dikirim sebanyak 8 karakter. Format data yang dikirim dari slave sebagai berikut: “S”0015”#”. Karakter pertama mewakili inisial sensor, karakter ke 3 sampai ke 6 adalah data sensor yang dikirimkan, dan karakter ke-8 adalah karakter pagar “#”. Sensor termperatur diwakili dengan karakter “S”, sensor pH diwakili dengan karakter “P”, sensor DO diwakili dengan karakter “D”, sensor kekeruhan diwakili dengan karakter “H”, dan sensor konduktivitas diwakili dengan karakter “O”. Kecepatan transfer data yang digunakan untuk komunikasi USART sebesar 9600 bps [21]. Dalam komunikasi data, 1 byte = 10 bit, karena terdiri dari 8 bit data dan 1 bit untuk start dan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 41 1 bit untuk stop. Untuk mengirimkan 1 data sensor memerlukan waktu 6,25 milli second dan dibulatkan menjadi 8 ms, dihitung dari: 1 byte = 10 bit 6 karakter = 6 byte 6 karakter = 60 bit Jika tidak ada data yang dikirimkan 7 ms, data yang ditampilkan adalah 0000. Berikut diagram alir subrutin pengambilan data sensor ditunjukkan gambar 3.14 dan 3.15, sedangkan subrutin pengambilan data setiap sensor ditunjukkan pada gambar 3.16. Gambar 3.14. Diagram Alir Subrutin Pengambilan Data Suhu dan pH PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 42 Gambar 3.15. Diagram Alir Subrutin Pengambilan Data DO dan Kekeruhan Gambar 3.16. Diagram Alir Subrutin Pengambilan Data Koduktivitas dan semua sensor PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 43 3.2.7. Diagram Alir Subrutin Kontrol Sistem Gambar 3.17. Diagram Alir Kontrol Sistem Pada gambar 3.17. dijelaskan nilai parameter pada batas atas dan batas bawah untuk parameter kualitas kolam air ikan yang digunakan dalam mengontrol sistem yang ada, dimana jika data yang didapatkan dari sensor tidak sesuai dengan nilai parameter yang ada, maka kontrol sistem akan melakukan aksi. Namun pada parameter DO, jika nilai tidak sesuai maka sistem akan menghidupkan pompa aerator. 3.2.8. Diagram Alir Subrutin Aksi Aksi yang akan dilakukan dari kontrol sistem, dimana aksi ini akan bekerja jika data yang diterima dari sensor tidak sesuai dengan nilai parameter yang telah ditentukan. Aksi ini akan mematikan motor inlet, menghidupkan motor outlet dan pompa sumur jika nilai parameter Suhu, pH, DO, Kekeruhan dan Konduktivitas tidak sesuai dengan nilai yang telah ditentukan. Berikut adalah gambar aksi yang dilakukan. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 3.18. Diagram Alir Subrutin Aksi 3.2.9. Diagram Alir Aksi Pengendalian Gambar 3.19. Diagram Alir Aksi Pengendalian 44 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 45 Pada subrutin ini user dapat melakukan aksi pengendalian melalui terminal unit, dimana aksi pengendalian ini menggunakan push button untuk membuka pintu inlet, pintu outlet, pompa sumur dan pompa aerator. Aksi pengendalian ini sama dengan aksi pintu inlet dan outlet yang dikendalikan dari sentral unit, namun aksi pengendalian dari terminal unit ini lebih dominan dari aksi yang diperintahkan dari sentral unit. Pada aksi pengendalian ini juga menggunakan karakter untuk menentukan kondisi yang sedang berjalan, karakter yang digunakan adalah “K” sebagai pintu inlet, “L” sebagai pintu outlet, “M” sebagai pompa sumur, dan “N” sebagai pompa aerator. Dan karakter “0” untuk menentukan tidak aktif dan karakter “1” untuk menentukan aktif. 3.2.10. Diagram Alir Pengiriman Data Gambar 3.20. Diagram Alir Subrutin Kirim Data PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 46 Pada gambar 3.20 merupakan penjelasan pengiriman data dari terminal unit ke sentral unit, pengiriman data ini dalam bentuk (paket data = paket 1 paket 2), yang akan dikirimkan dua kali dengan jeda antara pengiriman paket 1 dan paket 2. setelah paket data dikirimkan maka sentral unit akan membandingkan apakah data dari paket 1 dan paket 2 sesuai, jika tidak sesuai maka sentral unit akan mengirimkan perintah untuk mengirim ulang paket data. Dimana format paket data yang akan dikirimkan ke sentral unit adalah (“S”;”aaaa”;”#”;”P”;”bbbb”;”#”;”D”;”cccc”;”#”;”H”;”dddd”;”#”;”O”;”eeee”;”#”;”K”;”0”;”#” ;”L”;”0”;”#”;”M”;”0””#”;”N”;”0”;”#”). Format data yang dikirimkan meliputi data suhu, DO, pH, kekeruhan, konduktivitas serta status aksi pengendalian yang ada saat paket data dikirimkan ke sentral unit. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB IV HASIL DAN PEMBAHASAN Bab ini berisi gambar fisik hardware yang dibuat, pembahasan tentang perbagian hardware, hasil pengujian hardware, hasil pengujian rangkaian, hasil pengambilan data, pembahasan tentang data yang diperoleh, dan pembahasan tentang program yang digunakan di mikrokontroler. Data yang akan dibahas terdiri atas pengambilan data dari terminal unit ke sensor dan paket data dari terminal unit ke sentral unit dan sebaliknya dengan komunikasi serial, serta pengujian tiap bagian hardware. Hasil pengujian berupa data-data yang diperoleh untuk memperlihatkan bahwa hardware atau software yang dirancang telah bekerja dengan baik atau tidak. Berdasarkan data-data tersebut dapat dilakukan analisis terhadap proses kerja alat yang kemudian dapat digunakan untuk menarik kesimpulan akhir. 4.1. Mekanik Kotak Sistem Pada bagian ini, kotak sistem dirancang agar melindungi komponen yang ada di dalamnya serta dapat disusun secara rapi. Desain kotak sistem disesuaikan dengan banyaknya komponen yang ada di dalamnya serta memudahkan peneliti dalam memindahkan komponen tersebut. Pada mekanik kotak sistem terdapat beberapa bagian. Bagian atas terdiri dari LCD, dan tombol-tombol untuk pengoperasian alat terminal unit dimana tombol-tombol tersebut terdiri dari tombol MENU yang dapat digunakan untuk masuk ke bagian menu. Tombol OK digunakan untuk memilih menu yang diinginkan. Tombol BACK digunakan untuk kembali ke tampilan awal dan untuk mengganti sistem kendali pada saat sistem kendali dalam keadaan manual. Tombol UP digunakan untuk memilih menu selanjutnya pada saat keadaan menu. Tombol DOWN digunakan untuk memilih menu sebelumnya pada saat keadaan menu, tombol DOWN juga dapat digunakan untuk melihat batasan-batasan sensor jika tampilan LCD pada tampilan awal. Tombol RESET digunakan untuk kembali ke tampilan awal. Pada alat terminal unit ini juga terdapat LED atau lampu sebagai pengujian sistem kendali. K sebagai pintu masuk, L sebagai pintu keluar, M sebagai pompa air dan N sebagai pompa aerator. Bagian atas alat terminal unit ini dapat dilihat pada gambar 4.1. 47 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 48 Gambar 4.1. Mekanik kotak sistem tampak depan Bagian kanan alat terminal unit. Pada bagian kanan alat terminal unit ini terdapat kabel RX dan TX yang digunakan sebagai komunikasi ke dummy sensor. Kabel berwarna biru adalah TX dan kabel berwarna ungu adalah RX. Bagian kiri alat terminal unit ini dapat dilihat pada gambar 4.2. Gambar 4.2. Mekanik kotak sistem tampak samping kanan Bagian Kiri alat terminal unit. Pada bagian kiri alat terminal unit ini terdapat antenna RX01433D dan TX02-433D. Antena ini digunakan sebagai komunikasi antara terminal unit dan sentral unit. Antena TX digunakan untuk mengirimkan data dari terminal unit dan antenna RX digunakan untuk menerima data dari terminal unit. Bagian kiri alat terminal unit dapat dilihat pada gambar 4.3. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 49 Gambar 4.3. Mekanik kotak sistem tampak samping kiri Bagian belakang alat terminal unit. Pada bagian belakang alat terminal unit ini terdapat socket power yang digunakan untuk daya pada alat terminal unit ini. Daya yang dibutuhkan untuk alat terminal unit ini adalah 5V. Bagian belakang alat terminal unit ini dapat dilihat pada gambar 4.4. Gambar 4.4. Mekanik kotak sistem tampak belakang 4.2. Subsistem Elektronik Subsistem elektronik alat terdiri atas rangkaian rangkaian sistem mikrokontroler, LCD 16x2, TX02-433D dan RX01-433D. Penulis membuat rangkaian sistem mikrokontroler dalam satu PCB serta rangkaian TX02-433D dan RX01-433D juga dalam satu PCB. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 50 4.2.1. Rangkaian LCD 16x2 Rangkaian LCD 16x2 merupakan rangkaian yang digunakan untuk menghubungkan LCD 16x2 dengan minimum sistem serta pengaturan tingkat kecerahan LCD 16x2. Rangkaian LCD 16x2 dapat dilihat pada gambar 4.5. Gambar 4.5. Rangkaian LCD 16x2 Keterangan Gambar 4.5.: 1. Input 5V 4. RW 7. D5 2. Ground 5. E 8. D6 3. RS 6. D4 9. D7 4.2.2. Rangkaian TX02-433D dan RX01-433D Rangkaian TX02-433D dan RX01-433D merupakan rangkaian pemancar berupa transmitter atau pengirim data serta receiver atau penerima data. rangkaian TX dan RX dapat dilihat pada gambar 4.6. Gambar 4.6. Rangkaian TX02-433D dan RX01-433D PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 51 Rangkaian tersebut dilengkapi juga dengan dua buah antena 433 Mhz yang berfungsi sebagai penguat TX02-433D dan RX01-433D dalam menerima ataupun mengirimkan data: Keterangan Gambar 4.6.: 1. Port untuk bagian TX02-433D 4. Input 5V dan Ground 2. Modul TX02-433D 5. Port untuk bagian RX01-433D 3. Modul RX01-433D 4.2.3. Rangkaian Mikrokontroler Rangkaian sistem mikrokontroler merupakan rangkaian yang digunakan untuk menjalankan ATMega128. Rangkaian ATMega128 dapat dilihat pada gambar 4.7. Gambar 4.7. Rangkaian mikrokontroler Keterangan Gambar 4.7.: 1. Input 5V dan Ground 5. Port Rx01-433D dan Tx02-433D 2. Port Push Button 6. Port ATmega 128 3. Rangkaian RTC 7. Port LCD 4. Port Rx Tx sensor 8. Output 5V untuk modul RX dan TX 4.3. Cara Penggunaan Alat Untuk menggunakan alat ini, user harus memasangkan kabel power sebagai daya dan memasang kabel RX TX ke dummy sensor. Prinsip kerja sistem telemetri modul terminal unit ini pada dasarnya bekerja dengan mengambil data dari dummy sensor dan disimpan di array terminal unit. Data yang telah disimpan tersebut akan dikirimkan dari terminal unit ke sentral unit yang berisikan paket data yang dipancarkan sebanyak dua kali. Namun jika terdapat PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 52 perintah dari sentral unit untuk mengirim ulang paket data, maka terminal unit akan mengirimkan paket data kembali dan dipancarkan sebanyak dua kali sampai terminal unit tidak menerima perintah kirim ulang data. Selain itu, alat ini juga dapat menerima perintah lain dari sentral unit, seperti pengaturan jadwal pengiriman data, batasan untuk masing-masing sensor, pengambilan salah satu sensor, dan reset untuk batasan masing-masing sensor. Dalam alat terminal unit juga terdapat menu yang dapat digunakan untuk mengatur waktu RTC, pengaturan jadwal pengiriman paket data, pengaturan untuk kendali pintu air apakah manual atau otomatis, reset batasan masing-masing sensor dan pengecekan data sensor. Gambar 4.8. merupakan tampilan awal alat terminal unit. Pada tampilan ini LCD 16x2 menampilkan jam, menit, detik, tanggal, bulan, tahun dan kendali yang sedang terjadi. K L M N merupakan kendali yang ada, dimana K adalah pintu air masuk, L pintu air keluar, M pompa sumur, N pompa aerator. 0 dan 1 merupakan status kendali, dimana 0 adalah tertutup dan 1 adalah terbuka. Gambar 4.8. Tampilan Awal Alat Terminal Unit 4.3.1.Pengaturan waktu RTC. Pada menu RTC ini digunakan untuk mengatur waktu sesuai dengan yang diinginkan. Waktu yang dapat diatur terdiri dari jam, menit, tanggal, bulan dan tahun. Untuk melakukan pengaturan waktu RTC, pada saat tampilan awal user dapat menekan tombol MENU dan akan muncul tampilan di LCD “Atur Jam?” kemudian tekan OK dan user dapat mengatur jam sesuai dengan yang diinginkan dengan menekan tombol UP untuk menambah waktu dan DOWN untuk mengurangi waktu kemudian tekan OK. Setelah itu akan muncul tampilan “Atur Menit?” kemudian tekan OK dan lakukan cara seperti pengaturan jam. Cara tersebut dilakukan sampai pengaturan tahun dan jika sudah selesai maka LCD akan menampilkan “Jam berhasil diubah”. Tampilan menu RTC dapat dilihat pada gambar 4.9. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 53 Gambar 4.9. Tampilan menu RTC 4.3.2.Pengaturan jadwal pengiriman. Pada jadwal pengiriman paket data ini user dapat mengatur waktu pengiriman paket data dari terminal unit ke sentral unit sesuai dengan keinginan user. Pengaturan jadwal ini dapat dilakukan dengan menekan tombol UP pada saat tampilan atur jam, maka akan muncul “edit jadwal?”. Jika ingin mengubah jadwal pengiriman user dapat menekan tombol OK dan tombol UP untuk menambah waktu dan DOWN untuk mengurangi jadwal pengiriman. Tampilan menu edit jadwal dapat dilihat pada gambar 4.10. Gambar 4.10. Tampilan menu jadwal pengiriman paket data 4.3.3.Menu Pengambilan Salah Satu Data Sensor 4.3.3.1. Pengambilan Data Suhu Pada menu ini user dapat mengambil data sensor suhu dari dummy sensor. Pengambilan data sensor ini dapat dilakukan dengan menekan tombol MENU saat tampilan awal kemudian tekan tombol UP sampai LCD menampilkan “ambil data suhu?’. Setelah itu user dapat menekan tombol OK untuk mengambil nilai suhu. Maka LCD akan menampilkan nilai suhu dari dummy sensor, user juga dapat mengulang pengambilan data suhu dengan menekan tombol OK. Tampilan menu ambil data suhu dapat dilihat pada gambar 4.11 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 54 Gambar 4.11. Tampilan menu ambil data suhu 4.3.3.2. Pengambilan data keasaman Pada menu ini, user dapat mengambil data sensor keasaman dari dummy sensor. Pengambilan data sensor keasaman ini dapat dilakukan dengan menekan tombol UP setelah pengambilan data sensor suhu atau menekan tombol MENU pada tampilan awal dan menekan tombol UP sampai LCD menampilkan “ambil data keasaman?”. Setelah pada tampilan ambil data keasaman, user dapat menekan tombol OK untuk mengambil data sensor keasaman. Setelah mendapatkan data sensor keasaman, user dapat menekan tombol OK untuk mengulang pengambilan data sensor keasaman atau dapat menekan tombol UP untuk menu selanjutnya, tombol BACK untuk menu sebelumnya atau tombol BACK untuk kembali ke tampilan awal alat terminal unit. Tampilan menu ambil data keasaman dapat dilihat pada gambar 4.12. Gambar 4.12. Tampilan menu ambil data Keasaman 4.3.3.3. Pengambilan data oksigen Pada menu ini, user dapat mengambil data sensor oksigen dari dummy sensor. Pengambilan data sensor oksigen ini dapat dilakukan dengan menekan tombol UP setelah pengambilan data sensor keasaman atau menekan tombol MENU pada tampilan awal dan menekan tombol UP sampai LCD menampilkan “ambil data oksigen?”. Setelah pada tampilan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 55 ambil data oksigen, user dapat menekan tombol OK untuk mengambil data sensor oksigen. Setelah mendapatkan data sensor oksigen, user dapat menekan tombol OK untuk mengulang pengambilan data sensor oksigen atau dapat menekan tombol UP untuk menu selanjutnya, tombol BACK untuk menu sebelumnya atau tombol BACK untuk kembali ke tampilan awal alat terminal unit. Tampilan menu ambil data oksigen dapat dilihat pada gambar 4.13. Gambar 4.13. Tampilan menu ambil data oksigen 4.3.3.4. Pengambilan data kekeruhan Pada menu ini, user dapat mengambil data sensor kekeruhan dari dummy sensor. Pengambilan data sensor kekeruhan ini dapat dilakukan dengan menekan tombol UP setelah pengambilan data sensor oksigen atau menekan tombol MENU pada tampilan awal dan menekan tombol UP sampai LCD menampilkan “ambil data kekeruhan?”. Setelah pada tampilan ambil data kekeruhan, user dapat menekan tombol OK untuk mengambil data sensor kekeruhan. Setelah mendapatkan data sensor kekeruhan, user dapat menekan tombol OK untuk mengulang pengambilan data sensor kekeruhan atau dapat menekan tombol UP untuk menu selanjutnya, tombol BACK untuk menu sebelumnya atau tombol BACK untuk kembali ke tampilan awal alat terminal unit. Tampilan menu ambil data kekeruhan dapat dilihat pada gambar 4.14. Gambar 4.14. Tampilan menu ambil data kekeruhan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 56 4.3.3.5. Pengambilan data konduktivitas Pada menu ini, user dapat mengambil data sensor konduktivitas dari dummy sensor. Pengambilan data sensor konduktivitas ini dapat dilakukan dengan menekan tombol UP setelah pengambilan data sensor kekeruhan atau menekan tombol MENU pada tampilan awal dan menekan tombol UP sampai LCD menampilkan “ambil data konduktivitas?”. Setelah pada tampilan ambil data konduktivitas, user dapat menekan tombol OK untuk mengambil data sensor konduktivitas. Setelah mendapatkan data sensor konduktivitas, user dapat menekan tombol OK untuk mengulang pengambilan data sensor konduktivitas atau dapat menekan tombol UP untuk menu selanjutnya, tombol BACK untuk menu sebelumnya atau tombol BACK untuk kembali ke tampilan awal alat terminal unit. Tampilan menu ambil data konduktivitas dapat dilihat pada gambar 4.15. Gambar 4.15. Tampilan menu ambil data konduktivitas 4.3.4.Menu ambil paket data Pada menu pengambilan semua data sensor ini, user dapat melakukan pengambilan semua data dari dummy sensor. Pada prinsipnya hal ini sama dengan pengambilan salah satu sensor, namun pada menu ini user dapat langsung melihat nilai semua data sensor yang diterima di terminal unit. Menu ini dapat dilakukan dengan menekan tombol UP setelah pengambilan data konduktivitas atau menekan tombol MENU pada tampilan awal dan menekan tombol UP atau DOWN sampai LCD menampilkan “ambil paket data?”. Setelah itu tekan tombol OK dan LCD akan menampilkan semua data sensor yang telah di ambil dari dummy sensor. Jika LCD menampilkan nilai 0000 maka dapat dilihat kembali apakah kabel RX dan TX antara terminal unit dan dummy sensor sudah terhubung dengan baik. Tampilan menu ambil paket data dapat dilihat pada gambar 4.16 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 57 Gambar 4.16. Tampilan menu ambil semua data sensor 4.3.5.Menu reset batasan kendali Pada menu reset batasan kendali ini dapat digunakan untuk mengembalikan batasan masing-masing sensor yang ada di terminal unit ke default, suhu bawah 18 ºC, suhu atas 28 ºC, keasaman bawah 5 pH, keasaman atas 8 pH, kekeruhan 380 NTU, konduktivitas 4800 uS/cm, oksigen 5 ppm. Reset batasan kendali ini digunakan ketika batasan masing-masing sensor diubah dari sentral unit, maka batasan kendali dapat diubah menjadi default dari terminal unit, namun sentral unit juga dapat me-reset batasan kendali sesuai default. Batasan kendali yang ada ini digunakan sebagai batasan untuk kendali pintu air, pompa air dan pompa aerator bekerja. Untuk melakukan reset batasan kendali ini user dapat menekan tombol UP setelah pengambilan semua data sensor atau dengan menekan tombol MENU dan menekan tombol UP atau DOWN sampai LCD menampilkan tulisan “Reset Batasan Kendali?” seperti pada gambar 4.17. Kemudian user dapat menekan tombol OK dan LCD akan menampilkan “Berhasil Reset”. Gambar 4.17. Tampilan menu reset batasan kendali 4.3.6.Menu Metode Kendali Pada menu pilihan kendali ini user dapat memilih untuk menggunakan kendali otomatis atau manual. Pada pilihan kendali otomatis maka kendali akan bekerja sesuai dengan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 58 nilai sensor yang didapatkan terminal unit. Nilai sensor yang didapatkan terminal unit akan dibandingkan dengan batasan yang ada, setelah dibandingkan maka kendali akan berkerja. Pada pilihan kendali manual ini user dapat mengatur sendiri apakah kendali akan dibuka atau ditutup dan kendali tidak akan bekerja walaupun nilai sensor yang didapat oleh terminal unit tidak sesuai dengan batasan yang ada. Pilihan kendali ini dapat dilakukan dengan cara menekan tombol UP setealh melakukan reset batasan kendali atau menekan tombol MENU pada tampilan awal kemudian menekan tombol UP atau DOWN samapi LCD menampilkan ”Metode Kendali?”. Kemudian user dapat menekan tombol OK untuk memilih apakah metode kendali menggunakan otomatis atau manual. Metode kendali ini menggunakan default manual. Pada pilihan manual ini user dapat mengganti kendalinya dengan menekan tombol BACK pada tampilan awal kemudian akan muncul pengaturan kendali yang ingin diubah. Namun jika metode kendali otomatis dan pada menu awal tombol BACK di tekan maka akan muncul peringatan “akses ditolak”. Metode kendali dalam kondisi manual dapat dilihat manual dapat dilihat pada gambar 4.18 dan metode kendali dalam kondisi otomatis dapat dilihat pada gambar 4.19 Gambar 4.18. Tampilan menu pilihan kendali manual Gambar 4.19. Tampilan menu pilihan kendali otomatis PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 59 4.3.7.Pengaturan Kendali Manual 4.3.7.1. Pengendalian pintu masuk Pada pengaturan kendali ini user dapat mengatur pengendalian yang ada, apakah kendali tersebut akan ditutup atau dibuka. Penggunaan kendali ini harus pada metode manual dimana user dapat menggantinya dalam menu. Setelah metode kendali pada kondisi manual, user dapat menekan tombol BACK sampai LCD tampil kondisi awal alat terminal unit. Setelah kondisi LCD berada di tampilan awal, user dapat menekan tombol BACK untuk mengatur kendali. Tampilan pengaturan pintu masuk dapat dilihat pada gambar 4.20. Gambar 4.20. Tampilan kendali pintu air masuk tertutup. Pada gambar 4.20. kendali pintu air masuk pada keadaan tertutup. Jika user ingin mengubah menjadi terbuka, maka user dapat menekan tombol OK dan pintu air masuk akan berubah menjadi sepert pada gambar 4.21 Gambar 4.21. Tampilan kendali pintu air masuk terbuka 4.3.7.2. Pengendalian pintu keluar Pengendalian pintu keluar air ini dapat dilakukan dengan menekan tombol UP setelah melakukan pengendalian pintu masuk air dan akan tampil seperti gambar 4.22. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 60 Gambar 4.22. Tampilan kendali pintu air keluar tertutup Pada gambar 4.22. pintu air keluar berada dalam kondisi tertutup. Untuk membuka pintu keluar user dapat menekan tombol OK dan pintu keluar air menjadi terbuka dan seperti pada gambar 4.23. Gambar 4.23. Tampilan kendali pintu air keluar terbuka 4.3.7.3. Pengendalian pompa air Pengendalian pompa air dapat dilakukan dengan menekan tombol UP setelah pengendalian pintu keluar air dan LCD akan tampil seperti pada gambar 4.24. Gambar 4.24. Tampilan kendali pompa air keadaan mati PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 61 Pada gambar 4.24. pompa air sumur dalam keadaan mati. Untuk menghidupkan pompa air sumur user dapat menekan tombol OK dan pompa air sumur menjadi hidup seperti pada gambar 4.25. Gambar 4.25. Tampilan kendali pompa air keadaan hidup 4.3.7.4. Pengendalian pompa aerator Pengendalian pompa aerator dapat dilakukan dengan menekan tombol UP setelah pengendalian pompa air dan LCD akan tampil seperti pada gambar 4.26. Gambar 4.26. Tampilan kendali pompa aerator keadaan mati Pada gambar 4.26. pompa aerator dalam keadaan mati. Untuk menghidupkan pompa aerator user dapat menekan tombol OK dan pompa aerator menjadi hidup seperti pada gambar 4.27. Gambar 4.27. Tampilan kendali pompa aerator keadaan hidup PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 62 4.3.8.Pengaturan Kendali Otomatis Jika pada menu metode kendali dalam keadaan otomatis dan tombol BACK di tekan pada saat menu utama maka LCD akan menampilkan akses ditolak seperti gambar 4.28. Gambar 4.28. Tampilan akses ditolak pada kendali otomatis. 4.3.9.Tampilan Batasan Sensor Tampilan batasan masing-masing sensor dapat dilihat dengan cara menekan tombol DOWN pada tampilan utama. Batasan tersebut terdiri dari suhu atas, suhu bawah, keasaman atas, keasaman bawah, kekeruhan, konduktivitas dan oksigen. Tampilan suhu atas ditandai dengan “SA”, suhu bawah ditandai dengan “SB” dan keasaman atas ditandai “AA”, keasaman bawah ditandai “AB” (lihat pada gambar 4.29.) Tampilan kekeruhan ditandai dengan “BK”, konduktivitas ditandai dengan “BD” dan oksigen ditandai dengan “BO” (lihat pada gambar 4.30). Gambar 4.29. Tampilan batasan sensor suhu dan keasaman Gambar 4.30. Tampilan batasan sensor kekeruhan, konduktivitas dan oksigen PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.4. 63 Pengujian Sistem 4.4.1.Pengujian Minimum Sistem Dan LCD 16x2 Pengujian rangkaian sistem mikrokontroler ini dilakukan untuk mengetahui mikrokontroler sudah bekerja dengan baik atau tidak. Pengujian dilakukan dengan membuat program untuk menampilkan tulisan pada LCD 16x2 dan men-download program tersebut pada mikrokontroler AVR ATMega128. PORTC dijadikan sebagai output untuk menampilkan tulisan ke LCD 16x2 dan secara bergantian diujikan ke PORTA, PORTB, PORTD, PORTE dan PORTF dengan mengganti program untuk masing-masing port yang digunakan untuk menguji pada masing-masing port. Pengujian dilakukan dengan mencoba menulis karakter “SELAMAT DATANG” pada baris pertama dan “TERIMA KASIH” pada baris kedua ke LCD 16x2. Hasil pengujian dapat dilihat pada gambar 4.31. Gambar 4.31. Tampilan LCD 16x2 4.4.2.Pengujian TX02-433D dan RX01-433D Pengujian TX02-433D dan RX01-433D ini dilakukan untuk mengetahui bahwa komunikasi antara terminal unit dengan sentral unit sudah bekerja dengan baik atau tidak serta jarak yang dapat digunakan dalam pengiriman data. Pengujian dilakukan dengan membuat program pengiriman satu karakter yaitu “C” dengan nilai heksa dalam ASCII adalah 43h dan men-download program tersebut pada mikrokontroler AVR ATMega128. Data yang dikirim dan diterima akan ditampilkan pada LCD 16x2. Pengiriman data tersebut dilakukan dengan cara mengirim data menggunakan TX02433D dari terminal unit ke RX01-433D sentral unit dengan frekuensi 434Mhz pengujian ini dilakukan sebanyak enam kali dengan jarak sampai 60 meter. Data yang diterima kemudian dikirimkan kembali menggunakan TX02-433D dari sentral unit ke RX01-433D terminal unit PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 64 dengan frekuensi 435Mhz. Pada bagian terminal unit TX02-433D dihubungkan ke port B dan RX01-433D dihubungkan ke port A minimum sistem terminal unit sedangkan bagian sentral unit TX02-433D dihungkan ke port A dan RX01-433D dihubungkan ke port B minimum sistem sentral unit. LCD 16x2 bertulisan “Data Loss” bila data yang dikirim tidak dapat diterima baik pada terminal maupun sentral unit. Tampilan pengiriman karakter “C” dapat dilihat pada gambar 4.31 serta tampilan penerimaan karakter “C” dapat dilihat pada gambar 4.32. Gambar 4.31. Tampilan LCD 16x2 kirim karakter Gambar 4.32. Tampilan LCD 16x2 terima karakter Pada pengiriman karakter “C” terdapat beberapa pengiriman yang tidak sesuai atau data yang dikirimkan tidak dapat diterima. Jika data yang dikirimkan tidak dapat diterima maka LCD akan menampilkan seperti gambar 4.33. Gambar 4.33. Tampilan LCD 16x2 tidak terima data Pengujian jarak dengan pengiriman karakter “C” secara open air atau tanpa penghalang dengan frequency deviation +/-90kHz. Tabel pengujian komunikasi pada frekuensi 434 Mhz dapat dilihat pada tabel 4.1. dan pengujian pada frekuensi 435Mhz pada tabel 4.2. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 65 Tabel 4.1. Pengujian komunikasi frekuensi 434Mhz Jarak (m) Pengujian ke- % error 1 2 3 4 5 6 5 Terima C Terima C Terima C Terima C Terima C Terima C 0% 10 Terima C Terima C Terima C Terima C Terima C Terima C 0% 15 Terima C Terima C Terima C Terima C Terima C Terima C 0% 20 Terima C Terima C Terima C Terima C Terima C Terima C 0% 25 Terima C Terima C Terima C Terima C Terima C Terima C 0% 30 Terima C Terima C Terima C Terima C Terima C Terima C 0% 35 Terima C Terima C Terima C Terima C Terima C Terima C 0% 40 Terima C Terima C Terima C Data loss Terima C Data loss 16.6% 45 Terima C Data loss Terima C Terima C Data loss Data loss 50% 50 Data loss Terima C Terima C Data loss Data loss Data loss 66.6% 55 Data loss Terima C Data loss Data loss Data loss Data loss 83.3% 60 Data loss Data loss Data loss Data loss Data loss Data loss 100% Tabel 4.2. Pengujian komunikasi frekuensi 435Mhz Jarak (m) Pengujian ke- % error 1 2 3 4 5 6 5 Terima C Terima C Terima C Terima C Terima C Terima C 0% 10 Terima C Terima C Terima C Terima C Terima C Terima C 0% 15 Terima C Terima C Terima C Terima C Terima C Terima C 0% 20 Terima C Terima C Terima C Terima C Terima C Terima C 0% 25 Terima C Terima C Terima C Terima C Terima C Terima C 0% 30 Terima C Terima C Terima C Terima C Terima C Terima C 0% 35 Terima C Terima C Terima C Terima C Terima C Terima C 0% 40 Terima C Terima C Terima C Terima C Data loss Terima C 16.6% 45 Terima C Data loss Data loss Terima C Terima C Terima C 33.3% 50 Terima C Data loss Data loss Terima C Data loss Data loss 66.6% 55 Data loss Data loss Data loss Data loss Data loss Data loss 100% 60 Data loss Data loss Data loss Data loss Data loss Data loss 100% PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 66 Pada pengujian tersebut dapat dilihat bahwa pada jarak 5 sampai 35 meter data yang dikirimkan masih baik atau data dapat selalu diterima. Terima C artinya data berhasil dikirim dan diterima, pada data loss data tidak dapat diterima. Berdasarkan pengujian tersebut saat pengiriman data menggunakan 434Mhz maupun 435Mhz, pada jarak 40 meter sudah tidak dapat berjalan dengan baik. Perbedaan frekuensi tidak mempengaruhi jarak komunikasi yang terjadi. Oleh sebab itu komunikasi yang sebaiknya digunakan pada jarak kurang dari 40 meter. Namun pengujian masih pengujian pengiriman data tunggal. 4.5. Pengujian Software Pengujian untuk mengukur tingkat keberhasilan alat ini dibagi menjadi 4 bagian. Pengujian pertama pengambilan data sensor dari dummy sensor. Pada pengujian kedua terdapat pengujian kendali, kendali dalam metode manual dan kendali dalam metode otomatis. Pada pengujian ketiga, Pengiriman paket data ke sentral unit. Data sensor yang telah di ambil dari dummy sensor dikirimkan dalam bentuk paket data ke sentral unit. Pengujian ini dilakukan dengan merubah jarak antara terminal unit serta sentral unit dengan beberapa jarak. Pengujian dilakukan sebanyak 20 kali untuk masing-masing jarak. Pengujian keempat sentral unit akan mengirimkan paket data ke terminal unit dengan jarak yang ditentukan sama seperti pengujian ketiga. Pada pengujian software ini juga terdapat perubahan perancangan perangkat lunak. Perubahan ini dilakukan karena terdapat perbedaan antara perancangan perangkat lunak yang telah dibuat dengan pembuatan software. Sehingga pada pengujian software ini dimasukan perancangan perangkat lunak yang baru. 4.5.1.Perubahan Perancangan Perangkat Lunak 4.5.1.1.Diagram Alir Utama Pada diagram alir utama ini terdapat terima perintah dari sentral unit, menu, pengaturan kendali menu, batasan tiap sensor, reset sistem dan pengiriman paket data ke sentral unit. Diagram alir utama dapat dilihat pada gambar 4.34. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 4.34. Diagram alir utama 67 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 68 Gambar 4.34.(lanjutan) Diagram alir utama 4.5.1.2.Diagram Alir Subrutin Data Masuk Pada subrutin ini, terminal unit mengolah data masuk dari sentral unit. Karakter yang diterima terminal unit dapat dilihat pada tabel 3.1. Diagram alir subrutin data masuk dapat dilihat pada gambar 4.35. Gambar 4.35. Diagram alir subrutin data masuk PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 4.35. (lanjutan) Diagram alir subrutin data masuk 69 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 70 4.5.1.3.Diagram Alir Subrutin Menu Pada diagram alir subrutin menu ini terdapat pengaturan waktu RTC, pengaturan waktu jadwal pengiriman paket data, pengujian salah satu sensor, pengujian semua sensor, reset batasan kendali dan metode kendali. Diagram alir subrutin menu dapat dilihat pada gambar 4.36. Gambar 4.36. Diagram alir subrutin menu PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 71 Gambar 4.36. (lanjutan) Diagram alir subrutin menu 4.5.1.4.Diagram Alir Subrutin Kendali Manual Diagram alir subrutin kendali manual ini merupakan perancangan kendali pada metode manual. Diagram alir subrutin kendali manual ini dapat dilihat pada gambar 4.37. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 4.37. Diagram alir subrutin kendali manual 72 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 73 4.5.1.5.Diagram Alir Subrutin Pengiriman Data Diagram alir ini merupakan perancangan pengiriman ke sentral unit, data yang telah ditentukan akan dikirimkan ke sentral unit. Diagram alir subrutin kirim data dapat dilihat pada gambar 4.38. Gambar 4.38. Diagram alir subrutin pengiriman data PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 74 4.5.2.Pengujian Pengambilan Data Sensor Pengujian pengambilan data dari dummy sensor ini dilakukan untuk mengetahui apakah komunikasi antara terminal unit dan dummy sensor telah dapat bekerja sesuai dengan perancangan. Pengujian ini terdiri dari pengambilan sensor suhu, keasaman, oksigen, kekeruhan, konduktivitas serta pengambilan semua data sensor. Untuk pengujian ini, penulis hanya melakukan pengujian satu kali untuk setiap sensornya. Data yang diambil dari dummy sensor dapat dilihat pada tabel 4.3 dan Gambar 4.39. Pengambilan data suhu dapat dilihat pada gambar 4.40. Tabel 4.3. Contoh data yang diambil Parameter Nilai Suhu 33.0 Keasaman 9.0 Oksigen 6.5 Kekeruhan 475 Konduktivtas 5800 Gambar 4.39. Tampilan LCD 16x2 dummy sensor Keterangan Gambar 4.39. S = Suhu D = Oksigen P = Keasaman H = Kekeruhan O = Oksigen Gambar 4.40. Tampilan LCD 16x2 data suhu PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 75 Pada gambar 4.39 dan gambar 4.40 dapat dilihat bahwa pengambilan data sensor suhu yang diterima terminal unit sesuai dengan data suhu pada dummy sensor. Jika terminal unit tidak bisa melakukan komunikasi dengan dummy sensor maka pengambilan data akan seperti gambar 4.41.Untuk gambar pengambilan data sensor yang lain dapat dilihat pada lampiran. Program pengambilan data sensor dari dummy sensor dapat dilihat pada gambar 4.42. Gambar 4.41. Tampilan LCD 16x2 tidak terima data suhu Gambar 4.42. Program Pengambilan data sensor PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 76 4.5.3. Pengujian Kendali Pengujian kendali ini dilakukan untuk membuktikan bahwa kendali dapat berjalan sesuai dengan semestinya. Kendali ini terdapat dua metode yaitu manual dan otomatis, kendali manual dapat diatur melalui alat terminal unit dan kendali otomatis diatur sesuai dengan batasan sensor yang ada. 4.5.3.1.Kendali Manual Pada pengujian kendali ini tidak menggunakan kendali asli, sehingga untuk pengujian kendali ini, user menggunakan LED sebagai kendali. Pada LCD juga terdapat status kendali yang dapat dilihat. Pada pengujian kendali manual ini, penulis mencoba menjalankan kendali dengan membuat kondisi awal semua kendali dalam keadaan mati dan mencoba menghidupkan satu per satu kendali sampai semua kendali dalam keadaan hidup. Tampilan awal kendali LCD dapat dilihat pada gambar 4.43 dan tampilan awal kendali LED dapat dilihat pada gambar 4.44. Gambar 4.43. Tampilan awal kendali LCD Gambar 4.44. Tampilan awal kendali LED Keterangan Gambar 4.44. K = Pintu Masuk M = Pompa Air L = Pintu Keluar N = Pompa Aerator PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 77 Pada gambar 4.44. dapat dilihat bahwa semua kendali dalam kondisi mati. Pada percobaan yang pertama penulis mencoba menghidupkan pintu masuk air, cara menghidupkan pintu masuk dari keadaan mati menjadi keadaan hidup (lihat gambar 4.20 dan 4.21). Kendali pintu masuk dalam kondisi hidup dapat dilihat pada gambar 4.45 untuk LCD dan gambar 4.46 untuk LED. Gambar 4.45. Tampilan LCD kendali pintu masuk keadaan hidup Gambar 4.46. Tampilan LED kendali pintu masuk keadaan hidup Pada gambar 4.46 dapat dilihat bahwa LED “K” hidup atau kendali pintu masuk air dalam kondisi hidup. Untuk percobaan kendali pintu keluar air, pompa air dan pompa aerator dapat dilihat pada lampiran. Program status kendali manual untuk LCD dapat dilihat pada gambar 4.47 dan untuk LED dapat dilihat pada gambar 4.48. Gambar 4.47. Program tampil status kendali pada LCD PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 78 Gambar 4.48. Tampilan status kendali pada LED 4.5.3.2.Kendali Otomatis Pengujian kendali otomatis ini dapat bekerja dari data sensor yang didapatkan dari dummy sensor kemudian dibandingkan dengan batasan sensor yang ada (default) (lihat tabel 2.1). Pada kendali otomatis ini juga hanya terdiri dari dua keadaan, dimana jika terdapat salah satu dari sensor suhu, keasaman, kekeruhan dan konduktivitas yang berada diluar batasan sensor maka keadaan kendali tidak normal. Keadaan kendali tidak normal ini ditandai dengan pintu masuk air mati, pintu keluar air hidup dan pompa air hidup atau “K0, L1, M1”. Jika sensor berada dalam batasan sensor maka kendali dalam keadaan normal. Keadaan normal ditandai dengan “K1, L0, M0”. Pada sensor oksigen yang akan bekerja adalah pompa aerator, sehingga jika sensor oksigen diluar batasan sensor, maka pompa aerator dalam keadaan hidup “N1” begitu juga sebaliknya. Pada metode kendali otomatis ini tidak dapat masuk kedalam menu kendali manual, jika pada metode kendali otomatis dan menu kendali manual ditekan, maka akan muncul peringatan (lihat gambar 4.28). Nilai awal pada percobaan kendali otomatis PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 79 ini dapat dilihat pada gambar 4.49 dan status kendali awal dapat dilihat pada gambar 4.50 dan 4.51. Gambar 4.49. Nilai sensor sebelum percobaan Gambar 4.50. Kendali sebelum percobaan Gambar 4.51. Status kendali sebelum percobaan Pada gambar 4.49 dapat dilihat bahwa semua nilai sensor sesuai dengan batasan sensor yang ada, sehingga pada gambar 4.50 dapat dilihat bahwa kendali pada keadaan normal serta pompa aerator dalam keadaan normal. Percobaan ini dilakukan dengan mengubah nilai suhu dan oksigen menjadi tidak normal. Nilai sensor yang telah diubah dapat dilihat pada gambar 4.52 dan status kendali dapat dilihat pada gambar 4.53 dan gambar 4.54. Gambar 4.52. Nilai sensor yang telah diubah PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 80 Gambar 4.53. Status kendali telah berubah Gambar 4.54. Status kendali telah berubah Pada gambar 4.53 dan gambar 4.54 dapat dilihat bahwa status kendali telah berubah menjadi tidak normal setelah nilai suhu dan oksigen diubah menjadi tidak normal. Begitu juga dengan pompa aerator menjadi hidup. Pengujian keadaan tidak normal jika sensor keasaman, kekeruhan dan konduktivitas berada diluar batasan, dapat dilihat pada lampiran. Program kendali otomatis dapat dilihat pada gambar 4.55. Gambar 4.55. Program kendali otomatis PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 81 4.5.4.Pengujian Kirim Paket Data Ke Sentral Unit Pengujian ini dilakukan sebanyak 20 kali untuk setiap jarak yang berbeda. Paket data yang dikirim dari terminal unit akan diterima di sentral unit dan dapat dilihat di LCD 16x2, lalu paket data yang diterima sentral unit dapat dibandingkan dengan dummy sensor untuk mengetahui apakah paket data yang dikirim dari terminal unit sudah sesuai dengan paket data yang diterima sentral unit. Pengujian paket data dapat dilihat pada tabel 4.4 serta paket data yang dikirim dapat dilihat pada tabel 4.5. Tabel 4.4. Contoh paket data yang dikirim Karakter S P D H O K L M N Data 33.0 9.0 6.5 475 5800 0 1 1 1 Keterangan Sensor Suhu = 33,0 ºC Sensor pH = 9,0pH Sensor DO = 6,5ppm Sensor Kekeruhan = 475NTU Sensor Konduktifitas = 5800uS/cm Pintu Inlet Tertutup Pintu Outlet Terbuka Pompa Sumur ON Pompa Aerator ON Tabel 4.5. Pengujian kirim paket data Jarak (m) Pengujian Ke1 2 9 10 11 12 13 14 15 16 17 18 19 20 1 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ 5 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ 10 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ 15 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ 20 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ 25 √ √ √ √ x x √ x √ √ x √ x x x √ x x x x 30 x x x x x x x x x x x x x x Keterangan: - √ - x 3 x 4 x 5 x 6 7 x 8 x x = Berhasil kirim data = Tidak terima data PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 82 Berdasarkan tabel tersebut maka paket data yang dikirim dari terminal unit adalah : @S33.0#P9.0#D6.5#H475#O5800#K0#L1#M1#N1#$ kondisi kendali yang menunjukkan bahwa kondisi tidak normal. Jumlah karakter dalam paket data tersebut adalah 41 karakter. Karakter ke-33 sampai 41 tidak tertampil pada LCD 16x2 namu data ke-33 sampai 41 tetap terkirim. Data yang diterima sentral unit dapat dilihat pada gambar 4.56 dan data pada dummy sensor dapat dilihat pada gambar 4.57 serta program kirim paket data dapat dilihat pada gambar 4.58. Gambar 4.56. LCD 16x2 terima paket data di sentral unit Gambar 4.57. LCD 16x2 data dummy sensor Gambar 4.58. Program paket data yang dikirim PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 83 Gambar 4.58. (lanjutan) Program paket data yang dikirim 4.5.5.Pengujian Terima Paket Data dari Sentral Unit Pengujian terima paket data dari sentral unit terdapat beberapa pengaturan. Terdapat waktu pengiriman paket data dari terminal unit ke sentral unit, batasan masing-masing sensor, permintaan salah satu sensor serta reset batasan-batasan sensor sesuai dengan batasan awal. Program penerimaan karakter dari sentral unit dapat dilihat pada gambar 4.59. Gambar 4.59. Program penerimaan karakter dari sentral unit PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 84 4.5.5.1. Pengaturan Jadwal Pengiriman Pengaturan waktu pengiriman data merupakan pengaturan untuk waktu pengiriman paket data dari terminal unit yang berisi informasi masing-masing sensor serta kondisi aktuator. Waktu yang dapat diatur dari sentral unit sejumlah dua buah karakter yang berarti dari 10 sampai 99 menit. Sebagai contoh saat sentral unit menginginkan pengiriman setiap 10 menit maka pada LCD16x2 terminal unit akan tampil @J10# yang artinya terminal unit akan mengganti waktu jadwal pengiriman paket data setiap 10 menit sekali dan waktu jadwal pengiriman ini akan disimpan di eeprom. Terima data waktu pengiriman paket dapat dilihat pada gambar 4.60 dan perubahan jadwal pada terminal unit dapat dilihat pada gambar 4.61. Gambar 4.60. Tampilan LCD 16x2 terima data waktu kirim paket data Gambar 4.61. Tampilan LCD 16x2 jadwal waktu pengiriman paket data Program terima karakter “J” atau pengaturan jadwal waktu pengiriman dari sentral unit ke terminal unit dapat dilihat pada gambar 4.62. Gambar 4.62. Program terima karakter J dari sentral unit PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 85 4.5.5.2.Pengaturan Batasan Sensor Pengaturan batasan masing-masing sensor merupakan pengaturan dari user sentral unit untuk mengubah batasan masing-masing sensor yang sebelumnya sudah ditentukan dan disimpan di dalam eeprom terminal unit, batasan masing-masing sensor ini digunakan untuk mengatur sistem kendali pintu air, pompa air dan pompa aerator. Batasan awal sensor atau default (lihat gambar 4.29 dan 4.30). Batasan yang dapat diatur oleh user adalah sebagai berikut. Batasan suhu yang dapat diatur antara 18 ºC-28 ºC, batasan keasaman adalah 5-8 pH, batasan oksigen yang dapat diatur antara 3-7 ppm, batasan kekeruhan adalah 100-380 NTU dan batasan konduktivitas adalah 1000-4800 uS/cm. Pada batasan suhu dan keasaman terdapat dua batasan yaitu batas atas dan batas bawah. Tabel 4.6. Contoh terima data batasan sensor Parameter Batasan Terima Data Batas Bawah Batas Atas Suhu 20 25 @V20,25# Keasaman 6 7 @W6,7# Oksigen 4 @X4# Kekeruhan 370 @Y370# Konduktivas 4600 @Z4600# Terima batasan sensor suhu dan sensor keasaman dapat dilihat pada gambar 4.63 dan gambar 4.64. Perubahan batasan di terminal unit dapat dilihat pada gambar 4.65. Gambar 4.63. Tampilan LCD 16x2 terima setting batasan suhu terminal unit PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 86 Gambar 4.64. Tampilan LCD 16x2 terima setting batasan keasaman terminal unit Gambar 4.65. Tampilan LCD 16x2 batasan suhu dan keasaman di terminal unit Penerimaan karakter oksigen, kekeruhan dan konduktivitas dapat dilihat pada gambar 4.66 sampai gambar 4.68. Gambar 4.66. Tampilan LCD 16x2 terima setting batasan oksigen terminal unit Gambar 4.67. Tampilan LCD 16x2 terima setting batasan kekeruhan terminal unit Gambar 4.68. Tampilan LCD 16x2 terima setting batasan konduktivitas terminal unit Setelah terima karakter dan nilai batasan sensor, terminal unit langsung menyimpan batasan tersebut dalam EEPROM. Batasan sensor yang telah diterima dapat dilihat pada gambar 4.69 serta program terima batasan sensor dari sentral unit dapat dilihat pada gambar 4.70. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 87 Gambar 4.69. Tampilan LCD 16x2 batasan kekeruhan, konduktivitas dan oksigen Gambar 4.70. Program terima batasan sensor oksigen, kekeruhan dan konduktivitas 4.5.5.3.Pengiriman Salah Satu Sensor Pada menu pengiriman salah satu sensor, sentral unit akan mengirimkan karakter ke terminal unit untuk mengirimkan salah satu sensor seperti yang diminta sentral unit. Terdapat PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 88 lima pilihan sensor yaitu sensor suhu, keasaman, oksigen, kekeruhan dan konduktivitas. Terminal unit kemudian mengirimkan paket data yang berisi data salah satu sensor sesuai dengan permintaan sentral unit. Paket data yang dikirim dari sentral unit serta terima paket data di terminal unit dengan salah satu sensor dapat dilihat pada tabel 4.7. Tabel 4.7. Contoh paket data ambil salah satu sensor Sensor Terima Kirim Keterangan Suhu @A# @AS15.0#$ Sensor Suhu = 15,0ºC Keasaman @B# @BP6.0#$ Sensor Keasaman = 6,0pH Oksigen @C# @CD6#$ Sensor Oksigen = 6ppm Kekeruhan @D# @DH275#$ Sensor Kekeruhan = 275NTU Konduktivitas @E# @EO4050#$ Sensor Konduktivitas = 4050uS/cm Seperti pada penjelasan, dalam tabel 4.7 ini sentral unit mengirimkan karakter A ke terminal unit. Ketika terminal unit membaca karakter A maka terminal unit langsung melakukan komunikasi dengan dummy sensor untuk mengirimkan data suhu. Setelah data suhu diterima terminal unit maka terminal unit akan langsung mengirimkan data suhu tersebut ke sentral unit dengan format @AS15.0#$, begitu juga untuk sensor yang lainnya. Karakter @ hanya sebagai header data saat dikirimkan dari terminal unit maupun ke terminal unit. Karakter $ adalah sebagai karakter pengakhir bahwa paket data telah dikirim. Untuk gambar ambil paket data yang lainnya dapat dilihat pada lampiran. Terima karakter “A” dari sentral unit dapat dilihat pada gambar 4.71. Gambar 4.71. Tampilan LCD 16x2 terima karakter sensor suhu PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 89 Seperti pada penjelasan, setelah terminal unit menerima karakter “A” maka terminal unit akan mengambil data suhu dari dummy sensor. Data suhu pada dummy sensor dapat dilihat pada gambar 4.72 yang ditandai dengan karakter “S” di awalnya. Setelah terminal unit menerima data suhu dari dummy sensor maka data tersebut akan dikirimkan ke sentral unit. Data suhu yang didapatkan terminal unit tidak ditampilkan pada LCD 16x2 sehingga pada terminal unit hanya menampilkan “Kirim data suhu” seperti pada gambar 4.73. Data yang diterima sentral unit dapat dilihat pada gambar 4.74. . Gambar 4.72. Tampilan LCD 16x2 nilai suhu pada dummy sensor Gambar 4.73. Tampilan LCD 16x2 kirim data suhu ke sentral unit Gambar 4.74. Tampilan LCD 16x2 terima data suhu dari terminal unit Pengiriman paket data dari sentral unit ke terminal unit dikirimkan hanya sekali saja sesuai dengan perancangan yang ada. Program permintaan salah satu sensor dari sentral unit dapat dilihat pada gambar 4.75. Dalam program ini juga terdapat terima karakter “U” atau permintaan kirim ulang paket data, permintaan kirim ulang paket data ini dilakukan jika paket data yang dikirimkan terminal unit tidak dapat diterima sentral unit. Namun pada percobaan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 90 yang dilakukan, pengiriman selalu berhasil sehingga penulis tidak bisa memasukan gambar permintaan kirim ulang paket data. Gambar 4.75. Program pengiriman salah satu sensor ke sentral unit PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 91 Gambar 4.75. (lanjutan) Program pengiriman salah satu sensor ke sentral unit 4.6. Pengujian Alat Terminal Unit Pengujian alat terminal unit ini dilakukan untuk melihat apakah fitur-fitur pada terminal sudah dapat digunakan seperti perancangannya. Pada pengujian ini terdapat pengujian pengaturan waktu RTC, pengujian jadwal pengiriman paket data, reset batasan kendali, metode kendali, Pada pengujian alat terminal unit ini, dilakukan dua kali pengujian yang digunakan sebagai pembanding antara pengujian pertama dan pengujian kedua. 4.6.1. Pengujian Tombol Pada pengujian tombol ini, penulis mencoba untuk menguji apakah tombol yang ada pada alat terminal unit dapat bekerja seperti pada perancangan. Pengujian ini dibuat dalam bentuk tabel untuk melihat keberhasilan pengujian tombol. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 92 1. Pengujian Tombol Pada Tampilan Awal Pada pengujian ini, tombol-tombol akan diuji apakah dalam tampilan awal, tombol dapat digunakan sesuai dengan yang diharapkan. Pengujian dapat dilihat pada tabel 4.8. Tabel 4.8. Pengujian tombol pada tampilan awal Skenario Pengujian Hasil Pengujian Menekan tombol UP Tidak ada aksi Menekan tombol DOWN Melihat batasan kendali Menekan tombol OK Tidak ada aksi Menekan tombol RESET Memulai ulang sistem terminal unit Mengatur kendali pada metode manual Menekan tombol BACK Keterangan [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil 2. Pengujian Tombol Pada Menu RTC Pada pengujian ini, tombol-tombol akan diuji apakah dalam mode menu RTC ini, tombol dapat digunakan sesuai dengan yang diharapkan. Pengujian dapat dilihat pada tabel 4.9. Tabel 4.9. Pengujian tombol pada menu RTC Skenario Pengujian Menekan tombol UP Menekan tombol DOWN Menekan tombol OK Menekan tombol RESET Menekan tombol BACK Hasil Pengujian Menambah angka pada pengaturan RTC Mengurangi angka pada pengaturan RTC Memilih waktu RTC yang telah ditentukan Memulai ulang sistem terminal unit Tidak ada aksi Keterangan [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 93 3. Pengujian Tombol Pada Menu Pengaturan Jadwal Kirim Pada pengujian ini, tombol-tombol akan diuji apakah dalam mode menu jadwal kirim ini, tombol dapat digunakan sesuai dengan yang diharapkan. Pengujian dapat dilihat pada tabel 4.10. Tabel 4.10. Pengujian tombol pada jadwal kirim Skenario Pengujian Menekan tombol UP Menekan tombol DOWN Menekan tombol OK Menekan tombol RESET Menekan tombol BACK Hasil Pengujian Menambah angka pada pengaturan jadwal Mengurangi angka pada pengaturan jadwal Memilih waktu jadwal yang telah ditentukan Memulai ulang sistem terminal unit Kembali ke menu awal Keterangan [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil 4. Pengujian tombol pada menu pengambilan data sensor Pada pengujian ini, tombol-tombol akan diuji apakah dalam mode menu data sensor ini, tombol dapat digunakan sesuai dengan yang diharapkan. Pada pengujian pengambilan data sensor, terdapat beberapa menu. Namun pada pengujian hanya dilakukan satu kali dikarenakan semua pengujian mendapatkan hasil yang sama. Pengujian dapat dilihat pada tabel 4.11. Tabel 4.11. Pengujian tombol pada menu pengambilan data sensor Skenario Pengujian Menekan tombol UP Menekan tombol DOWN Hasil Pengujian Melanjutkan ke menu reset batasan kendali Kembali ke menu jadwal kirim Menekan tombol OK Mengambil data sensor Menekan tombol RESET Memulai ulang sistem terminal unit Menekan tombol BACK Kembali ke menu awal Keterangan [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 94 5. Pengujian tombol pada menu reset batasan kendali Pada pengujian ini, tombol-tombol akan diuji apakah dalam mode menu reset batasan kendali ini, tombol dapat digunakan sesuai dengan yang diharapkan. Pengujian dapat dilihat pada tabel 4.12. Tabel 4.12. Pengujian tombol pada menu reset batasan kendali Skenario Pengujian Menekan tombol UP Menekan tombol DOWN Menekan tombol OK Menekan tombol RESET Menekan tombol BACK Hasil Pengujian Melanjutkan ke menu metode kendali Kembali ke menu pengambilan data sensor Melakukan reset batasan kendali Memulai ulang sistem terminal unit Kembali ke menu awal Keterangan [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil 6. Pengujian tombol pada menu metode kendali Pada pengujian ini, tombol-tombol akan diuji apakah dalam mode menu metode kendali ini, tombol dapat digunakan sesuai dengan yang diharapkan. Pengujian dapat dilihat pada tabel 4.13. Tabel 4.13. Pengujian tombol pada menu metode kendali Skenario Pengujian Menekan tombol UP Menekan tombol DOWN Menekan tombol OK Menekan tombol RESET Menekan tombol BACK Hasil Pengujian Melanjutkan ke menu atur jam Kembali ke menu reset batasan kendali Memilih metode kendali manual atau otomatis Memulai ulang sistem terminal unit Kembali ke menu awal Keterangan [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil [√] Berhasil PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 95 4.6.2. Pengujian waktu RTC Pada pengujian waktu RTC ini, penulis mencoba mengatur waktu RTC diantaranya pengaturan jam, menit, tanggal, bulan dan tahun kemudian dari pengaturan tersebut akan dilihat pada tampilan awal apakah waktu RTC yang telah di atur tersebut sudah sesuai. Pengaturan waktu RTC merupakan pengaturan di dalam mode menu. Pada pengujian waktu RTC ini, penulis melakukan dua kali pengujian yang digunakan sebagai pembanding antara pengujian yang pertama dan kedua. Pengujian kedua dapat dilihat pada lampiran. Tampilan waktu RTC sebelum melakukan pengujian dapat dilihat pada gambar 4.77. Gambar 4.77. Tampilan awal waktu RTC Pada menu awal ini user dapat menekan tombol menu untuk mengubah waktu RTC. Setelah menekan tombol menu, maka akan muncul tampilan seperti gambar 4.78. Gambar 4.78. Tampilan atur waktu RTC pada mode menu Pada pengujian waktu RTC, penulis melakukan pengujian dengan merubah jam, menit, tanggal, bulan dan tahun. Pengaturan untuk pengujian dapat dilihat pada gambar 4.79 sampai 4.83. Gambar 4.79. Tampilan atur jam RTC PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 96 Gambar 4.80. Tampilan atur menit RTC Gambar 4.81. Tampilan atur tanggal RTC Gambar 4.82. Tampilan atur bulan RTC Gambar 4.83. Tampilan atur tahun RTC Setelah melakukan semua pengaturan waktu RTC, maka LCD akan tampil seperti gambar 4.84 dan hasil pengujian waktu RTC yang telah diubah dapat dilihat pada gambar 4.85. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 97 Gambar 4.84. Tampilan waktu RTC berhasil diubah Gambar 4.85. Tampilan awal waktu RTC yang telah diubah Pada gambar 4.85 dapat dilihat bahwa hasil waktu RTC pada tampilan awal telah berubah sesuai dengan waktu yang di atur dalam menu. Hasil pengujian waktu RTC dapat dilihat pada tabel 4.14. Tabel 4.14. Hasil Pengujian waktu RTC Pengujian Waktu Hasil Pengujian Pertama Kedua Jam 16 20 Menit 33 30 Tanggal 19 25 Bulan 11 04 Tahun 2015 2020 Pertama Kedua 19-11-15 25-4-20 16:33:50 20:30:4 Keterangan Berhasil 4.6.3. Pengujian Jadwal Kirim Pengujian jadwal kirim ini dilakukan untuk mengetahui apakah jadwal kirim paket data yang telah ditentukan sesuai dengan pengiriman paket data. Pengujian ini dilakukan sebanyak dua kali. Pengujian pertama dilakukan pengaturan waktu pengiriman paket data selama 10 menit. Tampilan dapat dilihat pada gambar 4.86 sampai gambar 4.89 dan pengujian kedua dapat dilihat dalam lampiran PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 98 Gambar 4.86. Tampilan waktu sebelum pengiriman paket data Gambar 4.87. Tampilan waktu jadwal pengiriman paket data Gambar 4.88. Tampilan waktu setelah 10 menit Gambar 4.89. Tampilan kirim paket data dari terminal unit Pada gambar 8.86 sampai gambar 8.89 dapat dilihat bahwa pengaturan jadwal kirim sudah sesuai dengan pengaturan yang telah ditentukan. 4.6.4. Pengujian Reset Batasan Kendali Pengujian reset batasan kendali ini dilakukan untuk mengetahui apakah batasan kendali yang telah diubah sentral unit dapat dikembalikan seperti pengaturan awal. Pengujian ini dilakukan dengan mengganti batasan kendali dari sentral unit kemudian melakukan reset PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 99 batasan kendali dari menu terminal unit. Pengujian ini dilakukan dua kali. Batasan kendali yang telah diubah sentral unit dapat dilihat pada gambar 4.90 dan gambar 4.91. Gambar 4.90. Tampilan batasan suhu dan keasaman yang telah diubah sentral unit Gambar 4.91. Batasan kekeruhan, konduktivitas dan oksigen yang telah diubah sentral unit Setelah batasan diubah dari sentral unit, maka pengujian reset batasan kendali dapat dilakukan. Pengaturan reset batasan kendali dapat dilihat pada gambar 4.17 dan tampilan berhasil reset dilihat pada gambar 4.92. Setelah melakukan reset batasan kendali, hasil reset dapat dilihat pada gambar 4.93 dan gambar 4.94. Gambar 4.92. Tampilan berhasil reset batasan kendali Gambar 4.93. Batasan suhu dan keasaman setelah melakukan reset PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 100 Gambar 4.94. Batasan kekeruhan, konduktivitas dan oksigen setelah melakukan reset Pada gambar 4.93 dan gambar 4.94 dapat dilihat batasan kendali berhasil diubah menjadi batasan awal yang telah ditentukan. Untuk pengujian yang kedua dapat dilihat pada lampiran. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB V KESIMPULAN DAN SARAN 5.1 KESIMPULAN Berdasarkan analisis terhadap data yang diperoleh dari hasil penelitian sistem telemetri modul terminal unit dalam mengatur kualitas air kolam ikan, maka dapat disimpulkan: 1. Komunikasi antara terminal unit dan dummy sensor dapat dilakukan dan data dari dummy sensor dapat diterima pada terminal unit sesuai dengan pengujian. 2. Terminal unit telah berhasil melakukan kendali, baik kendali dalam metode manual atau kendali dalam metode otomatis. 3. Komunikasi antara terminal unit dan sentral unit dengan sistem telemetri dapat dilakukan sampai dengan jarak 20 m. 4. Tombol pada terminal unit dapat digunakan sesuai dengan perancangan, baik dalam mode menu, pengaturan kendali manual. 5. Jadwal pengiriman dapat bekerja sesuai dengan pengaturan yang telah ditentukan. 5.2. SARAN Sistem telemetri ini masih terdapat banyak kekurangan, sehingga perlu pengembangan lebih lanjut. Saran bagi pengembangan sistem ini selanjutnya ialah; Sistem harus bisa mengirimkan paket data dengan jarak yang lebih jauh serta akurat sehingga keandala dalam pengiriman paket data menjadi lebih optimal. 101 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR PUSTAKA [1] http://www.bibitikan.net/bibit-dan-induk-unggulan-tingkatkan-produksi-ikan-airtawar/#more, diakses tanggal 9 february 2015 [2] http://alamtani.com/budidaya-ikan-lele.html, diakses tanggal 9 february 2015 [3] Bambang, C., 2000, Budi Daya Ikan Air Tawar , Kanisius, Yogyakarta. [4] Uniplaita, M.K.T., 2014, Sistem Pengukuran Konduktivitas Air Kolam Ikan, Universitas Sanata Dharma, Yogyakarta. [5] Saputri, D., 2014,Alat Ukur Kadar Keasaman Pada Sistem Monitoring Kualitas Air Kolam Ikan, Universitas Sanata Dharma, Yogyakarta. [6] Direktorat Jendral Perikanan Budidaya dan Direktorat Perbebihan., 2006, Petunjuk Teknis Balai Benih Ikan (BBI), Balai Benih Ikan Sentral (BBIS), Balai Benih Udang (BBU), Blai Benih Udang Galah (BBUG),Dan Balai Benih Ikan Pantai (BBIP), Direktorat Jendral Perikanan Budidaya, Jakarta [7] Wijaya, I., 2014,Monitoring Kekeruhan Air Pada Sistem Monitoring Kualitas Air Kolam Ikan, Universitas Sanata Dharma, Yogyakarta. [8] Wijatmika,H.S., 2014,Alat Ukur Kadar Oksigen Terlarut Dengan Metode Elektrolisis Berbasis ATmega8535, Universitas Sanata Dharma, Yogyakarta. [9] Radiometer Analitic SAS., 2004, Conductivity Theory and Practice, Villleurbnne Cedex, France [10] Wilianto, C., 2014, Sistem Komunikasi Pengendalian Kualitas Air Kolam Ikan Berbasis Atmega128, Skripsi, Universitas Sanata Dharma, Yogyakarta. [11] Payara, F. M., 2014, Rancang Bangun Pengendalian Kualitas Air pada Sistem Monitoring Kualitas Air Kolam Ikan, Universitas Sanata Dharma, Yogyakarta. [12] ----------, 2011, Data Sheet Microcontroller ATmega128, Atmel. [13] Alim, A. T. S., 2013, Aquarium Controller Berbasis ATmega128 Sebagai Penjaga Stabilitas Sistem Akuarium Lau, Universitas Sanata Dharma, Yogyakarta. [14] ----------, 2006, Data Sheet RX01 [15] ----------, 2006, Data Sheet TX02 102 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI [16] http://elektronika-dasar.web.id/teori-elektronika/lcd-liquid-cristal-display/, diakses tanggal 28 februari 2015 [17] http://www.bagusprehan.com/2013/12/konfigurasi-pin-lcd-16x2.html, diakses tanggal 28 februari 2015 [18] ----------, 2008, Data Sheet DS1307, Maxim. [19] http://elektronika-dasar.web.id/teori-elektronika/pengertian-dan-jenis-jenis-modulasidigital/, diakses 5 maret 2015 [20] http://muapmuap.blogspot.com/2013/12/makalah-push-button.html, diakses25 maret 2015 [21] https://www.led-tech.de/en/3mm-LEDs_DB-3.pdf, diakses 25 Mei 2015. 103 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LAMPIRAN 104 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Lampiran A Data pada dummy sensor dari Penelitian yang Sudah Ada No Suhu pH Kekeruhan Kandungan Konduktivitas Oksigen 1 15.0 4.0 25 3.0 200 2 16.5 4.5 50 3.5 550 3 18.0 5.0 75 4.0 900 4 19.5 5.5 100 4.5 1250 5 21.0 6.0 125 5.0 1600 6 22.5 6.5 150 5.5 1950 7 24.0 7.0 175 6.0 2300 8 25.5 7.5 200 6.5 2650 9 27.0 8.0 225 7.0 3000 10 28.5 8.5 250 7.5 3350 11 30.0 9.0 275 8.0 3700 12 31.5 9.5 300 8.5 4050 13 33.0 10.0 325 9.0 4400 14 34.5 10.5 350 9.5 4750 15 36.0 375 5100 16 37.5 400 5450 17 39.0 425 5800 18 450 19 475 L1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Lampiran B Rangkaian Keseluruhan Perancangan L2 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Rangkaian Dummy Sensor L3 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L4 LAMPIRAN C Listing Program Utama Mikrokontroler128 34. #define NIRQ 4 // (PORTD) 1. 2. 3. 4. 5. 6. /********************************** ******************* This program was produced by the CodeWizardAVR V2.05.3 Standard Automatic Program Generator © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com 7. Project : Sistem Telemetri Kualitas Air Kolam Ikan Dengan RX01-433D dan TX02-433D sebagai terminal unit 8. Version : 9. Date : 5/11/2015 10. Author : John Fisher Jefferson 11. Company : Universitas Sanata Dharma 12. Comments: 13. Chip type : ATmega128 14. Program type : Application 15. AVR Core Clock frequency: 8.000000 MHz 16. Memory model : Small 17. External RAM size :0 18. Data Stack size : 1024 19. ********************************** *******************/ 20. #include <mega128.h> 21. // I2C Bus functions 22. #include <i2c.h> 23. // DS1307 Real Time Clock functions 24. #include <ds1307.h> 25. 26. 27. 28. 29. // Alphanumeric LCD functions #include <alcd.h> #include <stdio.h> #include <delay.h> #include <stdlib.h> 30. #define SCK 2 // SPI clock 31. #define SDO 0 // SPI Data output (RFM12B side) //MOSI 32. #define SDI 1 // SPI Data input (RFM12B side) //MISO 33. #define CS 3 // SPI SS (chip select) 35. #define HI(x) PORTA |= (1<<(x)) 36. #define LO(x) PORTA &= ~(1<<(x)) 37. #define WAIT_NIRQ_LOW() while(PINA&(1<<NIRQ)) 38. 39. 40. 41. 42. 43. 44. #define level_rendah PINF.0 #define level_normal PINF.1 #define level_tinggi PINF.2 #define kirim_data PIND.0 unsigned char total,ttotal; unsigned int z,x; bit airmasuk,airkeluar, pompa, aerator, keputusan, logika,kond_kendali,kond_oksigen,k_kend ali,k_oksigen; 45. 46. 47. 48. // Declare your global variables here unsigned char a, b, xx, yy, e, f, g, aa; unsigned char h, m, s, w, d, mo, y, mm; unsigned char temp[60], tampildata[32], waktu[16],tanggal[16], data_rf[70]; unsigned char suhu[5], keasaman[5], kekeruhan[5], konduktivitas[5], oksigen[5], buff[20]; int ssuhu, skeasaman, skekeruhan, skonduktivitas, soksigen; unsigned char tsuhu[5], tkeasaman[5], tkekeruhan[5], tkonduktivitas[5], toksigen[5]; unsigned char RF_RXBUF[20], DATA[5]; 49. 50. 51. 52. 53. unsigned char i,jam[2]; 54. 55. 56. 57. /* h=hour, m=minute, s=second d=day, mo=month, y=year */ 58. int c, j; 59. eeprom unsigned char jadwal; 60. eeprom unsigned char pintumasuk, pintukeluar, pompaair, pompaaerator; 61. eeprom unsigned char suhu_atas, suhu_bawah, asam_atas, asam_bawah, PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI batas_keruh,batas_konduktivitas, batas_oksigen; 62. int count; 63. // Timer1 overflow interrupt service routine 64. interrupt [TIM1_OVF] void timer1_ovf_isr(void) 65. { 66. // Reinitialize Timer1 value 67. TCNT1H=0xE17B >> 8; 68. TCNT1L=0xE17B & 0xff; 69. // Place your code here 70. count++; 71. } 72. //============================= ============================== ====== 73. /****************Setting Kirim 434Mhz*************/ 74. #define DDR_IN 0 75. #define DDR_OUT 1 76. #define PORT_SEL PORTB 77. #define PIN_SEL PINB 78. #define DDR_SEL DDRB 79. #define PORT_SDI PORTB 80. #define PIN_SDI PINB 81. #define DDR_SDI DDRB 82. #define PORT_SCK PORTB 83. #define PIN_SCK PINB 84. #define DDR_SCK DDRB 85. #define PORT_SDO PORTB 86. #define PIN_SDO PINB 87. #define DDR_SDO DDRB 88. 89. 90. 91. 92. #define RFXX_SCK 6// | #define RFXX_SDO 7// |RF_PORT #define RFXX_SDI 4// | #define RFXX_SEL 5// | #define RFXX_DATA 3// | 93. #define SEL_OUTPUT() DDR_SEL |= (1<<RFXX_SEL) 94. #define HI_SEL() PORT_SEL|= (1<<RFXX_SEL) 95. #define LOW_SEL() PORT_SEL&=~(1<<RFXX_SEL) L5 96. #define SDI_OUTPUT() DDR_SDI |= (1<<RFXX_SDI) 97. #define HI_SDI() PORT_SDI|= (1<<RFXX_SDI) 98. #define LOW_SDI() PORT_SDI&=~(1<<RFXX_SDI) 99. #define SDO_INPUT() DDR_SDO&= ~(1<<RFXX_SDO) 100. #define SDO_HI() PIN_SDO&(1<<RFXX_SDO) 101. #define SCK_OUTPUT() DDR_SCK |= (1<<RFXX_SCK) 102. #define HI_SCK() PORT_SCK|= (1<<RFXX_SCK) 103. #define LOW_SCK() PORT_SCK&=~(1<<RFXX_SCK) 104. void RFXX_PORT_INIT(void) 105. { 106. HI_SEL(); 107. HI_SDI(); 108. LOW_SCK(); 109. SEL_OUTPUT(); 110. SDI_OUTPUT(); 111. SDO_INPUT(); 112. SCK_OUTPUT(); 113. } 114. unsigned int RFXX_WRT_CMD(unsigned int aCmd) 115. { 116. unsigned char i; 117. unsigned int temp=0; 118. LOW_SCK(); 119. LOW_SEL(); 120. for(i=0;i<16;i++) 121. { 122. temp<<=1; 123. if(SDO_HI()) 124. { 125. temp|=0x0001; 126. } 127. LOW_SCK(); 128. if(aCmd&0x8000) 129. { 130. HI_SDI(); 131. } 132. else 133. { 134. LOW_SDI(); 135. } PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 136. HI_SCK(); 137. aCmd<<=1; 138. }; 139. LOW_SCK(); 140. HI_SEL(); 141. return(temp); 142. } 178. #define PORT_SDI1 PORTE 179. #define PIN_SDI1 PINE 180. #define DDR_SDI1 DDRE 143. void RF02B_SEND(unsigned char aByte) 144. { 145. unsigned char i; 146. for(i=0;i<8;i++) 147. { 148. while(PINB&(1<<RFXX_SDO));//Polling nIRQ 149. while(!(PINB&(1<<RFXX_SDO))); 150. if(aByte&0x80) 151. { 152. PORTB|=(1<<RFXX_DATA); 153. } 154. else 155. { 156. PORTB&=~(1<<RFXX_DATA); 157. } 158. aByte<<=1; 159. } 160. } 184. #define PORT_SDO1 PORTE 185. #define PIN_SDO1 PINE 186. #define DDR_SDO1 DDRE 161. void askirim_data() 162. { 163. RFXX_PORT_INIT(); 164. RFXX_WRT_CMD(0xCC00); 165. RFXX_WRT_CMD(0x8B61);//433BAND ,+/-90kHz 166. RFXX_WRT_CMD(0xA640);//434MHz 167. RFXX_WRT_CMD(0xD040);//RATE/2 168. RFXX_WRT_CMD(0xC823);//4.8kbps 169. RFXX_WRT_CMD(0xC220);//ENABLE BIT SYNC 170. RFXX_WRT_CMD(0xC001);//CLOSE ALL 171. } 172. /****************Setting Terima 435Mhz*************/ 173. #define DDR_IN1 0 174. #define DDR_OUT1 1 175. #define PORT_SEL1 PORTE 176. #define PIN_SEL1 PINE 177. #define DDR_SEL1 DDRE L6 181. #define PORT_SCK1 PORTE 182. #define PIN_SCK1 PINE 183. #define DDR_SCK1 DDRE 187. #define RFXX1_SCK 7// | 188. #define RFXX1_SDO 6// |RF_PORT 189. #define RFXX1_SDI 5// | 190. #define RFXX1_SEL 4// | 191. //#define RFXX1_DATA 1// | 192. #define SEL1_OUTPUT() DDR_SEL1 |= (1<<RFXX1_SEL) 193. #define HI_SEL1() PORT_SEL1|= (1<<RFXX1_SEL) 194. #define LOW_SEL1() PORT_SEL1&=~(1<<RFXX1_SEL) 195. #define SDI1_OUTPUT() DDR_SDI1 |= (1<<RFXX1_SDI) 196. #define HI_SDI1() PORT_SDI1|= (1<<RFXX1_SDI) 197. #define LOW_SDI1() PORT_SDI1&=~(1<<RFXX1_SDI) 198. #define SDO1_INPUT() DDR_SDO1&= ~(1<<RFXX1_SDO) 199. #define SDO1_HI() PIN_SDO1&(1<<RFXX1_SDO) 200. #define SCK1_OUTPUT() DDR_SCK1 |= (1<<RFXX1_SCK) 201. #define HI_SCK1() PORT_SCK1|= (1<<RFXX1_SCK) 202. #define LOW_SCK1() PORT_SCK1&=~(1<<RFXX1_SCK) 203. void RFXX1_PORT_INIT(void) 204. { 205. HI_SEL1(); 206. HI_SDI1(); 207. LOW_SCK1(); 208. SEL1_OUTPUT(); 209. SDI1_OUTPUT(); 210. SDO1_INPUT(); 211. SCK1_OUTPUT(); PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 212. } 213. unsigned int RFXX1_WRT_CMD(unsigned int aCmd1) 214. { 215. unsigned char i1; 216. unsigned int temp1=0; 217. LOW_SCK1(); 218. LOW_SEL1(); 219. for(i1=0;i1<16;i1++) 220. { 221. temp1<<=1; 222. if(SDO1_HI()) 223. { 224. temp1|=0x0001; 225. } 226. LOW_SCK1(); 227. if(aCmd1&0x8000) 228. { 229. HI_SDI1(); 230. } 231. else 232. { 233. LOW_SDI1(); 234. } 235. HI_SCK1(); 236. aCmd1<<=1; 237. }; 238. LOW_SCK1(); 239. HI_SEL1(); 240. return(temp1); 241. } 242. unsigned char RF01_RDFIFO(void) 243. { 244. unsigned char i1,Result1; 245. LOW_SCK1(); 246. LOW_SDI1(); 247. LOW_SEL1(); 248. for(i1=0;i1<16;i1++) 249. {//skip status bits 250. HI_SCK1(); 251. HI_SCK1(); 252. LOW_SCK1(); 253. LOW_SCK1(); 254. } 255. Result1=0; 256. for(i1=0;i1<8;i1++) 257. {//read fifo data byte 258. Result1<<=1; 259. if(SDO1_HI()) 260. { 261. Result1|=1; L7 262. } 263. HI_SCK1(); 264. HI_SCK1(); 265. LOW_SCK1(); 266. LOW_SCK1(); 267. }; 268. HI_SEL1(); 269. return(Result1); 270. } 271. void terima_data() 272. { 273. RFXX1_PORT_INIT(); 274. RFXX1_WRT_CMD(0x0000); 275. RFXX1_WRT_CMD(0x898A);//433BAN D,134kHz 276. RFXX1_WRT_CMD(0xA7D0);//435MHz 277. RFXX1_WRT_CMD(0xC847);//4.8kbps 278. RFXX1_WRT_CMD(0xC69B);//AFC setting 279. RFXX1_WRT_CMD(0xC42A);//Clock recovery manual control,Digital filter,DQD=4 280. RFXX1_WRT_CMD(0xC240);//output 1.66MHz 281. RFXX1_WRT_CMD(0xC080); 282. RFXX1_WRT_CMD(0xCE88);//use FIFO 283. RFXX1_WRT_CMD(0xCE8B); 284. RFXX1_WRT_CMD(0xC081);//OPEN RX 285. } 286. //============================= ============================== ========== 287. void cekkendali() 288. { 289. if ((pintumasuk==1)&&(pintukeluar==1)&& (pompaair==1)) 290. { 291. PORTF=0x70; 292. } 293. else if ((pintumasuk==1)&&(pintukeluar==1)&& (pompaair==0)) 294. { 295. PORTF=0x60; 296. } 297. else if ((pintumasuk==1)&&(pintukeluar==0)&& (pompaair==1)) 298. { PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 299. PORTF=0x50; 300. } 301. else if ((pintumasuk==1)&&(pintukeluar==0)&& (pompaair==0)) 302. { 303. PORTF=0x40; 304. } 305. else if ((pintumasuk==0)&&(pintukeluar==1)&& (pompaair==1)) 306. { 307. PORTF=0x30; 308. } 309. else if ((pintumasuk==0)&&(pintukeluar==1)&& (pompaair==0)) 310. { 311. PORTF=0x20; 312. } 313. else if ((pintumasuk==0)&&(pintukeluar==0)&& (pompaair==1)) 314. { 315. PORTF=0x10; 316. } 317. else 318. { 319. PORTF=0x00; 320. } 321. } 322. void kendali() 323. { 324. if((ssuhu>suhu_atas)||(ssuhu<suhu_bawah) ||(skeasaman>asam_atas)||(skeasaman<asa m_bawah)||(skekeruhan>batas_keruh*10)|| (skonduktivitas>batas_konduktivitas*100)) 325. { 326. pintumasuk=0; 327. pintukeluar=1; 328. pompaair=1; 329. kond_kendali=0; 330. } 331. else 332. { 333. pintumasuk=1; 334. pintukeluar=0; 335. pompaair=0; 336. kond_kendali=1; 337. } 338. if(soksigen<=batas_oksigen) 339. { pompaaerator=1; kond_oksigen=1; } 340. if(soksigen>batas_oksigen) 341. { pompaaerator=0; kond_oksigen=0; } 342. } 343. // PENGATURAN JAM 344. void ubahjam() 345. { 346. delay_ms(200); 347. z=0; 348. lcd_clear(); 349. while (z==0) 350. { 351. if (PINF.0==1) { z++; delay_ms(200);} 352. if (PINF.1==1) { lcd_clear(); h++; delay_ms(200);} 353. if (PINF.2==1) { lcd_clear(); h--; delay_ms(200);} 354. if (PINF.3==1) { z=5; delay_ms(200);} 355. if (h>24) {h=0; lcd_clear();} 356. lcd_gotoxy(0,0); 357. sprintf(temp,"Jam : %d",h); 358. lcd_puts(temp); 359. } 360. lcd_clear(); 361. while (z==1) 362. { 363. if (PINF.0==1) { z++; delay_ms(200);} 364. if (PINF.1==1) { lcd_clear(); m++; delay_ms(200);} 365. if (PINF.2==1) { lcd_clear(); m--; delay_ms(200);} 366. if (PINF.3==1) { z=5; delay_ms(200);} 367. if (m>60) {m=0; lcd_clear();} 368. lcd_gotoxy(0,0); 369. sprintf(temp,"Menit : %d",m); 370. lcd_puts(temp); 371. } 372. while (z==2) 373. { 374. if (PINF.0==1) { z++; delay_ms(200);} 375. if (PINF.1==1) { lcd_clear(); d++; delay_ms(200);} 376. if (PINF.2==1) { lcd_clear(); d--; delay_ms(200);} 377. if (PINF.3==1) { z=5; delay_ms(200);} 378. if (d>31) {d=0; lcd_clear();} 379. lcd_gotoxy(0,0); 380. sprintf(temp,"Tanggal : %d",d); 381. lcd_puts(temp); 382. } 383. lcd_clear(); L8 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 384. while (z==3) 385. { 386. if (PINF.0==1) { z++; delay_ms(200);} 387. if (PINF.1==1) { lcd_clear(); mo++; delay_ms(200);} 388. if (PINF.2==1) { lcd_clear(); mo--; delay_ms(200);} 389. if (PINF.3==1) { z=5; delay_ms(200);} 390. if (mo>12) {mo=0; lcd_clear();} 391. lcd_gotoxy(0,0); 392. sprintf(temp,"Bulan : %d",mo); 393. lcd_puts(temp); 394. } 395. while (z==4) 396. { 397. if (PINF.0==1) { z++; delay_ms(200);} 398. if (PINF.1==1) { lcd_clear(); y++; delay_ms(200);} 399. if (PINF.2==1) { lcd_clear(); y--; delay_ms(200);} 400. if (PINF.3==1) { y=15; lcd_clear();delay_ms(200);} 401. lcd_gotoxy(0,0); 402. sprintf(temp,"Tahun : %d",y); 403. lcd_puts(temp); 404. } 405. rtc_set_time(h,m,d); 406. rtc_set_date(w,d,mo,y); 407. lcd_clear(); 408. lcd_gotoxy(1,0); 409. lcd_putsf("Jam Berhasil"); 410. lcd_gotoxy(5,1); 411. lcd_putsf("Dirubah"); 412. delay_ms(1000); 413. lcd_clear(); 414. } 415. void tampiljam() 416. { 417. if (m!=mm) {lcd_clear(); total++;} 418. lcd_gotoxy(0,1); 419. sprintf(waktu,"%d:%d:%d",h,m,s); 420. lcd_puts(waktu); 421. lcd_gotoxy(0,0); 422. sprintf(tanggal,"%d-%d-%d",d,mo,y); 423. lcd_puts(tanggal); 424. mm=m; 425. } 426. void jadwalkirim() 427. { L9 428. delay_ms(400); 429. z=0; 430. lcd_clear(); 431. while (z==0) 432. { 433. if (PINF.0==1) { z++; delay_ms(200);} 434. if (PINF.1==1) { lcd_clear(); e++; delay_ms(200);} 435. if (PINF.2==1) { lcd_clear(); e--; delay_ms(200);} 436. if (PINF.3==1) { lcd_clear(); e=30; delay_ms(200);} 437. lcd_gotoxy(0,0); 438. lcd_putsf("Jadwal"); 439. lcd_gotoxy(0,1); 440. sprintf(temp,"%d menit",e); 441. lcd_puts(temp); 442. } 443. jadwal=e; 444. total=0; 445. lcd_clear(); 446. } 447. void ambildata() 448. { 449. UCSR0B=0x10; //matikan tx nyalakan rx 450. PORTE.2=0; 451. c=0; 452. i=0; 453. while ((i<=5)&&(c<=10000)) 454. { 455. while ((!(UCSR0A & (1<<RXC0)))&&(c<=10000)) 456. { 457. c++; 458. } 459. while ((UCSR0A & (1<<RXC0))) 460. { 461. buff[i]=getchar(); c=0; 462. i++; 463. } 464. } 465. for (i=0; i<=3; i++) 466. { 467. switch(f) 468. { 469. case 1: suhu[i]= buff[i+1]; break; 470. case 2: keasaman[i]= buff[i+1]; break; 471. case 4: kekeruhan[i]= buff[i+1]; break; 472. case 3: oksigen[i]= buff[i+1]; break; 473. case 5: konduktivitas[i]=buff[i+1]; break; 474. } 475. } PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 476. delay_ms(10); 477. if ((c>10000)||(buff[5]!='#')) 478. { 479. if (f==1){ sprintf(tsuhu,"0000");ssuhu=0;} 480. if (f==2){ sprintf(tkeasaman,"0000");skeasaman=0;} 481. if(f==3){sprintf(tkekeruhan,"0000");skeker uhan=0;} 482. if(f==4){sprintf(tkonduktivitas,"0000");sk onduktivitas=0;} 483. if(f==5){sprintf(toksigen,"0000");soksigen =0;} 484. } 485. UCSR0B=0x08; //matikan rx dan nyalakan tx 486. PORTE.2=1; 487. }; 488. void datasuhu() 489. { 490. aa=0; 491. while(aa<3) 492. { 493. f=1; 494. printf("a"); 495. ambildata(); 496. if (buff[5]=='#') 497. { 498. aa=4; 499. ssuhu=atof(suhu); 500. sprintf(tsuhu,"%s",suhu); 501. sprintf(buff,"0"); 502. } 503. else {aa++; delay_ms(10);} 504. } 505. } 506. void datakeasaman() 507. { 508. aa=0; 509. while(aa<3) 510. { 511. f=2; 512. printf("b"); 513. ambildata(); 514. if (buff[5]=='#') 515. { 516. aa=4; 517. skeasaman=atof(keasaman); 518. sprintf(tkeasaman,"%s",keasaman); 519. sprintf(buff,"0"); 520. } 521. else {aa++; delay_ms(10);} 522. } 523. } L10 524. void dataoksigen() 525. { 526. aa=0; 527. while(aa<3) 528. { 529. f=3; 530. printf("c"); 531. ambildata(); 532. if (buff[5]=='#') 533. { 534. aa=4; 535. soksigen=atof(oksigen); 536. sprintf(toksigen,"%s",oksigen); 537. sprintf(buff,"0"); 538. } 539. else {aa++; delay_ms(10);} 540. } 541. } 542. void datakekeruhan() 543. { 544. aa=0; 545. while(aa<3) 546. { 547. f=4; 548. printf("d"); 549. ambildata(); 550. if (buff[5]=='#') 551. { 552. aa=4; 553. skekeruhan=atof(kekeruhan); 554. sprintf(tkekeruhan,"%s",kekeruhan); 555. sprintf(buff,"0"); 556. } 557. else {aa++; delay_ms(10);} 558. } 559. } 560. void datakonduktivitas() 561. { 562. aa=0; 563. while(aa<3) 564. { 565. f=5; 566. printf("e"); 567. ambildata(); 568. if (buff[5]=='#') 569. { 570. aa=4; 571. skonduktivitas=atof(konduktivitas); 572. sprintf(tkonduktivitas,"%s",konduktivitas); 573. sprintf(buff,"0"); 574. } 575. else {aa++; delay_ms(10);} 576. } PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 577. } 578. void paketdata() 579. { 580. datasuhu(); delay_ms(100); 581. datakeasaman(); delay_ms(100); 582. datakekeruhan(); delay_ms(100); 583. datakonduktivitas(); delay_ms(100); 584. dataoksigen(); delay_ms(100); 585. } 586. void atursistemkendali() 587. { 588. delay_ms(400); 589. z=0; g=0; 590. while(z==0) 591. { 592. cekkendali(); 593. delay_ms(400); 594. lcd_clear(); 595. while(g==0) 596. { 597. if(airmasuk==1) 598. { 599. lcd_gotoxy(0,0); 600. lcd_putsf("Pintu Masuk Air Terbuka, Tutup?"); 601. } 602. else 603. { 604. lcd_gotoxy(0,0); 605. lcd_putsf("Pintu Masuk Air Tertutup, Buka?"); 606. } 607. if(PINF.0==1) 608. { 609. delay_ms(400); 610. airmasuk=logika^airmasuk; 611. pintumasuk=airmasuk; 612. lcd_clear(); 613. } 614. cekkendali(); 615. if(PINF.1==1) {g++;} 616. if(PINF.3==1) {z++;g=4;} 617. } 618. lcd_clear(); 619. delay_ms(400); 620. airkeluar=pintukeluar; 621. while(g==1) 622. { 623. if(airkeluar==1) 624. { 625. lcd_gotoxy(0,0); 626. lcd_putsf("Pintu Keluar AirTerbuka, Tutup?"); 627. } 628. else 629. { 630. lcd_gotoxy(0,0); 631. lcd_putsf("Pintu Keluar AirTertutup, Buka?"); 632. } 633. if(PINF.0==1) 634. { 635. delay_ms(400); 636. airkeluar=logika^airkeluar; 637. lcd_clear(); 638. pintukeluar=airkeluar; 639. } 640. cekkendali(); 641. if(PINF.1==1) {g++;} 642. if(PINF.3==1) {z++;g=4;} 643. } 644. lcd_clear(); 645. delay_ms(400); 646. pompa=pompaair; 647. while(g==2) 648. { 649. if(pompa==1) 650. { 651. lcd_gotoxy(0,0); 652. lcd_putsf("Pompa Air ON,"); 653. lcd_gotoxy(0,1); 654. lcd_putsf("OFF?"); 655. } 656. else 657. { 658. lcd_gotoxy(0,0); 659. lcd_putsf("Pompa Air OFF,"); 660. lcd_gotoxy(0,1); 661. lcd_putsf("ON?"); 662. } 663. if(PINF.0==1) 664. { 665. delay_ms(400); 666. pompa=logika^pompa; 667. lcd_clear(); 668. pompaair=pompa; 669. } 670. cekkendali(); 671. if(PINF.1==1) {g++;} 672. if(PINF.3==1) {z++;g=4;} 673. } 674. lcd_clear(); 675. delay_ms(400); 676. aerator=pompaaerator; 677. while(g==3) 678. { L11 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 679. if(aerator==1) 680. { 681. lcd_gotoxy(0,0); 682. lcd_putsf("Pompa Aerator ON, OFF?"); 683. } 684. else 685. { 686. lcd_gotoxy(0,0); 687. lcd_putsf("Pompa Aerator OFF, ON?"); 688. } 689. if(PINF.0==1) 690. { 691. delay_ms(400); 692. aerator=logika^aerator; 693. lcd_clear(); 694. pompaaerator=aerator; 695. } 696. cekkendali(); 697. if(PINF.1==1) {g=0;} 698. if(PINF.3==1) {z++;g=4;} 699. } 700. } 701. } 702. void reset_batas_kendali() 703. { 704. lcd_clear(); delay_ms(200); 705. suhu_atas=28; 706. suhu_bawah=18; 707. asam_atas=8; 708. asam_bawah=5; 709. batas_keruh=38; 710. batas_konduktivitas=48; 711. batas_oksigen=5; 712. lcd_gotoxy(0,0); 713. lcd_putsf("Berhasil Reset"); 714. } 715. void menu() 716. { 717. a=0; b=0; 718. while (b==0) 719. { 720. lcd_clear(); 721. //delay_ms(200); 722. while (a==0) 723. { 724. lcd_gotoxy(0,0); 725. lcd_putsf("Atur Jam?"); 726. delay_ms(200); 727. if (PINF.0==1) { ubahjam(); } 728. if (PINF.1==1) { a++; delay_ms(200);} 729. if (PINF.2==1) { a=9; delay_ms(200);} 730. if (PINF.3==1) { a=30; b=1; delay_ms(200);} L12 731. } 732. lcd_clear(); 733. //delay_ms(200); 734. while (a==1) 735. { 736. lcd_gotoxy(0,0); 737. lcd_putsf("Edit Jadwal?"); 738. e=jadwal; 739. lcd_gotoxy(0,1); 740. sprintf(temp,"%d menit",e); 741. lcd_puts(temp); 742. if (PINF.0==1) { jadwalkirim();} 743. if (PINF.1==1) { a++; delay_ms(200);} 744. if (PINF.2==1) { a--; delay_ms(200);} 745. if (PINF.3==1) { a=30; b=1; delay_ms(200);} 746. } 747. lcd_clear(); 748. //delay_ms(200); 749. lcd_gotoxy(0,0); 750. lcd_putsf("Ambil Data Suhu?"); 751. while (a==2) 752. { 753. if (PINF.0==1) 754. { 755. lcd_clear(); delay_ms(200); 756. datasuhu(); 757. lcd_gotoxy(0,0); 758. sprintf(tampildata,"Suhu = %s",tsuhu); 759. lcd_puts(tampildata); 760. lcd_gotoxy(11,1); 761. lcd_putsf("Lagi?"); 762. } 763. if (PINF.1==1) { a++; delay_ms(200);} 764. if (PINF.2==1) { a--; delay_ms(200);} 765. if (PINF.3==1) { a=30; b=1; delay_ms(200);} 766. } 767. lcd_clear(); 768. //delay_ms(200); 769. lcd_gotoxy(0,0); 770. lcd_putsf("Ambil Data"); 771. lcd_gotoxy(0,1); 772. lcd_putsf("Keasaman?"); 773. while (a==3) 774. { 775. if (PINF.0==1) 776. { 777. lcd_clear(); delay_ms(200); 778. datakeasaman(); 779. lcd_gotoxy(0,0); 780. sprintf(tampildata,"Keasaman = %s",tkeasaman); PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 781. lcd_puts(tampildata); 782. lcd_gotoxy(11,1); 783. lcd_putsf("Lagi?"); 784. } 785. if (PINF.1==1) { a++; delay_ms(200);} 786. if (PINF.2==1) { a--; delay_ms(200);} 787. if (PINF.3==1) { a=30; b=1; delay_ms(200);} 788. } 789. lcd_clear(); 790. //delay_ms(200); 791. lcd_gotoxy(0,0); 792. lcd_putsf("Ambil Data"); 793. lcd_gotoxy(0,1); 794. lcd_putsf("Oksigen?"); 795. while (a==4) 796. { 797. if (PINF.0==1) 798. { 799. lcd_clear(); delay_ms(200); 800. dataoksigen(); 801. lcd_gotoxy(0,0); 802. sprintf(tampildata,"Oksigen = %s",toksigen); 803. lcd_puts(tampildata); 804. lcd_gotoxy(11,1); 805. lcd_putsf("Lagi?"); 806. } 807. if (PINF.1==1) { a++; delay_ms(200);} 808. if (PINF.2==1) { a--; delay_ms(200);} 809. if (PINF.3==1) { a=30; b=1; delay_ms(200);} 810. } 811. lcd_clear(); 812. //delay_ms(200); 813. lcd_gotoxy(0,0); 814. lcd_putsf("Ambil Data"); 815. lcd_gotoxy(0,1); 816. lcd_putsf("Kekeruhan?"); 817. while (a==5) 818. { 819. if (PINF.0==1) 820. { 821. lcd_clear(); delay_ms(200); 822. datakekeruhan(); 823. lcd_gotoxy(0,0); 824. sprintf(tampildata,"Kekeruhan = %s",tkekeruhan); 825. lcd_puts(tampildata); 826. lcd_gotoxy(11,1); 827. lcd_putsf("Lagi?"); 828. } 829. if (PINF.1==1) { a++; delay_ms(200);} L13 830. if (PINF.2==1) { a--; delay_ms(200);} 831. if (PINF.3==1) { a=30; b=1; delay_ms(200);} 832. } 833. lcd_clear(); 834. //delay_ms(200); 835. lcd_gotoxy(0,0); 836. lcd_putsf("Ambil Data"); 837. lcd_gotoxy(0,1); 838. lcd_putsf("Konduktivitas?"); 839. while (a==6) 840. { 841. if (PINF.0==1) 842. { 843. lcd_clear(); delay_ms(200); 844. datakonduktivitas(); 845. lcd_gotoxy(0,0); 846. sprintf(tampildata,"konduktivitas = %s",tkonduktivitas); 847. lcd_puts(tampildata); 848. lcd_gotoxy(11,1); 849. lcd_putsf("Lagi?"); 850. } 851. if (PINF.1==1) { a++; delay_ms(200);} 852. if (PINF.2==1) { a--; delay_ms(200);} 853. if (PINF.3==1) { a=30; b=1; delay_ms(200);} 854. } 855. lcd_clear(); 856. //delay_ms(200); 857. lcd_gotoxy(0,0); 858. lcd_putsf("Ambil Paket"); 859. lcd_gotoxy(0,1); 860. lcd_putsf("Data?"); 861. while (a==7) 862. { 863. if (PINF.0==1) 864. { 865. lcd_clear(); delay_ms(200); 866. paketdata(); 867. lcd_gotoxy(0,0); 868. sprintf(tampildata,"S%s P%s D%s H%s O%s",tsuhu,tkeasaman,toksigen,tkekeruha n,tkonduktivitas); 869. lcd_puts(tampildata); 870. lcd_gotoxy(11,1); 871. lcd_putsf("Lagi?"); 872. } 873. if (PINF.1==1) { a++; delay_ms(200);} 874. if (PINF.2==1) { a--; delay_ms(200);} 875. if (PINF.3==1) { a=30; b=1; delay_ms(200);} 876. } PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 877. lcd_clear(); 878. //delay_ms(200); 879. lcd_gotoxy(0,0); 880. lcd_putsf("Reset Batasan "); 881. lcd_gotoxy(0,1); 882. lcd_putsf("Kendali?"); 883. while (a==8) 884. { 885. if (PINF.0==1) 886. { 887. reset_batas_kendali(); 888. } 889. if (PINF.1==1) { a++; delay_ms(200);} 890. if (PINF.2==1) { a--; delay_ms(200);} 891. if (PINF.3==1) { a=30; b=1; delay_ms(200);} 892. } 893. lcd_clear(); 894. //delay_ms(200); 895. while (a==9) 896. { 897. lcd_gotoxy(0,0); 898. lcd_putsf("METODE KENDALI?"); 899. if(keputusan==1) 900. { 901. lcd_gotoxy(0,1); 902. lcd_putsf("OTOMATIS"); 903. } 904. else 905. { 906. lcd_gotoxy(0,1); 907. lcd_putsf("MANUAL"); 908. } 909. if (PINF.0==1) { keputusan=keputusan^logika; lcd_clear(); delay_ms(200);} 910. if (PINF.1==1) { a=0; delay_ms(200);} 911. if (PINF.2==1) { a--; delay_ms(200);} 912. if (PINF.3==1) { a=30; b=1; delay_ms(200);} 913. } 914. } 915. lcd_clear(); 916. } 917. void tampilstatus() 918. { 919. lcd_gotoxy(9,0); 920. lcd_putsf("K L M N"); 921. lcd_gotoxy(9,1); 922. sprintf(temp,"%d %d %d %d",pintumasuk, pintukeluar, pompaair, pompaaerator); 923. lcd_puts(temp); 924. } L14 925. // External Interrupt 0 service routine 926. interrupt [EXT_INT0] void ext_int0_isr(void) 927. { 928. lcd_clear(); 929. menu(); 930. lcd_clear(); 931. } 932. void kirim() 933. { 934. yy=0; 935. for (a=0;a<2;a++) 936. { 937. xx=45; 938. for (i=0;i<xx;i++) 939. { 940. RFXX_WRT_CMD(0xC039);//START TX 941. RF02B_SEND(0xAA);//PREAMBLE 942. RF02B_SEND(0xAA);//PREAMBLE 943. RF02B_SEND(0xAA);//PREAMBLE 944. RF02B_SEND(0x2D);//HEAD HI BYTE 945. RF02B_SEND(0xD4);//HEAD LOW BYTE 946. RF02B_SEND(data_rf[i]);//Kirim Data 0 947. RF02B_SEND(0xAA);//DUMMY BYTE 948. RF02B_SEND(0xAA);//DUMMY BYTE 949. RF02B_SEND(0xAA);//DUMMY BYTE 950. RFXX_WRT_CMD(0xC001);//CLOSE TX 951. delay_ms(10); 952. if (data_rf[i]=='$') 953. { 954. xx=i+1; 955. yy=yy+1; 956. } 957. } 958. delay_ms(3000); 959. data_rf[0]='2'; 960. if(yy==1) 961. { 962. lcd_clear(); 963. lcd_gotoxy(0,0); 964. lcd_putsf(" Kirim Paket 1"); 965. delay_ms(700); 966. lcd_clear(); 967. } 968. }; 969. if(yy==2) 970. { 971. lcd_clear(); 972. lcd_gotoxy(0,0); 973. lcd_putsf(" Kirim Paket 2"); PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 974. delay_ms(700); 975. lcd_clear(); 976. } 977. } 978. // Declare your global variables here 979. void main(void) 980. { 981. // Declare your local variables here 982. // Input/Output Ports initialization 983. // Port A initialization 984. // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 985. // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 986. PORTA=0x00; 987. DDRA=0x00; 988. // Port B initialization 989. // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 990. // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 991. PORTB=0x00; 992. DDRB=0x00; 993. // Port C initialization 994. // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 995. // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 996. PORTC=0x00; 997. DDRC=0x00; 998. // Port D initialization 999. // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 1000. // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 1001. PORTD=0x00; 1002. DDRD=0x00; 1003. // Port E initialization 1004. // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 1005. // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 1006. PORTE=0x00; 1007. DDRE=0xFF; 1008. // Port F initialization L15 1009. // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 1010. // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 1011. PORTF=0x00; 1012. DDRF=0xF0; 1013. // Port G initialization 1014. // Func4=In Func3=In Func2=In Func1=In Func0=In 1015. // State4=T State3=T State2=T State1=T State0=T 1016. PORTG=0x00; 1017. DDRG=0x00; 1018. 1019. 1020. 1021. 1022. 1023. 1024. 1025. 1026. 1027. 1028. 1029. 1030. 1031. 1032. 1033. 1034. 1035. 1036. 1037. 1038. 1039. Off 1040. Off 1041. Off 1042. 1043. 1044. 1045. 1046. 1047. 1048. 1049. 1050. // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected ASSR=0x00; TCCR0=0x00; TCNT0=0x00; OCR0=0x00; /* // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 7.813 kHz // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // OC1C output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: On // Input Capture Interrupt: Off // Compare A Match Interrupt: // Compare B Match Interrupt: // Compare C Match Interrupt: TCCR1A=0x00; TCCR1B=0x05; TCNT1H=0xE1; TCNT1L=0x7B; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1051. OCR1BL=0x00; 1052. OCR1CH=0x00; 1053. OCR1CL=0x00; 1054. */ 1055. // Timer/Counter 2 initialization 1056. // Clock source: System Clock 1057. // Clock value: Timer2 Stopped 1058. // Mode: Normal top=0xFF 1059. // OC2 output: Disconnected 1060. TCCR2=0x00; 1061. TCNT2=0x00; 1062. OCR2=0x00; 1063. // Timer/Counter 3 initialization 1064. // Clock source: System Clock 1065. // Clock value: Timer3 Stopped 1066. // Mode: Normal top=0xFFFF 1067. // OC3A output: Discon. 1068. // OC3B output: Discon. 1069. // OC3C output: Discon. 1070. // Noise Canceler: Off 1071. // Input Capture on Falling Edge 1072. // Timer3 Overflow Interrupt: Off 1073. // Input Capture Interrupt: Off 1074. // Compare A Match Interrupt: Off 1075. // Compare B Match Interrupt: Off 1076. // Compare C Match Interrupt: Off 1077. TCCR3A=0x00; 1078. TCCR3B=0x00; 1079. TCNT3H=0x00; 1080. TCNT3L=0x00; 1081. ICR3H=0x00; 1082. ICR3L=0x00; 1083. OCR3AH=0x00; 1084. OCR3AL=0x00; 1085. OCR3BH=0x00; 1086. OCR3BL=0x00; 1087. OCR3CH=0x00; 1088. OCR3CL=0x00; 1089. // External Interrupt(s) initialization 1090. // INT0: On 1091. // INT0 Mode: Falling Edge 1092. // INT1: Off 1093. // INT2: Off 1094. // INT3: Off 1095. // INT4: Off 1096. // INT5: Off 1097. // INT6: Off 1098. // INT7: Off 1099. EICRA=0x02; L16 1100. EICRB=0x00; 1101. EIMSK=0x01; 1102. EIFR=0x01; 1103. // Timer(s)/Counter(s) Interrupt(s) initialization 1104. TIMSK=0x00; 1105. ETIMSK=0x00; 1106. // USART0 initialization 1107. // Communication Parameters: 8 Data, 1 Stop, No Parity 1108. // USART0 Receiver: Off 1109. // USART0 Transmitter: On 1110. // USART0 Mode: Asynchronous 1111. // USART0 Baud Rate: 9600 1112. UCSR0A=0x00; 1113. UCSR0B=0x08; 1114. UCSR0C=0x06; 1115. UBRR0H=0x00; 1116. UBRR0L=0x33; 1117. // USART1 initialization 1118. // USART1 disabled 1119. UCSR1B=0x00; 1120. // Analog Comparator initialization 1121. // Analog Comparator: Off 1122. // Analog Comparator Input Capture by Timer/Counter 1: Off 1123. ACSR=0x80; 1124. SFIOR=0x00; 1125. // ADC initialization 1126. // ADC disabled 1127. ADCSRA=0x00; 1128. // SPI initialization 1129. // SPI disabled 1130. SPCR=0x00; 1131. // TWI initialization 1132. // TWI disabled 1133. TWCR=0x00; 1134. // I2C Bus initialization 1135. // I2C Port: PORTB 1136. // I2C SDA bit: 0 1137. // I2C SCL bit: 1 1138. // Bit Rate: 100 kHz 1139. // Note: I2C settings are specified in the 1140. // Project|Configure|C Compiler|Libraries|I2C menu. 1141. i2c_init(); 1142. // DS1307 Real Time Clock initialization PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1143. // Square wave output on pin SQW/OUT: Off 1144. // SQW/OUT pin state: 0 1145. rtc_init(0,0,0); 1146. // Alphanumeric LCD initialization 1147. // Connections are specified in the 1148. // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: 1149. // RS - PORTC Bit 0 1150. // RD - PORTC Bit 1 1151. // EN - PORTC Bit 2 1152. // D4 - PORTC Bit 4 1153. // D5 - PORTC Bit 5 1154. // D6 - PORTC Bit 6 1155. // D7 - PORTC Bit 7 1156. // Characters/line: 16 1157. lcd_init(16); 1158. logika=1; 1159. total=0; 1160. cekkendali(); 1161. rtc_get_time(&h,&m,&s); 1162. mm=m; 1163. askirim_data(); 1164. PORTB|=(1<<RFXX_DATA); 1165. DDRB|=(1<<RFXX_DATA);//SE T DATA OUTPUT 1166. PORTF=0x00; 1167. terima_data(); 1168. DDRE&=~(1<<3); 1169. // Global enable interrupts 1170. #asm("sei") 1171. k_kendali=kond_kendali=1; 1172. k_oksigen=kond_oksigen=1; 1173. while (1) 1174. { 1175. rtc_get_time(&h,&m,&s); // mengakses jam 1176. rtc_get_date(&w,&d,&mo,&y); //mengakses tanggal 1177. tampiljam(); 1178. if(total!=ttotal) 1179. { 1180. paketdata(); 1181. } 1182. ttotal=total; 1183. if(keputusan==1) 1184. { 1185. kendali(); 1186. } L17 1187. cekkendali(); 1188. tampilstatus(); 1189. if ((total==jadwal)||(kond_kendali!=k_kendal i)||(kond_oksigen!=k_oksigen)) 1190. { 1191. paketdata(); 1192. lcd_clear(); 1193. sprintf(data_rf,"1@S%s#P%s#D %s#H%s#O%s#K%d#L%d#M%d#N%d#$ ",tsuhu,tkeasaman,toksigen,tkekeruhan,tko nduktivitas,pintumasuk, pintukeluar, pompaair, pompaaerator); 1194. lcd_gotoxy(0,0); 1195. lcd_putsf(" Kirim Paket "); 1196. lcd_gotoxy(0,1); 1197. lcd_putsf(" DATA "); 1198. delay_ms(2000); 1199. lcd_clear(); 1200. kirim(); 1201. total=0; 1202. } 1203. k_kendali=kond_kendali; 1204. k_oksigen=kond_oksigen; 1205. //Terima Data dari Sentral unit 1206. while(!(PINE&(1<<3))) //polling the nIRQ 1207. { 1208. DATA[0]=RF01_RDFIFO(); //read FIFO data 1209. RFXX1_WRT_CMD(0xCE88); //reset FIFO for next frame recognition 1210. RFXX1_WRT_CMD(0xCE8B); 1211. if(DATA[0]=='@') 1212. { 1213. i=1; 1214. x=10; 1215. while(i<x) 1216. { 1217. RF_RXBUF[0]=DATA[0]; 1218. while(!(PINE&(1<<3))) //polling the nIRQ data 1219. { 1220. RF_RXBUF[i]=RF01_RDFIFO(); //read FIFO data 1221. RFXX1_WRT_CMD(0xCE88); //reset FIFO for next frame recognition 1222. RFXX1_WRT_CMD(0xCE8B); 1223. i++; 1224. } 1225. if(RF_RXBUF[1]=='J') {x=5;} 1226. if(RF_RXBUF[1]=='V') {x=8;} 1227. if(RF_RXBUF[1]=='W') {x=6;} PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1228. if(RF_RXBUF[1]=='X') {x=4;} 1229. if(RF_RXBUF[1]=='Y') {x=6;} 1230. if(RF_RXBUF[1]=='Z') {x=7;} 1231. if(RF_RXBUF[1]=='R') {x=3;} 1232. if((RF_RXBUF[1]=='A')||(RF_R XBUF[1]=='B')||(RF_RXBUF[1]=='C')||(R F_RXBUF[1]=='D')||(RF_RXBUF[1]=='E' )||(RF_RXBUF[1]=='U')) {x=3;} 1233. } 1234. if(RF_RXBUF[1]=='J') 1235. { 1236. sprintf(jam,"%c%c",RF_RXBUF[ 2],RF_RXBUF[3]); 1237. j=atoi(jam); 1238. jadwal=j; 1239. } 1240. if(RF_RXBUF[1]=='V') 1241. { 1242. sprintf(buff,"%c%c",RF_RXBUF [2],RF_RXBUF[3]); 1243. j=atoi(buff); 1244. suhu_bawah=j; 1245. sprintf(buff,"%c%c",RF_RXBUF [5],RF_RXBUF[6]); 1246. j=atoi(buff); 1247. suhu_atas=j; 1248. } 1249. if(RF_RXBUF[1]=='W') 1250. { 1251. sprintf(buff,"%c",RF_RXBUF[2]) ; 1252. j=atoi(buff); 1253. asam_bawah=j; 1254. sprintf(buff,"%c",RF_RXBUF[4]) ; 1255. j=atoi(buff); 1256. asam_atas=j; 1257. } 1258. if(RF_RXBUF[1]=='X') 1259. { 1260. sprintf(buff,"%c%c",RF_RXBUF [2],RF_RXBUF[3]); 1261. j=atoi(buff); 1262. batas_oksigen=j; 1263. } 1264. if(RF_RXBUF[1]=='Y') 1265. { 1266. sprintf(buff,"%c%c",RF_RXBUF [2],RF_RXBUF[3]); 1267. j=atoi(buff); 1268. batas_keruh=j; 1269. } 1270. if(RF_RXBUF[1]=='Z') L18 1271. { 1272. sprintf(buff,"%c%c",RF_RXBUF [2],RF_RXBUF[3]); 1273. j=atoi(buff); 1274. batas_konduktivitas=j; 1275. } 1276. lcd_clear(); 1277. lcd_gotoxy(0,0); 1278. lcd_puts(RF_RXBUF); 1279. delay_ms(2000); 1280. lcd_clear(); 1281. if((RF_RXBUF[1]=='A')||(RF_R XBUF[1]=='B')||(RF_RXBUF[1]=='C')||(R F_RXBUF[1]=='D')||(RF_RXBUF[1]=='E' )||(RF_RXBUF[1]=='U')) 1282. { 1283. if(RF_RXBUF[1]=='A') 1284. { 1285. datasuhu(); 1286. lcd_clear(); 1287. sprintf(data_rf,"1@AS%s#$",tsuh u); 1288. lcd_gotoxy(0,0); 1289. lcd_putsf(" Kirim Data "); 1290. lcd_gotoxy(0,1); 1291. lcd_putsf(" Suhu "); 1292. delay_ms(2000);lcd_clear(); 1293. kirim(); 1294. } 1295. if(RF_RXBUF[1]=='B') 1296. { 1297. datakeasaman(); 1298. lcd_clear(); 1299. sprintf(data_rf,"1@BP%s#$",tkea saman); 1300. lcd_gotoxy(0,0); 1301. lcd_putsf(" Kirim Data "); 1302. lcd_gotoxy(0,1); 1303. lcd_putsf(" Keasaman "); 1304. delay_ms(2000); 1305. lcd_clear(); 1306. kirim(); 1307. } 1308. if(RF_RXBUF[1]=='C') 1309. { 1310. dataoksigen(); 1311. lcd_clear(); 1312. sprintf(data_rf,"1@CD%s#$",toks igen); 1313. lcd_gotoxy(0,0); 1314. lcd_putsf(" Kirim Data "); 1315. lcd_gotoxy(0,1); 1316. lcd_putsf(" Oksigen "); PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1317. delay_ms(2000); 1318. lcd_clear(); 1319. kirim(); 1320. } 1321. if(RF_RXBUF[1]=='D') 1322. { 1323. datakekeruhan(); 1324. lcd_clear(); 1325. sprintf(data_rf,"1@DH%s#$",tke keruhan); 1326. lcd_gotoxy(0,0); 1327. lcd_putsf(" Kirim Data "); 1328. lcd_gotoxy(0,1); 1329. lcd_putsf(" Kekeruhan "); 1330. delay_ms(2000); 1331. lcd_clear(); 1332. kirim(); 1333. } 1334. if(RF_RXBUF[1]=='E') 1335. { 1336. datakonduktivitas(); 1337. lcd_clear(); 1338. sprintf(data_rf,"1@EO%s#$",tko nduktivitas); 1339. lcd_gotoxy(0,0); 1340. lcd_putsf(" Kirim Data "); 1341. lcd_gotoxy(0,1); 1342. lcd_putsf(" Konduktivitas "); 1343. delay_ms(2000); 1344. lcd_clear(); 1345. kirim(); 1346. } 1347. if(RF_RXBUF[1]=='U') 1348. { 1349. lcd_clear(); 1350. sprintf(data_rf,"1@S%s#P%s#D %s#H%s#O%s#K%d#L%d#M%d#N%d#$ ",tsuhu,tkeasaman,toksigen,tkekeruhan,tko nduktivitas,pintumasuk, pintukeluar, pompaair, pompaaerator); 1351. lcd_gotoxy(0,0); 1352. lcd_putsf(" Kirim Ulang "); 1353. lcd_gotoxy(0,1); 1354. lcd_putsf(" Paket Data "); 1355. delay_ms(4000); 1356. lcd_clear(); 1357. kirim(); 1358. total=0; 1359. } 1360. } 1361. if(RF_RXBUF[1]=='R') 1362. { 1363. reset_batas_kendali(); L19 1364. 1365. 1366. 1367. } sprintf(RF_RXBUF," } } 1368. 1369. 1370. 1371. 1372. 1373. 1374. 1375. 1376. 1377. 1378. 1379. "); 1380. 1381. 1382. 1383. while(PINF.3==1) { if (keputusan==0) { lcd_clear(); atursistemkendali(); } if(keputusan==1) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(" AKSES DITOLAK! "); delay_ms(2000); lcd_clear(); } } 1384. while(PINF.2==1) 1385. { 1386. lcd_clear(); 1387. lcd_gotoxy(0,0); 1388. sprintf(temp,"SB=%d SA=%d",suhu_bawah,suhu_atas); 1389. lcd_puts(temp); 1390. lcd_gotoxy(0,1); 1391. sprintf(temp,"AB=%d AA=%d,",asam_bawah,asam_atas); 1392. lcd_puts(temp); 1393. delay_ms(3000); 1394. lcd_clear(); 1395. lcd_gotoxy(0,0); 1396. sprintf(temp,"BK=%d BD=%d",batas_keruh*10,batas_konduktiv itas*100); 1397. lcd_puts(temp); 1398. lcd_gotoxy(0,1); 1399. sprintf(temp,"BO=%d",batas_oksi gen); 1400. lcd_puts(temp); 1401. delay_ms(3000); 1402. lcd_clear(); 1403. } 1404. } 1405. } PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L20 LAMPIRAN D Listing Program Sensor 1. /****************************** *********************** 2. This program was produced by the 3. CodeWizardAVR V2.05.3 Standard 4. Automatic Program Generator 5. © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l. 6. http://www.hpinfotech.com 28. int ssensor1, ssensor2, ssensor3, ssensor4, ssensor5; 29. 30. 31. 32. bit logika, keadaan; eeprom unsigned int simpankeadaan; int second, second1, second2, input, i; char a1, a2, a3, a4, a5, z1, z2, z3, z4, z5; 13. Chip type : ATmega32 14. Program type : Application 15. AVR Core Clock frequency: 12.000000 MHz 16. Memory model : Small 17. External RAM size :0 18. Data Stack size : 512 19. ******************************* **********************/ 33. int data1[]={15,0,16,5,18,0,19,5,21,0,22,5 ,24,0,25,5,27,0,28,5,30,0,31,5,33,0,34, 5,36,0,37,5,39,0}; 34. int data2[]={4,0,4,5,5,0,5,5,6,0,6,5,7,0,7,5 ,8,0,8,5,9,0,9,5,10,0,10,5}; 35. int data3[]={3,0,3,5,4,0,4,5,5,0,5,5,6,0,6,5 ,7,0,7,5,8,0,8,5,9,0,9,5}; 36. int data4[]={2,5,5,0,7,5,10,0,12,5,15,0,17, 5,20,0,22,5,25,0,27,5,30,0,32,5,35,0,3 7,5,40,0,42,5,45,0,47,5}; 37. int data5[]={2,0,5,5,9,0,12,5,16,0,19,5,23, 0,26,5,30,0,33,5,37,0,40,5,44,0,47,5,5 1,0,54,5,58,0}; 20. #include <mega32.h> 38. #define ADC_VREF_TYPE 0x20 21. // Alphanumeric LCD functions 22. #include <alcd.h> 39. // Read the 8 most significant bits 40. // of the AD conversion result 41. unsigned char read_adc(unsigned char adc_input) 42. { 43. ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); 44. // Delay needed for the stabilization of the ADC input voltage 45. delay_us(10); 46. // Start the AD conversion 47. ADCSRA|=0x40; 7. 8. 9. 10. 11. 12. Project : Version : Date : 8/10/2015 Author : jeff Company : Comments: 23. #include <stdlib.h> 24. #include <delay.h> 25. #include <stdio.h> 26. unsigned char temp1[5],temp2[5],temp3[5],temp4[5 ],temp5[5], tampilkeadaan[3]; 27. int sensor1, sensor2, sensor3, sensor4, sensor5; PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 48. // Wait for the AD conversion to complete 49. while ((ADCSRA & 0x10)==0); 50. ADCSRA|=0x10; 51. return ADCH; 52. } 53. // Timer 1 overflow interrupt service routine 54. interrupt [TIM1_OVF] void timer1_ovf_isr(void) 55. { 56. TCNT1H=0xD23A >> 8; 57. TCNT1L=0xD23A & 0xff; 58. second++; //setelah 1 detik increament data 59. second1++; 60. second2++; 61. } 62. // Declare your global variables here 63. 64. 65. 66. 67. void tampildata() { sprintf(tampilkeadaan,"%d",keadaan); lcd_gotoxy(15,1); lcd_puts(tampilkeadaan); 68. if(PINA.7==1) 69. { a. delay_ms(400); b. keadaan=logika^keadaan; c. lcd_clear(); d. simpankeadaan=keadaan; 70. } L21 80. if(sensor1>17){sensor1=17;} 81. if(sensor1<1){sensor1=1;} 82. if(sensor2>14){sensor2=14;} 83. if(sensor2<1){sensor2=1;} 84. if(sensor3>14){sensor3=14;} 85. if(sensor3<1){sensor3=1;} 86. if(sensor4>19){sensor4=19;} 87. if(sensor4<1){sensor4=1;} 88. if(sensor5>17){sensor5=17;} 89. if(sensor5<1){sensor5=1;} 90. } 91. 92. 93. 94. else if (keadaan==0) { if(second==5) { a. sensor1++; sensor2++; sensor5++; second=0; 95. } 96. if(second1==7) 97. { a. sensor3++; second1=0; 98. } 99. if(second2==9) 100. { a. sensor4++; second2=0; 101. } a. TIMSK=0x04; 71. 72. 73. 74. 75. 76. 77. if (keadaan==1) { sensor1=read_adc(0)/10; sensor2=read_adc(1)/10; sensor3=read_adc(2)/10; sensor4=read_adc(3)/10; sensor5=read_adc(4)/10; 78. second=0; 79. TIMSK=0x00; b. if(sensor1>17){sensor1=1;lcd_ clear();} c. if(sensor2>14){sensor2=1;lcd_ clear();} d. if(sensor3>14){sensor3=1;lcd_ clear();} e. if(sensor4>19){sensor4=1;lcd_ clear();} f. if(sensor5>17){sensor5=1;lcd_ clear();} PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 102. } 103. z1=0; for (a1=1; a1<sensor1; a1++) { z1=z1+2; } 104. z2=0; for (a2=1; a2<sensor2; a2++) { z2=z2+2; } 105. z3=0; for (a3=1; a3<sensor3; a3++) { z3=z3+2; } 106. z4=0; for (a4=1; a4<sensor4; a4++) { z4=z4+2; } 107. z5=0; for (a5=1; a5<sensor5; a5++) { z5=z5+2; } 108. sprintf(temp1,"S%d.%d",data1 [z1],data1[z1+1]); 109. lcd_gotoxy(0,0) ; 110. lcd_puts(temp1); 111. sprintf(temp2,"P%d.%d",data2 [z2],data2[z2+1]); 112. lcd_gotoxy(6,0) ; 113. lcd_puts(temp2); 114. sprintf(temp3,"D%d.%d",data 3[z3],data3[z3+1]); 115. lcd_gotoxy(12,0) ; 116. lcd_puts(temp3); 117. sprintf(temp4,"H%d%d",data4 [z4],data4[z4+1]); 118. lcd_gotoxy(2,1) ; 119. lcd_puts(temp4); 120. sprintf(temp5,"O%d%d0",data 5[z5],data5[z5+1]); 121. lcd_gotoxy(8,1) ; 122. lcd_puts(temp5); 123. if((ssensor1!=sensor1)||(ssens or2!=sensor2)||(ssensor3!=sensor3)|| (ssensor4!=sensor4)||(ssensor5!=sens or5)) 124. {lcd_clear();} 125. ssensor1=sensor1; 126. ssensor2=sensor2; 127. ssensor3=sensor3; 128. 129. 130. ssensor4=sensor4; ssensor5=sensor5; } 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. void ambil() { input = getchar(); if(input=='a') { UCSRB=0x08; delay_ms(10); for(i=0;i<=4;i++) {putchar(temp1[i]);} putchar('#'); UCSRB=0x10; } if(input=='b') { UCSRB=0x08; delay_ms(10); for(i=0;i<=4;i++) {putchar(temp2[i]);} putchar('#'); UCSRB=0x10; } if(input=='c') { UCSRB=0x08; delay_ms(10); for(i=0;i<=4;i++) {putchar(temp3[i]);} putchar('#'); UCSRB=0x10; } if(input=='d') { UCSRB=0x08; delay_ms(10); for(i=0;i<=4;i++) {putchar(temp4[i]);} putchar('#'); UCSRB=0x10; } if(input=='e') { UCSRB=0x08; L22 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 173. 174. 175. 176. 177. 178. delay_ms(10); for(i=0;i<=4;i++) {putchar(temp5[i]);} putchar('#'); UCSRB=0x10; } 179. } 180. 181. void main(void) { 182. DDRA=0x80; 183. DDRD=0x04; 184. // ADC initialization 185. // ADC Clock frequency: 750.000 kHz 186. // ADC Voltage Reference: AREF pin 187. // Only the 8 most significant bits of 188. // the AD conversion result are used 189. ADMUX=ADC_VREF_TYPE & 0xff; 190. ADCSRA=0x84; 191. // Timer/Counter 1 initialization 192. // Clock source: System Clock 193. // Clock value: 11.719 kHz 194. // Mode: Normal top=FFFFh 195. // OC1A output: Discon. 196. // OC1B output: Discon. 197. // Noise Canceler: Off 198. // Input Capture on Falling Edge 199. // Timer 1 Overflow Interrupt: On 200. // Input Capture Interrupt: Off 201. // Compare A Match Interrupt: Off 202. Off 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. L23 // Compare B Match Interrupt: TCCR1A=0x00; TCCR1B=0x05; TCNT1H=0xD2; TCNT1L=0x3A; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; 213. // Timer(s)/Counter(s) Interrupt(s) initialization 214. TIMSK=0x04; 215. // USART initialization 216. // Communication Parameters: 8 Data, 1 Stop, No Parity 217. // USART Receiver: On 218. // USART Transmitter: Off 219. // USART Mode: Asynchronous 220. // USART Baud Rate: 9600 221. UCSRA=0x00; 222. UCSRB=0x10; 223. UCSRC=0x86; 224. UBRRH=0x00; 225. UBRRL=0x4D; 226. // Alphanumeric LCD initialization 227. // Connections are specified in the 228. // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: 229. // RS - PORTC Bit 0 230. // RD - PORTC Bit 1 231. // EN - PORTC Bit 2 232. // D4 - PORTC Bit 4 233. // D5 - PORTC Bit 5 234. // D6 - PORTC Bit 6 235. // D7 - PORTC Bit 7 236. // Characters/line: 16 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 237. lcd_init(16); 238. 239. // Global enable interrupts #asm("sei") 240. sensor1=sensor2=sensor3=sen sor4=sensor5=1; 241. logika=1; 242. keadaan=simpankeadaan; 243. 244. 245. while (1) { tampildata(); 246. 247. 248. 249. 250. 251. if (UCSRA.7==1) { ambil(); } } } L24 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LAMPIRAN E Pengujian Pengambilan Data Sensor Pengambilan data Keasaman Tidak terima data keasaman Pengambilan data Oksigen Tidak terima data Oksigen Pengambilan data Kekeruhan Tidak terima data Kekeruhan Pengambilan data Konduktivitas Tidak terima data Konduktivitas Pengambilan semua sensor Tidak terima data L25 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L26 Lampiran F Pengiriman Salah Satu Sensor Terima Karakter Keasaman: Terima Karakter Oksigen: Kirim Data Keasaman: Kirim Data Keasaman: Terima Data Keasaman di Sentral Unit: Terima Data Oksigen di Sentral Unit: PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Terima Karakter Kekeruhan: Kirim Data Keasaman: Terima Data Kekeruhan di Sentral Unit: L27 Terima Karakter Konduktivitas: Kirim Data Konduktivitas: Terima Data Konduktivitas di Sentral Unit: PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L27 LAMPIRAN G Pengujian Kedua Waktu RTC Pengaturan Jam Pengaturan Menit Pengaturan Tanggal Pengaturan Bulan Pengaturan Tahun Hasil Waktu RTC yang telah diubah PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Lampiran H Pengujian Pengendalian metode manual Kendali pintu keluar air terbuka Status kendali pintu air terbuka Kendali pompa air terbuka Status kendali pompa air terbuka Kendali pompa aerator terbuka Semua kendali terbuka Status kendali pompa aerator terbuka Semua status kendali terbuka L28 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L29 Lampiran I Pengujian Kendali Otomatis Data Sensor Keasaman dalam Data Sensor kekeruhan dan keadaan tidak normal oskigen dalam keadaan tidak normal Status Kendali tidak normal Status Kendali dan pompa Aerator tidak normal Kendali pada keadaan tidak normal Kendali dan Pompa Aerator Dalam keadaan tidak normal PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Data Sensor Konduktivitas dalam keadaan tidak normal Status Kendali tidak normal Kendali pada keadaan tidak normal L30 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Lampiran J Pengujian Kedua Jadwal Kirim Tampilan waktu sebelum Tampilan waktu jadwal Pengiriman paket data Pengiriman paket data Tampilan waktu setelah 10 menit Tampilan kirim paket data L31 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Lampiran K Pengujian Reset Batasan Kendali Tampilan batasan suhu dan keasaman Yang telah diubah sentral unit Batasan kekeruhan, konduktivitas dan Oksigen yang telah diubah sentral unit Tampilan berhasil reset batasan kendali Batasan suhu dan keasaman setelah melakukan reset Batasan kekeruhan, konduktivitas dan Oksigen setelah melakukan reset L32 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L33 LAMPIRAN L Cara Penggunaan Alat 1. Pasang Adaptor ke 220V atau listrik rumah. 2. Pasang kabel Adaptor ke socket sensor. 3. Pasang kabel power dari sensor ke terminal unit . 4. Sambungkan kabel RX dan TX terminal unit dan sensor. 5. Tekan tombol menu dan atur waktu RTC 6. Tekan tombol up, pada pilihan edit jadwal tekan OK dan tentukan waktu pengiriman. 7. Tekan tombol up dan tekan OK untuk melihat apakah terminal unit sudah bisa mengambil data dari sensor. 8. Tekan tombol UP sampai pilihan ambil semua data sensor, kemudia tekan OK untuk melihat apakah paket data bisa di ambil dari sensor. 9. Tekan Up dan OK untuk me-reset batasan kendali. 10. Tekan tombol UP dan OK untuk mengubah kendali menjadi otomatis. 11. Tekan tombol BACK sampai kembali ke tampilan utama. 12. Jika kendali manual maka pada tampilan untuk tekan tombol BACK untuk mengubah kendali yang ada. 13. Pada menu utama tekan tombol DOWN untuk melihat batasan masing-masing sensor. 14. Pengiriman paket data akan dikirimkan secara otomatis sesuai dengan waktu jadwal yang ditentukan, jika paket data tidak terkirim maka sentral unit akan mengirimkan perintah kirim ulang paket data dan secara otomatis terminal unit akan mengirim ulang paket data. 15. Pada bagian modul sensor terdapat push button untuk mengubah mode otomatis atau manual, jika 1 maka sensor pada mode manual. Jika pada mode manual, user dapat mengubahnya dengan memutar potensio yang telah disediakan. Namun jika 0 maka sensor pada mode otomatis dan sensor akan berubah secara otomatis. Pada mede otomatis ini potensio tidak bekerja. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LAMPIRAN F Proses Pengambilan Data L34