System of a Daun

An independent proof that I can design and deliver complete monitoring systems.

System of a Daun is a plant-intelligence platform built to demonstrate a reusable systems approach in a domain separate from my professional work.

I designed and built the complete platform independently: embedded sensing, Android edge imaging, device provisioning, authenticated ingestion, time-series storage, operational workflows, web interfaces, and deployment infrastructure.

Role
Sole designer and engineer
Scope
Embedded · Android · Backend · Data · Web · Infrastructure
Status
Operational prototype

Why this project exists

Much of the systems work I do professionally is proprietary and cannot be shown publicly. I built System of a Daun to demonstrate that the underlying capability is not tied to one company, one machine type, or one existing product.

The domain is different, but the systems problem is familiar: identify the physical entities, determine what should be observed, define device and data relationships, and build the software required to operate the resulting system.

This project is evidence that I can reproduce that capability independently from first principles.

Live plant line

The feed below is pulled live from the production tenant status API.

System of a Daun
Plant intelligence platform · Live feed
Awaiting status
Loading plant line…
Physical deployment of an Android monitor and soil probe
A retired Android phone acts as a managed edge-imaging device beside an independently reporting soil probe.

What I built

Physical observation

ESP32 probes collect calibrated soil-moisture readings on a fixed sample interval.

Repurposed Android phones act as edge monitoring devices: one-time pairing, scheduled plant photography, optional illuminance readings, heartbeats, and remote capture commands.

Multiple probes and phones can be provisioned and assigned without custom development.

Operational context

The platform models tenants, areas, plants, devices, assignments, observations, images, and assessments.

Devices are managed independently from the plants they monitor, allowing hardware to be replaced, reassigned, or scoped to one or several plants.

The system tracks device contact separately from the latest reading timestamp. The operator UI primarily surfaces freshness as contact-based ONLINE, STALE, or OFFLINE state.

Historical record

Telemetry and image observations are stored over time and presented together at the plant level.

The web application exposes current state, historical trends, photographic history, and scheduled day-over-day or week-over-week comparisons.

Bounded interpretation

Optional visual assessments compare plant images over defined intervals and describe observable changes.

They are framed as observational comparisons rather than diagnoses and are withheld when suitable comparison frames are unavailable.

Turning the physical domain into an operating model

The core task was not collecting a moisture value. It was defining the relationships required to operate a physical monitoring system repeatedly.

Tenant
└── Area
    ├── Plants
    │   ├── Telemetry
    │   ├── Photo frames
    │   ├── Assessments
    │   └── Device assignments
    └── Devices
        ├── Probe
        ├── Phone monitor
        └── Area sensor

A plant is the monitored asset, but it does not own its hardware.

Devices are provisioned independently and assigned by scope. A probe may monitor one or several plants. A phone may capture several plants in an area. An area sensor may provide context without belonging to a specific plant.

This separation keeps device lifecycle, asset lifecycle, and observation history distinct.

The complete operating loop

ESP32 probe

  1. 1.authenticated telemetry
  2. 2.validation and tenant resolution
  3. 3.time-series storage
  4. 4.current state and historical trends

Android monitor

  1. 1.scheduled image and light capture
  2. 2.authenticated upload
  3. 3.media processing on the platform
  4. 4.photo history and visual comparison

Web application

  1. 1.device provisioning and plant assignment
  2. 2.plant and area management
  3. 3.telemetry, image, and assessment workflows

Each device authenticates using a provisioned credential. Tenant ownership and scope are derived from that credential rather than trusted from client-submitted identifiers.

Numeric observations use a flexible metric model, allowing additional sensor types to enter the same ingestion path without requiring a new storage schema for every metric.

Designed for physical-system behavior

Intermittent connectivity

Devices report last contact (last_seen_at) separately from the latest reading timestamp. In the shipping UI, freshness is mainly expressed as contact-based ONLINE, STALE, or OFFLINE labels.

Independent lifecycles

Plants, probes, and phones are separate managed entities. Hardware can be replaced or reassigned without destroying the monitored asset’s history.

Repeatable provisioning

Phones pair through temporary codes. Probes receive scoped credentials. Devices are assigned through the web application rather than hard-coded to a single deployment.

Variable visual evidence

Image comparisons operate across changing light, framing, obstruction, and plant movement. Assessments remain observational and may decline to produce a result when the evidence is insufficient.

What this project demonstrates

System of a Daun was not primarily a learning exercise. It was an independent proof of execution.

I selected a domain unrelated to the proprietary systems I work on professionally and applied the same broad capability: define the domain, design the operating model, connect physical devices to software, and deliver the complete system as a coherent product.

  • End-to-end ownership across firmware, Android, backend, data, web, and deployment
  • A reusable provisioning and device-assignment model
  • A unified history of telemetry, imagery, device state, and assessments
  • Operational handling for stale, missing, and uninitialized data
  • A system that can accept multiple devices and monitored assets without bespoke development
  • Product and interface decisions grounded in how the physical system is operated

Guided views

Plant line overview in the System of a Daun dashboard
Areas and plants present current observation state together, with device connectivity and freshness visible at a glance.
Plant detail with illuminance and soil moisture trends
Current measurements remain connected to device identity, reading time, history, and contact-based freshness state.
Plant photo framing configuration
Per-plant crop framing is configured in the dashboard so scheduled captures become a consistent observation record.
Day-over-day observational assessment
Day-over-day and week-over-week comparisons are generated from defined time windows and remain visibly separated from raw evidence.

System architecture

Edge sensing

ESP32 DevKit V1 with a capacitive soil-moisture sensor, calibration support, fixed-interval scheduled readings, and provisioned device credentials.

Edge imaging

Native Android application for one-time pairing, scheduled photography, optional illuminance capture, heartbeat reporting, and remote preview/capture commands. Plant and crop assignment is handled in the dashboard.

Platform services

FastAPI, Alembic, and TimescaleDB for authenticated ingestion, tenant isolation, device management, time-series observations, media metadata, and assessment scheduling.

Operator application

Next.js interface for areas, plants, devices, historical telemetry, image frames, assessments, and configuration.

Deployment

Docker Compose and nginx.

Stack: ESP32 / PlatformIO · Android · FastAPI · Alembic · TimescaleDB · Next.js · Docker Compose · nginx

The implementation is maintained privately. This case study focuses on system design, operating behavior, and complete execution.