This is a Rust-based firmware project for an automatic watering system using an ESP32 microcontroller. It uses an RTC (DS3231) and an I2C LCD display (HD44780) to display current date/time and control a water pump on schedule or via a button press.
- Scheduled automatic watering (e.g., every day at 10:00)
- Manual watering via button
- LCD display showing date, time, and pump state
- Watchdog timer to reset on software hang
- Built with esp-idf-hal and esp-idf-svc
- Rust toolchain for ESP32 installed via
espup
just
command runnerespflash
for flashing firmware to ESP32
-
Install Rust and ESP32 support:
curl -sSL https://github.com/esp-rs/espup/releases/latest/download/espup-init.sh | bash source $HOME/export-esp.sh
-
Install required tools:
cargo install just espflash
just
just build
just build flash PORT='/dev/ttyUSBXX'