Inspiration

Traditional greenhouse automation relies on blind timers or single-threshold environmental triggers that treat an entire crop canopy uniformly. When plants wilt from midday heat, automated systems blindly pump water—saturating the substrate, starving roots of oxygen, and inducing lethal root hypoxia and fungal blights. Furthermore, in diversified enclosed farming (e.g. growing Tomato, Spinach, and Bell Pepper side-by-side), crops have conflicting microclimate requirements. A blanket heater intended to ripen tomatoes causes adjacent spinach to bolt and turn bitter. We built AgriNode to replace blanket automation with an intelligent, closed-loop Spatial Digital Twin that phenotypes individual crops and actuates targeted hardware interventions.

What It Does

  • Overhead 1080p Continuous Vision: Tracks 60 individual crop nodes across 3 species zones using the Cloud-Optimized OpenCV Library (COOL) on AWS Graviton3.
  • Hardware-Accelerated Phenotyping: Uses Arm KleidiCV NEON SIMD acceleration for 9.8ms grow-light color normalization, YOLOv10-seg instance segmentation, and PCA skeletonization to calculate real-time Leaf Droop Angles ($\theta_{\text{droop}}$) and Leaf Area Index (LAI).
  • Agentic AI Agronomist: Powered by a fine-tuned student model (AgriNode-Agronomist-8B via Ollama & FastMCP) that diagnoses transpiration shock versus drought. When wilting occurs under high heat and saturated soil, it halts irrigation, deploys shading bio-sheets, activates ventilation fans, and commands an automated camera gantry to inspect the flagged sapling.
  • 30-Second Hardware Watchdog Failsafe: An independent edge daemon guarantees that if cloud connectivity or the LLM drops, all physical actuators immediately return to a de-energized, safe standby state within 30 seconds.

How We Built It

  • Visual Core Tier: OpenCV 5.0.0 (COOL) with Arm KleidiCV running natively on an AWS EC2 Graviton3 (c7g.large Arm64) instance, serving live multipart JPEG frames on port 8082.
  • Cloud Backend Tier: High-concurrency Go REST & WebSocket server running on an AWS EC2 t3.small instance (:8080), maintaining the in-memory 60-plant spatial digital twin and reverse-proxying the live stream to public web clients.
  • Physical Edge Tier: Physical ESP32 microcontrollers measuring capacitive soil moisture, temperature, humidity (DHT22), and substrate pH (pH-4502C), communicating via MQTT to an edge gateway running MediaMTX RTSP and Go middleware.
  • Frontend Presentation: React 19 + TanStack Start deployed on Vercel with real-time HUD overlays and dual-camera 2D translational zoom.
  • Zero-Trust Mesh: Edge and cloud instances communicate securely across a private ZeroTier network (10.206.20.0/24).

Challenges We Ran Into

  • Grow Light Spectrum Shifts: Intense purple/magenta LED grow lights corrupted colorimetric foliage analysis. We solved this with an Arm KleidiCV NEON SIMD Gray-World color constancy algorithm executing in just 9.8 ms.
  • AWS Security Group & Browser Proxying: AWS Security Groups blocked raw port 8082 from web browsers. We implemented a high-performance reverse proxy in our Go backend (:8080/api/vision/stream) routing across the ZeroTier mesh.
  • Analog pH Sensor Saturation: The analog pH sensor defaulted above the ESP32's 3.3V ADC limit; we resolved this with hardware potentiometer calibration to 2.50V and a custom multi-point linear firmware routine (cal7).

Accomplishments That We're Proud Of

  • Executing spectrum normalization 2.65x faster on AWS Graviton3 than an x86 baseline, reducing visual inference compute costs by 38.1%.
  • Achieving a verified 32% net water reduction across our greenhouse canopy by diagnosing wilting as heat stress rather than dry substrate.
  • Achieving a sub-40ms end-to-end vision inference loop while maintaining a 100% fail-safe watchdog guarantee.

What We Learned

  • Leveraging Arm KleidiCV primitives for high-throughput edge-to-cloud computer vision workloads.
  • Distilling large 70B parameter agronomic reasoning into a self-hosted, fine-tuned 8B student model running via Model Context Protocol (MCP).

What's Next for AgriNode

  • Integrating autonomous 3-axis robotic pollination gantries and multi-spectral NDVI cameras for commercial vertical farms.

Built With

  • arm-kleidicv
  • aws-ec2
  • aws-graviton
  • esp32
  • fastmcp
  • go
  • llama-3.1
  • mqtt
  • ollama
  • opencv
  • opencv-5
  • python
  • react
  • react-19
  • tanstack
  • vercel
  • yolo
  • zerotier
Share this project:

Updates

Submission history