Plant Watering System – Overview

Hello Embedded Systems Fans!

It’s that time of the year – finals! Which means it’s time for our final project. The Unknowns were working night and day trying to decide what project we wanted to do, when it dawned on us…. we’d forgotten to water out plants!

Luckily, they were able to be saved, but it sparked the idea; “what if there were a system which would figure out when our plants needed watering, and would do it for us?” And so came about the big idea for our final project – an automatic plant waterer! All we would need is our handy-dandy Atmega328P Xplained Mini, a motor driver, a water pump, and a soil moisture sensor (shown below).¬†

Follow The Unknowns though our plant watering journey!



Plant Watering System: Schematics

Drum roll please……….

We would like to present our brand new, super deluxe, autonomous plant watering system! You can see in the photo below how all of the components are wired together.

If that looks a little jumbled to you, you might have better luck looking at our schematic instead:

As an overview, the soil moisture sensor is placed into the potting soil of said plant. The program mandates in a loop that the sensor takes 30 consecutive samples  Рthese values are averaged, and then is sent to the water pumping sections of the code, where the 328P determines whether the user-set threshold is above or below the taken soil values. If the soil moisture is below this threshold, the controller will send a high signal from pin D6 (anode), a low signal from D7 (cathode) , and a high Signal from D5 (enable) to the motor driver. The motor driver receives these signals in conjunction with an external 9-12V power supply (to physically power the pump) and then the water pumps to the plant!


Plant Watering System: Code

Hey there Embedded Fans!

Progress is being made on our plant watering apparatus! As of late, the Unknowns have their code in progress, and we’ve gotten our motor driver to work! In order to do this, we’ve sent a high and low signal to two of the input pins on the driver (from pins D6 and D7), and sent a high signal to the enable pin (from pin D5) ! See our code snippet for super cool and exciting bit shifting operations!

But… don’t listen to me – see for yourself!

Soon our plants will never go thirsty again! :,)