Tuesday, 9 May 2017

Final Task : Report

Beberapa minggu sebelumnya, post terakhirku menceritakan ide mengenai sistem IoT yang telah ku rancang bersama kelompokku. Setelah itu kami mulai mencoba mengimplementasikannya. Dan akhirnya, hari ini kami selesai melakukan proyek kami. Berikut ini adalah laporannya.


Smart Presence System — sistem pendataan kehadiran untuk mahasiswa


Latar Belakang

Selama ini, sistem pendataan presensi mahasiswa masih dilakukan secara manual dan menggunakan cara yang konvensional, yaitu dengan menggunakan daftar nama yang ditandatangani oleh mahasiswa di ruang kelas serta rekapitulasi manual yang dilakukan oleh pihak tata usaha. Sistem ini memiliki beberapa kelemahan, seperti mudah terjadinya kecurangan (titip absen), menghabiskan banyak waktu, membutuhkan tenaga yang lebih, dan boros dalam penggunaan sumber daya. Padahal, masih banyak peluang dalam mengembangkan penggunaan teknologi untuk meningkatkan kinerja sistem yang sudah ada.


Alternatif Solusi

Saat ini, beberapa teknologi untuk pendataan presensi telah dikembangkan. Beberapa diantaranya adalah teknologi fingerprint dan Radio Frequency Identification (RFID). Teknologi fingerprint menggunakan sistem biometrik yaitu deteksi sidik jari untuk setiap mahasiswa. Teknik pembacaan sidik jari yang ada bermacam-macam diantaranya optis, ultrasonik, kapasitans, dan termal. Sistem ini sudah menggunakan teknologi yang canggih, namun ada beberapa kelemahan seperti mahalnya biaya yang diperlukan, kesulitan pendataan di awal, serta kendala teknis seperti waktu untuk membaca sidik jari yang kadang sulit dideteksi. Teknologi lain yaitu RFID. RFID adalah sebuah teknologi penangkapan data yang memanfaatkan frekuensi radio dalam sistem kerjanya yang dapat digunakan secara elektronik untuk mengidentifikasi, melacak dan menyimpan informasi yang tersimpan dalam tag RFID. Tag RFID biasanya berupa kartu tanda pengenal. Seperti penggunaan fingerprint, sistem ini juga sudah menggunakan teknologi yang canggih, namun masih terdapat beberapa kelemahan seperti banyaknya jumlah kartu yang dibutuhkan, masih memungkinkan terjadi kecurangan, serta rumitnya pengelolaan terutama ketika terjadi masalah seperti kerusakan pada kartu atau hilangnya kartu.


Spesifikasi Desain

Smart Presence System mencoba mengimplementasikan teknologi baru untuk meminimalisasi kelemahan-kelemahan yang dimiliki sistem yang sudah ada saat ini. Teknologi yang digunakan dapat menjadi solusi yang tepat untuk meningkatkan efektivitas dan efisiensi sistem presensi untuk mahasiswa. Kemudahan implementasi juga menjadikan solusi ini dapat dengan mudah diterapkan di berbagai tempat.

Smart Presence System merupakan sistem pendataan presensi mahasiswa yang menggunakan teknologi barcode dan terintegrasi langsung dengan memanfaatkan jaringan internet. Gambar dibawah ini menjelaskan sketsa umum dari Smart Presence System. Sistem ini meliputi aplikasi mobile yang digunakan oleh mahasiswa. Fungsi utama aplikasi tersebut yaitu sebagai barcode generator yang di-generate pada setiap pertemuan dan unik untuk setiap mahasiswa sehingga kecurangan dapat dihindari. Selanjutnya, barcode akan dipindai oleh mesin barcode scanner yang tersedia di setiap ruang kelas. Mesin barcode scanner akan merekam data kehadiran mahasiswa, kemudian langsung mengirim data tersebut melalui jaringan internet ke database yang telah terintegrasi. Database kemudian akan langsung di-update dan hasilnya ditampilkan pada situs akademik online ITB.




Berikut ini adalah spesifikasi sistem yang kami buat.

Input: Kode warna RGB dari smartphone
Output: Data absensi mahasiswa
Alat dan Komponen:
  1. Espectro Core / Arduino Uno + ESP8266
  2. Kabel jumper
  3. Sensor Warna TCS3200
  4. Red LED
  5. Green LED
  6. Buzzer
  7. Smartphone Android
  8. XAMPP
  9. ThingSpeak
  10. Arduino IDE

Desain Perangkat Keras

Gambar di bawah ini adalah diagram blok sistem yang kami rancang.








Karena keterbatasan waktu, kami memodelkan barcode generator system dengan prototype aplikasi Android sederhana menggunakan Justinmind. Hal ini kami lakukan karena dengan prototyping tersebut fungsionalitas aplikasi yang kami inginkan sudah terpenuhi. Aplikasi ini akan menampilkan warna untuk dipindai oleh color sensor.

Untuk barcode identification system akhirnya kami menggunakan ESPEctro board dengan modul WiFi ESP8266 yang telah terintegrasi. Awalnya kami ingin memakai modul ESP8266-01 yang dihubungkan ke Arduino UNO. Namun dalam keberjalanannya, koneksi menggunakan modul tersebut sangat tidak stabil, bahkan baru untuk operasi sederhana seperti mengirimkan AT command. Setelah beberapa kali mencoba menggunakan modul tersebut kami memutuskan untuk mencari alternatif lain, yaitu menggunakan board tersebut. 

Kami menggunakan color sensor TCS3200 untuk memodelkan barcode scanner. Sensor warna inilah yang akan memindai warna (sebagai model dari barcode) yang menyimpan data tertentu. Hal ini dilakukan dengan pertimbangan dana yang kami miliki. Untuk tambahannya, kami menggunakan buzzer dan LED sebagai notifikasi saat color sensor berhasil membaca data. Setelah itu kami mengirim data yang terbaca color sensor ke jaringan internet dengan memanfaatkan modul WiFi pada Arduino. Kami menggunakan protokol HTTP dengan memanfaat aplikasi web ThingSpeak, yaitu sebagai server dari data yang telah dipindai tadi. Data tersebut akan tersimpan dan kemudian dapat diakses dari website, yang pada sistem kami merupakan model website sistem informasi akademik ITB menggunakan free hosting dengan alamat http://smartpresencesystem.000webhostapp.com/thingspeak.html


Desain Perangkat Lunak & User Interface

Alur/flowchart sistem adalah sebagai berikut.




Dan berikut ini adalah rancangan sketsa sistem kami. Sketsa yang dibuat adalah perangkat keras (barcode identifier) serta perangkat lunak sistem (barcode generator)


    

Implementasi Sistem

Dibawah ini adalah beberapa tampilan implementasi sistem.









source code

 
Sistem sensor


Tampilan Website


Pengujian Sistem

Setelah itu kami juga melakukan pengujian sistem. Berikut ini adalah skema pengujian sistem yang kami lakukan.


Seperti itulah hasil implementasi proyek kami. Memang, dalam keberjalanan banyak kendala yang kami dapatkan. Namun hal itu yang menjadi cerita yang akan selalu dikenang dan sebagai pelajaran berharga bagi kami. Untuk kedepannya, proyek ini masih dapat dikembangkan kembali dan implementasi dapat dilakukan dengan lebih baik. Semoga proyek kami ini dapat diwujudkan dengan lebih baik dan memberi banyak manfaat bagi banyak orang :)

Tuesday, 28 March 2017

Final Task : Idea


Smart Presence System — sistem pendataan kehadiran untuk mahasiswa


Selama ini, sistem pendataan presensi mahasiswa masih dilakukan secara manual dan menggunakan cara yang konvensional, yaitu dengan menggunakan daftar nama yang ditandatangani oleh mahasiswa di ruang kelas serta rekapitulasi manual yang dilakukan oleh pihak tata usaha. Sistem ini memiliki beberapa kelemahan, seperti mudah terjadinya kecurangan (titip absen), menghabiskan banyak waktu, membutuhkan tenaga yang lebih, dan boros dalam penggunaan sumber daya. Padahal, masih banyak peluang dalam mengembangkan penggunaan teknologi untuk meningkatkan kinerja sistem yang sudah ada.

Saat ini, beberapa teknologi untuk pendataan presensi telah dikembangkan. Beberapa diantaranya adalah teknologi fingerprint dan Radio Frequency Identification (RFID). Teknologi fingerprint menggunakan sistem biometrik yaitu deteksi sidik jari untuk setiap mahasiswa. Teknik pembacaan sidik jari yang ada bermacam-macam diantaranya optis, ultrasonik, kapasitans, dan termal. Sistem ini sudah menggunakan teknologi yang canggih, namun ada beberapa kelemahan seperti mahalnya biaya yang diperlukan, kesulitan pendataan di awal, serta kendala teknis seperti waktu untuk membaca sidik jari yang kadang sulit dideteksi. Teknologi lain yaitu RFID. RFID adalah sebuah teknologi penangkapan data yang memanfaatkan frekuensi radio dalam sistem kerjanya yang dapat digunakan secara elektronik untuk mengidentifikasi, melacak dan menyimpan informasi yang tersimpan dalam tag RFID. Tag RFID biasanya berupa kartu tanda pengenal. Seperti penggunaan fingerprint, sistem ini juga sudah menggunakan teknologi yang canggih, namun masih terdapat beberapa kelemahan seperti banyaknya jumlah kartu yang dibutuhkan, masih memungkinkan terjadi kecurangan, serta rumitnya pengelolaan terutama ketika terjadi masalah seperti kerusakan pada kartu atau hilangnya kartu.

Smart Presence System mencoba mengimplementasikan teknologi baru untuk meminimalisasi kelemahan-kelemahan yang dimiliki sistem yang sudah ada saat ini. Teknologi yang digunakan dapat menjadi solusi yang tepat untuk meningkatkan efektivitas dan efisiensi sistem presensi untuk mahasiswa. Kemudahan implementasi juga menjadikan solusi ini dapat dengan mudah diterapkan di berbagai tempat.

Smart Presence System merupakan sistem pendataan presensi mahasiswa yang menggunakan teknologi barcode dan terintegrasi langsung dengan memanfaatkan jaringan internet. Gambar dibawah ini menjelaskan sketsa umum dari Smart Presence System. Sistem ini meliputi aplikasi mobile yang digunakan oleh mahasiswa. Fungsi utama aplikasi tersebut yaitu sebagai barcode generator yang di-generate pada setiap pertemuan dan unik untuk setiap mahasiswa sehingga kecurangan dapat dihindari. Selanjutnya, barcode akan dipindai oleh mesin barcode scanner yang tersedia di setiap ruang kelas. Mesin barcode scanner akan merekam data kehadiran mahasiswa, kemudian langsung mengirim data tersebut melalui jaringan internet ke database yang telah terintegrasi. Database kemudian akan langsung di-update dan hasilnya ditampilkan pada situs akademik online ITB.





Sebagai prototipe, kami mencoba memodelkan sistem yang dirancang ini dengan menggunakan Arduino. Beberapa fungsionalitas dari sistem ini juga kami coba modelkan dengan sederhana. Penjelasan lebih detilnya adalah sebagai berikut.

Barcode generator system akan dimodelkan dengan aplikasi Android sederhana yang dapat meng-generate barcode sesuai data yang ada. Selain itu, aplikasi juga akan menampilkan warna tertentu untuk dipindai.

Barcode identification system akan dimodelkan secara sederhana dengan menggunakan Arduino UNO, color sensor, serta modul WiFi ESP8266. Komponen ini digunakan karena keterbatasan dana yang kami miliki. Kami akan menggunakan color sensor dan warna-warna untuk memodelkan barcode scanner yang akan memindai warna yang menyimpan data tertentu. Setelah itu kami akan menyimpan data yang ada tersebut ke jaringan internet dengan memanfaatkan modul WiFi pada Arduino.

Data incorporation & processing system akan dimodelkan dengan menggunakan MQTT dan cloud service tertentu, yaitu sebagai server dari data yang telah dipindai tadi. Data tersebut akan tersimpan di internet dan kemudian dapat diakses dari berbagai device, seperti dari web dan Android device.

Sejauh ini, seperti itulah gambaran prototipe sistem yang akan dibuat. Selanjutnya kami akan mencoba mengimplementasikan rancangan prototipe tersebut. Wish us luck! xxx

Tuesday, 7 March 2017

Fourth Task : Calculator

8 Maret 2017.
Tugas minggu keempat (dan lima).

Tugas keempat yang diberikan dosen ku yaitu membuat kalkulator sederhana aka kalkulator sayur. Ya, kami ditugaskan untuk membuat kalkulator yang minimal mampu melaksanakan operasi penjumlahan, pengurangan, perkalian, dan pembagian. Operasi tersebut bisa dilakukan dengan menggunakan keypad 4x4 dan ditampilkan pada LCD.

Waktu yang diberikan untuk mengerjakan tugas ini lebih lama dari biasanya, yaitu dua minggu. Aku beserta Rezki dan Nove mencoba mengerjakannya di minggu pertama yaitu pada hari Selasa, 28 Februari. Awalnya kami berekspektasi bisa menyelesaikannya dengan mudah dan tidak memakan waktu lama. Namun ternyataaa... reality is way far from the expectation.

Pertama kami mencoba untuk tes LCD terlebih dahulu. Kami menggunakan Arduino, LCD, kabel jumper, breadboard, dan potensiometer. Rangkaiannya terlihat cukup mudah. Namun ternyata tidak, hahaha. Kami mencoba merangkai LCD tersebut, dan tidak berhasil. LCD tidak memunculkan tanda-tanda kehidupannya (?) Hipotesis kami, mungkin pin-pin LCD-nya tidak bisa disambung hanya dengan kabel biasa, jadi mungkin harus menggunakan kaki dan disolder. Akhirnya karena keterbatasan waktu kami menyudahi percobaan kami di hari itu.

Kemudian pada hari Jumat, Rezki mencoba membuat rangkaian kalkulator tersebut sendiri di kosnya dan ternyata berhasil. Yeaaay. Aku pun ikut merasa senang walau belum melihatnya sendiri. Namun karena baru mencoba-coba saja, ia tidak mendokumentasikannya dan membongkar ulang seluruhnya untuk dirangkai kembali nanti.

Kemarin kami melanjutkan percobaan tersebut bersama. Kami berkumpul sesudah UTS AE di tempat biasa kami mengerjakan, yaitu selasar Gedung CC Timur. Kami sudah cukup optimis, karena Rezki juga sudah berhasil mencobanya Jumat lalu. Jadilah kami menyiapkan seluruh komponen dan merangkainya sesuai skema.

Berikut ini komponen-komponennya,

  1. Satu set Arduino UNO dan programnya di laptop
  2. Breadboard
  3. Keypad 4x4
  4. Liquid Crystal Display (LCD) 16x2
  5. Potensiometer
  6. Kabel jumper
Awalnya kami merangkai sesuai skema yang ada di buku panduan praktikum Sistem Digital dan Mikroprosesor yang telah kami pelajari di semester 4 kemarin. Kami memakai 10 dari 16 pin yang ada pada LCD. Pin 1 (VCC +5 Volt), 2  (GND), 3 (VEE, untuk mengatur kontras LCD), dan 5 (Read/Write) kami hubungkan ke potensiometer dulu, sehingga kami bisa menghemat 2 pin yang digunakan di Arduino. 6 pin lain yang kami gunakan adalah pin 4 (RS, Register Select), pin 6 (E, Enable Clock LCD), dan 4 pin Input Data Bus (pin 11-14). Setelah menyusun sesuai rangkaian kami mencoba menyalakan LCD nya dannn berhasil! Ya...itu baru menyalakan LCD...

Setelah itu kami menghubungkan 8 pin pada keypad 4x4 ke pin-pin pada Arduino. Well, kalau dihitung-hitung jumlah pin yang kami gunakan dengan yang tersedia pada Arduino UNO ini pas, yaitu 14 pin input digital.

First try, keypad tidak berfungsi. Tidak tahu kenapa. Kami mencoba mengutak-atiknya, tapi tetap saja tidak berhasil. Program sudah kami cek, dan kami merasa itu sudah benar. Toh Rezki sudah pernah menggunakannya dan berhasil. Apakah keypad-nya yang error? Kami pun sudah mencoba meminjam keypad kelompok sebelah, namun tidak membawa hasil apapun. Atau LCD-nya? Kami merasa LCD-nya baik-baik saja, dan karena merangkainya cukup menyusahkan, kami tidak melepas sambungan LCD nya. Atau breadboard-nya? Potensiometernya?

???????

Second try, finally keypad berhasil berfungsi! Ya, akhirnya kami mencoba merangkai ulang seluruhnya, dan hasilnya kalkulator kami dapat sepenuhnya berfungsi....hanya selama beberapa detik. Yah, tidak tahu kenapa, hanya beberapa kali saja keypad mengeluarkan output yang sesuai. Setelah itu tiba-tiba output yang dihasilkan kacau dan memunculkan karakter-karakter yang tidak jelas (?)

Third try, hipotesis kami mungkin ada kesalahan pada sambungan LCD-nya. Kami pun mencoba hanya melilitkan kabel-kabel jumper ke pin LCD tanpa 'menanam'-nya di breadboard. Tapi hasilnya nihil. Dan kami mulai lelah :') Terlebih lagi, kami heran kenapa jadi banyak kendala begini, padahal pada saat Rezki mencoba, rangkaian kalkulator ini dengan mudah dapat berfungsi. Bahkan tanpa menggunakan kaki tambahan untuk LCD-nya seperti yang rata-rata dilakukan kelompok lain.

Fourth, Fifth, and so on tries, masih tetap tidak berfungsi. Kami sudah mencoba berbagai kombinasi (?) dengan meminjam komponen-komponen milik kelompok lain, namun tetap belum berhasil... Kami benar-benar sudah hopeless karena telah mencobanya selama 2 jam lebih namun belum bisa juga. Tidak tahu apa sebenarnya yang bermasalah. Dugaan kami mungkin pin 0 dan 1 pada Arduino memang tidak bisa digunakan sebagai input, seperti yang pernah Rezki dengar.

Kemudian tiba-tiba Rezki mencetuskan untuk mencoba menggunakan pin analog pada Arduino untuk pin-pin LCD. Mungkin saja bisa, mungkin...

Setelah memindahkan kabel-kabel jumper dari input digital ke analog, voila! FINALLY IT WORKSSSS! Hahahaha kami sangat senang karena setelah perjuangan panjang, akhirnya kami berhasil. Sebenarnya aku belum terlalu paham apakah memang bisa pin analog tersebut digunakan untuk LCD. Tapi yah yasudahlah. Yang penting kami berhasil... Hehehe.

Berikut ini adalah skema dan source code yang kami gunakan serta dokumentasi hasil percobaan kami.

Skema


Source Code (sumber: arduino.cc dengan beberapa modifikasi)







 Dokumentasi:





Video:



Tuesday, 21 February 2017

Third Task : Sensor

22 Februari 2017.
Tugas minggu ketiga.

Kali ini tugas yang diberikan kepada kami melibatkan sensor. Ya, sensor apapun, intinya perangkat Arduino kami bisa membaca / men-sense sinyal/rangsangan dari luar dan memprosesnya. Kami memilih sensor ultrasonik dan kami gunakan untuk mengukur jarak suatu benda dari sensor tersebut. Kami memilih ini karena komponen sensor tersebut sudah dimiliki oleh Nove.

Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik (bunyi ultrasonik). Sensor ini berfungsi untuk mengetahui jarak antara sensor dengan objek yang ada di depannya atau objek yang memantulkan gelombang ultrasoniknya.

Jarak yang bisa dideteksi oleh sensor ini ± 2 cm hingga 400 cm, dengan tingkat presisi sebesar 0,3 cm. Sudut yang bisa dideteksi tidak lebih dari 15°. Arus yang diperlukan tidak lebih dari 2mA dan tegangan yang dibutuhkan sebesar 5 volt.

Seperti biasa, komponen-komponen yang kami gunakan yaitu sebagai berikut.
  1. Satu set Arduino UNO dan programnya di Laptop
  2. Breadboard
  3. Sensor ultrasonik HC-SR04
  4. Kabel jumper
Nah berikut ini adalah skema rangkaiannya.



Awalnya, kami ingin menggunakan LCD untuk menampilkan hasil jarak yang terukur. Kami sudah mencoba rangkaian dengan sensor ultrasonik beserta LCD. Namun ketika programnya kami coba jalankan, LCD kami tidak menyala. Setelah kami periksa ulang pin-pin, rangkaian, serta programnya pun LCD tersebut belum juga menyala. 

Akhirnya kami memutuskan untuk tidak menggunakan LCD dan hanya menampilkan hasil pengukuran jarak pada serial monitor. Berikut ini adalah source code yang kami gunakan.


Dan berikut ini adalah hasil rangkaian kami




Tampilan jarak terukur pada serial monitor:

Terakhir, ini adalah hasil videonya.



Wednesday, 15 February 2017

Second Task : Counter

15 Februari 2017
Tugas minggu kedua.

Setelah memulai perjalanan mengenal Arduino dengan toggle switch sederhana, kami melangkah lebih minggu ini, yaitu mulai menggunakan display berupa 7-segment LED. Tugas kami yaitu membuat counter sederhana yang akan memunculkan angka 0-9 secara berurutan setiap tombol switch ditekan. Seperti minggu sebelumnya, kami memulainya dengan mempersiapkan komponen-komponen yang diperlukan.
  1. Satu set Arduino UNO dan programnya di Laptop
  2. Breadboard
  3. 7-segment LED
  4. Resistor 220 Ohm
  5. Kabel jumper
  6. Tombol Switch
Kemudian kami membuat rangkaian sesuai skema berikut.
  


Next, let's take a look at the source code for this program.



Finally, let's take a look at the result!

 



Begitulah cerita tentang tugas kedua yang diberikan. Mungkin minggu depan kami akan diberi tantangan yang lebih menarik. Looking forward to it!

Tuesday, 7 February 2017

First Task: LED Toggle Switch

8 Februari 2017.
Tugas minggu pertama.

Dosenku bilang untuk memulai semua dari 0. Katanya, supaya semua setara dan tidak ada yang tertinggal. Yah sejujurnya itu sangat menguntungkan bagi pemula sepertiku, hehe. Anggap saja inilah awal perjalanan kami ber-"interaksi" dengan komputer. Tugas kami yaitu menyalakan dan mematikan lampu LED menggunakan switch.

My partners in this journey are Rezki (18214002) and Nove (18214031). They both are awesome in their own ways. I hope we can create something "whoaa" and cool in the end of this journey. Semangat guys ^^

--
Back to the task.


Okay, jadi tugas pertama kami adalah membuat rangkaian LED Toggle Switch. Apa itu? Hmmm intinya kami harus membuat tombol on-off yang bersifat layaknya remote TV, dimana setiap kali ditekan, tombol ini akan menyalakan/mematikan lampu LED sesuai kondisi lampu tersebut saat itu.

Berikut ini adalah alat dan komponen-komponen yang kami gunakan untuk tugas pertama kami.
  1. Satu set Arduino UNO dan programnya di Laptop
  2. Breadboard
  3. LED merah
  4. Resistor 220 Ohm
  5. Kabel jumper
  6. Tombol Switch
Kemudian kami merangkai alat-alat tersebut dengan skema seperti gambar dibawah.

Gambar 1 Skema Rangkaian LED Toggle Switch

Well, untuk tugas pertama ini rangkaiannya memang masih sangat sederhana. Kami hanya membutuhkan beberapa menit untuk merangkainya.

Setelah selesai merangkai, kami menjalankan program untuk percobaan ini. Berikut ini adalah source code yang kami gunakan.


Final step, meng-compile program tersebut dan meng-upload nya ke Arduino. Dan, voila! Rangkaian pertama kami sukses dan hasilnya sesuai dengan yang kami harapkan.

Berikut ini beberapa dokumentasi hasilnya.

 



Sooo that's all about the first task assigned. Looking forward to the next ones, hehehe. See you later!

Welcome

Welcome to my Arduino Diary! I am Nurlaili Rizki Hasanah (18214049). In this blog I will write the Arduino project tasks assigned for II3231 Human-Computer Interaction course. Enjoy :)