DavidBertet/RainMaker

RainMaker - ESP32 based sprinkler controller

โ˜… 2Forks 0CGitHub โ†—Compare

Project website โ†—

README

RainMaker: ESP32 Sprinkler Controller

Version License Status

A modern, open-source sprinkler controller for ESP32. Easily manage irrigation zones and schedules with a sleek web interface and robust backend.

๐ŸŒŸ Features

  • Define irrigation zones and custom watering programs
  • WiFi connection flow for easy setup
  • OTA (Over-the-Air) updates for future maintenance
  • CLI tool for easy installation and updates
  • Fully mobile-friendly interface for use on any device

Try the web sample to see what it is capable of!

Web Sample

โš™๏ธ Requirements

  • ESP32 development board
  • PlatformIO (for backend build)
  • Node.js & npm (for frontend build)

๐Ÿš€ Quick Start

  1. Clone the repository

    git clone https://github.com/davidbertet/RainMaker.git
    cd RainMaker
  2. Install on your ESP32

    ./install.sh

    And follow the instructions

    CLI Sample

  3. Update over the air

    ./install.sh --ota <IP>

๐Ÿ“ CLI Usage

Usage: ./install.sh [OPTIONS]

Options:
  -o, --ota <IP>              Set OTA IP address for over-the-air updates
  -p, --upload-password <PWD> Set upload password for authentication
  -y, --yes                   Auto-confirm all prompts (non-interactive mode)
  -f, --frontend-only         Build/deploy frontend only
  -b, --backend-only          Build/deploy backend only
  -h, --help                  Show this help message

๐Ÿ› ๏ธ Tech Stack

  • Lightweight Svelte frontend for fast performance
  • ESP-IDF backend with static file serving
  • Websocket interface for real-time updates

๐Ÿ“ Folder Architecture

RainMaker/
โ”œโ”€โ”€ frontend/    # Svelte web application
โ”œโ”€โ”€ backend/     # ESP-IDF backend code
โ”œโ”€โ”€ cli/         # CLI tool for install/update
โ””โ”€โ”€ assets/      # Images and media for docs

๐Ÿ“š Documentation & Support

๐Ÿ“ License

This project is licensed under the MIT License.

Contributors

DavidBertet

Issues