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.

Hardware Requirements

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.

Software Requirements

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.

Leave a Reply

Your email address will not be published. Required fields are marked *