BAB II LANDASAN TEORI 2.1 Sistem Penetasan Telur Penetasan telur ayam menjadi popular di tingkat peternak kecil dan menengah dan bahkan di tingkat rumah tangga untuk dijadikan jenis petelur, pedaging atau untuk menghasilkan ungags-unggas yang cantik untuk dipelihara sebagai binatang peliharaan, karena ayam kampung dikenal sebagai ayan yang memiliki resistance (ketahanan tubuh) yang lebih kuat dari pada ayam-ayam yang lain, disamping itu rasa daging ayam kampong jauh lebih nikmat dari pada ayam pedaging pada umumnya. Inkubator penetas telur harus dapat diatur kondisinya hingga kondisinya optimal untuk mendukung perkembangan telur dari saat telur masuk inkubator hingga telur menetas dan dikeluarkan dari inkubator. Inkubator penetas telur yang ada saat ini sangat bermacam-macam bila dilihat dari fasilitas dalam inkubator. Inkubator paling sederhana hanya dilengkapi dengan lampu sebagai media pemanas dan sensor panas sebagai pengatur lampu hidup atau mati. Inkubator yang paling canggih selain memiliki pemanas dan sensor pemanas juga memiliki kipas angin, sensor kelembaban udara, dan lain-lain. Tentu suhu menjadi hal mutlak yang harus diperhatikan dalam penetasan telur, sebab telur akan berkembang apabila suhu lingkungan telur mencapai batas minimum tertentu yang lebih rendah dari suhu lingkungan pada umumnya. Kelembaban udara juga harus diperhatikan untuk meningkatkan probabilitas menetasnya sehingga mengurangi kemungkinan telur yang di inkubasi gagal menetas. Hal penting yang harus diperhatikan adalah kesterilan lingkungan dalam inkubator, inkubator yang digunakan secara terus menerus tanpa jeda (setelah menetaskan telur langsung menginkubasi telur lagi) dapat menyebabkan persentase telur yang menetas berkurang drastis, karena dibutuhkan waktu untuk membunuh bakteri-bakteri yang ada dalam inkubator 6 http://digilib.mercubuana.ac.id/ setelah inkubator selesai digunakan dengan cara tidak menggunakan inkubator atau mejemur inkubator di bawah sinar matahari. Upaya kelompok unggas dalam mempertahankan populasinya, yaitu dengan bertelur. Telur tersebut kemudian ditetaskan, baik secara alami maupun buatan hingga melahirkan individu baru. (Farry B. Paimin, 2011:5) 2.2 Arduino Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang didalamnya terdapat komponen utama, yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu sendiri adalah chip atau IC (integrated circuit) yang bias di deprogram menggunakan computer. Tujuan memprogram mikrokontroler adalah agar rangkaian elektronika dapat membaca input, memproses input terseut, dan kemudian menghasilkan output sesuai yang diinginkan. Jadi mikrokontroler bertugas sebagai otak perintah yang mengendalikan input, proses, dan output pada sebuah rangkaian elektronik. Secara umum, Arduino terdiri dari dua bagian,yaitu hardware dan software. Hardware merupakan berupa papan input/output yang open source. Sedangkan software berupa Software Arduino yang juga open source, meliputi software Arduino IDE unutk menulis program dan driver untuk koneksi dengan komputer (Suhata,2005). Kelebihan dari Arduino dari platform lain yaitu: 1. Murah, Arduino biasanya dijual relative murah dibandingkan dengan platform mikrokontroler lainnya. 2. Sederhana dan mudah untuk pemrogramannya. Perlu diketahui bahwa lingkungan pemrograman di Arduino mudah digunakan dan cukup fleksibel bagi penggunanya. 3. Perangkat lunaknya open source. Perangkat lunak Arduino IDE dipublikasikan sebagai open source. 7 http://digilib.mercubuana.ac.id/ 4. Perangkat kerasnya open source. Perangkat kerasnya dipublikasikan open source. Perangkat keras Arduino berbasis mikrokontroler ATMEGA168, ATMEGA328, dan ATMEGA1280. 5. Tidak perlu perangkat chip programmer. Karena di dalamnya sudah ada bootloader yang akan menangani upload program dari komputer. 6. Sudah memilliki koneksi USB.Sehingga dapat terhubung dengan sangat mudah ke perangkat Komputer ataupun Laptop yang tidak memiliki port serial/RS323 bisa menggunakannya. 7. Bahasa pemrograman relative mudah. Karena software Arduino dilengkapi dengan kumpulan library yang cukup lengkap untuk membantu mengoptimalkan module-module pendukung. 8. Memiliki modul siap pakai (shield) yang bias ditancapkan pada board Arduino. Misalnya Shield GPS, Ethernet, SD Card, dll. 2.2.1 Pengenalan Arduino Mega 2560 Arduino Mega 2560 adalah papan pengembangan mikrokontroler yang berbasis Arduino dengan menggunakan chip ATmega2560. Board ini memiliki pin I/O yang cukup banyak, sejumlah 54 buah digital I/O pin ( 15 pin diantaranya adalah PWM), 16 pin analog input, 4 pin UART (serial port hardware). Arduino Mega 2560 dilengkapi dengan sebuah oscillator 16 Mhz, sebuah port USB, power jack DC, ICSP header, tombol reset. Board ini sudah sangat lengkap, sudah memiliki segala sesuatu yang dibutuhkan untuk sebuah mikrokontroler. Dengan penggunaan yang cukup sederhana, anda tinggal menghubungkan power dari USB ke PC anda atau melalui adaptor AC/DC ke jack DC. (Simanjutank : 2013, 7) Sifat open source Arduino juga banyak memberikan keuntungan tersendiri untuk kita dalam menggunakan board ini, tergantung pada satu merek, namun memungkinkan kita bisa memakai semua komponen yang ada dipasaran. Bahasa pemrograman Arduino merupakan Bahasa C yang disudah disederhanakan syntax Bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan mendalami mikrokontroler. 8 http://digilib.mercubuana.ac.id/ Gambar 2.2 Board Arduino Mega 2560 2.2.2 Arsitektur Arduino Mega 2560 Chip ATmega2560 pada Arduino Mega 2560 Rev.3 memilki memori 256 KB, dengan 8 KB dari memori tersebut telah digunakan untuk bootloader. Jumlah SRAM 8KB, dan EEPROM 4KB, yang dapat dibaca-tulis dengan menggunakan EEPROM library saat melakukan pemrograman. Pemrograman board Arduino Mega 2560 dilakukan dengan menggunakan Arduino Software (IDE). Chip ATmega2560 yang terdapat pada Arduino Mega 2560 telah diisi program awal yang sering disebut bootloader. Bootloader tersebut yang bertugas untuk memudahkan anda melakukan pemrograman lebih sederhana menggunakan Arduino Software, tanpa harus menggunakan tambahan hardware lain. Cukup hubungkan Arduino dengan kabel USB ke PC atau Mac/Linux anda, jalankan software Arduino Software (IDE), dan anda sudah bisa mulai memrogram chip ATmega2560. Lebih mudah lagi, didalam Arduino Software sudah diberikan banyak cntoh program yang memanjakan anda dalam belajar mikrokontroler. Untuk pengguna mikrokontroler yang sudah lebih mahir, anda dapat tidak menggunakan bootloader dan melakukan pemrograman langsung via header ICSP (In Circuit Serial Programming) dengan menggunakan Arduino ISP. Arduino Mega 2560 Rev 3 telah dilengkapi dengan chip ATmega16U2 yang telah di program sebagai USB to Serial. Firmware ATmega16U2 di load oleh DFU bootloader, dan untuk merubahnya anda dapat menggunakan software Atmel Flip (Windows) atau DFU Progammer (Mac OSX dan Linux), atau menggunakan header ISP dengan menggunakna hardware external programmer. 9 http://digilib.mercubuana.ac.id/ Development board Arduino Mega 2560 R3 telah dilengkapi dengan polyfuse yang dapat direset untuk melindungi port USB komputer/laptop anda dari korsleting atau arus berlebih. Meskipun kebanyakan komputer telah memiliki perlidungan port tersebut didalamnya namun sikring pelindung pada Arduino Uno memberikan lapisan perlidungan tabahan yang membuat anda bisa tenang menghubungkan Arduino ke komputer anda. Jika lebih dari 500mA ditarik pada port USB tersebut, sirkuit proteksi akan secara otomatis memtuskan hubungan, dan akan menyambung kembali ketika batasan aman telah kembali. Board Arduino Mega 2560 dapat ditenagai dengan power yang diperoleh dari koneksi kabel USB, atau via power supply eksternal. Pilihan power yang digunakan akan dilakukan secara otomatis. External power supply dapat diperoleh dari adaptor AC-DC atau bahkan baterai, melalui jack DC yang tersedia, atau menghubungkan langsung GND dan pin Vin yang ada di board. Board dapat beroperasi dengan power dari external power supply yang memiliki tegangan antara 6V hingga 20V. Namun ada beberapa hal yang ada harus perhatikan dalam rentang tegangan ini. Jika diberi tegangan kurang dari 7V, pin 5V tidak akan memberikan nilai murni 5V, yang mungkin akan membuat rangkaian bekerja dengan tidak sempurna. Jika diberi tegangan lebih dari 12V, regulator tengangan bisa over heat yang pada akhirnya bisa merusak pcb. Dengan demikian, tegangan yang di rekomendasikan adalah 7V hingga 12V. Beberapa pin power pada Arduino Mega: • GND adalah ground atau negative • Vin. Adalah pin yang digunakan jika anda ingin memberikan power langsung ke board Arduino dengan rentang tegangan yang disarankan 7V – 12V. • 3V3 adalah pin output dimana pada pin tersebut disediakan tegangan 3.3V yang telah regulator. • Pin 5V adalah pin output dmana pin tersebut mengalir tegangan 5V yang telah melalui regulator. • IOREF adalah pin yang menyediakan referensi tegangan mikrokontroler. Biasanya digunakan pada board shield unutk memperoleh tegangan yang sesuai, apakah 5V atau 3.3V. 10 http://digilib.mercubuana.ac.id/ Arduino Mega 2560 memiliki jumlah pin terbanyak dari semua papan pengembangan Arduino. Arduino Mega 2560 memiliki 54 buah digital pin yang dapat digunakan sebagai input atau output, dengan meggunakan fungsi pinMode(), digitalWrite(), dan digital(Read). Pin-pin tersebut bekerja pada tegangan 5V, dan setiap pin dapat menyediakan atau menerima arus sebesar 20mA, dan memiliki tahanan pull-up sekitar 20-50k ohm (secara default dalam posisi disconnect). Nilai maximum adalah 40 mA, yang sebisa mungkin dihindari untuk menghindari kerusakan chip mikrokontroler. Beberapa pin memiliki fungsi khusus : • Serial, memiliki 4 serial yang masing-masing terdiri dari 2pin. Serial 0 : pin 0 (RX) dan pin 1 (TX).Serial 1: pin 19 (RX) dan pin 18 (TX). Serial 2 : pin 17 (RX) dan pin 16 (TX). Serial 3 : pin 15 (RX) dan pin 14 (TX). RX digunakan untuk menerima dan TX untuk transmit daa serial TTL. Pin 0 dan pin 1 adalah pin yang digunakan oleh chip USB-to-TTL ATmega16U2. • External Interrups, yaitu pin 2 (untuk interrupt 0), pin 3 (interrupt 1), pin 18 (interrupt 5), pin 19 (interrupt 4), pin 20 (interrupt 3), dan pin 21 (interrupt 2). Dengan demikian Arduino Mega 2560 memiliki jumlah interrupt yang cukup banyak : 6 buah. Gunakan fungsi attachInterrupt() untuk mengatur interrupt tersebut. • PWM : Pin 2 hingga 13 dan 44 hingga 46, yang menyediakan output PWM 8-bit dengan menggunakan fungsi analogWrite(). • SPI : Pin 50 (MISO), 51 (MISO), 52 (SCK), dan 53 (SS) mendukung komunikasi SPI dengan menggunakan SPI Library. • LED : Pin 13. Pin 13 terhubung built-in led yang dikendalikan oleh digital pin no 13. Set HIGH untuk menyalakan led, dan set LOW untuk memadamkannya. • TWI : Pin 20 (SDA) dan pin 21 (SCL) yang mendukung komunikasi TWI dengan menggunkaan Wire Library. Arduino Mega 2560 R3 memiliki 16 buah input analog. Masing-masing pin analog tersebut memiliki resolusi 10 bits (jadi bisa memiliki 1024 nilai). Secara default, pin-pin tersebut diukur dari ground ke 5V, namun bisa juga 11 http://digilib.mercubuana.ac.id/ menggunkaan pin AREF dengan menggunakan fungsi analogReference(). Beberapa pin lainnya pada board ini adalah : • AREF. Sebagai referensi tegangan input analog. • Reset. Hubungkan ke LOW unutk melakukan reset terhadap mikrokontroler. Sama dengan penggunaan tombol reset yang tersedia. Arduino Mega R3 memiliki beberapa fasilitas untuk berkomunikasi dengan komputer, berkomunikasi dengan Arduino lainnya, atau dengan mikrokontroler lainnya. Chip ATmega2560 menyediakan komunikasi serial UART TTL(5V) yang tersedia di pin 0 (RX)dan pin 1 (TX). Chip ATmega16U2 yang terdapat board berfungsi menterjemahkan bentuk komunikasi ini melalui USB dan akan tampil sebagai Virtual Port di komputer. Firware 16U2 menggunakan driver USB standar sehingga tidak membutuhkan driver tambahan. Pada Arduino Software (IDE) terdapat monitor serial yang memudahkan data textual unutk dikirim menuju Arduino atau keluar dari Arduino. Led TX dan RX akan menyala berkedip-kedip saat ada data yang akan ditrasmisikan melalui chip USB to Serial via kabel USB ke komputer. Untuk menggunakan komunikasi serial dari digital pin, gunakan SoftwareSerial library. Chip ATmega2560 juga mendukung komunikasi I2C (TWI) and SPI. Di dalam Arduino Software (IDE) sudah termasuk Wire Library unutk memudahkan anda menggunakan bus 12C. Untuk menggunakan komunikasi SPI, gunakan SPI Library. 2.3 Wifi Module ESP8266 ESP8266 adalah sebuah module wifi yang akhir-akhir ini digemari pada hardware developer tentunya pada pembelajaran embedded system. Selain karena harganya yang sangat terjangkau, module wifi serbaguna ini sudah bersifat SOC (System on Chip), sehingga kita bisa melakukan programming langsung ke ESP8266 tanpa memerlukan mikrokontroller tambahan. ESP8266 di kembangkan oleh pengembang asal negeri tiongkok “Espressif”. Produk seri ESP8266 kini masih terus dalam tahap pengembangan (current R&D:esp8266-32). ESP8266 sendiri sudah dilengkapip GPIO (General Purpose Input/Output), dengan adanya GPIO ini kita bisa melakukan fugnsi input atau output layaknya sebuah 12 http://digilib.mercubuana.ac.id/ mikrokontroller. Kelebihan lain ESP8266 adalah memiliki Deep Sleep Mode, sehingga penggunaan daya akan relative jauh lebih efisien dibandingkan dengan modul wifi yang lain. Gambar 2.3 Wifi Module ESP8266 Catatan penting yang harus di garis bawahi ialah, ESP8266 beroperasi pada tegangan 3.3V. Berikut merupakan table data sheet pada wifi module esp8266. Tabel 2.1 Data sheet pada wifi module esp8266 Label Signal VCC 3.3V(3.6V max) Supply Voltage GND Ground TXD Receive Data (3.3V level) RXD Receive Data (3.3V level!) CH_PD Chip Power Down : (LOW = power down active GPIO0 General Purpose I/O 0 GPIO2 General Purpose I/O 2 RST Reset (reset=LOW active) 13 http://digilib.mercubuana.ac.id/ 2.4 Thingpseak Thingspeak merupakan platform IoT yang dibuat berbasis paa Matlab. Pada platform ini user dapat dapat mengupload data sensor dari berbagai macam development board yang ada. Data yang di upload pada thingspeak bisa dibuat sebagai data pribadi ataupun data public. Data tersebut disajikan dalam bentuk channel yang didalamnya terdapat visualiasi yang diolah oleh matlab. Untuk menggunakan thingspeak saat ini masih tidak dikenakan biaya namun sensor yang digunakan pun masih dibatasi. Gambar 2.9 Topologi Arduino dan Thingspeak 2.5 Virtuino Virtuino adalah aplikasi berbasis android yang dikembangkan ilias Lamprou, dengan tujuan sebagai client side pada smartphone yang berbasis android. Aplikasi ini mendukung sistem Monitoring Jarak Jauh hanya dengan menggunakan media internet dengan webserver Thingspeak, di dalam aplikasi ini kita dapat membuat suatu interface dan analog-analog yang di sajikan oleh aplikasi ini, mulai dari value analog, chart, button, text dan lain-lainnya. Virtuino awalnya 14 http://digilib.mercubuana.ac.id/ di buat dengan tujuan menghubungkan Arduino dengan smartphone android melalui Bluetooth, tetapi sekarang sudah lebih di perbarui lagi. Gambar 2.10 Aplikasi Virtuino 2.6 Bahasa Pemrograman Bahasa pemrograman adalah sebuah perintah atau instruksi standar untuk komputer agar mempunnyai fungsi terntentu. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan atau diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai kondisi atau situasi. 2.6.1 Bahasa Pemrograman C C adalah model Bahasa perograman yang dikembangkan oleh Dennis Ritchie pada tahun 1970 dengan tujuan pemakaian pada sistem operasi UNIX. Hingga sekarang, Bahasa ini telah dipergunakan secara praktis pada hamper semua sistem operasi. Bahasa C merupakan bahasa yang paling popular untuk menulis sistem software dan aplikasi serta dalam pelajaran Komputer Sains. Bahasa C adalah Bahasa yang lebih low-level dibandingkan dengan Bahasa pemrograman lainnya. Terkadang disebut juga sebagai “High level-language”, 15 http://digilib.mercubuana.ac.id/ sebenarnya Bahasa C hanya leibh high-level dibandingkan dengan Bahasa Assembly C memiliki dua keunggulan utama disbanding dengan assembly. Pertama, kodenya lebih muda dibaca dan ditulis, terutama untuk program yang panjang. Kedua, kode assembly biasanya hanya bisa diterapkan pada arsitektur komputer tertentu saja, sedangkan program C dapat dipindahkan ke berbagai arsitektur dimana compiler dan librarynya tersedia. Efisiensi dari kode C sangatlah bergantung pada kemampuan dari compiler untuk mengoptimasi bahasa mesin yang dihasilkan, dimana hal ini berada diluar kendali programmer. Dan terdapat juga keunggulan dan kelemahan antara C dengan bahasa high-level lainnya dimana efisiensi yang dihasilkan oleh kode C dapat terkontrol hingga konsekuensinya adalah lebih sulit dibaca dan ditulis. Tapi perlu dicatat bahwa C adalah bahasa tingkat tinggi yang portable, karena sampai saat ini hamper semua arsitektur komputer menyediakan compiler C dan librarynya. Fasilitas dari C yang perlu menjadi perhatian programmer adalah kemampuannya dalam mengatur isi memori komputer. C Standar tidak menyediakan fasilitas array bounds checking yang dengan mudah akan menyebabkan bug dalam kaitannya dengan operasi memori, seperti buffer overflows, secaraa computer insecurity. Menurut Hendra (2004) ada beberapa fasilitas bahasa pemrograman C antara lain. 1. Suatu babasa dengan (kernel) inti yang sederhana, dimana fungsifungsi yang kurang penting tersedia sebagai kumpulan pustaka (library) yang distandarisasi. 2. Terfokus pada paradigm procedural, dengan fasilitas pemrograman yang terstruktur. 3. Memiliki bahasa pre-processor. 4. Memiliki performance untuk semua operastor. 5. Akses secara low-level pada memori komputer melalui pointer. 6. Parameter selalu dilewatkan ke function secara by value, bukan by reference. 2.6.2 Software Arduino IDE Sehubungan dengan pembasahan untuk pemrograman Arduino IDE untuk saat ini software Arduino yang akan di gunakan adalah driver dan IDE, walaupun 16 http://digilib.mercubuana.ac.id/ masih ada beberapa software lain yang sangat beguna selama pengembangan Arduino. Arduino IDE adalah software yang sangat inovatif yang ditulis dengan menggunakan java. Arduino IDE terdiri dari : • Editor program, sebuah windows yang memungkinkan pengguna menulis dan mengedit program dalam bahasa Processing. • Compiler, sebuah modul yang mengubah kode program (bahasa processing menjadi kode biner. Bagaimanapun sebuah mikrokontroler tidak akann bisa memahami bahasa processing. Yang bisa dipahami oleh mikrokontroler itu sendiri adalah kode biner. Itulah sebabnya compiler diperlukan dalm hal ini. • Uploader, sebuah modul yang membuat kode biner dari kompuer ke dalam memory dalam papan Arduino. Gambar 2.11 Tampilan Arduino IDE Pada gambar 2.11 Anda dapat meilihat toolbar IDE yang memberikan akses instan ke fungsi-fungsi yang penting : • Dengan tombol Verify, anda dapat mengecek code program yang saat ini di editor apakah terjadi syntax error atau tidak. • Tombol New menciptakan program baru dengan mengosongkan isi dari jendela editor saat ini. Tetapi Arduino IDE memberikan opsi unutk menyimpan semua perubahan yang belom disimpan. 17 http://digilib.mercubuana.ac.id/ • Dengan Open anda dapat membuka program yang ada dari sistem file. • Tombol Save menyimpan program saat ini. • Ketika anda mengklik tombol Upload. IDE mengkompilasi saat ini program dan upload ke papan Arduino yang telah anda pilihh di Arduino IDE menu Tools > Serial Port. • Arduino berkomunikasi dengan komputer melalui koneksi serial. Mengklik tombol serial monitor membuka jendela serial monitor yang memungkinkan anda dapat melihat anda yang dikirimkan oleh Arduino dan juga unutk mengirim data kembali. • 2.7 Tombol stop mengehentikan serial monitor. Flowchart Flowchart dalam Bahasa Indonesia diterjemahkan sebagai Diagram Alir. Dari dua kata ini, maka dapat kita bayangkan bahwa flowchart itu berbentuk diagram yang bentuknya dapat mengalirkan sesuatu. Hal ini memang benar, flowchart memang melukiskan suatu aliran kegiatan dari awal hingga akhir mengenai suatu langkah-langkah dalam penyelesaian suatu masalah. Masalah yang kita pelajari tentu saja masalah pemrograman dengan menggunakan komputer, tetapi secara logika dapat kita awali dengan mengamati permasalahan dalam kehidupan sehari-hari kita. Contoh sederhananya adalah masalah membuat secangkir kopi. Dalam membuat secangkir kopi, tentu saja diperlukan langkahlangkah yang berurutan agar hasilnya dapat sesuai dengan apa yang kita inginkan, yaitu secangkir kopi. Demikian halnya dalam memprogram, diperlukan suatu algoritma agar program yang kita buat dapat berjalan dan memberikan hasil yang valid. (A. B. bin Ladjamudin, 2005). 18 http://digilib.mercubuana.ac.id/