Embedded Systems · Edge Sensing

Real-Time Drowsiness Monitor

Two Raspberry Pi nodes combining PPG and eye-aspect-ratio analysis, TCP/IP communication, and GPIO/I²C alarms.

Source code and physical prototype
Drowsiness-monitoring prototype built with Raspberry Pi boards, an LCD, and sensor wiring

Open the files

01

Problem

The project acquires and analyzes PPG and camera-based EAR signals across two Raspberry Pi nodes and integrates the resulting alarm path.

02

Architecture

A PPG sensing node and an image/EAR analysis node communicate through TCP/IP and file IPC, with GPIO/I²C driving LCD and alarm outputs.

03

Hardware and Software

  • Raspberry Pi
  • C/C++
  • OpenCV
  • TCP/IP
  • GPIO
  • I²C
  • LCD

04

Data Flow

PPG/camera sensing → per-node preprocessing → network/file IPC → fatigue-decision path → LCD/alarm output.

05

Methodology

  • Integrated PPG-server and image/EAR-processing modules
  • Documented two-node communication and state transfer
  • Documented the LCD/alarm interfaces and prototype wiring

06

Results

  • Two-node architecture implemented in the C/C++ source
  • Data and alarm paths connected through TCP/IP, GPIO, and I²C
  • LCD and sensor wiring shown in the original prototype photographs

What I worked on

  • PPG server and image/EAR processing
  • Two-node file IPC and network architecture
  • Documentation of the LCD and alarm integration path

Code and results

  • C/C++ source and architecture documentation
  • Circuit, LCD, and prototype photographs
  • TCP/IP, GPIO, and I²C data and alarm paths

Design scope and next steps

Available records: prototype, communication, and alarm paths. Follow-up measurements: latency, sensitivity, specificity, and false-alarm rate.

A two-node Raspberry Pi prototype splits PPG and camera EAR processing, exchanges results over TCP/IP, and drives GPIO/I²C alarms.

Acquisition, analysis, and alarm code

Publication first-page preview