Take Care Of My Plant

When the internet of things and crowdsourcing come together.

Take Care of My Plant: A Lesson in Outsourcing

Reddit user u/tylerjaywood had a problem, he is self-admittedly terrible at gardening. “I’m pretty bad at taking care of my plants,” reads the first line of his subreddit. That’s why in June of 2016 r/takecareofmyplant was born.

As of this article the subreddit has 9.3k subscribers and each daily watering post can have dozens of users engaged in a heated debate. The community is generally wholesome and supportive and people have formed attachments to the plant that make them want to protect its well being.

Take Care Of My Plant Subreddit
Take Care Of My Plant Subreddit

About the plant:

  • Freyja the Zebra Plant
  • Zebra plants are well-suited for indoor growth, however, they are quite a temperamental species. They can easily lose their leaves or wilt if not adequately cared for.
Freyja the Zebra Plant, star of r/takecareofmyplant. Photo: @takecareofmyplant

How it works:

  • /u/takecareofmyplant is a bot that was established to collect votes and help the subreddit take care of the plant
  • Every morning a “Daily Water” post is created where users comment with yes or no to vote on whether the plant gets watered
  • After the votes are counted, users can view the “Plant Cam” and watch a livestream of the watering, if that’s what the subreddit decided.
  • There is also a daily gif created and posted into a an Imgur album, as well as on the subreddit. There the status of the plant is also heavily discussed.
Video showing a day’s worth of growth and watering courtesy of u/PlantGifBot

Talking to the creator

Take care of my plant is a great example of using the internet of things to solve a problem. Integrating a wholesome community into this technology that would not have been possible before is a great step in the internet of things. This project’s social aspect has drawn so many supporters from around the web, and when I stumbled upon it I had to know more. I contacted Tyler Jay Wood to learn more about this project, and received some great insight and feedback to pass along.

IOT Veteran – What made you pick Raspberry Pi for this project?

Tyler Jay Wood – I was only really familiar with Raspberry Pi and Arduino when I set out to build this. Because I was trying to learn Python for my job I opted for Raspberry Pi, even though it was on Arduino that I first got comfortable with the GPIO and controlling electronics programmatically.

IOTV – would you like to explain what happened? Maybe it will help someone avoid the same mistake.

Take care of my plant instagram post showing water damage to Raspberry Pi
Take Care of My Plant Instagram – @takecareofmyplant

TJW – That error was just bone-headedness on my part, I was so caught up in the technical challenges that I failed to remember that a Raspberry Pi performs best when dry. What basically happened was I had the Pi sitting right on the shelf next to some plants and one of them had water draining from it’s pot right into a low point in the shelf where the Pi was sitting. I’ve since elevated the Pi and the breadboards to avoid something like that happening again.

I didn’t learn anything new from this, but it was a painful lesson to remember lessons I’d learned previously, namely: Keep your computer dry and BACK UP YOUR CODE. I had probably last backed up the actual code on the Raspberry Pi over 2 years ago? So while there were some pieces I was able to find backed up locally, for a lot of it I was SOL until I came across this blog post that helped me salvage the SD card from the dead pi.

IOTV – How did you integrate the Reddit voting? Python web scraping to Amazon Web Services (AWS)  database (db)?

TJW – I make extensive use of the PRAW package for interacting with Reddit. I have moved a lot of this code to a Heroku app so that it’s not dependent on the Pi in case of power or internet issues. The Heroku app runs a bunch of scripts that post the threads each day, counts the votes, sets flair for voting streaks and logs everything to an AWS postgres db.

IOTV – How long did it take you?

TJW – Well, this first launched about 2 years ago with very few features and a sort of wonky water-delivery system and was very much a ‘learn how to code’ project for me, so it took probably 4 weeks at 10-12hr/week.  I’ve iterated on it since then, adding features and refactoring code. I think that if someone is intermediate at Python and comfortable with the nuances of raspberry pis and breadboard prototyping, getting a similar project up and running would take less than 20 hours. Most of the work honestly goes into the code that powers the subreddit. If you just wanted an app to switch a pump on and off on a schedule or on command, that would be trivial for someone familiar with Python and Raspberry Pis.

IOTV – Anything else you would like the readers to know?

TJW – I have a ton of fun with this project, that arose out of a real need of mine as I traveled often for work. I know how annoying it is getting the same advice over and over again as you’re starting out programming, but the best way to learn is identifying a problem you want to solve and then attacking each piece of it step by step. This one has been great because I keep having opportunities to extend it into new areas of interest for me, for example, I wanted to learn more about PostgreSQL and db administration, so I started integrating PostgreSQL.

The coolest part of this project is not the technical components though, the community that exists in r/takecareofmyplant is amazing and I’m blown away by how into it people are. I love checking in on the sub and seeing arguments, backed with data, about when the best time to water is, or who among the commenters might be trying to sabotage the plant. There have also been people who have stepped up and made their own contributions to the project! U/PlantGifBot is a great example, those daily/weekly/monthly time-lapse graphics are made completely independently by one of the members of our community. It’s great.

We are always looking for more people interested in looking after the internet’s plant, so checkout r/takecareofmyplant and takecareofmyplant.com 🙂

Zebra plant background
If properly cared for, the Zebra plant can grow as tall as 2m (6 feet) outdoors or a little over 30cm (1 foot) if kept indoors

More than just a plant

There are many applications for this project that could be used in real world situations. Any dedicated programmer with very little startup costs can solve problems in their everyday lives, or attempt to make a community project of their own. This demonstrates the endless possibilities that advancements in IOT are unlocking.

As IOT becomes increasingly available and affordable, there will be more and more opportunities for amazing ideas to be made into reality. Hardware is becoming less expensive, which allows for younger generations as well as those previously limited by economic factors will be able to make their creative ideas available to the masses.

Aspiring computer scientists used to have to toil all day in a dark room in a university basement; and now potential makers from around the world can communicate and share ideas instantly. It is exciting to see random projects surrounding the internet of things gain such popularity. I’ve currently subscribed to r/takecareofmyplant and I hope you will head over and check it out.

Please like and share:)