Kesimpulan Saran HASIL DAN PEMBAHASAN

L3 START Inisialisasi Apakah Karakter = “K” Ulang SELESAI Tidak Ya Ya Ya Tidak Data Kontrol Status = Ax,By,Cz, Tampilkan Data Kontrol Status Di LCD Terima Data Paket Gambar L.3 Diagram Alir Subrutin Pengiriman Data Kontrol Status PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L4 START Inisialisasi Apakah Karakter = “S” Ulang SELESAI Tidak Ya Ya Ya Tidak Data Suhu = S,data, Tampilkan Data Suhu Di LCD Terima Data Paket Gambar L.4 Diagram Alir Subrutin Pengiriman Data Suhu PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L5 START Inisialisasi Apakah Karakter = “U” Ulang SELESAI Tidak Ya Ya Ya Tidak Data Kelembaban Udara= U,data, Tampilkan Data Kelembaban Udara Di LCD Terima Data Paket Gambar L.5 Diagram Alir Subrutin Pengiriman Data Kelembaban Udara PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L6 START Inisialisasi Apakah Karakter = “T” Ulang SELESAI Tidak Ya Ya Ya Tidak Data Kelembaban Tanah= T,data, Tampilkan Data Kelembaban Tanah Di LCD Terima Data Paket Gambar L.6 Diagram Alir Subrutin Pengiriman Data Kelembaban Tanah PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L7 Prosedur Pengiriman Data Dengan XBee Pro S2B Ketika data serial yang diterima dan siap dipaketkan, modul RF akan keluar Idle Mode dan upaya untuk mengirimkan data. Alamat tujuan menentukan rute akan menerima data. Sebelum transmisi data, modul memastikan bahwa alamat jaringan 16-bit dan rute ke tujuan telah ditetapkan. Jika tujuan 16-bit alamat jaringan tidak diketahui, alamat jaringan penemuan akan berlangsung. Jika rute adalah tidak diketahui, penemuan rute akan berlangsung untuk tujuan membangun rute ke node tujuan. Jika sebuah modul dengan alamat jaringan yang cocok tidak ditemukan, paket tersebut akan dibuang. Data akan ditransmisikan sekali rute didirikan. Jika penemuan rute gagal untuk membangun rute, paket akan dibuang. seperti pada alur pada gambar di bawah ini.[10] IDLE Mode Network Discovered ? Network Known ? Transmit Data Finished Transmission 16 bit network Address Discovered ? 16 bit network Address Known ? Network Discovery 16 bit network Address Discovery Data Discanded New Transmision No Yes Yes Yes Yes No No No Gambar L.7 Gambar Mode Pengiriman Data [10] Bila data yang ditransmisikan dari satu node ke node yang lain, pengakuan jaringan ditransmisikan kembali melintasi jaringan didirikan untuk node sumber. Paket pengakuan L8 ini menunjukkan ke node sumber yang paket data telah diterima oleh node tujuan. Jika pengakuan jaringan tidak diterima, node sumber akan mengirimkan kembali data. Hal ini dimungkinkan dalam keadaan langka untuk tujuan untuk menerima paket data, tetapi untuk sumber untuk tidak menerima pengakuan jaringan. Dalam hal ini, sumber akan memancarkan kembali data, yang dapat menyebabkan tujuan untuk menerima paket data yang sama beberapa kali. Modul XBee tidak menyaring duplikat paket.[10] Prosedur Penerimaan Data Dengan XBee Pro S2B Setelah dari sleep mode, perangkat end mengirimkan permintaan pendapat master nya untuk menentukan apakah memiliki data buffer. Dalam pin sleep mode, pendapat perangkat akhir setiap 100ms. Dalam sleep mode, perangkat akhir hanya akan polling sekali sebelum kembali ke sleep mode kecuali sleep time ST dimulai serial atau RF data yang diterima. Jika sleep time dimulai, perangkat end akan terus polling setiap 100ms sampai sleep mode berakhir [10]. Data yang sudah diterima dan dikirim kemudian akan dilihat hasilnya apakah datanya sesuai atau tidak dapat dihitung errornya dengan rumus, yakni : error = [ nil i e − nil i e en ny ] nil i e � Tabel L.1 Spesifikasi Arduino Mega [13] Mikrokontroler ATmega2560 Tegangan Operasi 5V Input Voltage disarankan 7-12V Input Voltage limit 6-20V Pin Digital IO 54 yang 15 pin digunakan sebagai output PWM Pins Input Analog 16 Arus DC per pin IO 20 mA Arus DC untuk pin 3.3V 50 mA Flash Memory 256 KB 8 KB digunakan untuk bootloader SRAM 8 KB EEPROM 4 KB Clock Speed 16 MHz L9 Konfigurasi Pin Arduino Mega Gambar L.6 Konfigurasi Pin Arduino Mega [13] Masing-masing dari 54 digital pin pada arduino mega dapat digunakan sebagai input atau output, menggunakan fungsi pin mode , digital write , dan digital read. arduino mega beroperasi pada tegangan 5 volt. Setiap pin dapat memberikan atau menerima arus maksimum 40 mA dan memiliki resistor pull-up internal yang terputus secara default sebesar 20-50 k Ohm. Selain itu, beberapa pin memiliki fungsi khusus, antara lain: L10 a. Serial : 0 RX dan 1 TX; Serial 1 : 19 RX dan 18 TX; Serial 2 : 17 RX dan 16 TX; Serial 3 : 15 RX dan 14 TX. Digunakan untuk menerima RX dan mengirimkan TX data serial TTL. Pins 0 dan 1 juga terhubung ke pin chip ATmega16U2 Serial USB-to-TTL.Eksternal Interupsi : Pin 2 interrupt 0, pin 3 interrupt 1, pin 18 b. interrupt 5, pin 19 interrupt 4, pin 20 interrupt 3, dan pin 21 interrupt 2. Pin ini dapat dikonfigurasi untuk memicu sebuah interupsi pada nilai yang rendah, meningkat atau menurun, atau perubah nilai.

c. SPI : Pin 50 MISO, pin 51 MOSI, pin 52 SCK, pin 53 SS. Pin ini

mendukung komunikasi SPI menggunakan perpustakaan SPI. Pin SPI juga terhubung dengan header ICSP, yang secara fisik kompatibel dengan arduino uno, arduino duemilanove dan arduino diecimila.

d. LED : Pin 13. Tersedia secara built-in pada papan arduino ATmega2560. LED

terhubung ke pin digital 13. Ketika pin diset bernilai high, maka LED menyala ON, dan ketika pin diset bernilai low, maka LED padam off.

e. TWI : Pin 20 SDA dan pin 21 SCL. Yang mendukung komunikasi TWI

menggunakan perpustakaan wire. Perhatikan bahwa pin ini tidak di lokasi yang sama dengan pin TWI pada arduino duemilanove atau arduino diecimila. Arduino Mega2560 memiliki 16 pin sebagai analog input, yang masing-masing menyediakan resolusi 10 bit yaitu 1024 nilai yang berbeda. Secara default pin ini dapat diukurdiatur dari mulai ground sampai dengan 5 volt, juga memungkinkan untuk mengubah titik jangkauan tertinggi atau terendah mereka menggunakan pin AREF dan fungsi analog Reference. Ada beberapa pin lainnya yang tersedia, antara lain:

a. AREF : Referensi tegangan untuk input analog. Digunakan dengan fungsi

analog Reference.

b. RESET : Jalur low ini digunakan untuk me-reset menghidupkan ulang

mikrokontroler. Jalur ini biasanya digunakan untuk menambahkan tombol reset pada shield yang menghalangi papan utama arduino.[13] L11 Sumber Daya Power Arduino Mega Arduino mega dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal . Sumber daya dipilih secara otomatis. Sumber daya eksternal non-USB dapat berasal baik dari adaptor AC-DC atau baterai. Adaptor dapat dihubungkan dengan mencolokkan steker 2,1 mm yang bagian tengahnya terminal positif ke ke jack sumber tegangan pada papan. Jika tegangan berasal dari baterai dapat langsung dihubungkan melalui header pin gnd dan pin vin dari konektor power. Papan arduino ATmega2560 dapat beroperasi dengan pasokan daya eksternal 6 volt sampai 20 volt. Jika diberi tegangan kurang dari 7 volt, maka, pin 5 volt mungkin akan menghasilkan tegangan kurang dari 5 volt dan ini akan membuat papan menjadi tidak stabil. Jika sumber tegangan menggunakan lebih dari 12 volt, regulator tegangan akan mengalami panas berlebihan dan bisa merusak papan. Rentang sumber tegangan yang dianjurkan adalah 7 volt sampai 12 volt. Pin tegangan yang tersedia pada papan arduino adalah sebagai berikut:

a. VIN : Adalah input tegangan untuk papan arduino ketika menggunakan sumber

daya eksternal sebagai ‘saingan’ tegangan 5 volt dari koneksi USB atau sumber daya ter-regulator lainnya. Anda dapat memberikan tegangan melalui pin ini, atau jika memasok tegangan untuk papan melalui jack power, kita bisa mengaksesmengambil tegangan melalui pin ini.

b. 5V : Sebuah pin yang mengeluarkan tegangan ter-regulator 5 volt, dari pin ini

tegangan sudah diatur ter-regulator dari regulator yang tersedia built-in pada papan. Arduino dapat diaktifkan dengan sumber daya baik berasal dari jack power DC 7-12 volt, konektor USB 5 volt, atau pin VIN pada board 7-12 volt. Memberikan tegangan melalui pin 5 volt atau 3.3 volt secara langsung tanpa melewati regulator dapat merusak papan arduino.

c. 3V3 : Sebuah pin yang menghasilkan tegangan 3,3 volt. Tegangan ini dihasilkan

oleh regulator yang terdapat pada papan on-board. Arus maksimum yang dihasilkan adalah 50 mA.

d. GND : Pin ground atau massa.

L12

e. IOREF : Pin ini pada papan arduino berfungsi untuk memberikan referensi

tegangan yang beroperasi pada mikrokontroler. Sebuah perisai shield dikonfigurasi dengan benar untuk dapat membaca pin tegangan IOREF dan memilih sumber daya yang tepat atau mengaktifkan penerjemah tegangan voltage translator pada output untuk bekerja pada tegangan 5 volt atau 3,3 volt.[13] Komunikasi Pada Arduino Mega Arduino Mega2560 memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, dengan arduino lain, atau dengan mikrokontroler lainnya. Arduino ATmega328 menyediakan 4 hardware komunikasi serial UART TTL 5 Volt. Sebuah chip ATmega16U2 ATmega8U2 pada papan revisi 1 dan revisi 2 yang terdapat pada papan digunakan sebagai media komunikasi serial melalui USB dan muncul sebagai COM Port Virtual pada Device komputer untuk berkomunikasi dengan perangkat lunak pada komputer, untuk sistem operasi windows masih tetap memerlukan file inf, tetapi untuk sistem operasi OS X dan Linux akan mengenali papan sebagai port COM secara otomatis. Perangkat lunak arduino termasuk didalamnya serial monitor memungkinkan data tekstual sederhana dikirim ke dan dari papan arduino. LED RX dan TX yang tersedia pada papan akan berkedip ketika data sedang dikirim atau diterima melalui chip USB-to-serial yang terhubung melalui USB komputer tetapi tidak untuk komunikasi serial seperti pada pin 0 dan 1. Sebuah perpustakaan Software Serial memungkinkan untuk komunikasi serial pada salah satu pin digital Mega2560. ATmega2560 juga mendukung komunikasi TWI dan SPI. Perangkat lunak arduino termasuk perpustakaan wire digunakan untuk menyederhanakan penggunaan bus TWI. Untuk komunikasi SPI, menggunakan perpustakaan SPI.[13] Memori Arduino Mega ATmega 2560 memiliki 256 KB dari memori flash untuk menyimpan kode yang 8 KB digunakan untuk bootloader, 8 KB dari SRAM dan 4 KB EEPROM yang dapat dibaca dan ditulis dengan perpustakaan EEPROM.[13] PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L13 Pemrograman Arduino Mega Arduino mega dapat diprogram dengan software arduino. ATmega2560 pada Arduino mega sudah tersedia preburned dengan bootloader yang memungkinkan untuk meng-upload kode baru tanpa menggunakan programmer hardware eksternal. Hal ini karena komunikasi yang terjadi menggunakan protokol asli STK500. Juga dapat melewati bypass bootloader dan program mikrokontroler melalui pin header ICSP In-Circuit Serial Programming . Chip ATmega16U2 atau 8U2 pada board Rev. 1 dan Rev. 2 source code firmware tersedia pada repositori arduino. ATmega16U28U2 dapat dimuat dengan bootloader DFU, yang dapat diaktifkan melalui:

a. Pada papan Revisi 1 : Menghubungkan jumper solder di bagian belakang

papan dan kemudian akan me-reset 8U2.

b. Pada papan Revisi 2 : Ada resistor yang menghubungkan jalur HWB

8U216U2 ke ground, sehingga lebih mudah untuk dimasukkan ke dalam mode DFU. Kemudian anda dapat menggunakan Atmel FLIP software sistem operasi Windows atau DFU programmer sistem operasi Mac OS X dan Linux untuk memuat firmware baru atau dapat menggunakan pin header ISP dengan programmer eksternal overwrite DFU bootloader.[13] Listing Program Mikrokontroller Arduino 1. PROGRAM GREEN HOUSE 2. include Wire.h 3. include SD.h 4. include SPI.h 5. include RTClib.h 6. include SHT1x.h 7. include LiquidCrystal.h 8. include avrio.h 9. include avrinterrupt.h PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L14 10. volatile int count = 0; 11. int a = 0; 12. int timer1_counter; 13. File myFile; 14. RTC_DS1307 rtc; 15. LiquidCrystal lcd12, 11, 7, 6, 5, 4; 16. define dataPin 9 17. define clockPin 10 18. SHT1x sht1xdataPin, clockPin; 19. float soil; 20. float temp_c; 21. float humidity; 22. int Si; 23. int So; 24. int Dt; 25. int kondisi = 0; 26. int buttonstate = 0; 27. int cooler = 0; 28. int humid = 0; 29. int pompa = 0; 30. int s; 31. String waktu[3]; 32. String tanggal[2]; 33. char pwaktu[3][3]; 34. char ptanggal[2][3]; 35. int tahun; 36. void setup { 37. Serial.begin9600; 38. lcd.begin16, 4; 39. lcd.setCursor 0, 0; 40. lcd.printStarting Up; 41. delay 1000; 42. noInterrupts; disable all interrupts PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI L15 43. TCCR1A = 0; 44. TCCR1B = 0; 45. 46. Set timer1_counter to the correct value for our interrupt interval 47. timer1_counter = 64911; preload timer 65536-16MHz256100Hz 48. timer1_counter = 64286; preload timer 65536-16MHz25650Hz 49. timer1_counter = 34286; preload timer 65536-16MHz2562Hz 50. 51. TCNT1 = timer1_counter; preload timer 52. TCCR1B |= 1 CS12; 256 prescaler 53. TIMSK1 |= 1 TOIE1; enable timer overflow interrupt 54. interrupts; enable all interrupts 55. pinModeA0, INPUT; input analaog sensor kelembapan 56. pinMode41, INPUT; Button StartStop 57. pinMode42, INPUT; Data Yang terkirim 58. pinMode43, INPUT; Button output sensor 59. pinMode44, INPUT; Button Output Kendali 60. pinMode22, OUTPUT; kendali suhu 61. pinMode23, OUTPUT; kendali kelembapan udara 62. pinMode24, OUTPUT; kendali kelembapan tanah 63. pinMode25, OUTPUT; LED output Dingin 64. pinMode26, OUTPUT; LED output Normal 65. pinMode27, OUTPUT; LED output Panas 66. pinMode29, OUTPUT; LED output Kering udara 67. pinMode30, OUTPUT; LED output Lembab udara 68. pinMode31, OUTPUT; LED output Basah udara 69. pinMode32, OUTPUT; LED output Kering tanah 70. pinMode33, OUTPUT; LED output Lembab tanah 71. pinMode34, OUTPUT; LED output Basah tanah1 72. ifdef AVR 73. Wire.begin; 74. else 75. Wire1.begin; Shield I2C pins connect to alt I2C bus on Arduino Due PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI