plant133

Public

@chl33

Download board files

Files for version 1. Pick what you came for.

Share plant133

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading 3D model… large boards can take a moment.

README

Plant133

This is a full distribution of the Plant133 plant-watering device. This device can monitor and water up to 4 plants at a time. This repository hosts the firmware, PCBA design, and OpenSCAD code for all components.

A writeup about this project is at "Plant1337: "Water 4 plants."

Features

  • Multi-Plant Support: Monitors and independently waters up to 4 plants.
  • Sensors:
    • Capacitive soil moisture sensing for each plant.
    • SHTC3 temperature and humidity sensor for environmental monitoring.
    • Reservoir water level float switch detection.
  • User Interface:
    • OLED Screen: Rotates through status screens showing IP address, moisture levels, and environment data.
    • Web Dashboard: A modern Svelte-based responsive web interface for real-time monitoring and configuration.
  • Integration:
    • MQTT: Full support for Home Assistant auto-discovery and state reporting.
  • Safety:
    • Watchdog Timer: Hardware watchdog protects against system hangs.
    • Dose Limiting: Prevents over-watering by limiting the maximum number of pump cycles per day.
    • Reservoir Check: Prevents pump damage by detecting low water levels.

Usage

Please see the instructions for how to assemble and set up a Plant133 device hardware.

Development

Prerequisites

Building and Flashing Firmware

  1. Configure Secrets: Copy secrets.ini.example to secrets.ini and set your WiFi credentials, OTA password, and MQTT details.
  2. Onetime setup for building the web interface:
    cd svelte
    npm install
    
  3. Build the Web interface and Firmware:
    # For a specific board (e.g. usb_cactus)
    pio run -e usb_cactus
    
  4. Upload Firmware:
    pio run -e usb_cactus -t upload
    

API Reference

The device exposes a JSON API for integration and control:

  • GET /api/status: Returns system status (temp, humidity, water level, MQTT connection).
  • GET /api/plants: Returns configuration for all plants.
  • GET /api/moisture: Returns current moisture readings and watering states.
  • PUT /api/plants/{id}: Update configuration for a specific plant.
  • GET /api/wifi: Get current WiFi SSID and board name.
  • GET /api/mqtt: Get MQTT configuration status.
  • POST /test/pump: Run a pump for a specific duration (JSON body: { "pumpId": 1, "duration": 1000 }).
  • POST /api/restart: Restart the device.

Software Libraries

This project is built using a custom C++ framework for ESP devices:

Hardware

PCBA

The full KiCAD project for the printed circuit board is in the KiCAD subdirectory.

3D Printed Components

Components are designed in OpenSCAD. Source code is in the scad subdirectory.

Project box

Housing for the PCBA (scad/box/).

Reservoir Hanger

Mounts the box to a water reservoir (scad/ebox_hook).

Reservoir Insert

Holds pumps and water level float (scad/reservoir_insert).

Moisture Sensor Cap

Holds the watering tube at the sensor location (scad/moisture_sensor_cap).

Watering Spike

Alternative watering method using a soil spike (scad/spike).

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.