Arduino

Laporan Tugas Akhir Interaksi Manusia dan Komputer

MILC LogoPosting kali ini melengkapi sebuah posting yang telah diterbitkan beberapa minggu lalu.

Latar Belakang

Produk ini ditujukan bagi orang-orang yang cukup sibuk sehingga kurang memiliki waktu luang untuk membuat minuman sendiri.

Bagi sebagian orang, dispenser mereka terletak di ruang dapur yang terasa jauh dari tempat mereka mengerjakan tugas-tugas mereka. Dengan menggunakan MILC, mereka bisa membuat minuman hanya melalui aplikasi berbasis website. 

Produk ini menggunakan jaringan internet untuk menerima perintah dari pengguna dan mengirimkan data ke dispenser.

Alternatif Pemecahan Masalah

Alternatif yang diajukan ialah pembuatan mesin semacam robot yang bertugas untuk mengantarkan minuman ke meja pengguna. Robot tersebut dapat menerima perintah pengguna untuk mengambil minuman di ruang dapur. Sayangnya, alternatif ini tidak dapat diwujudkan saat ini karena terbatasnya waktu dan kurang terjangkaunya teknologi yang harus dibeli untuk dapat mengimplementasikan alternatif solusi ini.

Solusi yang kami pilih ialah MILC – MILC is Liquid Conditioner, sebuah dispenser yang memanfaatkan jaringan internet untuk melakukan tugas-tugasnya. Salah satu tugas utamanya ialah untuk membantu orang-orang membuat minuman dan mengatur suhu air pada dispenser sesuai keinginan.

Spesifikasi Desain

Sistem MILC memiliki dua masukan utama, yaitu air yang ditampung pada botol berkapasitas 1.5 Liter dan bubuk yang ditampung pada sebuah boks berkapasitas maksimal 300 gram. Perintah pengguna untuk membuat minuman juga termasuk salah satu masukan sistem; besaran yang dapat diukur yakni kecepatan transmit data.

Keluarannya sistem ialah ialah larutan air yang sudah dicampur dengan bubuk. Kapasitas maksimal larutan tersebut yaitu 300 ml. MILC juga dapat mengirimkan suhu air saat ini kepada pengguna dalam satuan Celsius.

Komponen-komponen yang digunakan untuk membuat sistem MILC yaitu:

  1. Arduino Uno 1 buah
  2. Beberapa kabel jumper
  3. Driver motor L298N 1 buah
  4. Modul Wi-Fi ESP8266
  5. Sensor suhu DS18B20
  6.  Motor DC 3 buah
  7.  Sensor ultrasonik HC-SR04 2 buah
  8. Kertas duplex
  9. Breadboard 1 buah
  10. Selang 1 meter
  11. Lem tembak dan isinya 5 buah
  12. Botol bekas 1.5 L 1 buah
  13. Kardus bekas
  14. Kertas HVS
  15. Botol bekas 0.3 L 2 buah
  16. Sedotan bekas 1 pak
  17. Kabel tie 5 buah
  18. Cutter dan isinya bila perlu
  19. Gunting
  20. Isolasi hitam/electric tape
  21. Double tape foam/isolasi bolak balik
  22. Solder dan timah secukupnya

Protokol yang dipakai adalah HTTP, dibantu dengan modul Wi-Fi ESP8266.

Desain Perangkat Keras

MILC 01

Besaran yang ingin diukur dari lingkungan ialah suhu dan jumlah air serta jumlah bubuk. Bubuk dan air ditampung pada dua penampung yang berbeda. Kemudian sensor suhu (DS18B20) dipasang pada penampung air untuk mengetahui suhu air, sedangkan sensor ultrasonik (HC-SR04) digunakan pada kedua penampung untuk mengetahui jumlah air dan bubuk yang tersisa.

Kami menggunakan Arduino Uno dan Driver Motor L298N sebagai mikrokontrollernya. Driver Motor L298N berfungsi sebagai pengendali motor DC (aktuator) yang berfungsi mengendalikan gerak naik dan turunnya botol penakar.

Data berupa jumlah dan suhu air beserta jumlah bubuk dikirim ke web server Apache menggunakan modul Wi-Fi ESP8266. Dari web server, sistem dapat menerima perintah pembuatan minuman khusus dari pengguna dan memprosesnya sehingga minuman dapat dibuat.

Desain Perangkat Lunak

MILC 02

Gambar di samping ialah flow chart sistem MILC. Pertama, sistem akan menerima perintah dari pengguna. Apabila perintah berupa pemunculan Status saja, maka sistem akan menampilkan status berupa jumlah sisa dan suhu air, sisa bubuk, status pemanas (Nyala/Mati) dan status pembuatan (Sudah Jadi/Belum Jadi).

Saat hendak membuat minuman, sistem akan memeriksa data jumlah air dan minuman untuk memastikan bahwa minuman bisa dibuat. Bila tidak, maka sistem akan mengirimkan notifikasi kepada pengguna melalui web. 

Bila jumlah air dan bubuk mencukupi, maka sistem akan memberi perintah pada Motor DC untuk menggerakkan botol penakar ke atas dan ke bawah. Botol penakar akan turun ke bawah untuk menampung air, kemudian naik ke atas untuk mengalirkan air ke botol pengaduk melalui saluran (saat ini berupa sedotan).

Setelah minuman telah selesai diaduk, minuman akan dituangkan ke gelas yang tersedia dan pengguna akan diberitahu melalui web.

Desain User Interaction

MILC 03

Saat ini, hanya interface di atas yang baru diimplementasikan. Pemanas dapat diaktifkan menggunakan sebuah command yang nanti dikirimkan ke server. Sistem MILC pun juga mampu membuat minuman dengan menggunakan sebuah command.

Bila bubuk atau air kurang mencukupi, maka sistem akan mengirimkan notifikasi bahwa minuman tidak dapat dibuat.

Implementasi Perangkat Keras

Dispenser ini memiliki dua penampung yang berisi air dan bubuk tertentu — misalnya kopi.

Di samping itu, pengguna dapat mengatur suhu air panas sesuai keinginan mereka dan memberikan perintah kepada dispenser untuk membuat minuman. MILC dilengkapi dengan pengaduk yang berfungsi melarutkan bubuk dengan air panas.

Sistem MILC juga secara otomatis akan menakar air sesuai keinginan pengguna dengan botol penakar air yang bergerak secara otomatis ke bawah untuk mengisi air dan bergerak ke atas untuk mengalirkan air ke suatu botol pengaduk. Pergerakan botol ini dikendalikan oleh driver motor L298N.

Masalah kami ialah terlalu berfokus pada masalah mekanik, yaitu menentukan mekanisme katup terbaik untuk mengalirkan air ke botol penakar. Selain itu, masalah pada sensor ESP8266 yang memunculkan error RTO juga menghambat penyelesaian proyek. Pengaturan daya antarkomponen juga menjadi masalah.

Implementasi Perangkat Lunak

terima.php
Kode di atas adalah kode terima.php. Kode ini berfungsi sebagai media bagi sensor ESP8266 menerima dan mengirimkan data ke server. Format transfer data dibuat custom sesuai format yang kami buat.

default.php
Kode di atas ialah potongan kode info.php. Kode ini berfungsi menampilkan database  yang berisi kondisi dispenser saat ini dalam bentuk tabel kepada pengguna. Kode ini juga berfungsi sebagai media bagi user untuk memberikan instruksi kepada sistem dispenser MILC.

Kode terakhir ialah kode default.php. Kode ini berfungsi untuk menampilkan info database secara real-time. 

Pengujian

Kami melakukan pengujian untuk seetiap komponen yang digunakan pada sistem ini. Berikut adalah daftar pengujiannya.

  1. Pengujian Arduino Uno
  2. Pengujian sensor suhu
  3. Pengujian sensor ultrasonik
  4. Pengujian aktuator motor DC
  5. Pengujian mekanisme katup
  6. Pengujian koneksi ESP8266
  7. Pengujian website
  8. Pengujian database
Arduino

Progress #4 Interaksi Manusia dan Komputer


Kami melanjutkan kembali pembuatan proyek tugas besar IMK pada hari Minggu, 7 Mei 2017 bersama dua rekan saya yang lain, Andreas Ekadinata dan Fat Han Nuraddin.

Pada gambar di atas, terlihat penakar yang terhubung dengan penampung air (Coca-cola 1.5 L) dan pengaduk (botol 300 ml pada paling bawah).

Pada dasarnya, botol penakar bergerak pada lintasannya menggunakan prinsip pesawat sederhana, yaitu katrol yang gerakannya dibantu oleh motor yang berada di bawah penakar.

Botol penakar akan bergerak mendekati penampung untuk mengalirkan air ke pengaduk dan sebaliknya — bergerak ke bawah untuk mengalirkan air dari penampung ke penakar.

Penakar dapat naik dan turun secara otomatis. Motor akan selalu berada pada posisi ON untuk menerima masukan pengguna. Sebelum masuk ke pengaduk, botol penakar akan mengukur jumlah air yang mengalir dari penampung. Bila telah sesuai jumlah yang ditentukan (misal 300 ml) maka air akan mengalir ke pengaduk. Pada intinya, botol penakar mengukur dan bergerak secara otomatis.

 

Arduino

Progress #3 Interaksi Manusia dan Komputer


Progress terakhir kami lakukan pada tanggal 6 Mei 2017 di kostan rekan saya Andreas bersama rekan saya juga, Fat Han. Agenda kami ialah membuat mekanisme katup pada botol penakar. Hal ini terbilang cukup sulit karena kami harus melakukan engineering pada beberapa komponennya.

Pertama-tama, setelah mekanisme buka/tutup katup penakar selesai digunakan menggunakan sedotan dan motor, selanjutnya ialah merancang bagaimana penakar tersebut bisa naik mendekati botol penampung bubuk (Coca-cola 1.5 L) dan turun mendekati gelas penampung campuran air dan bubuk.

Hal ini diwujudkan dengan menempelkan botol pada dua sedotan yang telah ditempelkan pada sepotong kertas duplex sebagai rel botol sehingga botol bisa melaju naik dan turun. Agar dapat melaju secara otomatis, maka perlu digunakan sebuah motor yang bergerak dengan kecepatan tertentu.

Kecepatan putar motor diatur dengan memberikan masukan tegangan tertentu pada motor. Pada kasus ini, kami memberikan tegangan sekitar 3.3 Volt (kalau tidak salah). Pada salah satu gambar, terlihat kami sedang menempelkan sebuah sekrup pada salah satu sisi motor. Kami menguji kekuatan putarannya dengan menempelkannya pada salah satu snack yang kami beli sebagai kudapan. Meskipun dapat melubangi snack tersebut, namun saat itu kami berpikir bahwa putaran motor ditakutkan kurang kuat sehingga kami memutuskan mengurangi muatan air pada penampung (Coca-cola 1.5 L) agar tidak terlalu membebani penakar.

Salah satu gambar di atas menunjukkan kegiatan menempelkan sepotong duplex kecil pada bagian atas dan bawah duplex yang terpasang botol penakar. Hal ini tujuannya untuk membatasi laju botol agar tidak melesat terlalu jauh dari yang diinginkan. Kami juga berencana memasang karton pada sisi kanan dan kiri botol agar botol tetap berada pada jalurnya. Saat itu, kami takut bahwa botol penakar kurang erat tertempel pada kertas duplex.

Kami mengerjakan tugas ini dari jam 20.00 WIB hingga pukul 01.30 WIB dini hari. Tentu saja, terdapat canda tawa pada selang pengerjaan tugas, termasuk yang . . . kurang baik untuk dibicarakan di sini. 🙂

 

Arduino

Progress #2 Interaksi Manusia dan Komputer

Progress selanjutnya yaitu kami berusaha merancang mekanisme aliran bubuk ke bagian penakar. Pada saat itu — tanggal 29 April 2017 — kami memutuskan untuk menggunakan motor sebagai penggerak mekanik buka/tutup saluran menuju penakar.

Video di atas ialah keberhasilan kelompok kami dalam memanfaatkan Ethernet Shield untuk menyalakan LED dan mengirimkan data secara real-time. Sebelumnya, telah terjadi beberapa kali kegagalan koneksi dengan Ethernet Shield. Pada awalnya, muncul tulisan “Failed to set STA mode”. Kemudian pada hampir tengah malam, rekan saya Andreas mengirimkan saya video keberhasilan saat saya sudah tiba di rumah.

Pada saat itu kami juga memikirkan cara agar penakar dapat memperoleh jumlah air dan bubuk sesuai dengan keinginan pengguna. Saat itu, diputuskan bahwa dari penampung bubuk, akan dipasang sebuah selang yang menghubungkan salah satu botol besar (Coca-cola 1.5 L) dengan botol kecil yang berfungsi sebagai penakar. Kemudian dari penakar akan dipasang selang menuju suatu gelas yang berfungsi sebagai tempat mengaduk air dan bubuk yang telah ditakar tadi.