Smart Gardening Station

This article is part of: internet-of-tricks.

A smart device connected to a plant, which measures the soil moisture level, the ambient temperature and humidity and based on the data collected it waters the plant to meet its needs. The data is published online and a web interface allows direct interaction with the gardening station.

This project is open-source and designed to be built and deconstructed, learned and re-appropriated.

See the repository on Github



  • Seeed Studio XIAO ESP32C3
  • Grove Shield for Seeed Studio XIAO
  • Watering Unit with Mositure Sensor and Pump
  • AHT20 Temperature and Humidity Sensor
  • iot-gardening-station-cap.stl

Assembly instructions

  1. Break the XIAO ESP32 at the divider to reduce its size
  2. Attach the XIAO ESP32 to the top of the watering unit with a plastic collar
  3. Connect the antenna to the XIAO ESP32 and stick it on the side of the water unit
  4. Connect the sensor to the board with a Grove cable to pin 4 and 5
  5. Connect the water unit to the board with a Grove cable to pin 1 and 2
  6. Tape the sensor to the base of the watering unit using double-sided tape
  7. 3D print the cap and place it on the unit to cover everything



Arduino allows us to program our board so that it acts as desired. Create a new arduino project and paste the code from iot-gardening-station-arduino.ino into it. It will most likely be necessary to install the few libraries used.


An instance of Node-red allows us to connect our devices to a dashboard. The easiest way is to have Node-red installed on a Raspberry Pi. Or on another computer that can stay on. Import the code from iot-gardening-station-node-red.json into the Node-red dashboard to configure the dashboard and its connections as desired.

Nodes: Interface:


The code is under the MIT LICENSE, the assets are BY-NC-SA 4.0.

Created 11/02/2023

Updated 11/02/2023