Engineering · Final Year Project · 2020

Brain-Controlled
Home Automation (BCI)

Type
Final Year Engineering Project
Duration
Jan – May 2020
University
JNTU, Computer Science
Stack
MATLAB · Arduino · NeuroSky EEG · SQL
Overview

Controlling appliances with your mind - hands-free, signal-driven automation

This final year project developed a Brain-Computer Interface (BCI) system that enables users to control smart home appliances entirely through brainwave signals - specifically EEG (electroencephalography) data captured via the NeuroSky MindWave headset and processed in real-time using MATLAB.

The motivation was accessibility: designing a control system that requires no physical interaction, enabling hands-free operation for people with limited motor function. The system responds to deliberate eye blink patterns detected in the raw EEG stream, translating them into appliance on/off commands via Bluetooth and Arduino-controlled relay modules.

System Architecture

End-to-end signal pipeline

🧠
EEG Signal
NeuroSky MindWave headset captures raw brainwave data
📊
Signal Processing
MATLAB filters noise, detects eye-blink patterns in real-time
📡
Wireless Transmission
Bluetooth HC-05 module sends commands to Arduino
💡
Appliance Control
Arduino triggers relay modules to switch devices on/off
Technical Implementation

How the system works

The NeuroSky headset transmits raw EEG data over Bluetooth to a laptop running a custom MATLAB signal processing pipeline. The pipeline applies bandpass filtering to isolate relevant frequency bands (delta, theta, alpha) and uses amplitude thresholding to distinguish deliberate eye blinks from background neural noise.

Detected blink patterns (single, double, sustained) are mapped to specific appliance commands - lights, fans, and power sockets - and transmitted via the HC-05 Bluetooth module to an Arduino Uno, which drives 5V relay modules connected to real AC appliances in a mock home setup.

SQL was used to log command history, session timestamps, and device state - enabling basic usage analytics and session review for usability testing during the project evaluation phase.

"Combining signal processing with hardware control and structured data logging gave this project real-world complexity - it wasn't just a prototype, it was a working system that bridged neuroscience, embedded engineering, and software."

Challenges & Solutions

Key engineering problems solved

Signal noise: Raw EEG is extremely noisy. Solved with multi-stage bandpass filtering and adaptive threshold calibration per user session.
Latency: Bluetooth transmission introduced delay. Optimised MATLAB processing loop to achieve sub-200ms end-to-end response time.
False positives: Involuntary blinks triggered false commands. Implemented minimum blink duration threshold and inter-command cooldown period.
Hardware reliability: Arduino relay module chatter on AC loads. Added debounce logic in C++ firmware and snubber circuits on relay outputs.
User calibration: EEG baselines vary significantly between users. Built a 30-second calibration routine to personalise thresholds per session.
Cross-platform comms: MATLAB to Arduino serial protocol design - defined a lightweight binary command frame for reliable message delivery.
Outcomes
<200ms
End-to-end latency
92%
Command accuracy
4
Appliances Controlled
3
Blink patterns mapped
Tech Stack
MATLAB Arduino (C++) NeuroSky EEG Bluetooth HC-05 SQL (SQLite) Signal Processing Relay Control Embedded Systems
Full Documentation

Go beyond the overview. Explore the complete project documentation, process, and supporting files on GitHub.

Explore the Full Project →