GrainGuard:

IoT Grain Monitoring System for Independent Farmers

GrainGuard is an integrated monitoring system that enables independent farmers to proactively manage storage conditions and detect risks before loss occurs. Designed with a Washington-based farmer facing $30,000 in annual preventable losses, it was built specifically for the constraints of small-farm realities. (Sponsored by Microsoft)

Product Designer

My Role

1 Product Designer (Me)

1 Software Engineer

1 Hardware Engineer

1 Data Analyst

Team

3 Months (2025)

Duration

User Research

Data-Driven UX Design

Rapid Iteration

Design System

Key Contribution

01 Real-World Stakes

For independent farmers, grain quality depends on manual checks—labor-intensive, reactive, and often too late to prevent loss. Commercial monitoring systems exist, but they are designed for large-scale operations and priced beyond small-farm realities.

At a small-farm scale, this creates a no-win situation: absorb ongoing labor and spoilage costs, or invest in systems that are financially unrealistic.

❌ ⁨⁩⁨⁩Solution 1: Manual Check

❌ Solution 2: Large-farm system

Labor cost: $1200+ /Bin/Year

Grain lost: $1900+ /Bin/Year

System cost: $3500+ /Bin/Year

💭 ⁨⁩⁨⁩Desired Solution:

“I’m not technical—I just need something simple, low-cost, and reliable that tells me before it’s too late.”

Together with a Microsoft industry sponsor and a Washington-based farmer, we began designing a monitoring system built specifically for small farms — starting with one core question: how to turn invisible storage conditions into decisions a non-technical farmer can act on immediately?

02 Framing the Invisible Problem

Ambiguity — When Uncertainty Had No Structure

Before designing sensors or interfaces, I first clarified what the farmer's question actually meant in operational terms — because there were no defined indicators, thresholds, or criteria for action.

Translating Vague Concerns into System Structure

To define that structure, I examined how storage decisions were actually made in practice. Through interviews, contextual inquiry, and workflow mapping, I mapped the existing decision flow — how farmers assessed conditions, coordinated with workers, and chose when and how to act.

As a result, I identified that the original question — “What’s happening in my bin?” — was not a single need, but a compound request embedded in different operational concerns.

Understanding the Current Decision Flow

From “What’s happening?” to Actionable Information

15 bins to manage

Across 4 distributed locations

Limited on-site staffing

“What’s happening in my bin?”

Request for “Quantity”

Why this matters

Farmers manage multiple bins across distributed locations. Without visibility into stored volume — and how it changes over time — they cannot effectively plan transport, balance storage, or prepare for peak seasons.

What information is needed

To support these decisions, the system must answer:

  • How much grain is stored in total?

  • How much is stored per bin?

  • How is the fill level changing over time?

These signals provide both a current snapshot and a forward-looking trend.

How it translates into the system

  • LiDAR sensors measure fill level continuously.

  • The dashboard presents real-time volume and historical trends to support logistics decisions.

Request for “Quality”

Why this matters

Grain can deteriorate due to environmental conditions or pest infestation. Without early detection, spoilage spreads and leads to irreversible loss.

What information is needed

To understand storage health, we examined the primary causes of grain deterioration:

  • Temperature fluctuations

  • Excessive humidity

  • Insect infestation

To detect insect outbreaks early, CO₂ spikes were identified as a measurable indicator of rapid insect activity.

How it translates into the system

  • Sensors monitor temperature, humidity, and CO₂ levels continuously.

  • The dashboard prioritizes anomalies and pushes real-time alerts to support timely intervention.

Defining Clear Criteria for Success

The ultimate goal was not simply to measure storage conditions, but to reduce spoilage, minimize unnecessary manual inspection, and enable earlier intervention.

Once measurable signals were defined, we established performance benchmarks to verify the system could reliably support those outcomes in practice.

±5%

Fill level measurement accuracy within ±5% of calibrated volume.

≤ 120 s

Risk anomalies must be surfaced within 120 seconds of threshold breach.

≥30%

Reduce routine manual inspection frequency by ≥30% in stable operating periods.

03 Designing for Intervention

From Information to Action

My initial prototype treated alerts as informational signals embedded within the interface. During usability testing, users could see anomalies but were unclear which required immediate attention or how to respond.

This revealed a structural gap: visibility alone did not lead to action. The system had to define when intervention was required and who was responsible for resolving it.

Alert State Model — Clarifying Responsibility

To operationalize intervention, I formalized alerts as system states with clear transitions. Once triggered by validated anomaly events, an alert enters an Active state and remains so until manually resolved after inspection. This model establishes explicit ownership and prevents risk from being dismissed through passive normalization.

Making Risk Visible

Alert Center: From History List to Control Panel

The Alert Center functions as the system’s operational control panel. It consolidates active risk signals, surfaces them by priority and type, and provides contextual interpretation to support timely intervention.

Drag to compare before and after

Before
After

❌ Before:

Primarily a historical alert list grouped by type, offering visibility but limited prioritization or action support.

✅ After:

A structured control panel that prioritizes active risks, centralizes context, and supports triage and resolution tracking.

Structured Alert Types

Anomalies are organized into 5 clear categories to support quick recognition and triage.

My Tanks: Designing a Scannable Monitoring View

My Tanks serves as the primary surface for daily monitoring. Each tank card was redesigned to integrate storage status and key condition signals into a single scannable unit, while keeping detailed inspection accessible when needed.

Drag to compare before and after

Before
After

❌ Before:

Bin cards showed basic metrics only — farmers had to navigate away from the monitoring grid to understand whether a condition was actually dangerous, breaking their scanning flow.

✅ After:

Each card now surfaces condition signals directly, enabling users to identify risk without leaving the monitoring grid.

Deep Inspection Layer

Selecting a tank opens a detailed view with historical trends and anomaly context for validation and investigation.

04 Designing for Operational Clarity

System-Level View

The dashboard provides a consolidated operational view of the system. Capacity, active risk signals, temporal trends, and geographic distribution are organized into a single surface to support high-level planning before deeper inspection.

System Status

Aggregate Capacity

Primary System Action

Active Risk Summary

Geographic Distribution

Temporal Trend

Object-Level Representation

At the bin level, storage is spatial rather than statistical — farmers think in terms of physical fullness, not abstract numbers. I explored multiple visual forms before adopting a layered structure that mirrors the physical tank. Each layer corresponds to a capacity threshold, making fill level immediately interpretable.

❌ Linear Progress Bar:

👨‍🌾 Farmer feedback: “I like that there’s a fill bar - it’s helpful. But it still feels a bit abstract. It’s hard for me and my on-site staff to relate it to how full the bin actually is.”

❌ Tank Shape with Percentage:

The bin silhouette made the storage level more recognizable. However, directly visualizing the exact percentage added cognitive load without meaningfully changing how farmers made decisions.

✅ Final Version -- Segmented Tank Representation:

The bin is divided into four 25% capacity segments. Visual state changes occur only after volume crosses the midpoint of each segment, creating five stable occupancy states and preventing unnecessary visual fluctuation.

0-12.5%

12.5-37.5%

37.5-67.5%

67.5-87.5%

87.5-100%

Cross-Unit Organization

Farmers often oversee bins distributed across multiple sites. During usability testing, location emerged as the natural organizing principle, while remaining storage and device power level were consistently cited as the most relevant signals for prioritization. Every organizational decision - location grouping, sort order, signal priority - came directly from how farmers already think about their operation.

Grouping by Location

Tanks are organized by site to reflect how farms operate physically.

Sorting by Operational Signals

Tanks can be reordered by remaining storage or device power level, supporting operational prioritization across tanks.

05 Integrated System

End-to-End System Flow

GrainGuard integrates on-site sensors, local displays, and a centralized web dashboard through a cloud backend, forming a continuous monitoring loop. Real-time data flows from physical tanks to actionable interfaces, enabling farmers to interpret storage conditions, respond to anomalies, and coordinate operations across locations with clarity.

Sensor:

Measures fill level, CO₂, humidity, and temperature inside bins.

Local Display:

Shows real-time readings directly on site.

Cloud Backend:

Stores and processes sensor data for reliable access.

Website:

Visualizes trends and alerts for multi-bin management.

Building a Scalable Design Foundation

To support consistency across dashboards, tank views, and alerts, I established a design system built on reusable components introduced earlier, alongside foundational elements such as color, typography, iconography, and interaction patterns. This structure ensured visual coherence and scalability as the platform expanded.

Final Design

The final system translates sensor data, alert logic, and user actions into a cohesive operational interface. From real-time monitoring to alert handling and decision-making, each interaction is designed to support clear ownership and timely intervention—turning fragmented signals into actionable workflows.

Validation in Real-World Context

Validation was conducted in a simulated grain storage environment - a physical setup replicating real bin conditions - allowing the team to verify end-to-end data flow from sensor readings to dashboard alerts in a controlled real-world context.

Within a tight 3-month timeline spanning design, hardware integration, software engineering, and usability testing, our team delivered a fully functional prototype under Microsoft industry sponsorship. Following the demonstration, the partner farmer indicated readiness to move toward deployment, validating that the system had addressed a real operational need.

06 Reflection

What I learned

Through GrainGuard, I pushed myself to think beyond interface delivery. At every critical decision point - the alert model, the tank visualization, the sensor thresholds - I asked myself: what assumption am I making here, and how do I validate it before moving forward? That discipline didn't come naturally at first, but I actively developed it throughout this project.

It shifted how I see my own role: not just as someone who designs interfaces, but as someone who drives clarity - helping a team move forward with confidence at every stage.

If I had more resources

If I had more resources, I would expand validation beyond a single primary user. While close collaboration with one farmer enabled deep, realistic insights, it also introduced bias in defining workflows and priorities. Broader user research and usability testing across multiple farms would help validate generalizability and ensure the system scales beyond a single context.

Create a free website with Framer, the website builder loved by startups, designers and agencies.