Pixels and Plants: building blocks

Breaking out of the box

Like many people around me, I spend most of my time figuring out how to build software that effectively moves pixels around on a 2 dimensional screen in order for people to communicate with each other more effectively. This pursuit is possible thanks to computers that sit in racks somewhere in the clouds, desktops and laptops that augment our ability to sculpt experiences and the tiny computers in our phones that connect us with data that we generate and transfer between each other.

All these boxes and screens help us communicate with speed and sophistication like never before, anything that becomes information can spread quickly and become transformed in the process. Computers are what allow us to convert our environment into information and improve it. We use them to capture our business processes to make them more collaborative and efficient. We use computers to sense our surroundings and control the electricity that drives civilization.

So where does the physical world become information?

v1.3 of the kijanigrows.com arduino

Sensors are how we turn the world around us into the precious 1s and 0s that make up information. All sensors, including thermometers, pH sensors, light meters and flow sensors make use of clever properties of nature to convert a physical phenomenon into electricity that can feed into a computer. Take a flow sensor, something which can tell you how much water is flowing through a pipe at a given time. One type of flow sensor makes use of magnet attached to a little wheel suspended in the pipe. When the water flows it will spin the wheel and the magnet, which will change the magnetic field of wires surrounding it. When you rotate a magnet inside a coil of wire it will create electricity that can be measured, the speed of the rotation will affect how much electricity comes out of the wire, which means we can record a number that goes up and down as the flow gets faster or slower.


these are arduino chips printed on circuit boards designed to hold several analog and digital sensors, as well as control some relays (for pumps, lights and motors).

A very well known platform for powering electronic sensors is the open source Arduino project. There is a very large community, with many resources for learning, buying, using and applying sensors with arduinos.

There is also a rich ecosystem forming around custom electronics built around an arduino chip. I have the distinct pleasure of being friends with the designer of one such project, giving me a first hand look at its development and insight into what’s to come.

the v2 prototype of the kijanigrows.com garden controller board

Arduinos are great because their relative ease of use and the huge amount of sensors already built for them. The main drawback of most Arduinos is that although they are essentially tiny computers, they don’t have very big brains. If you want to start doing a lot of sophisticated processes with the data you collect from your sensors, or you want to intricately control the devices attached to it, you will quickly find yourself running out of processing power.


Enter the humble home wifi router. Most of the routers powering the wifi you use at home or in small venues are actually small, but fully functioning personal computers. These computers have USB, ethernet, wifi, and serial ports, they can be extended with SD cards or harddrives, but most importantly they can be programmed with in pretty much the exact way we program our desktop machines and our web servers. This means we can use the huge amount of tools available for processing, transmitting, collecting and communicating data from our sensors.

a v1.3 board hooked up to a 30$ wifi router running OpenWRT

At kijanigrows, Eric is building a combination linux computer + arduino to control robotic gardens. You can imagine that to control a garden you need to manage water flows, provide light in proper cycles and stay on top of the delicate chemical balance that let plants thrive.

This involves numerous sensors, including multiple water level and flow sensors, relays to control pumps, switches for lights as well as temperature and chemical sensors. All of this is too much for even the bigger ATmega2560 arduino he uses to manage by itself. Instead, the arduino sends the data it reads from the sensors to the linux computer, which can then be programmed to send the data along to remote database servers or to a nearby phone’s display. We get the best of both worlds: being able to SSH into the linux machine and program it with languages we love like Python or JavaScript (or even just bash) as well as hundreds of sensor products that plug-and-play to the arduino.

It is on these hardware foundations that gardening will become an information product, by turning the process of growing plants into a software problem we invite all of the benefits of the information age into our kitchens.

The hardware is going through final rounds of testing before full manufacturing. The real fun starts when the benefits of the v2 board are exposed in the upcoming iterations on the software. In future posts I will explore that process and the resulting possibilities for data visualization and application development with gardens.

Show your support

Clapping shows how much you appreciated Ian Johnson’s story.