Ensure Your Plants Never Go Without Water by Turning Them Into Noisy Babies
This new project from Sam March uses microcontrollers to play crying sounds and show on an app when a plant is in need of water.
Motivation
Getting a few houseplants for decoration within a room can add a sense of liveliness and openness that might otherwise be missing. But all too often, these living guests are forgotten about and neglected, leading to droopy stems, wilted leaves, and even a pile of dried brush if they have been without water for an extended period of time. This is why Sam March wanted to build a viewer-suggested device that can automatically alert the owner that it needs water, thus giving a voice to something that is incapable of speaking on its own.
Designing and building the hardware
The start of the project began with determining which hardware is best for a small, battery-powered device that also needs IoT capabilities. March settled for the ESP32, as it contains a powerful dual-core processor, WiFi and Bluetooth modems, and can run for a long time without draining the battery too much. Sound is produced by using the ESP32 to read sound files from an SD card and converting them to the digital I2S format. From there, this data is transferred to a small I2S receiver IC which both amplifies the sound and outputs it to a speaker.
Apart from audio, soil moisture levels are determined by using a simple sensor that measures the resistance between the two leads. More water in the soil leads to less resistance and vice-versa. The board also has an ambient light sensor for tracing when the plant is exposed to sunlight and a status RGB LED in the middle.
Creating an enclosure
Each enclosure consists of a single plastic housing that has a rear piece for holding the board, speaker, and battery, along with a front panel that hides everything except for the status LED. The soil moisture sensor sticks out the bottom so it can be implanted into a pot filled with soil and a plant.
The decorative (and self-admittedly creepy) human baby heads were fabricated from CNC-milled plywood and layered together to form a 3D structure with room for a pair of googly-eyes.
Viewing data within an app
Rather than merely having the module play a crying sound whenever water was needed, March also wanted a way to view the data being collected in a more detailed manner. His mobile app features a way to view charts for both the amount of moisture and sunlight the plant has received over the past four days. To interact with the device from a phone, WiFi packets are sent to and from a webserver running locally on the ESP32.
How well does it work?
Although the crying can get annoying, it certainly assists in preventing the houseplants from being neglected. For more information about this device, you can view March's build log below. You can also see all of the associated build and code files here in his GitHub repository.