DIY Irrigation System with ESP8266 and Shelly: A Winter Project

Hey everyone! I wanted to share my winter project, a DIY irrigation system using ESP8266 and Shelly devices. I’ve always been frustrated with my Hunter HC-12 controller and HA integration, so I decided to take matters into my own hands. :smiley:

The Background:
I’ve been trying to get my Hunter HC-12 to work seamlessly with HA, but the HC-12 just wouldn’t play nice. It would start its own program and ignore the HA timer settings, which was really frustrating. After some time, I decided to move on and explore other options.

The Solution:
I stumbled upon Shelly devices and thought they’d be perfect for this project. I combined them with an ESP8266, a KY-040 rotary encoder, and an OLED display. The result? A fully functional irrigation controller that can be used even without HA! :wink:

Hardware Setup:
Here’s what I used:

  • 1x ESP8266 (D1 Mini) for the brain
  • 1x KY-040 Rotary Encoder for zone selection
  • 1x 1.3" OLED Display for feedback
  • 1x 24VAC Transformer
  • 7x Shelly 1 Plus for valve control

The Process:
I programmed the ESP8266 using AI tools like ChatGPT and Google AI Studio. The goal was to make zone selection and timing as user-friendly as possible. The system allows me to select a zone, set a timer, and start the irrigation with just a few button presses. It even has a screensaver to prevent OLED burn-in!

Shelly Integration:
Shelly devices made this project a breeze. I just had to input their IP addresses into the code, and they handled the rest. The system sends a simple command to each Shelly to activate the corresponding valve. :clap:

Testing and Results:
While I can’t test the full system yet (it’s winter!), the dry runs have been perfect. The ESP8266 communicates flawlessly with the Shelly devices, and the user interface is responsive and easy to navigate. I’m really excited to see how it performs once spring arrives!

Looking for Feedback:
If anyone has suggestions or improvements, I’d love to hear them! I’m especially curious if others have tried similar projects or if there are better ways to handle the automation. Also, if you’re interested in the Arduino code, feel free to reach out—I’d be happy to share it!

Best regards,
P.