Pcomp Project 2 Documentation: The Water Timer

Aidan Massie
3 min readNov 14, 2021


Title: The Water Timer

Description: The Water Timer is a project that aids users with a problem they’ve had for ages — how do I know when my plant needs water? The Water Timer answers just that question, as it provides users with a percentage of the moisture level within the soil of a plant, mapped specifically for the plant, allowing the user to know how moist the soil is and when to water it.

The Code:

First section of code
Second Section of Code

The setup was pretty simple as well! We had an OLED screen receiving power and ground from an Arduino Uno, with additional cables running into the SCL and SDA inputs. For the moisture sensor, it was receiving power and ground from the same Arduino, as well as running into a digital pin.

A look at the moisture sensor

Getting this project to work was pretty simple! The moisture sensor is a pretty easy sensor to use, as it requires just power, ground, and a digital pin. The code just required a serial print command and an output value from the analogWrite() command, mapping it to the certain range of numbers we needed, and printed in the serial monitor. We decided to get this out of the way first, and it proved to have no difficulty with it.

We then decided to get the OLED running for the project as the output display. We followed the OLED screen lab pretty closely, and got the screen working pretty quickly, actually! The OLED screen required some extra libraries to be imported in order to use it in Arduino, but we did that and were able to easily print the serial monitor onto the screen. We then reshaped the print to include “Moisture: XX%, Water Your Plant!/Don’t Need Water!”

Overall, both Sammy and I were happy with the outcome of the project! We found it pretty easy to complete, and thought that it was actually a pertinent project that many people would find useful. We didn’t run into any challenges, other than being limited by the OLED screen. We were wanted to use red blinking text for when the moisture level got too low and the plant needed water, but the screen only has white, yellow, and blue text and does not have blinking capabilities. Our happy moments came often as we were figuring this project out, because every idea we had came to fruition pretty easily — it was cool to see ideas come to life so quickly and easily, especially when both Sammy and I were unfamiliar with the moisture sensor and OLED screen.

If we had more time, like mentioned in class, we probably would’ve liked to add more of an interface and neat container for the parts. An interface would allow users to change between plants and check moisture for different plants and different size pots, while in a neat package that wouldn’t have loose wires and an Arduino hanging off the back.

I personally received a lot of messages on my Instagram from people, asking where they could get something like this. So, maybe with more time, Sammy and I could start a business and mass-produce these bad boys. Who knows¯\_(ツ)_/¯



Aidan Massie

Student at New York University. Passionate about visual art and the intersection between technology and sports.