Summary
Smart helmets have become one of the most popular Arduino projects because they combine multiple sensors, wireless communication, and automation into a practical safety application. Instead of acting as a conventional helmet, a smart helmet can verify whether the rider is wearing it, detect alcohol consumption, and communicate with the motorcycle before allowing the engine to start. This project demonstrates how two Arduino boards work together to create a basic smart helmet system. One Arduino is mounted inside the helmet to monitor the rider, while the second Arduino is installed on the motorcycle to control the ignition using a relay. The two boards communicate wirelessly using RF modules, allowing the vehicle to respond instantly to the helmet's safety status. By the end of this project, you'll understand how multiple Arduino modules interact to create an embedded safety system while gaining practical experience with sensors, RF communication, relay control, and LCD interfacing.

How the Smart Helmet Works
The project consists of two independent circuits.
Helmet Unit (Transmitter)
The helmet contains an Arduino Uno connected to:
- MQ-3 Alcohol Sensor
- IR Sensor for helmet detection
- Optional Eye Blink Sensor
- RF Transmitter Module
- Buzzer
- Status LED
This Arduino continuously checks whether:
- The rider is wearing the helmet.
- Alcohol has been detected.
- The rider appears drowsy (optional).
The Arduino then sends a simple status message through the RF transmitter.
Motorcycle Unit (Receiver)
The motorcycle contains another Arduino Uno connected to:
- RF Receiver Module
- Relay Module
- 16x2 LCD Display with I2C
- Status LEDs
- Buzzer
The receiver continuously waits for the wireless message from the helmet.
If every safety condition is satisfied, the relay activates and allows the ignition circuit to operate. If any unsafe condition is detected, the relay remains OFF.

Components and Supplies
Components Required
Helmet Unit
- Arduino Uno Board
- MQ-3 Alcohol Sensor
- IR Sensor
- Eye Blink Sensor (Optional)
- RF Transmitter Module
- Buzzer
- LED
- Breadboard
- Jumper Wires
- Battery Pack
Motorcycle Unit
- Arduino Uno Board
- RF Receiver Module
- 16x2 LCD Display with I2C
- Relay Module
- LEDs
- Buzzer
- Breadboard
- Jumper Wires
Circuit Connections
Helmet Unit
MQ-3 Alcohol Sensor
- VCC → 5V
- GND → GND
- Analog Output → A0
Helmet IR Sensor
- VCC → 5V
- GND → GND
- OUT → Digital Pin 2
Eye Blink Sensor (Optional)
- OUT → Digital Pin 3
RF Transmitter Module
- DATA → Digital Pin 12
Buzzer
- Positive → Digital Pin 8
Status LED
- Positive → Digital Pin 7
Motorcycle Unit
RF Receiver Module
- DATA → Digital Pin 11
Relay Module
- IN → Digital Pin 7
LCD Display
- SDA → SDA
- SCL → SCL
Green LED
- Digital Pin 5
Red LED
- Digital Pin 6
Buzzer
- Digital Pin 8
Assembling the Helmet Unit
Start by fixing the Arduino inside the helmet using double-sided tape or by placing it inside a compact enclosure.
Next, position the IR sensor inside the helmet so it faces the rider's forehead. The sensor should only detect an object when the helmet is being worn.
Mount the MQ-3 alcohol sensor near the front opening of the helmet. This location allows it to detect alcohol vapour from the rider's breath without blocking airflow.
Install the RF transmitter close to the Arduino and keep its antenna away from metal objects to improve wireless range.
Finally, mount the buzzer and status LED where they remain clearly visible and audible during testing.
Building the Motorcycle Unit
Mount the second Arduino on a breadboard or inside a project enclosure.
Connect the RF receiver module and attach the LCD display using the I2C interface.
Next, connect the relay module that will simulate the motorcycle ignition. During testing, it is recommended to connect the relay to an LED or a small DC motor instead of an actual motorcycle.
Finally, connect the green LED, red LED, and buzzer to provide visual and audible feedback whenever the system changes state.
Programming Logic
Since the project uses two Arduino boards, two separate sketches are required.
Here’s the GitHub link to the required code: Click Here
Helmet Arduino Logic
The transmitter Arduino continuously reads all connected sensors.
The overall logic is straightforward:
- Read the helmet detection sensor.
- Read the MQ-3 alcohol sensor.
- Read the eye-blink sensor (if used).
- Compare the sensor values with predefined thresholds.
- Generate a status message.
- Transmit the message using the RF module.
- Repeat continuously.
The transmitted status can be simplified into four conditions:
- SAFE
- NO_HELMET
- ALCOHOL
- SLEEP
Keeping communication this simple makes the receiver program much easier to manage.
Receiver Arduino Logic
The receiver Arduino continuously listens for incoming RF data.
Its logic follows this sequence:
- Wait for RF data.
- Decode the received message.
- Update the LCD display.
- Switch the relay ON or OFF.
- Update the LEDs.
- Activate the buzzer if necessary.
For example:
- If the received message is SAFE, the relay turns ON and the LCD displays "Engine Ready."
- If the received message is NO_HELMET, ALCOHOL, or SLEEP, the relay remains OFF and the LCD displays the appropriate warning message.
This simple decision-making process demonstrates how embedded systems combine sensor data with actuator control.

Testing the Project
Testing each module individually makes troubleshooting much easier.
Helmet Detection Test
Wear the helmet and verify that the IR sensor detects the rider correctly.
Remove the helmet and confirm that the transmitted status changes to NO_HELMET.
Alcohol Detection Test
Allow the MQ-3 sensor to warm up for approximately 30 seconds.
Expose it briefly to alcohol vapour.
The helmet Arduino should detect the increased sensor value and transmit an ALCOHOL status.
The receiver should:
- Display "Alcohol Detected"
- Activate the buzzer
- Keep the relay OFF
RF Communication Test
Power both Arduino boards.
Move the helmet several metres away from the receiver while observing the LCD.
If communication becomes unreliable, check the antenna connections and verify that both RF modules receive a stable 5V supply.
Relay Test
Instead of connecting the relay to a real motorcycle, connect an LED or a small DC motor.
Verify the following behaviour:
- Helmet worn + No alcohol → Relay ON
- Helmet removed → Relay OFF
- Alcohol detected → Relay OFF
- Eye-blink alert (optional) → Warning displayed
Once these conditions work correctly, the project logic is functioning as intended.
Possible Improvements
The basic smart helmet can easily be expanded with additional features.
Some useful upgrades include:
- ESP32 Development Board for Wi-Fi connectivity
- GPS tracking
- GSM emergency alerts
- MPU6050 accident detection
- Mobile app notifications
- Cloud-based monitoring
- Voice alerts
- Rechargeable Li-ion battery system
These additions can transform the project from a simple prototype into a more advanced IoT-based rider safety system.
Final Thoughts
This smart helmet project demonstrates how Arduino can combine sensing, wireless communication, and automation to address a real-world safety challenge. Although the system is built using relatively simple hardware, it introduces several important embedded systems concepts, including analog sensing, RF communication, relay control, multi-controller systems, and real-time decision-making.
For anyone exploring a smart helmet project in India, this build serves as an excellent intermediate-level Arduino project that goes beyond basic LED blinking and sensor interfacing. Once the core system is working reliably, it can be extended with GPS, IoT connectivity, cloud dashboards, accident detection, and mobile notifications to create a much more capable rider safety solution.






