House plants provide a nice atmosphere whether they're huge and extravagant or something small. And believe it or not they grow, very slowly. Might as well consider them to be a pet. Like pets they need to be taken care of, but they only need a few things: sun, water, soil. Unfortunately, this project doesn't tackle the manifestation of soil. It does describe how to have the plant tell when it needs fed or watered - and no crazy barking!
The first part (feeding) only requires a few hours of sunlight a day, but the more the better. So, placing the plant close to a window seems like the logical choice. But we don't want neighbors stealing ideas for IOT projects so at night the blinds remain closed for the utmost secrecy. Now that morning rush is a real deal and sometimes a thing or two is missed, like forgetting to feed the plant! Luckily, we live in the internet age and have access to microcontrollers and sensors to communicate information autonomously. The photoresistor is a perfect sensor for detecting light and quantifying it to an analog signal to be read and sent wherever is needed. When the blinds are closed, a low level of light will be read by the sensor, and when open, a higher number will be read. Through some calibration based on physical setting, an approximate critical value can be determined that indicates if the blinds are closed or opened. This number will be read by a Particle Argon microcontroller and once crossed sends a Particle.publish event to the cloud.
A 3mm CdS photosensitive resistor was used and a link to purchasing and more information is provided here.
Next is watering. Different plants need different frequencies of watering times and amount of water at a time. A simple water level or soil moisture content sensor would do the trick here. As water contacts the sensor, the read value goes down and an approximate critical value can be determined to have the plant say, "hey I'm feelin fresh!" Similar to the photoresistor, once that critical value is passed an event can be published to the cloud.
A Soil Moisture Content Sensor was used and a link to purchasing and more information is provided here.
In this project, two Argon devices are used. One Argon (Argon1) is connected to the water level sensor and the other (Argon2) is connected to the photoresistor. It is useful to have two devices so measuring multiple plants in different locations is possible with only one light value sent to all. The way each Argon communicates is through Particle.subscribe commands. Each Argon will subscribe to the others event. So, Argon1 is subscribed to Argon2s event when the light threshold is crossed, and vice versa. The publish event will trigger a "subscribe function" that flashes an LED on/off corresponding to the state of water or light. Each Argon has LEDs for both statuses. This flow chart is shown in Figure 1.
ThingSpeak is also connected to the water content data via a WebHook. Data on water content over time is useful so patterns can be observed that link plant watering and health. A sample plot of water content by sticking the sensor into a glass of water overtime is shown in Figure 2.
The two circuit diagrams used are relatively simple as shown in Figures 3 and 4.
Physically implementing the two circuits is also not too difficult as shown in Figures 5 and 6.
There is a video demonstration on the application of the project. Water in a bottle was used instead of a plant to quickly show the LEDs turn on.