OLERICURE Mobile adalah aplikasi companion berbasis Flutter yang menjadi bagian integral dari ekosistem cerdas OLERICURE (Sistem Irigasi Presisi Berbasis IoT Hibrida dan Diagnosis Patogen Daun Olerikultura Menggunakan Cloud-Based Inference MobileNetV2 Terintegrasi Large Language Model).
Aplikasi ini memungkinkan petani/pengguna untuk memantau kondisi telemetri tanaman secara real-time, mengontrol irigasi dari mana saja, memindai penyakit daun tanaman hortikultura (olerikultura) dengan kamera HP, serta berkonsultasi langsung dengan AI Botanist Chatbot.
Sistem OLERICURE dikembangkan secara terintegrasi dalam beberapa komponen repository dan tautan server:
- 📱 Aplikasi Mobile Repository (Repo Ini / Flutter App):
https://github.com/Lesmana24/Olericure-Mobile - 🌐 Live Website Production:
https://agrosquad.page.gd - 💻 Web Server & Backend REST API Repository:
https://github.com/Lesmana24/Olericure - 🧠 AI Diagnostics Microservice (FastAPI on Hugging Face):
https://lesmana24-agrosquad-ai.hf.space/diagnosa
- Register & Login akun pengguna dengan enkripsi token Sanctum.
- Penyimpanan token aman (Secure Token Storage) menggunakan
flutter_secure_storage&shared_preferences. - Sistem proteksi sesi otomatis dan penanganan rate-limiting (throttle 5x coba/menit).
- Monitoring Suhu & Kelembapan: Memantau telemetry lingkungan (Suhu °C & Kelembapan Tanah/Udara %) secara real-time.
- Status Perangkat ESP32: Indikator visual koneksi hardware (Online/Offline).
- Penyiraman Manual: Tombol eksekusi penyiraman jarak jauh berbasis pemicu MQTT / HTTP.
- Dynamic Threshold Modal: Pengaturan ambang batas suhu dan kelembapan yang dapat diubah langsung dari aplikasi mobile.
- Kamera & Galeri: Mengambil foto daun tanaman secara langsung via kamera (
camera) atau dari galeri (image_picker). - Cloud-Based Inference: Mengirim foto ke microservice AI (FastAPI Hugging Face) yang menggunakan arsitektur MobileNetV2.
- Hasil Presisi: Menampilkan nama penyakit tanaman, diagnosis patogen, status kesehatan, dan persentase skor akurasi (confidence score).
- Rekomendasi Perawatan Tergeneratif: Panduan kebutuhan cahaya (care_light), takaran air (care_water), suhu ideal (care_temperature), serta langkah penanganan penyakit berbasis Groq Llama 3 LLM.
- Botanist Chatbot Interaktif: Asisten AI cerdas untuk berkonsultasi dan bertanya lebih lanjut seputar tanaman dengan dukungan Rich Markdown Rendering (
flutter_markdown).
- Riwayat Diagnosa AI: Menyimpan dan menampilkan kembali hasil scan penyakit tanaman yang pernah dilakukan sebelumnya.
- Log Penyiraman & Notifikasi: Catatan aktivitas penyiraman otomatis (pemicu sensor vs pemicu jadwal) serta peringatan saat kondisi tanaman abnormal.
| Halaman Selamat Datang / Splash | Dashboard Utama & Telemetry | Scan AI & Diagnosis Patogen |
|---|---|---|
![]() |
![]() |
![]() |
flowchart TD
subgraph Mobile_App ["Aplikasi Mobile (Flutter)"]
UI["UI Layer (Material Widgets)"]
Camera["Camera / Image Picker"]
Storage["Flutter Secure Storage (Sanctum Token)"]
end
subgraph Backend_Web ["Web Server & REST API (Laravel 12)"]
AuthCtrl["Api/AuthController (Sanctum)"]
SetCtrl["Api/SettingController"]
ScanCtrl["PlantScanController"]
NotifCtrl["Api/NotificationApiController"]
DB[(MySQL Database)]
end
subgraph AI_Engine ["Cloud AI Microservices"]
HF_Space["FastAPI / Hugging Face Space (MobileNetV2 Model)"]
Groq_API["Groq Cloud API (Llama 3 LLM Botanist)"]
end
subgraph IoT_Hardware ["Perangkat Keras (ESP32 IoT Node)"]
ESP32["ESP32 DevKit V1"]
MQTT_Broker["MQTT Broker (broker.emqx.io)"]
end
UI -->|HTTP Request / Token| AuthCtrl
UI -->|Get/Update Telemetry & Threshold| SetCtrl
Camera -->|Upload Foto Daun| ScanCtrl
ScanCtrl -->|1. Post Image Binary| HF_Space
HF_Space -->|2. Return Pathogen & Confidence| ScanCtrl
ScanCtrl -->|3. Query Care Guide Prompt| Groq_API
Groq_API -->|4. Return Markdown Treatment| ScanCtrl
ScanCtrl -->|5. Save Scan & Return JSON| UI
SetCtrl <-->|Publish/Subscribe Topik| MQTT_Broker
MQTT_Broker <-->|Control Relay & Telemetry| ESP32
AuthCtrl & SetCtrl & ScanCtrl <--> DB
| Package / Library | Versi | Fungsi / Kegunaan |
|---|---|---|
flutter |
SDK ^3.10 | Framework utama pengembangan aplikasi mobile cross-platform |
camera |
^0.11.1 |
Mengakses modul kamera perangkat untuk pengambilan foto daun |
image_picker |
^0.8.8 |
Memilih foto tanaman dari galeri perangkat |
http |
^1.6.0 |
Melakukan HTTP Request REST API ke Laravel Backend |
flutter_secure_storage |
^10.0.0 |
Menyimpan token autentikasi Sanctum secara terenkripsi |
shared_preferences |
^2.5.5 |
Menyimpan preferensi dan status login lokal |
mqtt_client |
^10.11.11 |
Komunikasi protokol MQTT real-time dengan hardware ESP32 |
flutter_markdown |
^0.7.7+1 |
Rendering format Markdown pada balasan AI Botanist Chatbot |
flutter_launcher_icons |
^0.13.1 |
Generasi otomatis ikon aplikasi Android & iOS (gambar/logoApp.png) |
Semua konfigurasi endpoint terpusat pada file lib/api_config.dart:
class ApiConfig {
static const String BASE_URL = 'https://agrosquad.up.railway.app/api/';
static const String storageUrl = 'https://agrosquad.up.railway.app/uploads/';
...
}| Endpoint | Method | Auth | Keterangan |
|---|---|---|---|
/api/register |
POST |
Public | Pendaftaran akun baru pengguna mobile |
/api/login |
POST |
Public | Autentikasi login & generate token Sanctum |
/api/logout |
POST |
Sanctum | Revoke token dan keluar dari akun |
/api/settings |
GET |
Sanctum | Mengambil telemetry suhu & threshold terbaru |
/api/update-setting |
POST |
Sanctum | Memperbarui threshold suhu & kelembapan |
/api/ai/upload |
POST |
Sanctum | Mengunggah foto daun & memicu klasifikasi AI MobileNetV2 |
/api/ai/store |
POST |
Sanctum | Menyimpan laporan hasil diagnosa ke database |
/api/mobile-chat |
POST |
Sanctum | Konsultasi interaktif dengan AI Botanist Chatbot (Groq Llama 3) |
/api/ai/history |
GET |
Sanctum | Mengambil daftar riwayat diagnosa tanaman |
/api/ai/history/{id} |
DELETE |
Sanctum | Menghapus riwayat scan tertentu |
/api/notifications |
GET |
Sanctum | Mengambil log notifikasi dan penyiraman |
- Flutter SDK: Versi 3.10.x atau yang lebih baru.
- Dart SDK: Versi 3.x.
- Android Studio / VS Code dengan ekstensi Flutter & Dart.
- Perangkat Android (OS 5.0 Lollipop+) / iOS (iOS 12+) fisik atau Emulator.
-
Clone Repository Mobile:
git clone https://github.com/Lesmana24/Proyek3-Mobile.git cd Proyek3-Mobile -
Install Dependensi Flutter:
flutter pub get
-
Konfigurasi URL API Backend: Buka file
lib/api_config.dartdan sesuaikanBASE_URLdengan server Laravel Anda (misalhttp://10.0.2.2:8000/api/untuk Android Emulator atau domain production):static const String BASE_URL = 'https://agrosquad.up.railway.app/api/';
-
Jalankan Aplikasi (Debug Mode):
flutter run
-
Build APK Release:
flutter build apk --release
File APK hasil build akan berada di
build/app/outputs/flutter-apk/app-release.apk.
Proyek OLERICURE dikembangkan oleh:
- Lesmana Adhi Kusuma
- Genetica Deardi I
- Muhammad Nurfaqiih
Mahasiswa D3 Teknik Informatika - Politeknik Negeri Indramayu (Polindra)
Proyek ini dibuat untuk memenuhi Tugas Proyek 3 Program Studi D3 Teknik Informatika. Hak cipta dilindungi oleh tim pengembang OLERICURE.


