4.1 KiB
🍄 JTA – Jamur Tiram Antirogo (Aplikasi Mobile IoT)
Aplikasi mobile JTA (Jamur Tiram Antirogo) merupakan komponen antarmuka (frontend) dalam ekosistem IoT budidaya jamur tiram. Aplikasi ini memungkinkan pengguna untuk memantau kondisi lingkungan (suhu dan kelembapan) serta mengontrol perangkat keras penyiram (sprayer) secara near real-time.
🌟 Fitur Utama
- Near Real-Time Monitoring: Pemantauan suhu dan kelembapan kumbung jamur secara berkala (polling otomatis setiap 5 detik) dilengkapi grafik historis harian dan per jam.
- IoT Remote Control: Pengaturan mode operasi (Otomatis / Manual) dan tombol penyiraman instan.
- Threshold Settings: Batasi rentang suhu dan kelembapan ideal untuk mengaktifkan penyiraman otomatis.
- Irrigation Scheduling: Penjadwalan penyiraman otomatis berdasarkan waktu/jam tertentu.
- Secure Authentication: Keamanan akun pengguna (login/register) serta persistensi sesi menggunakan layanan Supabase Auth.
- Push Notifications: Notifikasi status perangkat atau peringatan kondisi kumbung via OneSignal.
🏗️ Arsitektur Sistem
Aplikasi dikembangkan menggunakan Layered Architecture dengan pembagian tanggung jawab sebagai berikut:
- Presentation Layer: Antarmuka pengguna (UI) reaktif (
MonitoringPage,ControlPage,SchedulePage, dsb.). - State Management (Riverpod): Manajemen state terpusat (
MonitoringNotifier,ControlNotifier,AuthNotifier). - Repository Layer: Abstraksi akses data (
IotRepository,AuthRepository). - Service Layer: Jaringan komunikasi HTTP menggunakan Dio (
ApiIotService,ApiControlService) dan Supabase Flutter SDK (SupabaseAuthService).
🛠️ Teknologi & Dependensi
- Framework: Flutter (Dart)
- State Management: Flutter Riverpod & StateNotifier
- Database & Auth: Supabase Flutter
- HTTP Client: Dio
- Notification Service: OneSignal Flutter
- Chart Visuals: Fl Chart / Grafik Kustom
🚀 Langkah Persiapan & Cara Menjalankan Proyek
Ikuti langkah-langkah di bawah ini untuk mengkloning dan menjalankan proyek ini di lingkungan lokal Anda.
1. Kloning Repositori
Jalankan perintah berikut di terminal komputer Anda:
git clone <URL_REPOSITORI_GITHUB_ANDA>
cd JTA
2. Konfigurasi Lingkungan Lokal (PENTING 🔑)
Untuk keamanan kredensial, berkas asli env.dart tidak diunggah ke GitHub (sudah terdaftar di .gitignore). Anda harus membuat berkas tersebut secara manual menggunakan template contoh:
- Salin berkas template
lib/core/env.example.dartdan buat berkas baru dengan namalib/core/env.dart. - Buka berkas
lib/core/env.dart, kemudian hilangkan komentar pada kelasEnvdan isi dengan kredensial proyek Supabase & OneSignal Anda sendiri:
class Env {
// --- BASE API URL ---
static const String baseUrl = 'https://api.jta.web.id/api'; // Ganti jika memakai emulator/WiFi lokal
// --- SUPABASE CONFIGURATION ---
static const String supabaseUrl = 'https://YOUR_SUPABASE_PROJECT.supabase.co';
static const String supabaseAnonKey = 'YOUR_SUPABASE_ANON_KEY';
// --- ONESIGNAL CONFIGURATION ---
static const String oneSignalAppId = 'YOUR_ONESIGNAL_APP_ID';
}
3. Install Dependensi
Jalankan perintah berikut untuk mengunduh semua paket dependensi Flutter yang dibutuhkan:
flutter pub get
4. Jalankan Aplikasi
Hubungkan ponsel asli (aktifkan USB Debugging) atau jalankan emulator Android/iOS Anda, kemudian ketik:
flutter run
📁 Struktur Direktori Utama
lib/
├── core/ # Tema aplikasi, rute navigasi, dan konfigurasi Env
├── features/ # Modul fitur utama (auth, monitoring, control, schedule)
│ ├── auth/
│ ├── monitoring/
│ ├── control/
│ └── schedule/
├── services/ # Akses layanan eksternal (Supabase Auth & API REST)
└── main.dart # Titik masuk utama (Entry point) aplikasi