sahan-panditharathne
released this
13 Sep 19:01
·
24 commits
to main
since this release
Mobile Application
The mobile app is built using flutter and it's designed for managing and monitoring garden sensors through Bluetooth connectivity. It allows users to connect to receiver devices, scan for and add sensor nodes, view sensor data, and analyze sensor readings over time.
Key Components
1. Landing Page
- Welcomes users to the Garden app
- Provides a button to connect a receiver device
2. Receivers Management
- Displays a list of connected receiver devices
- Allows users to edit receiver names
- Implements a refresh mechanism to update the list
3. Device Scanning
- Scans for available Bluetooth devices
- Filters devices based on a specific service UUID
- Allows users to add new devices to the system
4. Sensors Overview
- Shows a list of connected sensor nodes
- Implements a dropdown to select the current receiver
- Displays a sync card (used to sync data from a receiver device)
5. Sensor Detail View
- Provides detailed information about a specific sensor node
- Displays graphs of sensor data over time
- Allows users to edit sensor name and description
- Implements time range selection for data viewing (24h, 7d, 30d, custom)
Key Features
- Bluetooth device scanning and connection
- CRUD operations for receivers and sensor nodes
- Data visualization through graphs
- Time-based data filtering
- Editable device information
Data Management
- Uses DAO (Data Access Object) pattern for data operations
- Implements separate DAOs for receivers, nodes, and sensor data
- Utilizes SQLite database (implied by DAO structure)
UI Components
- Custom widgets like
SensorCard
,GraphCard
, andSyncCard
. - Implements a side menu for navigation.
- Uses Material Design components and custom styling.
Bluetooth Low Energy Integration
- Utilizes the
flutter_blue_plus
package for BLE operations. - Implements scanning, connecting, and service discovery for BLE devices.
Data Visualization
- Uses custom
GraphData
andGraphInterval
models for data representation. - Implements dynamic graph generation based on selected time ranges.