https://github.com/ztkent/gnome
Garden Monitoring and Automation
https://github.com/ztkent/gnome
android bme280 go raspberry-pi tsl2591
Last synced: 6 months ago
JSON representation
Garden Monitoring and Automation
- Host: GitHub
- URL: https://github.com/ztkent/gnome
- Owner: ztkent
- Created: 2024-03-02T01:04:54.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-09-14T00:14:38.000Z (6 months ago)
- Last Synced: 2025-09-14T00:19:48.286Z (6 months ago)
- Topics: android, bme280, go, raspberry-pi, tsl2591
- Language: Go
- Homepage:
- Size: 161 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gnome
Garden automation, data collection and sensor visualization
## Overview
Gnome is a distributed garden monitoring system that combines:
- **Embedded Devices**: Runs on a Raspberry Pi with configured sensors
- **Centralized Server**: Backend service for user authentication and data collection
- **Web Dashboard**: Browser-based interface for data visualization and device management
- **Android App**: Mobile interface for device discovery, monitoring, and control
## Components
### Service (`/service`)
Embedded Go service that runs on Raspberry Pi devices:
- **Hardware Interface**: Communicates with sensors via I2C
- TSL2591 (Light Sensor)
- BME280 (Environment Sensor)
- **Data Collection**: Periodic sensor readings with automatic adjustments
- **Storage**: SQLite database for historical data
- **API**: RESTful endpoints for remote access
- **Dashboard**: Web interface for device management
- Real-time data visualization and control

### Android App (`/app`)
Kotlin mobile application:
- **Network Discovery**: Automatic scanning for Gnome devices
- **Real-time Monitoring**: Live sensor data display
- **Data Visualization**: Access the dashboard on any device
- **Remote Control**: Start/stop recordings, adjust settings
- **Data Export**: Download historical sensor data


### Server (`/server`)
Centralized backend service for device management and data collection:
- **User Authentication**: Secure user registration and login with bcrypt password hashing
- **Sensor Data Ingestion**: Collects and stores data from multiple Gnome devices
- **Device Tracking**: Monitors device connectivity and manages device associations
- **RESTful API**: JSON endpoints for device communication and data access
- **SQLite Database**: Lightweight persistence with automatic schema migrations
The server provides a centralized platform where Gnome devices can authenticate users and submit sensor data, enabling multi-device monitoring and future data visualization features.
## Quick Start
### Setting up a Gnome Device
1. Follow the instructions in the `/service/setup.md` file to configure the Raspberry Pi and sensors.
### Running the Server
1. **Build**: `cd server && go build -o gnome-server`
2. **Run**: `./gnome-server` (runs on port 8081 by default)
3. **Configure**: Set `PORT` environment variable to customize port
### Using the Android App
1. **Install**: Download from releases or build from source
2. **Connect**: Ensure Android device is on same WiFi network
3. **Discover**: App will automatically find Gnome devices