The name of this project is Smart Sprinkler: Water Saving Irrigation Controller for Residential Use.
The author uses Arduino Uno, W5500 Ethernet sheild(seeed v2), real time clock module, moisture sensor, and temperature-humidity sensor
The Smart Sprinkler is split up into a few major hardware systems. The computing system behind the device is the Arduino Uno R3, which uses the ATMega328 microcontroller as its processor. On top of the Arduino, an Ethernet shield from SeeedStudio was used to download weather data from the web. A two-pronged moisture sensor relayed soil moisture data to the Arduino for processing. In addition, a DS1307 real time clock module acted as the devices internal clock and calendar. On a higher level, the device interacts with the users computer through the Arduinos UART interface.
System Block Diagram
On a software level, the Arduino sketch is organized into a state machine. Each state is required to perform different functions and execute different methods throughout the program. The program states are as follows: Menu state, check time state, measure moisture state, and download weather data state.
Program State Diagram
For more information, please refer to the following link.