Introduction: ESP8266 WiFi Plant Irrigation System

In this tutorial we will show how to build plant irrigation system with ESP8266 Arduino library and EasyIoT server (Windows or Raspberry). With web interface we can control water pump and soil humidity remotely. Now you can go on holiday and irrigate plant with your smart phone.

Main function are:

  • automatic/manual irrigation mode
  • remotely controlled in WEB interface (computer or smart phone)
  • measure soil moisture with history chart option
  • soil humidity threshold settings

See more tutorials at

Also see improved version:

Step 1: Materials

  • Custom ESP Arduino board with ESP-01 interface ( or standard Arduino board + relay modue)
  • ESP8266 module
  • water pump
  • soil moisture sensor module
  • regulator module 0-30V
  • 12V power supply

See buying guide for details.

Step 2: Build

In our case we use custom Arduino board with ESP-01 interface. It uses Atmega328 at 8Mhz. Good thing about this board is that 3.3V regulator, ESP-01 interface and MOSFET are on board. It's very suitable for ESP8266 projects. Datasheet for custom board can be found here. Custom board is produced in EU, so shipping time is faster than for orders in China.

Be sure to use correct firmware version for ESP8266 module. See ESP8266 firmware flashing tutorial for details.

Custom Arduino board is suitable for EasyIoT ESP8266 Arduino library. The only thing I'm missing is reset pin connected to one Arduino DO pin. This can be solved with one short wire between digital pin 2 and reset pin on ESP8266. Board has by default solder jumpers for serial connection between ESP8266 and Arduino HW ports. In my case I want to debug program so I keep solder jumpers unconnected and added two wires to DO pins (10 and 11) for software serial. Voltage power for board is between 5 and 12V.

Humidity sensor is standard soil moisture module. We will use module analog output connected to A0 on Arduino board. Power supply for module is 3.3V connected with 3.3V power supply on custom board.
To control water pump we will use on board MOSFET transistor. Simply connect one motor wire to custom board and other motor wire to 4.5V power supply. You can use step down adjustable regulator. If you do not have custom board use relay module.

Step 3: Program

Program can be found on our GitHub. You do not need special adjustments, just set server IP, AP username and password in Esp8266EasyIoTConfig.h.

Step 4: EasyIoT Server Configuration

You need EasyIoT server (windows or Raspberry pi version). You can download EasyIoT server here. After installation in WEB user interface just add irrigation system under ESP8266 EasyIoT drivers. See tutorial how to add module. If you done everything correctly you should see something like this. Name modules like on picture below.

Home Automation

Participated in the
Home Automation