Michael Lynch decided he wanted a house plant. Being a software engineer, however, and not a gardener, gave him a distinct problem: when should the plant be watered? How much moisture is too much? So, he collaborated with Jeet Shetty on an automatic plant watering system called GreenPiThumb.
He used Python on the back-end for managing soil moisture and temperature sensors and for turning the water pump on and off, as can be seen below.
He also recorded events and sensor readings to a database. The front end (see a static example here) was written in AngularJS and Ansible was used to deploy the software to the Pi.
It took over a year to complete, despite the two developers wanting it to be a few weeks’ worth, and they encountered many challenges along the way. The two also captured the growth of the plant using a Pi camera and generated a time-lapse:
You can read a very humorous account of their journey, and see wiring diagrams and more photos, here and see the code here.