Plant Monitoring System

An over engineered dashboard for monitoring soil moisture, light, temperature, and humidity across multiple plants with data visualization and Arduino integration.

Plant Monitoring Dashboard Screenshot
The Stack

Frontend

Next.jsReactTypeScriptDrizzle ORM

Backend & Database

Next.js API RoutesPostgreSQL

Infrastructure

DockerHarbor RegistryGitHub ActionsCloudflare TunnelUbuntu ServernginxPortainerPi-hole

Development Tools

VS CodePlatform.io

System Architecture

Ubuntu Machine

Host server for Docker containers

CI/CD Pipeline

Self-hosted GitHub Runner + Actions for automated building & deployment

Container Management

Harbor private registry with Portainer monitoring

Secure Access

Cloudflare Tunnel for access without port forwarding

Hardware Components
Arduino-based sensors for comprehensive plant monitoring

Main Board

ESP8266 NodeMCU CP2102 (Wi-Fi enabled microcontroller)

Light Sensor

TSL2561 Luminosity Sensor for ambient light measurement

ADC Converter

ADS1115 for high-precision analog-to-digital conversion

Climate Sensor

DHT22/AM2302 for temperature & humidity monitoring

Soil Sensors

Gikfun Capacitive Soil Moisture Sensors x3

Hardware Setup - ESP8266 with Sensors
Sensors Deployed in Plants

Deployment Pipeline

Code Push

Self-hosted GitHub Runner builds Docker images on merge to main branch

Registry Push

Built images pushed to Harbor private container registry

Auto Deploy

Latest container automatically deployed to Ubuntu server