How sameer-saif1/iot-water-quality-monitoring-with-esp32-flutter-app works
Water Quality Monitor is an IoT system: an ESP32 measures water conditions, shows readings locally, and streams them to Firebase; the Flutter app presents live and historical readings, alerts, and administrator-managed access. The graph separates device acquisition, Firebase services, monitoring UI, and access management. README documentation supports the device-to-database and app capability relationships. Source excerpts were unavailable, so internal call wiring and undocumented storage choices are intentionally not inferred.
Main entry points: sensor_service.dart Sensor data service · Water_Quality_Monitoring.ino ESP32 firmware · user_management_screen.dart User management · dashboard_screen.dart Live dashboard
Components 21
ESP32 device
- Water sensors
firmware/Water_Quality_Monitoring/Water_Quality_Monitoring.ino - ESP32 firmware
firmware/Water_Quality_Monitoring/Water_Quality_Monitoring.ino - Offline LCD
firmware/Water_Quality_Monitoring/Water_Quality_Monitoring.ino
Firebase backend
- Realtime Database
- Firestore
- Firebase Authentication
- RTDB rules
flutter_app/water_quality_app/firebase_rtdb_rules.json - Firestore rules
flutter_app/water_quality_app/firestore_rules.txt
Monitoring app
- App entry and routing
flutter_app/water_quality_app/lib/main.dart - Live dashboard
flutter_app/water_quality_app/lib/screens/dashboard/dashboard_screen.dart - History charts
flutter_app/water_quality_app/lib/screens/dashboard/history_screen.dart - Alert settings
flutter_app/water_quality_app/lib/screens/dashboard/alerts_screen.dart - Safe-range thresholds
flutter_app/water_quality_app/lib/models/thresholds.dart - Reading model
flutter_app/water_quality_app/lib/models/water_reading.dart - Sensor data service
flutter_app/water_quality_app/lib/services/sensor_service.dart
App access
- Login
flutter_app/water_quality_app/lib/screens/auth/login_screen.dart - Authentication service
flutter_app/water_quality_app/lib/services/auth_service.dart - User management
flutter_app/water_quality_app/lib/screens/admin/user_management_screen.dart - Add user
flutter_app/water_quality_app/lib/screens/admin/add_user_screen.dart
Other components
- Monitor operator
- Administrator
Connections 21
- Water sensors → ESP32 firmware: supply readings
- ESP32 firmware → Offline LCD: display locally
- ESP32 firmware → Realtime Database: stream readings
- Monitor operator → Live dashboard: view live
- Monitor operator → History charts: view trends
- Monitor operator → Alert settings: configure limits
- App entry and routing → Live dashboard: route to
- App entry and routing → Login: route to
- Live dashboard → Sensor data service: request live data
- History charts → Sensor data service: request history
- Sensor data service → Realtime Database: read readings
- Sensor data service → Reading model: provide readings
- Alert settings → Safe-range thresholds: configure ranges
- Administrator → User management: manage accounts
- User management → Add user: add account
- Add user → Authentication service: create account
- Login → Authentication service: authenticate
- Authentication service → Firebase Authentication: sign in
- User management → Firestore: manage profiles
- RTDB rules → Realtime Database: govern access
- Firestore rules → Firestore: govern access