Garten Box
What it is
Garten Box is a simple outlet box that monitors the environmental conditions most important to the health of most houseplants. It then can automatically adjust levels of things like natural light, soil moisture, air humidity and temperature while keeping you in the loop about what’s going on in your plants world.
How it works
I’m still refining so I won’t go into too much depth but basically there is a sensor that you can stick into the plant’s soil that measures light (in lumens), soil moisture, air humidity and air temperature. It sends these data back via an API to a web service. The service can check the levels against preferences set by the user and then turn on/off devices (grow light, humidifier, water pump etc.) plugged into the box to restore levels to a healthy range.
Users can track progress on a dashboard and set up notifications to warn them if something doesn’t look right.
The box
The box is a cnc cut 6” x 6” x 6” box with a two gang outlet. The maple finish and discreet creme outlet make the box an ascetic addition to a room- not some fiendishly complicated high tech gardening gadget.
On the back is a ethernet jack that is wired to the Arduino Nano placed in the box. The Arduino uses this jack to collect all sensor data coming from the plant. It uses a ESP8600-01 wireless connector to send the API signals to the web server. The whole thing weighs about 2 pounds and costs about $35 in parts (see parts list)
The sensors
The setup uses the following sensors:
Sensors | Measures | Digital / Analog | volts | current |
---|---|---|---|---|
DHT11 | Temperature, air humidity | Digital | 3.3v or 5v | 0.5 - 2.5 mA |
SEN0193 | Soil moisture | Analog | 5v | 5mA |
TESL235R | Light intensity | Analog | 5V | 2mA |
Each are soldered to a small breadboard and connected to the Arduino via an ethernet cable. The whole thing draws about 5v.
The Dashboard
The internet has lots of info about how to grow houseplants. But knowing how your setup compares can be hard. “Needs moderate indirect light” wtf does that mean? Instead it’s helpful to put a number to all the things about your plant your tracking. It may make searching the internet more helpful but most importantly it can help give relative context to the health of your plant. Now instead of “this plant gets less light in the winter” you can say “this plant gets about 5 hours a day of adequate sunlight in the winter but in its native growing region it typically gets about 9.” This is more actionable and more specific, even if you aren’t a botanist or metrics nerd.
Programming the Arduino
Absolutely the hardest part about programming the Arduino was getting it to work well with the ESP8266-01. I originally built this using a Raspberry Pi but switched to Arduino for those sweet, sweet analog pins. However WiFi is not straightforward and took a ton of time and patience to get working.
The code itself is relatively straightforward- the Arduino just collects data from sensors one after another, formats the data, sends it to the ESP8266 which then sends the data to the API. The ESP meanwhile is listening for any commands from the server to turn on/off one of the outlets which is then sent to the relay via the Arduino. The whole thing can be found here.
Improvements to be made
The box currently powers the arduino via a plug and a usb converter. It’s giant, expensive and probably the least safe thing about this product but I have no idea how else to step down 120 volts to 7 volts. I’ve read about doorbell converters? But they also seem giant and expensive.
I know everyone loves to hate on the DHT11 but I think it’s great. It’s a plant, temperature doesn’t have to be super accurate! However I think the humidity might be significantly off and need to test more
Soldering all this to breadboards is time consuming, tedious and messy. I need to learn to bake my own circuit boards
I would love to find a 1x4 outlet instead of the typical 2x2
I need a sturdier way to connect the soil moisture probe to the sensor board.