Deliverables and Key Performance Indicatiors - kobeylake/ares-red GitHub Wiki
Key Performance Indicators
KPI | Description | Success Metric |
---|---|---|
1. Accurate Environmental Monitoring | Thingy:52 node collects temperature, humidity, and air quality (eCO₂) readings. | Sensor values are broadcast via BLE advertising with <5% packet loss and within valid calibration ranges. |
2. Reliable BLE Communication | BLE advertising used from Thingy:52 to base node, and from base to actuator node, ensures timely transmission. | Data received every 1–2 seconds with <200ms processing delay on receiving node. |
3. Distance Sensing for Presence Detection | Base node uses an ultrasonic sensor to detect proximity events or door state. | >90% detection accuracy with filtered values to avoid noise; stable results under test conditions. |
4. Intelligent Vent Control | Base node calculates servo angle using sensor fusion (CO₂ + temperature), sends angle over BLE to actuator node. | Actuator node receives BLE packet and updates vent servo within 2 seconds; smooth transitions with optional manual override. |
5. Real-Time MQTT Publishing | Actuator node forwards JSON packets received via BLE to Windows PC, which publishes to Mosquitto broker. | JSON packets printed over UART and published to MQTT within 1 second of BLE receipt. |
6. Visualisation and Logging | Grafana dashboard on third PC visualises environmental data via MQTT subscription. | Dashboard reflects live data with ≤2s delay; matches JSON packets; supports cross-verification with CLI. |
7. Command Line Interface (CLI) | Shell interface on Ubuntu PC allows control over sensor fusion mode, ultrasonic toggling, and manual servo settings. | Commands execute instantly (<100ms latency); override modes visibly impact system behaviour. |
8. BLE Payload Parsing and JSON Formatting | Custom 12-byte BLE advertising packets parsed and converted to JSON on actuator node. | JSON output is correctly structured and printed over UART every cycle with 100% parsing reliability. |
Technology Used
Sensors:
- Thingy:52
- Temperature
- Humidity
- Air Quality (eCO₂)
- Base Node (nRF52840DK)
- Ultrasonic sensor (for proximity/distance sensing)
- Soil moisture sensor (not implemented in final design)
Actuators:
- Servo motors powered via Adafruit CRICKIT
- Angle set using sensor fusion or CLI override
- M5 Core2 originally considered as a display but replaced by PC dashboard
Wireless Communication:
- Bluetooth Low Energy (BLE)
- Thingy:52 → Base Node (advertising)
- Base Node → Actuator Node (advertising)
Processing & Logic:
- Sensor fusion algorithm based on CO₂ + temperature to determine vent angle
- CLI interface to toggle ultrasonic sensing, override sensor values, and switch manual/auto modes
- Manual control of angle and data spoofing for testing
Data Forwarding & Dashboard:
- UART over USB: Base and actuator nodes connected to separate PCs
- Mosquitto MQTT Broker: Hosted on Windows PC connected to actuator node
- Grafana Dashboard: Real-time visualisation of JSON-formatted packets from actuator node