Wireless smart plant watering system (indoor and outdoor)

Growing plants is hard, unlike kids that shout when they’re hungry, plants just quietly dry up and shrivel.
So with this learning task I will try to address this problem with modern tech, as usual without using external clouds and only open source code.


  1. Learn how to use Xbee wireless devices and the ZigBee wireless protocol. It’s a low range low power networking system, I would like to compare it to Bluetooth and Wifi. It should deliver longer distance than BT while using less power than Wifi. For low bandwidth devices this seems like a good communication solution.
  2. Work with Arduino and relays, water pumps and other sensors.
  3. Connect all via Xbee wireless to a Raspberry pie brain that collects all sensor data plus online data (such as weather forecast) and decides when to open the water in each specific pump or tap. Will practice my Python.
  4. Get a nice box enclosure for the arduino edge devices, I might need to print a watertight box, but I would prefer to have somethine ready made.
  5. Expand system to control other xbee devices such as light switches and radiator kraan.

These are the sensors I will plug into the ground next to the plants and trees, they will report ground humidity to the brain via Arduino and Xbee.

The small one is my first test, it’s crap, the big one is the one I will use.

I also purchased (pictures will be added later):
4 water sensors
3 Xbee chips

1 Arduino Uno as pump aggregator
1 Arduino nano as sensor collector
4 water pumps
1 4port relay for pumps
1 Arduino battery pack shield

Already had
Raspberry pie for brain

Total costs so far around 100 euro.


  1. Connected water sensors to Arduino, was able to receive reading about how wet the ground is.
  2. Connected relay to pumps and to second Arduino, was able to send a command via serial to open and close the pumps.
  3. Started setup of the Xbee network system.

Xbee modules need to be configured in advance by a USB adapter connected to a PC.
So I need to order an extra part for that, which will wait till January: