Integrasi Mesin Penjual Otomatis lewat Serial dan SDK
Bungkus SDK vendor, tangani konfirmasi pengeluaran barang, dan simpan telemetri serial untuk mengelola mesin penjual otomatis.
Untuk Tim Teknis

Daftar isi
Mesin penjual otomatis dengan mekanisme spiral, seperti perangkat kelas TCN, umumnya memiliki dua pengendali dalam satu kabinet. Papan Android menjalankan layar, pembayaran, dan aplikasi. Papan pengendali terpisah mengatur motor, sensor jatuh barang, dan kompresor. Keduanya berkomunikasi melalui sambungan serial.
Aplikasi Anda tidak pernah menyentuh motor langsung. Semua perintah lewat papan pengendali di port semacam /dev/ttyS3, dan keberhasilan pengeluaran barang bergantung pada komunikasi tersebut.
Yang benar-benar dikirim vendor
Vendor biasanya memberikan AAR tertutup, yaitu paket pustaka Android seperti tcn_springboard-release.aar. Paket itu disertai aplikasi demonstrasi dan dokumentasi yang kadang terbatas atau diterjemahkan otomatis.
SDK, paket pengembangan perangkat lunak dari pabrikan, meminta kelas Application mewarisi kelas dasar milik vendor. Porta serial dikonfigurasi saat aplikasi dimulai, lalu VendService berjalan di latar belakang. Hasil dikirim kepada penerima kejadian yang terdaftar dengan ID bernomor. Biasanya ada langkah otorisasi satu kali yang terikat ke papan pengendali.
Pola ini lazim pada SDK perangkat keras. Agar perubahan vendor tidak menyebar ke seluruh aplikasi, batasi penggunaannya dalam satu modul integrasi.
Bungkus tipis, dan tulis panduan yang tidak ditulis vendor
Modul pembungkus berfungsi seperti penerjemah. SDK memakai istilah dan aturan vendor, sedangkan bagian aplikasi lain memperoleh antarmuka yang konsisten.
Langkah praktisnya: satu modul di basis kode yang memegang seluruh siklus hidup SDK — inisialisasi, konfigurasi porta serial, registrasi penerima kejadian — dan mengekspos antarmuka kecil dalam kosakata sendiri: vend(slot, orderNo), querySlot(slot), setTemperature(mode), serta aliran kejadian yang konsisten. Tipe-tipe SDK tidak pernah bocor keluar dari modul itu. Saat vendor merilis pembaruan yang tidak kompatibel, atau proyek pindah ke keluarga kontroler lain, perubahan khusus SDK dapat dibatasi pada modul tersebut. Pengujian integrasi tetap perlu mencakup aplikasi.
Separuh sisanya dokumentasi: panduan SDK internal yang ditulis sendiri, mencatat apa yang sesungguhnya dibutuhkan integrasi — izin yang diminta SDK, penyiapan AAR, konfigurasi porta serial, ID kejadian yang penting dan artinya dalam praktik. Penyusunan panduan dalam satu sore dapat menghemat waktu pengembang berikutnya, yang tidak perlu menghabiskan satu minggu menafsirkan PDF terjemahan otomatis. Di proyek integrasi, panduan itu saya perlakukan sebagai keluaran pekerjaan, bukan pelengkap.
Perintah, konfirmasi dan sensor jatuh barang
Semua komunikasi dengan papan pengendali bersifat asinkron. Anda meminta pengeluaran barang; hasilnya datang belakangan sebagai kejadian — sukses, gagal, atau tidak datang sama sekali. Jika hasil tidak diterima, perlakukan sebagai kondisi yang harus ditangani:
Sensor jatuh barang menentukan apakah pesanan benar-benar telah keluar. Motor berputar bukan jaminan barang keluar — bisa jadi spiral macet, produk terjepit, atau spiralnya habis satu baris lebih awal. Sensor inilah yang memastikan ada barang yang benar-benar jatuh.
Aturan turunannya: jangan pernah menandai pesanan terkirim sebelum jatuhnya barang terkonfirmasi, dan arahkan kegagalan yang terkonfirmasi ke alur pengembalian dana. Batas waktu yang terlewati menunjukkan hasil belum diketahui; cocokkan dengan hasil sensor atau catatan sebelum memutuskan pengembalian dana agar produk yang sebenarnya sudah keluar tidak sekaligus dikembalikan uangnya. Pelanggan yang sudah membayar perlu mendapat status kegagalan dan alur pengembalian dana yang jelas.
Kerusakan slot perlu diperlakukan sama seriusnya. Papan pengendali melaporkan kejadian stok habis dan kerusakan per slot — perlakukan slot yang gagal dua kali berturut-turut sebagai macet, keluarkan otomatis dari daftar slot yang dapat dijual, dan biarkan manusia mengaktifkannya lagi setelah inspeksi.
Telemetri yang layak ditangkap
Jalur serial membawa lebih dari sekadar perintah pengeluaran barang, dan kebanyakan integrasi menyia-nyiakannya. Layak disimpan sejak hari pertama: stok per slot, suhu kabinet (perubahan suhu dapat membantu menemukan gangguan kompresor), jumlah kegagalan pengeluaran barang per slot (pola khas slot macet), kejadian pintu terbuka, dan kejadian pembayaran dari perangkat keras uang kertas dan koin.
Data tersebut membantu mengelola mesin di berbagai lokasi sebagai satu sistem. Tim dapat merencanakan pengisian stok dan menandai mesin bermasalah sebelum ada keluhan pelanggan. Menyalurkannya ke dasbor adalah masalah normalisasi yang sama seperti pada perangkat IoT campuran lainnya; pendekatannya ada di normalisasi perangkat IoT multiprotokol.
Pastikan hak distribusi SDK sebelum produk dikirim
AAR itu datang tanpa teks lisensi. Status hukumnya — apa yang boleh Anda redistribusikan, kepada siapa, di dalam produk apa — sering kali memang tidak jelas, dan "semua orang juga pakai" bukan berarti boleh.
Sebelum SDK itu ikut terkirim di dalam produk, pertanyaan redistribusi harus masuk kontrak pengadaan dengan vendor mesin. Panduan lengkap soal apa yang boleh dan tidak boleh Anda distribusikan ada di lisensi sumber terbuka di perangkat lunak komersial.
Kendali integrasi yang perlu disiapkan
Batasi SDK vendor dalam modul pembungkus dan dokumentasikan cara penggunaannya. Tangani konfirmasi asinkron, gunakan sensor jatuh untuk menentukan barang keluar, serta simpan telemetri yang tersedia melalui serial.
Dengan aturan tersebut, mesin dapat dipantau melalui status pengeluaran barang, stok, suhu, dan kegagalan yang dapat ditindaklanjuti.
Artikel Terkait
Perlu bantuan menerapkan solusi ini?
Pengembangan Sistem Pemantauan Perangkat IoT
Satukan data meter, sensor, dan perangkat lain dalam satu dasbor. Pantau pembacaan terbaru, riwayat data, dan gangguan sesuai kebutuhan operasional.
Lihat layanan terkaitCeritakan kendala operasional Anda agar kita dapat membahas langkah yang sesuai.