Aplikasi pengendali utama (Kiosk) SmartBin yang berjalan di unit Raspberry Pi. Bertanggung jawab atas deteksi botol plastik, komunikasi IoT melalui MQTT, dan integrasi data dengan API pusat.
- Otomatisasi IoT (MQTT): Terhubung ke EMQX Broker untuk pengiriman data setoran botol secara real-time.
- Deteksi Botol: Logika pemrosesan untuk sensor/kamera di Raspberry Pi guna menghitung jumlah botol yang masuk.
- Autentikasi Member di Unit: Member dapat melakukan setoran dengan memasukkan Nomor HP & PIN atau pemindaian QR Code.
- Sinkronisasi API: Mengirimkan data setoran ke API pusat untuk penambahan poin member.
- Manajemen Kiosk: Konfigurasi ID unit, lokasi, dan status operasional secara dinamis dari database.
- Antarmuka Pengguna (UI): Tampilan yang dioptimalkan untuk layar sentuh unit kiosk.
-
Prasyarat:
- Flutter SDK (Desktop/Linux support enabled)
- Raspberry Pi dengan OS pendukung (Debian/Ubuntu)
- Akses internet untuk MQTT & API
-
Kloning Repositori:
git clone <repository-url>
-
Instal Dependensi:
flutter pub get
-
Konfigurasi Lingkungan: Buka
lib/core/config.dartdan sesuaikan pengaturan MQTT & API:const String MQTT_BROKER = "g4f48271.ala.asia-southeast1.emqxsl.com"; const int MQTT_PORT = 8883; const String API_BASE_URL = "https://smartbin.umediatama.com/api/v1";
-
Jalankan Aplikasi:
flutter run -d linux
Aplikasi ini menggunakan EMQX Cloud sebagai broker pesan:
- Username:
smartbin - Topic:
smartbin/deposit - Port: 8883 (SSL/TLS)
- Framework: Flutter (Desktop/Embedded)
- Messaging: MQTT Client
- Networking: Dio
- Storage: Shared Preferences
- Icons: Lucide Icons
Sistem beroperasi dengan alur komunikasi data terintegrasi sebagai berikut:
- Raspberry Pi (Hardware): Mendeteksi botol plastik yang masuk melalui sensor/kamera dan mengirimkan sinyal informasi jumlah botol.
- MQTT Broker (EMQX): Menerima data dari Raspberry Pi sebagai perantara pesan (Messaging Broker) secara real-time.
- Control Smartbin App (Subscriber): Aplikasi Flutter ini berlangganan (subscribe) ke topik MQTT, menerima data botol, dan memprosesnya untuk ditampilkan di layar.
- Sentral API (Finalisasi): Setelah data divalidasi di aplikasi, Control Smartbin mengirimkan data transaksi tersebut ke API Pusat untuk memperbarui saldo poin member secara permanen.
© 2024 SmartBin Engineering - IoT Division