An open API service indexing awesome lists of open source software.

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

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

image

### 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

1000000529

1000000528

### 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