Introduction: Garduino – the Smart Garden With Arduino

These days, no one is innocent. Is there anyone who didn’t accidently kill a plant???

It’s hard to keep your plants alive. You buy a new plant, and in the worst case, you just forget to water it. In the better case, you remember it exists, but you do not handle it properly.

With Garduino, we will help you to turn your home into a beautiful greenhouse of healthy and happy plants.

Garduino is a smart plant monitoring platform, that will help you know your plants better.

Why Garduino is so cool?

  • It monitors the moisture in the plant’s soil. Too little moisture can result in yield loss and plant death. If the moisture level is low, the user should water his plant. Keeping the moisture level in the right range also helps to avoid over-watering. Over watering is a common and well-known cause for plant killing, that causes root disease and wasted water.
  • It monitors the temperature in the plant’s surrounding. Temperature is a key factor in plant growth. This helps us to keep track when the temperature is too high. FYI, low temperatures is bad to plants as high temperatures, sometimes even worse.
  • It monitors the air humidity. Most plants need humid air, because the pores through which they breathe lose most of their moisture when the surrounding air is dry, a loss that the plant can’t always replace through the water its roots absorb.

Who are we?

Two Computer Science students from the Interdisciplinary Center (IDC), Herzliya, Israel.

We both have a busy schedule, and we both love plants.

Our apartments are full of plants, and we find it difficult to take proper care of them.

We often forget to water them, and when we do remember we try to make up for forgetting by over watering them.

This plant monitoring system is our final project in “The Internet of Things (IoT)” course.

We hope this would help you like it helped us!

We would love to hear from you

Tried our project?
Let us know! We would love to hear from you, if you have points to improve or any comments. Moreover, we would love to get some pictures!


  • 1 x ESP8266 board (We used Wemos D1 mini)
  • 1 x Micro-USB Cables
  • 20 x jumper cables
  • 1 x Temperature & Humidity sensor (We used DHT22)

  • 1 x 10K Ohm resistor

  • 1 x Soil moisture sensor

  • 1 x LCD (We used Grove LCD RGB Backlight)

  • 1 x Breadboard

Step 1: The Circuits

    In this step, we will connect all the sensors.

    Soil Moisture sensor:

    • Connect VCC to 3.3v
    • Connect GND to G
    • Connect A0 to A0

    LCD Screen:

    • Connect GND to G
    • Connect VCC to 5v
    • Connect SDA and SCL to D1, D2

    Humidity & Temperature sensor:

    • Connect GND to G
    • Connect VCC to 3.3v
    • Connect Data with the 10K Ohm resistor to D3 and power, as in the circuit

    Step 2: Installing Required Software & Dashboards

    Arduino IDE

    Install Arduino IDE:

    Install relevant "drivers" for the ESP8266 boards to your Arduino IDE:


    Create an account:

    Go to the 'Feeds' and add 4 feeds:

    1. SoilMoisture

    2. Humidity

    3. Temperature

    4. Alerts

    Then, go to the 'Dashboard' and create a new dashboard, then enter to the dashboard and add 4 blocks, using the plus sign at the right of the page:

    1. Add a Line Chart block, then choose SoilMoisture feed, determine that the minimum value is 0 and the maximum is 1100.

    2. Add Gauge block, then choose AirMoisture feed and make sure that the maximum value is 100.

    3. Add Stream block, then choose Temperature feed

    4. Add Text block, then choose Alerts feed

    Click 'Save'.

    Step 3: The Code

    The code is attached and is well documented, for easy use.

    Open the code in Arduino IDE, make sure that the board you are working on is indeed the right board.

    When you are running the serial monitor, make sure you are on 115200baud.

    Notice that there are places in the code you need to modify according to your project (such as your WiFi details).

    All is written in the documentation.

    Step 4: Push Notifications

    In order to get notified, download MQTT Push Client app, then enter the app:

    1. Add a server. Most of the details are already inserted, just add the details of your username and password.

    2. Add the topics (feed in Adafruit IO) you are interested to see. In our project - add in the topic UserName/feeds/alerts. Then click save.

    3. That's about it! If you are interested in receiving more information about the sensors, add new topic and fill in UserName/feeds/*topic*, where topic is the feed you want to see. You can also choose which notification you want to receive, if any at all :)

    You can use those topics just to catch-up from time to time on the measurements of the plant.