Internet of Things (IoT)
Pengertian arduino
Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang.
Sejarah arduino
Pembuatan arduino dimulai pada tahun 2005, dimana sebuah situs perusahaan komputer Olivetti di Ivrea, Italia membuat perangkat untuk mengendalikan proyek desain interaksi siswa supaya lebih murah dibandingkan dengan sistem yang ada pada saat itu. Dilanjutkan pada bulan Mei 2011, dimana sudah lebih dari 300.000 unit arduino terjual.
Pendiri arduino adalah Massimo Banzi dan David Cuartielles. Awalnya mereka memberi nama proyek itu dengan sebutan Arduin dari Ivrea tetapi seiring dengan perkembangan zaman, maka nama proyek itu diubah menjadi arduino yang berarti " teman yang kuat" dalam versi bahasa Inggrisnya dikenal dengan sebutan " Hardwin ".
Revolusi digital (digital vs analog)
Sebelum dimulainya revolusi industri pada tahun 1784, ongkos produksi untuk suatu produk sangat mahal karena tidak dapat dilakukan produksi masal sehingga semuanya merupakan "hand made". Saat ini istilah "hand made" lebih identik dengan produk-produk yang memiliki nuansa seni serta memiliki kualitas tinggi. Namun pada zaman dahulu, hal tersebut merupakan hambatan terbesar untuk kesejahteraan manusia. sejak terjadinya revolusi industri, produk-produk dapat diproduksi secara masal sehingga tentunya menekan biaya produksi dari produk-produk yang dijual.
Saat ini kita telah melalui revolusi industri ketiga. Biaya dari berbagai macam produk menjadi semakin murah sehingga kesejahteraan hiduppun semakin meningkat. Pada revolusi industri kedua, tenaga listrik sudah mulai digunakan untuk menggantikan penggunaan tenaga uap. Sedangkan pada revolusi industri ketiga terdapat pergeseran teknologi, yaitu dari teknologi analog ke teknologi digital. Pergeseran tersebut memungkinkan berbagai macam teknik ptpmasi untuk dkembangkan, dimana hal tersebut akan meringankan beban kerja manusia.
Revolusi industri ketiga yang dikenal sebagai revolusi digital, dimulai dengan ditemukannya transistor oleh William Shockley, John Bardeen, dan Walter Brattain pada tahun 1947. Dengan ditemukannya transistor, akhirnya dilahirkan teknologi-teknologi lainnya seperti IC (Integrated Circuit), microprocessor, microcontoller, FPGA, dll. Teknologi-teknologi tersebut merupakan dasar dari teknologi-teknologi yang kita kenal dan digunakan saat ini seperti kalkulator, smartphone, GPS, komputer,dll.
Adapun kronologi waktu dari revolusi digital secara sederhana adalah sebagai berikut:
- 1947- 1968. Pada tahun 1947 transistor ditemukan dan hal ini merupakan awa dari pembuatan mesin-mesinn komputer yang lebih cangih. Pada tahun 1950- 1960 penggunaan komputer sudah memasuki dunia militer serta perkantoran pemerintah. Pada tahun 1969 konsep internet mulai dikenal saat sebuah pesan berhasil dikirimkan melalui ARPANET.
- 1970- 1979. Pada tahun-tahun ini, penggunaan komputer mulai memasuki rumah tangga, serta produk video game mulai dikenal. Pada saat ini proses pemindahan data analog ke data digital mulai populer sehingga membuka lapangan pekerjaan baru yaitu data entry clerk.
- 1980- 1989. Pada tahun-tahun ini, penggunaan komputer makin marak pada sektor rumah tangga, bisnis, industri, dan sekolah. Pada tahun 1983 motorola berhasil meciptakan telepon selular pertama. Pada tahun 1988, kamera digital pertama telah diciptakan dan mulai dipasarkan pada tahun 1989 di Jepang. Pada tahun 1989, tim Berners-Lee berhasil menciptakan World Wide Web.
- 1990- 1999. Pada tahun 1990, broadcast siaran HDTV pertama dilakukan untuk piala dunia. Pada tahun 1991 World Wide Web mulai dapat diakses oleh kalangan publik dimana sebelumnya hanya dapat diakses oleh kalangan universitas dan pemerintahan saja. Pada tahun 1993, Marc Andreesen dan Eric Bina menciptakan web browser mosaic yang dapat menampilkan gambar. Web browser mosaic merupakan salah satu yang mempopulerkan penggunaan world wide web. Pada tahun 1999, hampir semua negara sudah memiliki koneksi internet.
- 2000- 2009. Pada masa ini penggunaan telepon selular mulai marak dan penggunaan sms sudah mulai digunakan oleh banyak orang.Revolusi digital sudah memasuki negara-negara berkembang.
- 2010- sekarang. Saat ini penggunaan teknologi berbasis internet sudah menjadi bagian dari kehidupan sehari-hari banyak orang. Penggunaan teknologi cloud computing (seperti: drop box, goole drive icloud, dll) yang bergantung pada koneksi internet telah marak digunakan. Pada saat ini juga konsep IoT (Internet of Things) semakin sering diperbincangkan, yaitu konsep dimana setiap alat akan terkoneksi dan dapat berinteraksi melalui jaringan internet
Tentunya selain kehidupan sehari-hari, teknologi digital juga berdampak pada proses industri. Dua tabel di bawah ini menggambarkan beberapa kelebihan dan kekurangan dari teknologi analog dan teknologi digital.
Hadirnya teknologi digital pada sistem kontrol menghandirkan fleksibilitas pengembangan yang tinggi. Hal tersebut sesuai untuk mengikuti permintaan dari konsumen, dimana kebutuhan manusia semakin beragam. Apabila kerja sistem tidak sesuai dengan yang diharapkan, umumnya kita hanya perlu melakukan penyesuaian pada kode program yang terdapat di dalam kontroler. Lain halnya dengan sistem kontrol analog, dimana jika diperlukan penyesuaian kerja sistem maka umumnya diperlukan penggantian rancangan hardware baik sebagian hingga keseluruhan.
Perkembangan teknologi semakin cepat dan saat ini telah mengarah ke revolusi industri keempat, dimana masing-masing sistem atau alat yang akan terhubung melalui internet. Terhubungnya suatu alat atau sistem yang satu dengan yang lainnya dapat menghasilkan suatu informasi yang bermanfaat hingga krusial seperti peringatan dini terhadap bencana, informasi kemacetan yang diikuti dengan penyesuaian jadwal meeting secara otomatis, dll.
Mikroprocessor dan Mikrokontroler
Mikroprocessor dan mikrokontroler merupakan dua buah teknologi hasil dari revolusi digital. Kedua teknologi tersebut sudah tidak dapat dipisahkan dari kehidupan kita sehari-hari. Beberapa aplikasi untuk kedua teknologi tersebut adalah seperti pada komputer, tablet, handphone, mesin cuci, jam tangan digital, air conditioner, mainan anak-anak, dll.
Mikroprocessor merupakan IC multifungsi yang akan mengolah input digital berdasarkan kode program yang tersimpan dalam memori dan kemudian mengeluarkan hasil pengolahan tersebut ke dalam bentuk output digital.
Mikroprocessor disebut IC multifungsi karena mikroprocessor ditujukan untuk menangani pekerjaan yang tidak spesifik seperti pengembangan software, game, website, pembatan dokumen, ataupun pekerjaan-pekerjaan lainnya.
Umumnya, mikroprocessor tidak dilengkapi dengan peripheral internal seperti ROM, RAM, ADC, dll. Peripheral tersebut disediakan secara eksternal oleh perancang desain mikroprocessor.
Tidak seperti mikroprocessor, mikrokontroler merupakan IC kontroler yang sudah dilengapi processor, memori, pin I/O, serta berbagai peripheral lainnya secara internal. Adapun peripheral yang disediakan pada mikrokontroler bersifat tetap dan tidak dapat diubah-ubah sehingga mikrokontroler lebih sesuai digunakan untuk pekerjaan yang spesifik. Mikrokontroler banyak ditemukan pada peralatan elektronik seperti keyboard, mouse, mesin cuci, jam tangan, dll.
Karena mikrokontroler telah dilengkapi dengan peripheral internal yang umumnya memiliki ukuran kecil, maka proses perancangan sistem digital menggunakan mikrokontroler menjadi lebih murah. Meskipun demikian mikrokontroler dan mikroprosesor tidak dapat dibandingkan antara satu dengan yang lain. Hal tersebut dikarenakan baik mikroprosesor dan mikrokontroler memang ditujukan untuk hal yang berbeda.
Penggunaan mikroprosesor untuk menggantikan mikrokontroler ataupun sebaliknya tidak dapat dilakukan. Berdasarkan segi biaya, akan jauh lebih ekonomis apabila peralatan seperti mesin cuci, air conditioner, dan mainan anak-anak dikendalikan oleh mikrokontroler. Pengendalian peralatan tersebut dapat dilakukan menggunakan resource terbatas yang dimiliki oleh mikrokontroler. Berdasarkan segi performa dan resource, akan menjadi tidak efisien apabila kita menggunakan sebuah mikrokontroler untuk menangani berbagai macam tugas seperti bermain game, melakukan pembuatan dokumen, rekayasa gambar, dll. Hal tersebut dikarenakan resource dari mikrokontroler adalah sangat terbatas.
Perbedaan antara kedua teknologi tersebut mungkin dapat lebih jelas digambarkan dengan ilustrasi di bawah
Lebar data pada mikrokontroler
Baik mikroprosesor dan mikrokontroler masing-masing memiliki spesifikasi lebar data, yaitu spesifikasi yang menentukan kemampuan dari mikrokontroler dan mikroporsesor untuk melakukan pengolahan data. Spesifikasi lebar data tersebut umumnya berhubungan dengan ukuran dari register internal, memori, ukuran bus data internal dan bus data eksternal.Semakin besar ukuran lebar data pada mikroprosesor dan mikrokontroler, maka kita akan semakin dimudahkan untuk membangun aplikasi yang lebih kompleks. Hal tersebut dikarenakan batasan resource akan menjadi lebih sedikit.
Mikrokontroler 8-bit
Mikrokontroler 8-bit merupakan mikrokontroler yang memiliki spesifikasi lebar data 8-bit. Pada mikrokontroler 8-bit, proses pengaksesan data sebanyak 8-bit dapat dilakukan dalam satu instruksi mesin.
Adapun ukuran address bus pada mikrokontroler 8-bit umumnya adalah sebesar 16-bit (hal ini dapat ditinjau ulang dari datasheet mikrokontroler yang digunakan), dikarenakan beberapa alasan praktis dan ekonomis. Berdasarkan hal tersebut, pengalamatan memori maksimal pada kebanyakan mikrokontroler 8-bit adalah 64 kB.
MCS-51 telah berstatus discontinue oleh Intel pada Maret 2007, namun masih banyak mikrokontroler di pasaran yang menggunakan arsitektur tersebut. Beberapa produsen lain yang menggunakan desain MCS-51 adalah Atmel, Dallas Semiconductor, Infineon, NXP, STMicroelectronics, dll. Keluarga MCS-51 menggunakan desain CISC (Complex instruction set computing).
AVR merupakan keluarga mikrokontroler dari Atmel yang menggunakan desain RISC (Reduced instruction set computing). Keluarga AVR dapat dibedakan menjadi beberapa kategori seperti:
- TinyAVR
- MegaAVR
- XMEGA
- Application-specific
- FPSLIC
- 32-bit AVR
AVR mendapatkan popularitas tinggi melalui penggunaannya pada berbagai macam modul Arduino.
Mikrokontroler 16-bit dan 32-bit
Seiring dengan kemajuan teknologi serta peningkatan akan kebutuhan proses kontrol yang lebih kompleks, maka seperti teknologi pada umumnya, teknologi mikrokontroler pun semaking berkembang. Lebar data yang dapat ditangani oleh mikrokontroler pun semakin besar, sehingga memungkinkan proses pengolahan dan pengendalian yang lebih rumit.
Mikrokontroler 16-bit merupakan mikrokontroler yang memiliki spesifikasi lebar data 16-bit. Pada mikrokontroler 16-bit, proses pengaksesan data sebanyak 16-bit dapat dilakukan dalam satu instruksi mesin. Demikian halnya dengan mikrokontroler 32-bit. Mikrokontroler 32-bit dapat melakukan proses pengaksesan data sebanyak 32-bit dalam satu instruksi mesin. Sesuai dengan jumlah lebar data yang dapat ditangani, mikrokontroler 16-bit dapat menangani pengalamatan memori hingga 64 kB, sedangkan mikrokontroler 32-bit dapat menangani pengalamatan memori hingga 4 GB.
Arsitektur mikrokontroler dengan lebar data 32-bit yang saat ini populer adalah ARM Cortex-M. Adapun ARM Cortex-M merupakan desain arsitektur dari ARM Holdings. Desain arsitektur tersebut dikomersialkan oleh ARM Holdings dalam bentuk lisensi kepada berbagai produsen mikrokontroler seperti Atmel, NXP, Nuvoton, STMicroelectronics, dll. Karena konsep desain dari ARM Cortex-M yang menarik, serta berbagai produsen mikrokontroler menggunakan arsitektur tersebut, ARM Cortex-M telah menjadi salah satu standar arsitektur dalam dunia mikrokontroler.
Sistem tertanam
Sistem tertanam, atau biasa disebut juga sebagai embedded system, merupakan suatu sistem komputer yang ditujukan untuk sebuah tugas khusus. Contoh penerapan dari sistem tertanam yang dapat kita temukan sehari-hari adalah jam digital, MP3 Player, mesin cuci, kendali airbag untuk melindungi pengendara mobil dari kecelakaan, dll.
Pada proses manufacturing, sistem tertanam merupakan sistem yang sensitif terhadap biaya. Maka dari itu proses pemilihan hardware seperti mikrokontroler, mikroprosesor, memori, serta komponen pendukung lainnya merupakan hal yang penting. Pemilihan hardware harus disesuaikan dengan harga serta performa/fitur (seperti ukuran memori, jumlah pin I/O, kecepatan pemrosesan, pilihan antarmuka yang disediakan, dll.) yang ada. Apabila proses pemilihan hardware dilakukan dengan tepat, maka dapat dihasilkan sebuah desain sistem tertanam yang dapat bekerja dengan baik, handal, konsumsi daya yang rendah, namun memiliki biaya produksi yang murah.
Proses pengembangan sistem tertanam didukung dengan tersedianya berbagai macam development board dari berbagai produsen mikrokontroler. Masing-masing produsen memproduksi development board yang memang dikhususkan agar para pengembang sistem tertanam dapat mencoba berbagai fitur yang ada pada mikrokontroler mereka. Adapun saat ini yang paling populer digunakan adalah development board Arduino.
Pengantar arduino
Arduino merupakan platform pengembangan mikrokontroler populer yang dikembangkan oleh Mazimo Banzi bersama rekan-rekannya. Arduino ditujukan untuk memudahkan semua kalangan, baik akademisi, hobbyist, bahkan seniman agar dapat mengakses teknologi elektronika, khususnya mikrokontroler dengan mudah, cepat, dan murah. Arduino diharapkan menjadi tool yang akan memudahkan para individu kreatif untuk merealisasikan ide yang ada tanpa harus terhalangi oleh beban teknis.
Meskipun Arduino ditujukan agar bersifat mudah sehingga dapat digunakan oleh berbagai kalangan, bukan berarti Arduino tidak cocok digunakan sebagai pilihan bagi kalangan akademisi ataupun profesional. Penggunaan Arduino akan memudahkan pengembangan sistem dari segi teknis sehingga kita dapat mengalokasikan waktu untuk memikirkan fitur-fitur dari sistem tersebut sehingga menjadi sebuah sistem yang lebih kompleks.
Daya tarik dari Arduino terdapat pada beberapa fiturnya yaitu:
- Multiplatform environment arduino IDE (Integrated Development Environment) dapat bejalan pada berbagai macam sistem operasi (windows, linux, macintosh).
- Software arduino IDE memiliki tampilan dan fungsi yang bersifat intuitif dan mudah digunakan.
- Open source baik hardware maupun software.
- Investasi yang relatif lebih murah apabila dibandungkan dengan platform lain (dipandang dari segi biaya dan waktu pengembangan).
- Sumber informasi luas karena banyak forum dan artikel yang telah membahas mengenai penggunaan arduino.
- Arduino dikembangkan dalam lingkungan pendidikan sehingga arduino cocok digunakan oleh pemula yang ingin memasuki dunia mikrokontroler.
Agar lebih mengenal platform Arduino, ada baiknya kita melihat sejarah singkat mengenai Arduino itu sendiri.
Pada tahun 2002 Mazimo Banzi bergabung sebagai salah satu profesor bersama IDII (Interaction Design Institute Ivrea), yaitu sebuah institusi pendidikan di Italy. Mazimo Banzi ditugaskan untuk berkarya pada bidang physical computing. Mazimo Banzi yang datang dengan latar belakang pengembang software memilih untuk menggunakan modul mikrokontroler BASIC Stamp (produksi Parallax) sebagai langkah awal untuk memasuki dunia physical computing.
Alasan penggunaan BASIC Stamp terdapat pada kesederhanaan dan kemudahan penggunaannya. Modul mikrokontroler BASIC Stamp telah dilengkapi dengan berbagai komponen pendukung seperti rangkaian regulator, memori, I/O port, serta dapat diprogram menggunakan bahasa BASIC yang relatif mudah.
Menurut Mazimo Banzi yang saat itu merupakan pengguna modul BASIC Stamp, terdapat 2 hal yang menjadi batasan dari modul tersebut:
- Performa BASIC stamp yang lamban tidak dapat diandalkan untuk beberapa aplikasi.
- Harga BASIC stamp yang berkisar $100 adalah cukup tinggi.
Pada tahun 2005, Mazimo Banzi dan rekan-rekannya sukses menciptakan modul prototype, yang kemudian dinamakan sebagai Arduino. 300 buah PCB dibagikan kepada para siswa IDII yang dibarengi dengan instruksi “rakitlah sesuai dengan petunjuk di internet, kemudian gunakan untuk membuat sesuatu”. Tugas tersebut melahirkan berbagai macam aplikasi DIY (Do it yourself) menarik dan kemudian Arduino pun mulai dikenal oleh banyak orang.
Hardware arduino
Hardware Arduino, dapat dibagi menjadi dua bagian yaitu modul Arduino dan modul shield. Modul Arduino merupakan modul mikrokontroler yang akan digunakan sebagai pengendali, sedangkan modul shield merupakan modul tambahan (add-on) yang fungsinya bervariasi yaitu seperti sensor, motor driver, LED display, LCD, GPS, ethernet, dll.
Salah satu letak keunikan dari Arduino terletak pada konsep shield. Apabila pada umumnya koneksi antara modul mikrokontroler dengan modul sensor/aktuator dilakukan menggunakan kabel, maka pada Arduino koneksi tersebut dapat dilakukan dengan hanya memasang modul shield di atas modul Arduino. Hal tersebut membuat pengembangan sistem mikrokontroler menggunakan Arduino menjadi lebih praktis.
Modul arduino
Arduino merupakan platform yang bersifat open source baik hardware ataupun software. Berdasarkan ideologi tersebut Arduino memberikan skematik hardware serta kode program dari Arduino IDE kepada kalangan umum. Arduino membebaskan semua kalangan untuk mengubah rancangan hardware maupun software dengan beberapa ketentuan. Hal tersebut membuat lahirnya produk-produk Arduino compatible dari berbagai produsen seperti Innovative Electronics, SparkFun, Seeed Studio, DFRobot, dll.
Produk Arduino compatible dapat memiliki tingkat kompatibilitas yang berbeda antara satu dengan yang lainnya, mulai dari dukungan penuh dengan fitur yang sama (clone), adanya penambahan/pengurangan fitur, ataupun sebatas peletakan pinout yang sama. Hal tersebut dikarenakan tidak ada standar pasti mengenai tingkat kompatibilitas agar suatu produk dapat disebut sebagai Arduino compatible. Beberapa produk Arduino compatible tersebut cukup menarik dan dapat dijadikan sebagai alternatif dari modul Arduino yang ada.
Berikut adalah deskripsi umum dari beberapa bagian modul Arduino:
- Jack DC bagian yang dihubungkan dengan power supply eksternal. Nilai tegangan power supply yang dibutuhkan dapat berbeda antara modul arduino yang satu dengan yang lainnya.
- Header power
- Input ADC. Jalur tegangan analog untuk ADC.
- Mikrokontroler: pemrorses utama arduino. Pada bagian ini kode program yang kita buat akan disimpan dan dieksekusi.
- USB: Port USB digunakan sebagai jalur catu daya, komunikasi, maupun pemrograman arduino (menggunakan bootloader). Arduino akan melakukan pemilihan secara otomatis untuk catu daya yang digunakan apabila USB terhubung dengan komputer dan jack DC juga dihubungkan dengan power supply eksternal.
- ISP & SPI. Bagian ini gunakan unutk antarmuka SPI (Serial Peripheral Interface) sekligus pemrograman arduino melalui ISP (In-System Programming). Pemrograman arduino melalui ISP tidak disarankan karena dapat menghilangkan fitur bootloader sehingga arduino tidak dapat diprogram lagi melalui USB.
- Reset: tombol reset untuk mengulang eksekusi kode program dari awal
- I2C: Pin yang digunakan untuk komunikasi menggunakan antarmuka I2C.
- Referensi ADC: pin tegangan referensi ADC
- Digital: pin digital arduino yang dapat digunakan sebagai jalur I/O digital (high/ low).
- PWM: pin arduino yang memiliki fitur PWM. Fitur PWM dapat digunakan sebagai output tegangan analog.
- UART: pin yang digunakan untuk komunikasi antarmuka UART (RX/ TX).
Deskripsi bagian-bagian Arduino di atas dapat berbeda antara modul Arduino yang satu dengan yang lainnya. Informasi lebih pasti terdapat pada panduan masing-masing modul Arduino yang digunakan.
Modul shield
- EMS Blue Shield- Innovative electronics: shield ini digunakan untuk keperluan komunikasi menggunakan antarmuka nluetooth.
- EMS RFID Shield- innovative electronics: shield ini dapat digunakan untuk keperluan pembacaan smart card seperti: Mifare 1k, mifare 4k, dan mifare ultralight
- 2A Motor Shield for Arduino- DFrobot: shield ini dapat digunakan untuk keperluan pengendalian motor DC.
- OpenLog Open Source Datalogger- SparkFun: shield ini digunakan untuk memudahkan pengaksesan SD card melalui antarmuka UART.
- WizFi250- EVB Evaluation Board for WizFi250- Wiznet: shield ini digunakan untuk keperluan komunikasi menggunakan Wifi.
- Arduino Wifi Shield- Arduino: shield ini digunakan untuk keperluan komunikasi antarmuka menggunakan wifi.
Karena kita tidak melakukan pengkabelan secara manual untuk koneksi antara modul Arduino dan modul shield, maka pin-pin yang akan digunakan pada modul Arduino harus mengikuti desain susunan pin dari modul shield yang digunakan. Sebagai contoh, gambar di bawah merupakan potongan dari manual EMS RFID Shield dari Innovative Electronics yang memberikan informasi mengenai pin-pin modul Arduino yang digunakan. Pada manual dari EMS RFID Shield disebutkan bahwa pin untuk pendeteksian tag adalah pin 2, 3, 7, atau A5.
oke sama-sama
ReplyDelete