Skip to content
Projects
Platform ComponentImplemented2025

Real-Time Environmental Sensor Node

Built a FreeRTOS-based sensor node that separates sensing, connectivity, and telemetry tasks for predictable real-time behavior.

EmbeddedRTOSIoTFirmware

Core stack

ESP32-S3C++FreeRTOSMQTTBLE

Case Snapshot

Role

Product-minded implementation: data model, interface behavior, integration path, and maintainable implementation artifacts.

Scope

I designed a FreeRTOS architecture with dedicated tasks for sensing, connectivity, and telemetry, using queue-based communication between execution domains. This makes the node a reusable building block for future BLE, MQTT, and...

Constraints

The node is designed to publish through an authenticated gateway path instead of acting like a directly exposed network service. Task separation and queue-based communication keep sensor sampling stable under concurrent load and...

Result

Separated sensing, connectivity and telemetry into FreeRTOS tasks with queue-based communication.

Architecture

System design flow

Node

An ESP32-S3 acquires environmental data and runs separate RTOS tasks for sensing, connectivity, and telemetry handling.

Edge

An edge receiver or gateway ingests telemetry so the device does not need to expose a complex external surface itself.

Cloud

Normalized measurements can be forwarded to dashboards, storage, or AI pipelines after they leave the node through the gateway path.

Architecture Views

Concise system views summarize the project boundary, deployment path, and data flow without adding implementation claims.

System overview diagram

Node

Deployment diagram

Edge

Data flow diagram

Cloud

Technical Decisions

  • FreeRTOS task isolation for sensing, connectivity, and telemetry
  • Queue-based communication between execution domains
  • Predictable sampling behavior under concurrent system load
  • Reusable embedded pattern for future TinyML and BLE extensions

Challenges

  • Simple Arduino-style loops become fragile once sensor timing, wireless communication, and user interaction need to happen concurrently.
  • The node is designed to publish through an authenticated gateway path instead of acting like a directly exposed network service.
  • Task separation and queue-based communication keep sensor sampling stable under concurrent load and reduce the risk of timing-related faults.

Lessons Learned

  • Separated sensing, connectivity and telemetry into FreeRTOS tasks with queue-based communication.
  • Improved timing consistency for telemetry acquisition
  • Kept a reusable task structure for later BLE and TinyML extensions

Future Improvements

  • Keep architecture views aligned with the implementation.
  • Keep documentation concise: align README, architecture decisions, and screenshots.

Tech Stack

ESP32-S3C++FreeRTOSMQTTBLE

Related Project

Follow the adjacent case study to see how this project connects with the rest of the work.

Containerized BLE Edge Gateway

Built a containerized BLE gateway on embedded Linux to bridge sensor data into a reusable edge integration layer.