Aplikasi Smart Home berbasis Flutter yang menghubungkan aplikasi mobile dengan microcontroller melalui Firebase (Realtime Database & Firestore). Mendukung ESP8266, ESP32, dan semua 32-bit MCU (kecuali Atmel AVR). Detail versi sigma home disini
- Autentikasi: Email/password & Google OAuth (REST API, token, session, SharedPreferences)
- Manajemen Device: Tambah, edit, hapus, toggle status device via REST API
- Polling Device: Status device diperbarui dengan polling HTTP
- Manajemen User: Edit profil, ganti username (via REST API)
- Remote Config: Cek versi aplikasi & update via Firebase Remote Config
- UI Modern: GetX, custom theme, widget modular
- Cuaca Terkini: Menampilkan cuaca berdasarkan lokasi user menggunakan OpenWeatherMap
- Integrasi Microcontroller: Microcontroller dapat mengakses database menggunakan library FirebaseConsole arduino
- ESP8266
- ESP32
- Semua 32-bit MCU (kecuali Atmel AVR)
lib/- Source code utama Flutterlib/src/controllers/- GetX controller (auth, device, dsb)lib/src/models/- Model data (device, user, dsb)lib/src/screens/- Halaman UI (home, about, auth, dsb)lib/src/widgets/- Widget customandroid/- Kode native Android & konfigurasi Firebaseassets/- Gambar, font, dsb
- Clone repo ini
- Buat project di Firebase Console, download
google-services.jsonke folderandroid/app/ - Konfigurasi firebase dengan project flutter
- Buat api OpenWeatherMap untuk info cuaca dan letakkan pada library
- Jalankan:
flutter pub get flutter run
- Konfigurasi rules Firestore & Realtime Database sesuai kebutuhan keamanan
- Untuk microcontroller, gunakan contoh kode pada example
- Install library berikut di Arduino IDE / PlatformIO:
Firebase ESP8266atauFirebase ESP32WiFi/WiFiClientSecureArduinoJsonArduinoHttpClient
2. Buat kode arduino sesuai Example
- Ganti bebrapa token atau path sesuai dengan detail device pada aplikasi
- Pastikan fungsi http request untuk mendapatkan id token ada, ini penting karena hanya refresh token yang disediakan.
- Ubah fungsi processData sesuai kebutuhan, fungsi ini merupakan core dari microcontroller.
Project ini sudah selesai. Silakan gunakan, modifikasi, dan kontribusi!