VaultEntriesAutoponics

Summary

Autoponics (github.com/JackScafidi/Autoponics) is an autonomous deep-water-culture (DWC) hydroponics system built on ROS 2 Humble, running on a Raspberry Pi CM4 with an ESP32 micro-ROS co-processor. Version 0.1 is a deliberately minimal single-plant validation platform that proves four tightly coupled subsystems before scaling: a servo-driven probe/aeration mechanical cycle, a dual-camera NDVI+RGB vision pipeline (IMX477 RGB plus NoIR V2 with blue gel, AprilTag scale calibration, HSV segmentation), closed-loop A/B nutrient dosing using explicit chemistry math rather than PID, and reactive ultrasonic water-level management with auto top-off. A YAML rule engine fuses NDVI trends, RGB visual symptoms, and sensor data into actionable diagnostic reports; a per-herb parameter library (config/plant_library.yaml) holds pH/EC/temperature/NDVI profiles for basil, mint, parsley, and rosemary. The stack includes a FastAPI + React web dashboard with WebSocket streaming, SQLite analytics, an optional HiveMQ MQTT TLS cloud bridge, and 12 active ROS 2 nodes with 22 custom message types. Four future packages (linear rail, behavior-tree orchestration, harvest manager, work station) are preserved in src/future/. License: MIT. Actively developed (pushes through April 2026). Note: the name "Autoponics" is shared with an unrelated UC student ESP32 capstone project (eScholarship) — this entry covers the GitHub ROS 2 repository.

Guiding Principles

  • Open Source — MIT license; full stack from firmware to dashboard is inspectable and forkable.
  • STEM Integration — a working fusion of robotics middleware, computer vision, chemistry, and plant science in one reproducible platform.
  • Transferable Skills — ROS 2, OpenCV, embedded micro-ROS, and dosing chemistry all transfer directly to robotics and AgTech careers.
  • Modularity — subsystem packages archived (not deleted) for reintegration; plant profiles are data-driven YAML entries.

Learning Outcomes & Transferable Skills

An advanced learner gains Coding across the full robotics stack (ROS 2 nodes, custom messages/services/actions, FastAPI/React), Electronics (ESP32 GPIO, servos, pumps, ultrasonic sensing), Water Chemistry (explicit pH-first dosing with verify-after-dose safety loops), Data Literacy (NDVI time series, diagnostic rule engines, consumption logging), and Project Management (the V0.1 scope discipline — validate subsystems before scaling — is itself a teachable methodology).

How to Replicate or Build On It

  1. Clone https://github.com/JackScafidi/Autoponics; study the workspace layout and src/future/README.md for the scaling roadmap.
  2. Set plant_type:=basil (or another profile) at launch; extend config/plant_library.yaml with NDVI thresholds from published literature.
  3. Bring up the 12 V0.1 nodes on a Pi CM4 with the documented ESP32 co-processor wiring; verify the probe/aeration cycle first.
  4. Add herbs by writing new YAML profiles; reintegrate src/future/ packages when scaling beyond one bin.

Considerations & Constraints

  • Cost: Medium — Raspberry Pi CM4, ESP32, two CSI cameras (IMX477 + NoIR V2), pH/EC probes, dosing pumps, servos, and bin hardware; probe-grade sensors dominate cost.
  • Skill Level: Advanced — requires ROS 2, Python, OpenCV, and embedded C++ comfort.
  • Space/Climate: Indoor/greenhouse DWC; single-bin V0.1 footprint suits a lab bench or classroom.
  • Tools Required: Pi CM4 + ESP32 toolchain (micro-ROS), cameras, dosing hardware; no 3D printing strictly required.
  • Ongoing Maintenance: High — calibration of probes, NDVI pipeline tuning, nutrient refills, and ROS system upkeep.
  • Access Barriers: Zero GitHub stars at verification — a young solo project with limited community support; documentation is thorough but single-authored; English only.

Prerequisites

ROS 2 fundamentals; basic hydroponics; electronics assembly.

Primary Source

https://github.com/JackScafidi/Autoponics

Built with LogoFlowershow