See my plant data here: https://linux.plant-watch.com/
Plant Watch is a smart plant monitoring system that keeps track of soil moisture levels for houseplants using ESP32 microcontrollers and soil moisture sensors. This project aims to explore IoT, microcontroller integration, and self-hosting solutions while providing a practical tool for plant care.
- Real-time soil moisture monitoring
- Visual representation of moisture data over time (last 100 readings)
- Responsive web interface for viewing data
- Automatic data logging every 3 hours
- Self-hosted on a linux-based VPS with automatic restarts using PM2
- Notifications for low moisture levels
- Integration with other sensors (e.g., temperature, humidity)
- Enhanced data visualization (e.g., historical data analysis)
- Sqlite for long-term data storage
- Node.js and npm installed
- ESP32 microcontrollers and soil moisture sensors
-
Clone the repository:
git clone https://github.com/yourusername/plant-watch.git cd plant-watch
-
Install dependencies:
npm install
-
Delete API related code
-
Start the application:
npm start
-
Access the application at
http://localhost:3000
.
-
Connected the ESP32 to a power source via the VIN and GND pins. Connect the moisture sensor via the GPIO15, GND, and GPIO36 pins.
-
Using the Ardruino IDE, verify and upload the code in esp32.ino to your Esp32.
- Replace the ssid and password with your local network, and change the serverName to localhost:3000/data.
- Change the plant name to your own.
- Access the web interface at
http://localhost:3000
to view live moisture data. - The chart displays the last 100 moisture readings, updated every 3 hours.
- Future features will include notifications for when moisture levels fall below a certain threshold.
This project is licensed under the MIT License.