Smart Monitoring Platform for Food Production Facilities
- About
- Features
- Architecture
- Repository Structure
- Quick Start
- Technology Stack
- Feature Showcase
- Contributing
- Contributors
- License
FarmInsight is a comprehensive open-source platform for monitoring and managing Food Production Facilities (FPFs). Developed at TU Clausthal as part of the Digital Technologies program, it provides real-time sensor data visualization, AI-powered forecasting, and automated control systems.
"Maximum yield with minimal sustainable resource input"
FarmInsight enables organizations to manage multiple Food Production Facilities (FPFs) β from vertical farms to greenhouses β with precision and ease:
- Monitor β Real-time sensor data from temperature, humidity, soil moisture, and more
- Analyze β Interactive visualizations with historical trends and custom date ranges
- Predict β AI-powered forecasts for water and energy consumption
- Automate β Smart triggers and controllable actions for lights, pumps, and climate
- Collaborate β Multi-tenant architecture with role-based access (Admin/Member)
|
|
|
|
flowchart TB
subgraph Client["Client"]
Browser["Web Browser"]
end
subgraph Frontend["Dashboard Frontend"]
React["React + Redux + Mantine UI"]
end
subgraph Backend["Dashboard Backend"]
Django1["Django REST API"]
SQLite1[(SQLite)]
InfluxDB[(InfluxDB)]
Scheduler1["Task Scheduler"]
end
subgraph AI["AI Backend"]
Django2["Django ML Service"]
Models["Trained Models"]
Weather["Open-Meteo API"]
end
subgraph FPF["FPF Backend"]
Django3["Django Sensor Service"]
SQLite2[(SQLite)]
Scheduler2["Data Collector"]
end
subgraph Hardware["Hardware Layer"]
Sensors["Sensors"]
Cameras["Cameras"]
Actuators["Smart Plugs"]
end
Browser <-->|HTTP| React
React <-->|REST + WebSocket| Django1
Django1 <--> SQLite1
Django1 <--> InfluxDB
Django1 <-->|REST| Django2
Django2 --> Models
Django2 <-->|REST| Weather
Django1 <-->|REST| Django3
Django3 <--> SQLite2
Django3 --> Scheduler2
Scheduler2 <-->|HTTP / MQTT| Sensors
Scheduler2 <-->|HTTP / RTSP| Cameras
Scheduler2 <-->|HTTP / MQTT| Actuators
sequenceDiagram
participant S as π‘οΈ Sensor
participant FPF as π± FPF Backend
participant DB as βοΈ Dashboard Backend
participant AI as π§ AI Backend
participant UI as π± Frontend
participant U as π€ User
S->>FPF: Measurement (HTTP/MQTT)
FPF->>DB: Store data (REST)
DB->>DB: Save to InfluxDB
loop Every Interval
DB->>AI: Request Forecast
AI->>AI: Run ML Model
AI-->>DB: Predictions + Actions
end
U->>UI: Open Dashboard
UI->>DB: Request Data (REST)
DB-->>UI: Sensor Data + Forecasts
UI-->>U: Visualize
alt Trigger Activated
DB->>DB: Execute Action
DB->>S: Control Hardware
end
FarmInsight/
βββ π± dashboard-frontend/ # React Web Application
β βββ smart_farm_frontend/ # Source code
β βββ .documentation/ # UI screenshots & guides
β
βββ βοΈ dashboard-backend/ # Central Django API
β βββ django_server/ # Django project
β βββ Dockerfile # Container config
β βββ docker-compose.yml # InfluxDB setup
β
βββ π± fpf-backend/ # Sensor Collection Service
β βββ django_server/ # Django project
β βββ .documentation/ # Arduino/Pi Pico scripts
β
βββ π§ ai-backend/ # ML Prediction Service
β βββ model_service/ # Django ML project
β βββ Dockerfile # Container config
β βββ docs/ # Model documentation
β
βββ π LICENSE # AGPL-3.0
βββ π README.md # This file
| Component | Requirement |
|---|---|
| Node.js | v18+ LTS |
| Python | v3.11+ |
| pip | v24+ |
| Docker | Optional (for InfluxDB) |
git clone https://github.com/ETCE-LAB/FarmInsight.git
cd FarmInsight
git submodule init && git submodule updatecd dashboard-backend/django_server
# Create virtual environment
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/Mac
# Install dependencies
pip install -r requirements.txt
# Generate OIDC key
openssl genrsa -out rsa/oidc.key 4096
# Setup database
python manage.py migrate
python manage.py loaddata application
# Start server
python manage.py runserver 8000cd dashboard-frontend/smart_farm_frontend
# Install dependencies
npm install
# Configure backend URL
echo 'export const BACKEND_URL = "http://127.0.0.1:8000";' > src/env-config.ts
# Start development server
npm startcd fpf-backend/django_server
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver 8001cd ai-backend/model_service
pip install -r requirements.txt
python manage.py runserver 8002π For detailed setup instructions, see the README in each component folder.
| Layer | Technologies |
|---|---|
| Frontend |
|
| Backend |
|
| Database |
|
| AI/ML |
|
| IoT |
|
Explore the FarmInsight platform through our modern, intuitive interface designed for efficient farm management.
Dashboard overview showing all Food Production Facilities with live camera previews and maintenance status indicators
The landing page provides instant visibility into all your FPFs:
- Live Camera Previews β Real-time thumbnails from each facility
- Status Indicators β Quick identification of facilities under maintenance
- Organization Labels β Easy filtering by organization (e.g., ETCE)
- Search & Create β Quickly find or add new facilities
Comprehensive sensor management with real-time status, logging capabilities, and threshold configuration
| π 10+ Sensor Models | β±οΈ Configurable Intervals | π¨ Threshold Alerts | π Data Logging |
|---|---|---|---|
| DHT22, SenseCAP, Shelly & more | From seconds to hours | Custom warning levels | Full measurement history |
|
|
|
Live SoC monitoring |
Production vs Consumption |
Connection state |
Emergency shutdown |
Both Water and Energy dashboards provide multi-scenario predictions:
| Scenario | Description | Planning Use |
|---|---|---|
| π’ Best Case | Optimal conditions, minimal consumption | Capacity planning |
| π΅ Expected | Average conditions based on historical data | Daily operations |
| π Worst Case | Adverse conditions, high consumption | Risk preparation |
Smart Automation: The system can automatically trigger actions (e.g., grid connect, pump activation) based on forecast thresholds.
Demonstration of the trigger system: Manual override β Auto mode β Time-based triggers
π§ Learn more about Controllable Actions
FarmInsight's automation system supports multiple trigger types:
| Trigger Type | Description | Example |
|---|---|---|
| β° Interval | Repeat at fixed intervals | Water pump every 6 hours |
| π Time-Based | Execute within timeframe | Lights on 6:00-18:00 |
| π Sensor | React to measurements | Fan on if temp > 30Β°C |
| π Manual | One-click execution | Emergency stop |
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project was developed as part of the Digitalisierungsprojekt at Digital Technologies, TU Clausthal.
| Tom Luca Heering | Theo Lesser | Mattes Knigge | Julian SchΓΆpe |
| Marius Peter | Paul Golke | Niklas Schaumann | M. Linke |
- Johannes Mayer β Project Lead
- Benjamin Leiding β Academic Supervisor
- Anant β Deployment & Infrastructure
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
See the LICENSE file for details.
Made with π at TU Clausthal
π Live Demo β’
π¦ ETCE-Lab GitHub




