2025Embedded IoT and access control

IoT access control firmware

Technologies

Node.jsMQTTSQLiteQR / NFC

Features

Complete device configuration through parameterized QR codes

Overview

Development of application firmware for IoT devices dedicated to access control and time tracking in operational environments. Devices identify users through QR code and NFC and can continue working under limited connectivity through a local whitelist, keeping response times fast without constant dependency on external services. The firmware architecture is configurable and adaptable, so device behavior can be updated without manual code intervention.

Role

Designed and developed application software for IoT devices, with ownership over user identification logic, access/time-tracking flows, central-system communication, embedded optimization, and remote configuration.

What I did

Built firmware logic for QR code and NFC badge identification, handling both access control and time tracking. Implemented a local whitelist so devices can validate access even without continuous backend connectivity. Developed device-to-backend communication over MQTT using an event-driven model. Integrated SQLite to store device configuration, user whitelist data, and operational state. Designed parameterized QR-code configuration to update device parameters and operating modes. Implemented configurable operating modes: door opening, time tracking, and hybrid scenarios.

Problems solved

Reducing continuous polling

The system initially relied on constant backend polling, causing wasted resources and unnecessary traffic. I restructured communication around an event-driven MQTT model, dramatically reducing device load and improving overall efficiency.

Resource management on embedded devices

The devices had to operate reliably with limited resources. I introduced optimizations in process handling and local storage management to reduce memory and CPU usage while keeping badge reads fast.

Operational stability

To guarantee reliability in real-world environments, I implemented monitoring and automatic service restart mechanisms for error or anomaly conditions, reducing the need for manual intervention.