I have a hard time keeping herbs alive in my windowsill and as a software engineer I have a deep felt love for automation. And I like designing and building stuff. So I would like to build an automated plant monitoring and watering machine for my kitchen windowsill.
These are the requirements I setup for the hardware of the machine:
- Controlled by Raspberry Pi Zero – as I had one already.
- 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 even if SW crashes.
- Optional: LED grow light.
These are the requirements I setup for the software of the machine – being a software engineer this is somewhat over-designed:
- To be implemented in Python 3.
- Object Oriented approach.
- Modular design to isolate implementation of different components and to allow putting subparts in production as they are completed.
- 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.