Garden Automation - Irrigation Controller

As part of my quest to automate tasks in my garden, I wanted to create an irrigation controller that I could control through Wi-Fi.

This task turned out to be quite challenging as the requirements set out for myself were ambitious: I wanted to support both a fixed-pressure water supply from my house and variable-pressure rain barrel connected at the same time. As such, this projects is not yet completed.

I am currently in the process of Designing a custom PCB, a (mostly) finished screenshot of which is below. The PCB accepts 12V and allows an ESP32 to control 3 relays, read pulses from a hall effect flow sensor, and read pressure from a 4-20mA pressure transducer.

I'm also in the process of rewriting the firmware with what I've learned working professionally on embedded firmware. The firmware now has a defined state machine, pictured below, and is organized into manager classes which encapsulate all the application logic.

Once I have a physical prototype assembed, there will be a picture of that here. For now, here's an initial prototype that was built to validate a dispense process using one valve after the other.

The repository hosting the resources for this project can be found here.