A small IoT project for tracking soil moisture in plants. Built using an ESP32, ASP.NET Core + Blazor, and PostgreSQL.
- ESP32 Dev Board
- Capacitive Soil Moisture Sensor
- Jumper wires
- USB data cable + 5V power brick
- Docker (to run app + database)
- Arduino IDE (for ESP32)
- Pushover account (for notifications)
- Create a
.envfile with your credentials (see below) - Run
docker compose up --buildin the project root - The app will be available at
http://localhostand WebSocket atws://localhost:8080
- Install the
ArduinoWebsocketslibrary in Arduino IDE - Create a
secrets.hfile with your WiFi and server details (see below) - Flash
socketCycle.inoto your board
.env (project root)
PUSHOVER_USER=your_pushover_user_key
PUSHOVER_TOKEN=your_pushover_app_token
DB_PASSWORD=your_postgres_passwordsecrets.h (ESP32 sketch)
const char* WIFI_SSID = "your_wifi_ssid";
const char* WIFI_PASSWORD = "your_wifi_password";
const char* WS_HOST = "your_server_ip"; // server IP address
const int WS_PORT = 8080; // container's exposed port- setup nginx (reverse proxy) to hide the container's ports from others on the network (done)
- whitelist ESP32 address (in progress)
- deploy app using free DigitalPlat domain registration! (paused but done)
- filterable timeline in chart by date