I love my plants, but no matter how much I love them, there are times where I just forget to water them. So I made Plant Friends. Plant Friends is a soil moisture sensor system that alerts me via email and text messaging when my plants are thirsty. The whole system is comprised of two sub-systems: the wireless, battery powered sensor nodes that gather temperature, humidity, and soil moisture readings for each individual plant and a receiving base station that logs and processes the data. I also made a mobile app that allows me to connect to the base station over the internet, monitoring both the real-time and historical data with my phone.
Here is the Robot and Dino keeping a close eye on my basil plants.
Here is Bunny on the lookout.
These characters are constructed out of bamboo that house the required electronics to gather temperature, humidity and soil moisture data. Once the data is collected, it is sent wirelessly to the base station.
Top left: Robot.
Top right: Bunny.
Bottom left: Dino.
Bottom right: Group photo.
The brains of the characters is powered by an Arduino clone called the Moteino made by Felix of lowpowerlab.com. Not only is this Arduino clone small, it also contains a wireless transceiver onboard which allows me to transmit and recieve data wirelessly! Felix also wrote his own library for the transciever and a bunch of sample code to get the Moteinos to talk to each other. What can I say, Felix is awesome. :)
It is kind of hard to make out in the pictures but if you look closesly, the white/opal parts of the characters have an LED underneath. This serves as an indictor light for when water level is low, low battery or other types of errors.
Top: The gang with their back covers on. The blue device is a temperature and humidity sensor.
Middle: Back covers off exposing the internal circuitry.
Bottom: The back covers are secured to the sensor nodes via small neodymium magnets.
As you can see, the characters are powered by four AA or four AAA batteries. With careful power management and data gathering, the batteries lasted approximately 4.5 months.
Plant Friends system at various stages of construction.
Top left: The laser cut bamboo pieces that make up the Robot, Dino and Bunny.
Top middle: Robot with his head off.
Top right: Dino LED light test.
Bottom left: Bunny battery operation test with soil probe attached.
Bottom right: Bunny construction.
So now that I have some buddies looking after my plants and gathering data, where does it all go? To this guy right here. The temperature, humidity, and soil moisture readings are transmited wirelessly to this base station. Inside this base station lives a Moteino and a Raspberry Pi Model A with a USB WIFI Adapter. The Moteino is responsible for recieving the data from the nodes and then transmits it to the Pi via the serial port. The Pi is responsible for processing the data and logging it into a mySQL database running on the Pi. When the soil moisture reaches a set threshold, a text message and email is sent to my phone alerting me that my plants need watering. The Pi is also running a lighttpd webserver which serves real-time and historical data over the internet to my phone.
Plant Friends base station construction.
Top left: Internal frame structure.
Top middle: Side panels attached to frame structure.
Top right: Base LED light test. The LED lights at the base is covered by a sheet of translucent acrylic. This allows the light to scatter throughout the acrylic and disperse light around the base. The base station contains 24 LED lights that are controlled by the Moteino via 3 cascading shift-registers that allows for brightness adjustment and different lighting sequences. Cylon.
Middle row: Completed base station cycling through different lighting patterns. The far right picture shows the Raspberry Pi sitting diagonally in the case. Why? I wanted the case to be smaller. If you look closely you can see the mini power supply I made where I got too excited with the capacitors.
Bottom left: Base station LED lights at full brightness.
Bottom middle: Top view. The designy triangles make my shit look hyper-contemporary.
Bottom right: The frame of the base LED lights are attached to the main chasis via magnets. In hindsight it was probrably overkill but magnets are fun.
Written in Processing, the Plant Friends mobile app allows me to monitor the soil moisture, humidity and temperature on my phone. The app connects to the base station via the internet and retrieves both realtime and historical data. The main screen presents the characters (sensor nodes) that are actively collecting data. Tapping on a character brings up the data for that character.
Here, the details screen shows the data for the respective plant that the character is monitoring. The date, soil moisture, humidity and warmth (temperature) value is displayed and color coded. Temperature can be toggled between Celsius and Fahrenheit by tapping on the number. Below the realtime data is a chart that plots the averages for the past 5 days. Tapping on a date brings up the average values for that day.
Left: Robot's data for my basil plant.
Top right: Bunny's data for my money tree.
Bottom right: A text message received from Bunny alerting me my money tree is thirsty.
Robot prototype MK1.
UPDATE: I made version 2 of Plant Friends, named Plant Friends MKII. Everything has been redesigned and rewritten from the ground up. It looks different but it is easy to build, expandable and adaptable! All source code released!
Electronic parts that I used:
Moteino R1 ( lowpowerlab.com ) <-- so awesome!
Raspberry Pi ( raspberrypi.org )
Raspbian on the Raspberry Pi with lighttpd, mySQL and Python
Code samples for the Moteino from Felix of lowpowerlab.com
Everything designed and made by Dickson Chow