Embedded Systems

IoT Security

Security that reacts before you do. Event-driven defense with real-time cloud intelligence and sub-300ms latency.

Cloud Latency

300ms

Achieved via WebSocket optimization, down from 2s standard HTTP polling. Feels instantaneous.

3 Layers
Biometric / PIN / App
Active
3-Strike Lockdown
ESP8266 (NodeMCU)
C++
Blynk IoT
WebSockets
Hardware Design

The Problem

Conventional smart locks rely on slow polling loops, single-point authentication, and delayed cloud updates. This makes them vulnerable to brute-force attempts and delays critical alerts.

The Solution

This system secures entry points with 3 independent layers (Biometric, PIN, App) and uses an event-driven architecture to react to threats instantly, not periodically.

Key Capabilities

3-Layer Auth

Start with Biometric verification, fallback to encrypted PIN, or use Mobile App override.

Sub-300ms Latency

WebSocket-based communication eliminates HTTP polling lag for real-time control.

Autonomous Lockdown

3-strike intrusion detection instantly disables access and alerts the owner.

Power Efficient

Interrupt-driven wake-up allows the system to sleep deeply until a physical event occurs.

Self-Healing

Watchdog timers and automatic recovery routines prevent system hangs or crashes.

Remote Control

Full system state sync with the Blynk IoT app for remote monitoring and unlock.

Event-Driven Defense.

Standard polling loops waste power and are too slow for security. We built a fully **Interrupt-Driven Architecture**.

Physical tampering or fingerprint detection triggers a hardware interrupt within microseconds. The ESP8266 wakes from deep sleep, transitions to an authentication state, and pushes a WebSocket alert immediately.

Hardware Layer

ESP8266 + Biometric/Motion Sensors.

Firmware Layer

C++ State Machine + Watchdog Timers.

Cloud Layer

Blynk IoT Platform + WebSocket Real-time Sync.

isr_handler.cpp
// Interrupt Service Routine
void IRAM_ATTR detectFinger() {
if (systemState == IDLE) {
// Immediate State Transition
systemState = AUTH_WAIT;
wakeUpTime = millis();

// Wake ESP8266 from Light Sleep
wifi_fpm_do_wakeup();

// Push Websocket Alert
Blynk.virtualWrite(V1, "Motion Detected");
}
}

// Hardware Attach
attachInterrupt(digitalPinToInterrupt(D2), detectFinger, RISING);
Back to HomePart of the 2024 Portfolio