PiPlanter 2

Project Description

PiPlanter is a plant growth automation system. It uses a microprocessor connected to an embedded computer (a Raspberry Pi) to complete a series of motoring and regulation tasks on a schedule to optimize the growth of any kind of plant. In it’s current developmental stage, the PiPlanter can distribute water to a series of plants based on the moisture content of the soil or on a schedule. It can monitor a series of variables including ambient light level, temperature and relative moisture content of the soil. It also automatically renders graphs of this data over time intervals of once a day, three days, and over a week to provide the user with an idea of what is happening with the plants environment. It also captures and renders time lapse videos of three day periods to provide the user an avenue to make subjective judgment calls on the state of the plants. All of this media content is pushed to social media accessible by anyone for further analysis. Applications for this project include large or small scale indoor gardening, gardening hard to access places like a rooftop or underground or for individuals who want fresh fruit/veg and don’t know how to garden or have the space typically required for yielding plants. The modular nature of the PiPlanter’s design makes it suitable for implementation on any existing farm as well. PiPlanter also has potential applications in biological research as well as it can create a very uniform growing environment.

Want To Build One?

This project is open source, and the most recent version of all source code as well as schematics are available here. If you build one please let me know!

You can follow a build guide here.

PiPlanter in the news!

Development Log

Plant Update Posts: 1, 2, 3, 4 – Just tracking the germination of the tomato seedlings.

Getting Started Again: A simple post with some notes for myself for dependencies.

Update 1: A post that shows the code that takes the project to more ‘modern’ standards. Also shows the updated version of the php script to render the graph.

Moving Plants: This is how I intend the indoor version to most closely represent when the project is finished.

Solving Broken Pipe Errors [Errno 32] in Tweepy: Showing how I solved a horribly annoying error in python caused by large images.

Adding Youtube Upload Functionality: An explanation of how I’m handling uploading videos to youtube.

Dependency Update: In anticipation of the “lite” version release, these are the softwares that PiPlanter 2 requires to work.

DIY Lite Version Release: A post detailing how to make the basic version of the PiPlanter. The culmination of all the research done on this project thus far.

Interfacing a Mikroelektronika CANSPI and an Arduino: As development moves from a unit to a network of sensors and regulators, a new communication protocol was needed. This post is the beginnings of using a CAN bus as the primary form of communication between modules.

Installing a 3rd Instance of the PiPlanter: Some photos of the installation process of a new instance of the PiPlanter, this time grow lights were added.

Python Modules & Text Overlays: Shows the transition to one long python source file to a series of function modules. Also shows the addition of text overlays onto the timelapse slides.

Plant Update and Daughter Board Migration: Details the transition from raw Raspberry Pi GPIO to an arduino powered daughterboard.

This project is a continuation of my research done: here


PiPlanter reBuilds

The following are examples of people building a PiPlanter for themselves:

JG PiPlanter



  1. Thanks very much for posting your progress.
    I’m interested in doing something similar as well.
    Can you tell me how well do the RGB LED lights work as grow lights?

  2. This is really cool! I come from a software background rather than a hardware one. From a hardware perspective, would it be possible for a single pi to manage multiple planters?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.