I want to automate plant watering with a Raspberry Pi Zero, a range of sensors, and controls. Because I have a hard time keeping herbs alive in my windowsill. Furthermore, as a software engineer I have a deep felt love for automation. And I like designing and building stuff. Below are my requirements. I will document the build here on the website as I go along.
Hardware Requirements
First the requirements I setup for the hardware:
- Controlled by Raspberry Pi Zero.
- Moisture sensors to monitor individual plants.
- Valves to control watering of individual plants.
- Water tank to minimize potential flooding and for ability to add fertilizer.
- Float switch to alert about empty water tank.
- Sensors for each plant to detect flooding.
- Light, Temperature, and humidity sensors.
- Relays to enable control of 12V components.
- ADC to allow analog sensors.
- RC filters to prevent noise from long wires for analog sensors.
- Timer chip (555) to prevent pump from keep pumping if SW crashes.
- Optional: LED grow light.
Software Requirements
These are the requirements I setup for the software – being a software engineer this is somewhat over-designed:
- Implemente in Python 3.
- Object Oriented approach.
- Modular design to isolate implementation of different components.
- Event driven system based on mails between the different components.
- Database backend for data collection.
- Web interface to monitor sensors, watering schedule, and water consumption.
- Optional: Command line interface to control machine manually.