Smart Dispenser: Drinkify

by timsuksessem4 in Circuits > Arduino

867 Views, 2 Favorites, 0 Comments

Smart Dispenser: Drinkify

23117.jpg
23118.jpg
23113.jpg
23115.jpg
23109.jpg

Pada kesempatan kali ini kami akan memperkenalkan produk yang sudah kami buat yang bernama smart dispenser Drinkify.


Dibuat oleh:

- Winxen Eric Ryandiharvin - 2440066815

- Vincent Harjadi - 2440031641

- Vendy Sanjaya Pranoto - 2440019812

Latar Belakang

Kita semua butuh minum, terlebih lagi jika sedang berolahraga atau melakukan pekerjaan berat, sehingga tentunya kebutuhan akan minuman menjadi lebih esensial. Yang mana demi menjaga tubuh kita agar tetap sehat, keseimbangan cairan di dalam tubuh harus diperhatikan kapan saja dan dimana saja.

Sehingga penulis berinovasi untuk membuat sebuah tempat pembelian minuman yang mudah, praktis, dan tersedia di berbagai tempat serta dapat diakses kapan saja. Produk ini diberi nama Drinkify yang terdiri dari sebuah perangkat pintar yang bernama “Smart Dispenser by Drinkify” dan aplikasi yang dapat diakses melalui gawai yang bernama “Drinkify”. Smart Dispenser ini bekerja layaknya dispenser, dengan menuangkan minuman ke wadah seperti gelas apabila pengguna sudah melakukan pemesanan dan transaksi pembayaran melalu aplikasi Drinkify.

Kemudian dengan produk ini, dapat mengatasi salah satu masalah yang selalu dihadapi jika ingin membeli minuman yang bukan kemasan secara konvensional (melalui warung). Tidak lain tidak bukan adalah adalah tentang jam operasionalnya, yang mana warung dikelola oleh manusia sehingga tidak dapat beroperasi selama 24 jam, jadi solusinya adalah implementasi konsep IoT agar dapat beroperasi tanpa atau dengan minim interaksi manusia.

Dengan demikian, penulis mengembangkan sebuah sistem Internet of Things (IoT) terkhusus dibidang entrepreneur dengan integrasi melalui aplikasi pada smartphone, yang mana dengan maksud agar menjadi solusi problematika yang ada dan dapat menjadi bagian dari gaya hidup masyarakat secara luas.

Alat Dan Bahan

20230131_123118.jpg
20230131_123105.jpg

Berikut adalah list alat dan bahan yang diperlukan untuk pembuatan smart dispenser Drinkify

Hardware:

  1. Sensor Ultrasonic HC SR04
  2. WT32-SC01
  3. Relay 5V 1 Channel
  4. Pompa air mini 12V DC Diaphragma
  5. Kabel jumper Female to Female
  6. Selang RO
  7. DC Connector
  8. Terminal block
  9. Step down MP1584
  10. Capacitor 100μF
  11. Switch
  12. Header 2.54mm
  13. Header 2mm
  14. Papan PCB
  15. Polifoam
  16. Mur dan baut
  17. Jerigen 1 Liter


Software:

  1. Visual Studio Code sebagai codespace
  2. Firebase sebagai backendless service
  3. Flutter sebagai framework untuk mobile App
  4. EasyEDA untuk mendesain rangkaian dan PCB
  5. Autodesk Fusion 360 untuk mendesain 3D model
  6. Next.js sebagai framework untuk pengembangan website Drinkify
  7. Vercel sebagai media untuk mendeploy website Drinkify

Rangkaian

1.png
image_2023-01-26_212002721.png

Pertama untuk regulator hubungkan pin In- ke ground dan pin In+ ke terminal block yang menghubungkan pump dengan saklar. Kemudian hubungkan pin Out+ ke Out- melalui 2 capacitor 100μF dan hubungkan pin Out- ke ground. Hubungkan pin Out+ ke VCC atau Pin 5V WT32-SC01. Kemudian hubungkan ultrasonic sensor ke WT32-SC01 dengan menghubungkan Vin ke pin 3V3, trig ke pin IO14, echo ke pin IO12, dan GND ke ground. Untuk pump sendiri, karena pump yang digunakan adalah 12V, maka butuh menggunakan relay sebagai saklar elektronik yang dapat menghubungkan motor dengan adapter. Karena kita menginginkan pompa hanya akan aktif saat digunakan (dalam keadaan awal pompa tidak aktif) maka kita akan menggunakan Normally Open (NO) pada relay sehingga sambungkan pin NO pada relay ke kutub positif DC connector dan pin Common (CO) pada relay ke kutub positif Pompa air mini 12V DC Diaphragma melalui switch. Untuk kutub negatif dari pompa, langsung hubungkan ke kutub negatif DC connector. Untuk tiga pin, Vcc, Gnd, dan Vin, langsung dihubungkan ke 3v3, Gnd, dan pin IO22.

Block Diagram

3.png

Flowchart

True Final Flowchart Drinkify.jpg

Cara kerja dispenser dimulai ketika dispenser terhubung dengan sumber daya dan internet. Dalam pemrograman yang sudah dibuat, modul HMI diprogram untuk terhubung dengan internet terlebih dahulu sebelum menyalakan layarnya. Library yang digunakan untuk menghubungkan wifi adalah WiFi.h Untuk pengaturan layar, digunakan library LVGL untuk tampilan GUI dan LovyanGFX (LVGX) sebagai driver layar. Jika layar sudah menyala, maka pengguna dapat men generate QRcode yang digunakan untuk menjalankan dispenser. Proses pembuatan kode QRcode ini dilakukan pada fungsi void generateQRCode untuk menampilkan string dalam bentuk QRcode yang sebelumnya sudah dibuat secara acak denagn void generateString. String yang digenerate dibuat akan dipush ke Firebase sesuai dengan alamat yang dituju (deviceID/dispenserData/token) untuk nantinya dikomparasi oleh aplikasi yang dibuat.

Dari dispenser sendiri, ESP32 di dalamnya akan melakukan streaming dari Firebase untuk membaca status data yang berupa boolean. Status data ini adalah penanda apakah fungsi pompa dan ultrasonik dalam dispenser boleh bekerja atau tidak. Jika status data ini false, maka akan aktif waiting timer selama 10 detik. Jika timernya sudah habis, maka QRCode akan disembunyikan dari layar. Apabila status datanya sudah true sebelum QRcode ini bekerja, maka fungsi pompa dan ultrasonik yang terdapat pada file pump.cpp akan menyala. Pada tahap ini, sensor ultrasonik akan mengukur jarak objek yang berada di depannya untuk mendeteksi keberadaan wadah.

Apabila ada wadah yang berada pada jangkauan 2cm sampai 5cm, maka pompa air diafragma akan diaktifkan dan akan mati apabila objek tidak ada pada jangkauan tersebut. Dengan demikian, dispenser tidak akan menuangkan minuman apabila pengguna tidak meletakkan wadah sesuai dengan posisinya. Untuk membatasi volume air yang dituangkan dispenser dalam satu kali scan QR Code, maka ditetapkan hitungan waktu dalam dispenser. Dalam percobaan yang sudah dilakukan (dapat dilihat pada gambar Step 7, yaitu hasil percobaan pengisian pompa), rata-rata waktu yang dibutuhkan untuk menuangkan minuman dengan volume 350 ml adalah 17 sekian detik. Seandainya, jika pada saat tengah pengisian, wadah ditarik, maka dispenser akan menyimpan waktu yang sudah berjalan dan akan melanjutkan pengisiannya kembali dengan waktu yang disimpan sampai dengan batas waktu yang sudah ditentukan. Apabila waktu 17 sekian detik, maka akan token akan direset dengan dikosongkan dan status nya pada firebase akan kembali menjadi false guna untuk memastikan bahwa kode QRCode itu unik dan fungsi sensor ultrasonik dan pompa mati.

Selain itu, terdapat fitur saldo dan top-up saldo untuk pembayaran di dispensernya. Fitur saldo dan top-up saldo ini terdapat pada aplikasi ponsel Drinkify yang diprogram menggunakan framework Flutter dan website untuk top-up saldo yang dibuat dengan Next.js.

PCB

image.png
23110.jpg
23107.jpg
23111.jpg
23112.jpg

Jalur merah menunjukkan jalur yang harus kita buat saat pembuatan PCB sementara jalur biru menunjukkan jalur yang harus kita solder menggunakan jumper.

3D Design

image_2023-01-26_213215862.png
image_2023-01-27_093324444.png
image_2023-01-26_212955378.png
image_2023-01-26_213034843.png
image_2023-01-26_213101009.png
image_2023-01-26_213015307.png
image_2023-01-27_093246638.png
image_2023-01-27_093229299.png
image_2023-01-27_093729255.png

Berdasarkan 3D Desain yang sudah kami buat, kami memutuskan untuk hanya men3d print komponen tray, tray-cover, dan segel / support pillar (sebanyak 4) dan sisanya kami buat dengan menggunakan material polifoam karena polifoam cukup kuat, relatif murah, mudah untuk dimanipulasi bentuknya, dan yang terpenting tahan air.

Cara Memasang Alat

Berikut adalah cara merakit rangkaian smart dispenser Drinkify

1. Buatlah PCB berdasarkan desain rangkaian yang sudah ada. Hal-hal yang perlu diperhatikan selama pembuatan PCB adalah:

  • Melakukan tuning terhadap step down MP1584 terlebih dahulu sebelum menyoldernya ke PCB agar step down dapat mengeluarkan output sebesar 5V.
  • Menggunakan header 2mm sebagai penyambung PCB dengan WT32-SC01.
  • Mengguankan header 2.54mm sebagai penyambung antara PCB dengan sensor ultrasonic HC SR04 dan antara PCB dengan relay 5V 1 Channel. Kedua komponen tersebut nantinya akan disambungkan menggunakan jumper female to female terlebih dahulu sebelum dihubungkan ke header 2.54mm.

2. Siapkan polifoam dan print komponen tray, tray-cover, dan segel / support pillar (sebanyak 4), kemudian rakitlah sesuai dengan Step 7: 3D Design.

3. Hubungkan setiap komponen sesuai dengan Step 3: Rangkaian.

4. Cara penggunaan alat ada pada Step 14: Demonstrasi.

Tampilan Aplikasi Drinkify

image_2023-01-27_133728509.png
image_2023-01-27_133805403.png
image_2023-01-27_133820451.png

Tampilan Website Drinkify

image_2023-01-31_123518376.png
image_2023-01-31_123543481.png
image_2023-01-31_123628850.png

Website ini hanya digunakan untuk melakukan top-up saldo di aplikasi Drinkify. Customer dapat melakukan top-up dengan 2 cara yaitu dengan menscan barcode atau mengcopy barcode string yang digenerate oleh sistem. Setiap top-up, saldo otomatis akan bertambah sebanyak Rp 5.000.

File Codingan

Untuk file kodingan mikrokontroller dapat diunduh melalui link yang tertera di bawah.

https://github.com/winxene/tr-iot

Untuk file kodingan aplikasi, dapat diunduh melalui link yang tertera di bawah.

https://github.com/winxene/tr-mobile-app

Untuk file kodingan website, dapat diunduh melalui link yang tertera di bawah:

https://github.com/winxene/drinkify_website

Hasil Percobaan Pengisian Pompa

unknown[2179].png

Percobaan ini dilakukan dengan menghidupkan pompa dan mengisi wadah 350 ml selama lima kali berturut-turut. Berdasarkan hasil percobaan tersebut, dapat diketahui rata-rata waktu yang dibutuhkan untuk mengisi minuman dengan volume 350 ml yaitu 17.338s, sehingga dapat disimpulkan bahwa pompa dapat bekerja dengan baik dan konsisten.

Kesimpulan Dan Saran

Kesimpulan:

Smart Dispenser Drinkify dapat bekerja secara semestinya dengan fitur barcode scanner untuk mengaktifkan dispenser dan deteksi gelas menggunakan sensor ultrasonic untuk mencegah dispenser aktif disaat tidak ada wadah dari pengguna.

Saran:

  • Penambahan modul GPS, agar dapat diberi fitur tracking lokasi smart dispenser.
  • Penggunaan MAC address untuk device id smart dispenser.
  • Penambahan tampilan layar baru sebagai proses loading smart dispenser.
  • Fitur terminate operasi dispenser apabila tidak digunakan dalam waktu tertentu.

Demonstrasi

Smart Dispenser Drinkify

Referensi Dan Datasheet

  • https://doc.8ms.xyz/docs/doc-8ms/welcome
  • https://doc.8ms.xyz/docs/faq-en/faq-en-1cksgt77ii3am
  • https://doc.8ms.xyz/docs/case-tutorial-en/case-tutorial-en-1cmbbvl5agpv4
  • https://doc.8ms.xyz/docs/hardware-manual/hardware-manual-1cks9g929lgte
  • https://www.cnx-software.com/2020/11/13/wt32-sc01-thin-3-5-inch-esp32-color-touchscreen-display/
  • https://www.youtube.com/watch?v=CLVfV247lP4
  • https://docs.lvgl.io/master/libs/gif.html
  • https://lvgl.io/tools/imageconverter
  • https://github.com/0015/ThatProject
  • https://codereview.stackexchange.com/questions/29198/random-string-generator-in-c