2  Capstone Project 1: Smart Environment Monitor

capstone
projects

One of three capstone project briefs in this series – along with Capstone Project 2: Smart Agriculture System and Capstone Project 3: Fleet Tracking System. This part opens with the shared capstone approach – turning a project idea into a reviewable claim, protecting a thin sensor-to-decision slice, and treating interfaces as evidence – which applies to all three briefs, then works through the Smart Environment Monitor brief itself.

2.1 Within This Series

Direction Chapter Topic
Current Capstone Project 1: Smart Environment Monitor Indoor air-quality and comfort monitoring
Next Capstone Project 2: Smart Agriculture System Soil sensing and automated watering
Also in this series Capstone Project 3: Fleet Tracking System GPS, cellular, and geofencing

2.2 In 60 Seconds

Capstone projects turn the course material into working IoT systems. A strong project starts with requirements, acceptance criteria, and a realistic bill of materials before hardware is purchased. The main risk is integration: sensors, firmware, networking, storage, security, dashboards, and power assumptions may work separately but fail when combined.

  • Choose a project scope that fits the time, budget, team size, and experience level.
  • Freeze must-have requirements early so the project can reach a polished demo.
  • Treat power, connectivity, security, and data storage as design constraints from day one.
  • Reserve meaningful time for end-to-end integration testing.
  • Document architecture, wiring, code, tests, trade-offs, and known limitations.

Phoebe the physics guide

Phoebe’s Why

This chapter’s power budget is already careful – it sums active, sleep, and sensor current into \(I_{avg}=0.92\) mA and divides 3000 mAh by it to get 136 days, 19x past the 7-day target. That division is charge accounting, and it is correct as far as it goes: milliamp-hours really do add and divide that way. What it cannot see is voltage. Two AA cells in series are not a fixed 3.0 V tap; alkaline cells have real internal resistance that climbs sharply as they empty, and the same 160 mA Wi-Fi transmit current this chapter names can sag the terminal voltage far more at the end of the pack’s life than at the start – exactly when the “19x margin” headline suggests there is nothing left to worry about.

The Derivation

Energy from charge and pack voltage:

\[E = \frac{Q_0}{1000}\times V_{nom}\]

Terminal voltage under load, pack internal resistance \(R_{int,pack}\):

\[V_{term}=V_{oc}-I\,R_{int,pack}\]

Charge remaining after self-discharge over service time \(t\) at rate \(r\):

\[Q(t)=Q_0(1-r)^{t}\]

A capacitive sensing element’s own RC settling time, distinct from firmware-level active windows:

\[\tau = R\,C\]

Worked Numbers: This Chapter’s Own 2xAA Environment Monitor

  • Nameplate energy (this chapter’s own 2xAA, 3000 mAh, \(V_{nom}=3.0\) V for two 1.5 V cells in series): \(E=3000/1000\times3.0=9.00\) Wh.
  • Voltage sag on this chapter’s own 160 mA Wi-Fi TX current: catalog-typical alkaline \(R_{int}\approx0.20\,\Omega\)/cell fresh (pack \(=0.40\,\Omega\)) gives only 64.0 mV sag – negligible. Catalog-typical end-of-life \(R_{int}\approx1.50\,\Omega\)/cell (pack \(=3.00\,\Omega\)) gives 0.480 V sag, and end-of-life alkaline open-circuit voltage sits near 0.95 V/cell (1.90 V pack), so terminal voltage during that same 160 mA burst falls to \(1.90-0.48=1.42\) V – below what most 3.3 V-rail regulators can hold up, a brownout the naive “136 days remaining” coulomb count cannot see coming.
  • Self-discharge is the good news here: alkaline cells self-discharge at only about 2.5%/year (unlike a LiPo’s roughly 2%/month), so over this chapter’s own 136-day run the loss is \(136/365\times2.5\%=0.932\%\) – genuinely negligible, the opposite finding from a LiPo-powered design.
  • Where the sensor’s own current line item comes from: a capacitive-type environmental sensor’s active window exists partly to let its internal oscillator settle; a catalog-typical sensing capacitance (\(C\approx100\) pF) through a catalog-typical loop resistance (\(R\approx2\) k\(\Omega\)) gives \(\tau=RC=200\) ns, so \(5\tau=1.00\,\mu\)s – the raw capacitive transduction settles almost a million times faster than this chapter’s stated 200 ms active window, meaning that 200 ms line item is mostly paying for bus wake-up and firmware overhead, not the sensor physics itself.

2.3 Start With One Useful Decision

Before choosing sensors or cloud services, name the decision the finished project should improve. A room monitor might help someone decide when to ventilate. An irrigation prototype might help a grower decide when a zone needs water. A fleet tracker might help an operator decide whether a vehicle is inside a safe route. If that decision is not clear, every feature feels equally important and the project becomes hard to finish.

Then build the smallest path that can prove the decision: sensing, firmware, network hop, storage, dashboard, and one failure response. The first strong demo is not the one with the most parts. It is the one where a reviewer can follow the evidence from the physical event to the screen and understand what would happen if power, connectivity, calibration, or credentials failed.

Use the briefs below as starting shapes for that proof. Keep the parts that support the decision, adapt the parts that do not fit your budget or hardware, and record the trade-off so the final report reads like engineering evidence rather than a shopping list.

2.4 Learning Objectives

After completing a capstone project, you will be able to:

  • Architect a complete IoT system from requirements gathering through deployment and validation.
  • Integrate sensors, actuators, firmware, cloud services, and dashboards across the full stack.
  • Apply security practices at device, network, application, and data layers.
  • Analyse sensor data and build visualisations that support actionable decisions.
  • Produce professional documentation including architecture diagrams, BOMs, wiring notes, and test reports.
  • Optimise designs within real constraints such as power budget, component cost, connectivity range, and schedule.

2.5 How To Use These Project Briefs

Use each project as a structured brief, not as a rigid recipe. Keep the must-have requirements, adapt the hardware to what is available, and document any trade-offs you make.

Chapter Roadmap

Use the chapter as a capstone planning checklist:

  1. First turn each project idea into a reviewable claim with artifacts, acceptance criteria, and a thin sensor-to-decision slice.
  2. Then compare three project families: environment monitoring, smart agriculture, and fleet tracking.
  3. Next follow the requirements, hardware, architecture, milestone, power, security, and data-storage evidence in each brief.
  4. Finally package the report, source code, video, hardware documentation, and presentation trade-offs so the demo is reproducible.

Checkpoints recap the release decisions; quizzes, calculators, and the claim-to-evidence table provide the practice evidence.

2.6 Project Briefs Become Reviewable Claims

A capstone brief is useful only when it can be turned into a reviewable engineering claim. The three project families below are not shopping lists. They are worked examples of how to turn a problem domain into requirements, evidence, and a demo path. A smart environment monitor claims it can make indoor conditions visible. A smart agriculture system claims it can close the loop between soil evidence and watering. A fleet tracker claims it can preserve location evidence across power, cellular, and backend constraints.

Start by naming the user decision the system supports. Facility staff might decide when to ventilate a room. A grower might decide when a zone needs water. A fleet operator might decide whether a vehicle is inside a geofence or whether a route is stale. Once the decision is clear, each requirement needs a measured artifact: calibration note, payload sample, MQTT topic, database row, dashboard state, alert record, power measurement, security assumption, and demo script.

The briefs deliberately expose trade-offs. ESP32 and Raspberry Pi Pico W boards reduce cost but force careful firmware and power choices. BME280, SCD40, PMS5003, GPS modules, LoRa radios, and LTE-M or NB-IoT modems each change wiring, library maturity, current draw, and field risk. MQTT QoS 1, TLS, local buffering, InfluxDB, Supabase, Grafana, and OTA update decisions are project evidence, not decorative architecture terms.

Brief Element Review Artifact Decision It Supports Risk If Missing
Requirement Acceptance criterion, owner, pass/fail test, limit Whether the project is ready to build The team optimizes features instead of proof
Bill of materials Part number, substitute, interface, cost, lead time Whether procurement matches schedule and budget The build stalls on unavailable or incompatible hardware
Data path Payload sample, topic, schema, database query, dashboard screenshot Whether sensor evidence reaches the reviewer intact A polished dashboard hides stale or malformed data
Demo script Scenario, expected state, failure case, fallback action Whether the final presentation proves the claim The demo depends on luck and live improvisation
Each project brief should be converted into artifacts that let a reviewer trace the claim from requirement to live behavior.

2.7 Keep The Thin Slice Alive

The practical route is to protect one thin vertical slice before expanding scope. For an environment monitor, that means one sensor reading, one firmware loop, one transport path, one stored row, one dashboard value, and one alert rule. For agriculture, it means one soil reading, one actuator decision, one safety interlock, and one watering record. For fleet tracking, it means one GPS fix, one cellular publish, one backend insert, one geofence calculation, and one visible route state.

Write the project ledger while building. Each row should include requirement ID, component choice, firmware or dashboard commit, test method, artifact path, result, decision, and retest trigger. A useful artifact might be a serial log, packet capture, MQTT broker trace, InfluxDB query, Supabase row, Grafana screenshot, current measurement, watchdog reset note, or wiring photo. Do not wait for the final report to organize this evidence. The report should summarize the ledger, not reconstruct it from memory.

Use the tables in each brief as starting constraints, then make the constraints local. A target such as “> 99% data transmission reliability” needs a run length, environment, retry policy, and definition of success. A battery-life estimate needs active, idle, sleep, sensor warm-up, radio transmit, reconnect, and failure-recovery states. A security claim needs device identity, credential storage, transport protection, authorization boundary, and recovery behavior after rotation or reset.

Plan the demo as an engineering test. Show the happy path, but also show stale data, reconnect, denied action, low battery, bad calibration, actuator lockout, or geofence boundary behavior when that failure mode matters. If a feature cannot be demonstrated, leave an artifact: test log, query, screenshot, captured packet, or short video. A reviewer should be able to tell which claims were measured, which claims were only designed, and which claims are outside scope.

2.8 Integration Evidence Has Interfaces

Under the hood, capstone projects fail at interfaces. Sensor accuracy can be real while units are wrong in the payload. Firmware can publish correctly while the broker topic violates the dashboard query. A database can store rows while timestamps use device-local time instead of UTC. An alert can fire during a demo while the stale-data path is undefined. A geofence can work in one map projection while the backend stores another coordinate assumption.

Treat every interface as a contract with evidence. Device-to-firmware contracts need pinout, bus speed, calibration, units, timing, error code, and warm-up behavior. Firmware-to-network contracts need topic naming, payload schema, QoS, retry behavior, local buffer limit, and duplicate handling. Network-to-cloud contracts need identity, authorization, TLS or DTLS posture where applicable, idempotency, schema version, and retention. Cloud-to-dashboard contracts need freshness labels, missing-data states, alert owner, and permission behavior.

Evidence also needs grain. A project can record one average latency, but reviewers need to know whether the latency was per packet, per batch, per geofence event, per watering cycle, or per dashboard refresh. Power evidence should separate sensor warm-up, MCU active state, radio transmit, radio receive, sleep, and fault recovery. Security evidence should separate authentication, authorization, encryption in transit, credential rotation, and operational recovery.

Fault injection makes those contracts visible. Unplug a sensor, restart the broker, send a duplicate message, deny a dashboard permission, force a GPS timeout, or run the actuator with an empty tank flag. The point is not to make the prototype production-grade; it is to prove the team knows where the interface can fail and what evidence shows the failure was handled honestly.

The deeper test is whether the project could be repeated by another team member after a change. A new sensor library, modem firmware, cellular plan, antenna placement, dashboard query, retention policy, or enclosure can invalidate earlier evidence. Record the retest trigger next to the evidence. A capstone then becomes more than a final demo: it becomes a maintainable engineering handoff that explains why the system worked and what would need to be checked before trusting it again.

2.9 How It Works: Turn a Project Brief Into Evidence

  1. Name the claim. State the user, environment, decision, and measurable outcome before choosing extra features.
  2. Protect the thin slice. Build one sensor-to-decision path that crosses hardware, firmware, network, storage, dashboard, and demo script.
  3. Attach artifacts. Store the measurement, payload sample, query, screenshot, power note, and security assumption next to the requirement they support.
  4. Test the boundary. Exercise reconnect, stale data, actuator lockout, low battery, denied permission, bad calibration, or geofence edge behavior when it can change the claim.
  5. Package the handoff. Leave a reviewer with the claim, evidence path, result, remaining risk, and retest trigger.

SammyCheckpoint: Capstone Evidence

You now know:

  • A project brief becomes stronger when every requirement has an artifact, owner, pass/fail test, and limit.
  • The thin slice must connect one sensor reading, one firmware loop, one network path, one stored row, one dashboard value, and one failure response.
  • The final report should summarize the ledger rather than reconstruct calibration notes, payload samples, queries, screenshots, power measurements, and security assumptions from memory.

2.10 Deep Dive: A Capstone Is an Integration Project

A capstone project is not a collection of separate labs. It is a complete path from requirement to measured behavior: sensor input, firmware timing, network delivery, storage, security, dashboard display, alert handling, power budget, enclosure, and documentation. The hard part is making those pieces agree under realistic conditions.

Five-step sensor-to-dashboard journey from raw sensor reading through MCU formatting, radio and gateway, cloud path, and dashboard update.
Figure 2.1: A capstone demo should prove the whole sensor-to-dashboard path, not only the device or the screen in isolation.

Start small enough to finish. A reliable sensor-to-dashboard path with clear acceptance criteria is stronger than an ambitious feature list that never reaches integration. The project brief should state what must work, what can be dropped, and what measurement proves the build is ready for demonstration. For example, “show a live CO2 reading on a Grafana panel within 60 seconds of measurement” is testable. “Build an air-quality platform” is not testable until it is decomposed into sensor choice, sampling interval, transport, storage, alerting, and display behavior.

The first useful milestone is a thin vertical slice: one real sensor, one firmware loop, one network path, one storage record, and one visible dashboard value. That slice exposes cross-layer assumptions early. A BME280 or SCD40 may read correctly on the bench, but the project is not integrated until the timestamp, MQTT topic, payload schema, database row, dashboard freshness label, and alert rule all agree. A tiny local reading becomes a larger, delayed, and failure-prone system event once headers, retries, brokers, storage, and browser rendering are included.

Boundary What to Freeze or Prove
Scope Freeze must-have behavior before buying hardware or writing most firmware.
Integration Test sensor, firmware, network, cloud, dashboard, and alert behavior together before adding optional features.
Demo Define what the audience will see, what data is real, and what limitations remain.

For each project, convert the brief into acceptance criteria that a team can run. A smart environment monitor might require SCD40 CO2 readings every 5 minutes, BME280 temperature and humidity on I2C, PMS5003 particulate readings over UART, MQTT publishing with QoS 1, InfluxDB or Supabase storage, Grafana or a web dashboard, and an alert within 60 seconds when CO2 exceeds the threshold.

Plan integration time as real work, not cleanup. Hardware may need pull-up resistors, level shifting, enclosure airflow, or sensor warm-up. Firmware may need watchdog recovery, nonvolatile configuration, timestamp handling, and OTA rollback. Network tests may reveal weak Wi-Fi, LoRaWAN duty-cycle limits, MQTT session behavior, TLS certificate problems, or duplicate messages. Dashboards may need missing-data handling and clear freshness labels.

Write each acceptance criterion as an observable run, not as a promise in the report. A useful record includes the requirement ID, firmware version or commit, hardware revision, sensor calibration note, payload sample, broker topic, database query, dashboard screenshot, measured latency, pass/fail result, and the decision that follows.

Artifact Evidence It Should Carry
Thin vertical slice One sensor, one device, one transport, one storage path, and one dashboard value.
Acceptance record Requirement ID, payload sample, broker topic, database query, dashboard proof, latency, and pass/fail result.
Bill of materials Lead time, substitute, interface, power draw, enclosure impact, cost, and library maturity.
Final packet Architecture diagram, BOM, wiring table, firmware commit, database schema, test log, power measurement, security assumptions, unresolved risks, and demo script.

Most capstone failures are cross-layer failures. A sensor may be accurate on the bench but stale in the dashboard because timestamps are wrong. A Wi-Fi node may publish in the lab but fail in the installed room because RSSI is weak. A battery estimate may look strong until sensor warm-up, regulator quiescent current, and retransmissions are included. A secure design may pass login testing but fail device recovery because credential rotation and factory reset were not planned.

Use the data path as the organizing model. At the device, verify sampling rate, calibration constants, units, monotonic timestamps, watchdog behavior, and error codes. At the radio or gateway, record RSSI or SNR, retry count, channel plan, duty-cycle limits, local buffer behavior, and whether duplicate packets are possible. At the broker and cloud service, record MQTT QoS, retained-message policy, device identity, topic authorization, schema version, idempotency key, retention window, and alert-rule owner. At the dashboard, distinguish missing data, stale data, out-of-range data, and values suppressed by permissions.

Keep a cut line. Mark optional features that can be removed without breaking the core demo, and protect the thin vertical slice until the final presentation works end to end.

2.11 Key Concepts

  • Requirements specification: A documented list of functional and non-functional requirements that must be validated before procurement or firmware development begins.
  • System architecture diagram: A visual representation of sensors, gateways, cloud services, dashboards, integration points, failure points, and security boundaries.
  • Bill of materials (BOM): A structured list of hardware components, quantities, and costs used for procurement and scope control.
  • Integration testing: End-to-end testing from sensor to dashboard, distinct from unit testing individual components.
  • Power budget: A calculation of current draw across active, sleep, sensor, and radio states compared against the battery or energy source.
  • Over-the-air (OTA) update: A mechanism for remotely updating firmware without physical access to every device.
  • Acceptance criteria: Specific measurable conditions a project must satisfy, such as delivery latency, battery life, alert timing, or data reliability.
  • Field validation: Testing under realistic environmental, RF, mechanical, and operational conditions rather than ideal bench conditions.

2.12 For Beginners: Capstone Projects

Capstone projects bring together everything you have learned to build a complete, working IoT system. Start with a small reliable version, then add complexity only when the core sensor-to-dashboard path works end to end.

2.13 Prerequisites

Before starting a capstone project, you should have completed:

  • Sensor Fundamentals and at least one sensor lab
  • Networking Fundamentals including MQTT or similar protocol
  • Cloud Computing basics or edge computing concepts
  • Security Fundamentals including device authentication
  • Basic programming skills (Python, C/C++, or JavaScript)
Knowledge Check: Project Planning Priorities

With the review model in place, the first brief keeps the system relatively contained: indoor sensing, Wi-Fi/MQTT delivery, cloud storage, and a dashboard that makes room conditions visible.

2.14 Capstone Project 1: Smart Environment Monitor

Project Overview

Domain: Environmental Monitoring / Smart Building

Difficulty: Intermediate

Duration: 4-6 weeks

Team Size: 1-2 people

2.14.1 Project Description

Design and build a comprehensive indoor environment monitoring system that tracks air quality, temperature, humidity, light levels, and noise. The system should provide real-time dashboards, historical analytics, and automated alerts when conditions exceed healthy thresholds.

2.14.2 Project Context

Indoor environment monitoring helps facility teams spot poor ventilation, comfort problems, and air-quality trends before they become persistent operational issues. Your system should turn raw sensor readings into clear dashboard signals and actionable alerts.

2.14.3 Requirements Specification

2.14.3.1 Functional Requirements

ID Requirement Priority
F1 Measure temperature (±0.5°C accuracy) Must Have
F2 Measure relative humidity (±3% accuracy) Must Have
F3 Measure CO2 levels (±50 ppm accuracy) Must Have
F4 Measure particulate matter (PM2.5) Should Have
F5 Measure ambient light (lux) Should Have
F6 Measure noise level (dB) Could Have
F7 Display real-time readings on local screen Must Have
F8 Send data to cloud every 5 minutes Must Have
F9 Send alerts when thresholds exceeded Must Have
F10 Provide historical data visualization Must Have
F11 Calculate and display air quality index Should Have
F12 Support multiple sensor nodes Could Have

2.14.3.2 Non-Functional Requirements

ID Requirement Target
NF1 Battery life (if portable) > 7 days
NF2 Data transmission reliability > 99%
NF3 Sensor reading latency < 2 seconds
NF4 System uptime > 99.5%
NF5 Data storage retention 1 year
NF6 Total hardware cost < $100

2.14.5 Architecture Design

Layer Responsibilities Typical Components
Sensor node Sample indoor environment signals and show local readings. ESP32, BME280 or SHT31, CO2 sensor, PM2.5 sensor, BH1750 light sensor, sound-level sensor, OLED display
Firmware Schedule readings, validate sensor ranges, calculate simple air-quality status, and publish telemetry. Sensor drivers, calibration constants, MQTT client, retry queue
Cloud pipeline Receive telemetry, store time-series data, and evaluate alert thresholds. MQTT broker, time-series database, alert worker
Dashboard Show current conditions, historical trends, and alert history for facility review. Grafana or web dashboard, room cards, threshold panels

Data flow:

  1. Sensors provide temperature, humidity, CO2, particulate, light, and noise readings.
  2. ESP32 validates and publishes readings over Wi-Fi using MQTT.
  3. Cloud services store time-series data and evaluate alert thresholds.
  4. Dashboard presents current status, trends, and alerts for facility staff.

2.14.6 Implementation Milestones

2.14.6.1 Week 1-2: Hardware Assembly & Basic Firmware

Deliverables:

Code Checkpoint:

// Milestone 1: Basic sensor reading
void loop() {
    float temp = readTemperature();
    float humidity = readHumidity();
    int co2 = readCO2();
    float pm25 = readPM25();

    Serial.printf("T:%.1f H:%.1f CO2:%d PM2.5:%.1f\n",
                  temp, humidity, co2, pm25);
    displayOnOLED(temp, humidity, co2, pm25);
    delay(5000);
}

2.14.6.2 Week 3-4: Connectivity & Cloud Integration

Deliverables:

MQTT Topic Structure:

environment/
  +-- {device_id}/
  |   +-- temperature
  |   +-- humidity
  |   +-- co2
  |   +-- pm25
  |   +-- light
  |   +-- status
  +-- alerts/
      +-- {device_id}
Knowledge Check: MQTT Topic Design

2.14.6.3 Week 5-6: Analytics, Alerts & Polish

Deliverables:

2.14.7 Evaluation Rubric

Criteria Points Excellent Good Needs Work
Hardware Assembly 20 Clean, reliable, documented Working but messy Intermittent issues
Sensor Accuracy 15 Within specs Close to specs Unreliable
Cloud Integration 20 Full pipeline, reliable Basic connectivity Data loss issues
Dashboard/Visualization 15 Professional, insightful Functional Basic
Alerts 10 Configurable, reliable Working Missing
Code Quality 10 Well-structured, commented Readable Spaghetti
Documentation 10 Complete, professional Adequate Minimal
Total 100

2.14.8 Extension Ideas

  • Add voice alerts via speaker
  • Implement machine learning for occupancy detection
  • Create mobile app for monitoring
  • Add multiple rooms with mesh networking
  • Integrate with building management systems

SammyCheckpoint: Environment Monitor

You now know:

  • The must-have path measures temperature, humidity, CO2, local display state, cloud data every 5 minutes, alerts, and historical visualization.
  • The power target is more than 7 days if portable, while the worked battery estimate gives large margin from a 3000mAh pack when sampling every 5 minutes.
  • The review evidence should connect sensor accuracy, MQTT topic design, InfluxDB retention/downsampling, dashboard state, and alert behavior.

Knowledge Check: Data Storage Strategy

2.15 Within This Series

Direction Chapter Topic
Current Capstone Project 1: Smart Environment Monitor Indoor air-quality and comfort monitoring
Next Capstone Project 2: Smart Agriculture System Soil sensing and automated watering
Also in this series Capstone Project 3: Fleet Tracking System GPS, cellular, and geofencing