Summary
A doorbell is one of the most common electronic devices found in homes, but with a microcontroller like Arduino, it can become much more than a simple push-button circuit. By integrating sensors, buzzers, and programmable logic, you can build a smart doorbell that not only alerts occupants when someone is at the door but can also be expanded with features such as visitor detection, wireless notifications, cameras, and IoT connectivity.
This project is an excellent introduction to Arduino because it combines digital input handling, output control, debouncing techniques, and simple embedded programming into a practical home automation project. It also serves as the foundation for more advanced smart home systems.
In this tutorial, we'll build a Smart Doorbell using an Arduino Uno, a push button, an active buzzer, and an LED status indicator. The design can later be upgraded with PIR sensors, cameras, Wi-Fi modules, or mobile notifications.

How Does a Smart Doorbell Work?
The system continuously monitors the state of a push button installed near the entrance.
When the button is pressed:
- The Arduino detects the button press.
- The buzzer produces a doorbell sound.
- An LED lights up to indicate that the doorbell has been activated.
Once the button is released, the buzzer stops and the LED turns OFF.

Although this project uses a simple push button, the same logic can later be extended to include:
- Motion detection
- Face recognition
- Smartphone alerts
- Visitor logging
- Smart locks
Components and Supplies
Components Required
Electronics
- Arduino Uno Board
- Push Button Switch
- Active Buzzer
- LED
- 220Ω Resistor
- 10kΩ Resistor
- Breadboard
- Jumper Wires
- USB Cable
Optional Components
- PIR Motion Sensor
- ESP32 Development Board
- OLED Display
- Relay Module
- RFID Module
- Camera Module
- Wi-Fi Module
- GSM Module
Understanding the Components
Arduino Uno
The Arduino Uno is the controller of the project.
It continuously monitors the push button and controls the buzzer and LED whenever the button is pressed.
Push Button
The push button acts as the doorbell switch.
When pressed, it completes the circuit and sends a HIGH signal to one of the Arduino's digital input pins.
A pull-down resistor is used to ensure the input remains LOW when the button is not pressed.
Active Buzzer
An active buzzer contains an internal oscillator.
Unlike a passive buzzer, it only requires a HIGH signal from the Arduino to generate sound, making it ideal for beginner projects.
LED
The LED provides a visual indication whenever the doorbell is activated.
It can also be used for debugging during testing.
Circuit Connections

Push Button Connections
- Connect one terminal of the push button to the 5V pin on the Arduino.
- Connect the opposite terminal of the push button to Digital Pin 2 on the Arduino.
- Connect one end of a 10kΩ resistor to Digital Pin 2.
- Connect the other end of the 10kΩ resistor to the GND pin on the Arduino.
The resistor acts as a pull-down resistor, ensuring that the input remains LOW when the button is not pressed.
LED Connections
- Connect the anode (positive leg) of the LED to one end of a 220Ω resistor.
- Connect the other end of the resistor to Digital Pin 8 on the Arduino.
- Connect the cathode (negative leg) of the LED to the GND pin on the Arduino.
Buzzer Connections
- Connect the positive terminal of the active buzzer to Digital Pin 9 on the Arduino.
- Connect the negative terminal of the buzzer to the GND pin on the Arduino.
Arduino Power
- Connect the Arduino to your computer using a USB cable for programming.
- Alternatively, power the board using a regulated 7–12V DC adapter.
Building the Project
Step 1: Assemble the Breadboard
Place the Arduino Uno next to the breadboard.
Arrange the push button across the center gap of the breadboard so that each pair of terminals sits on opposite sides.
Step 2: Connect the Push Button
Wire the push button according to the circuit connections.
Ensure that the 10kΩ pull-down resistor is connected correctly.
An incorrect resistor connection is one of the most common causes of unreliable button readings.
Step 3: Connect the LED
Install the LED and its current-limiting resistor.
Check the LED polarity before powering the circuit.
The longer leg is the anode, while the shorter leg is the cathode.
Step 4: Connect the Buzzer
Wire the active buzzer to Digital Pin 9 and GND.
If using a passive buzzer instead, the programming logic will need to use the tone() function.
Step 5: Verify All Connections
Before powering the Arduino:
- Check every jumper wire.
- Verify resistor values.
- Confirm LED polarity.
- Ensure the button is correctly positioned.
- Make sure there are no loose connections.
Arduino Code
Upload the following sketch to your Arduino Uno.
// Smart Doorbell Using Arduino
const int buttonPin = 2;
const int ledPin = 8;
const int buzzerPin = 9;
int buttonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
buttonState = digitalRead(buttonPin);
if(buttonState == HIGH){
digitalWrite(ledPin, HIGH);
digitalWrite(buzzerPin, HIGH);
Serial.println("Doorbell Pressed");
}
else{
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
}
delay(50);
}
How the Code Works
The Arduino continuously checks the status of the push button connected to Digital Pin 2.
If the button is pressed:
- The LED is switched ON.
- The buzzer is activated.
- A message is displayed in the Serial Monitor.
When the button is released:
- The LED switches OFF.
- The buzzer stops.
A short delay of 50 milliseconds is included to reduce switch bouncing and improve reliability.
Testing the Project
After uploading the code, verify that the system behaves correctly.
Button Not Pressed
Expected Result:
- LED remains OFF.
- Buzzer remains silent.
Button Pressed
Expected Result:
- LED turns ON immediately.
- Buzzer produces sound.
- Serial Monitor displays:
Doorbell Pressed
Repeated Button Presses
Expected Result:
The doorbell should respond consistently without false triggering or delayed responses.
Common Problems
Button Does Not Respond
Check:
- Push button orientation
- Digital Pin 2 connection
- Pull-down resistor wiring
- Loose jumper wires
Buzzer Does Not Produce Sound
Verify:
- Buzzer polarity
- Correct Arduino pin
- Active buzzer is being used
- Wiring continuity
LED Does Not Illuminate
Check:
- LED polarity
- 220Ω resistor
- Pin assignment
- Breadboard connections
Serial Monitor Shows Random Triggering
This usually indicates a floating input.
Ensure the 10kΩ pull-down resistor is connected correctly between Pin 2 and GND.
Doorbell Triggers Multiple Times
Mechanical push buttons naturally bounce when pressed.
If multiple triggers occur:
- Increase the software debounce delay.
- Implement a proper debounce routine using millis().
- Use the Arduino Bounce2 library for improved performance.
Improving the Smart Doorbell
Once the basic project is working, several enhancements can make it much more useful.
Motion Detection
Add a PIR Motion Sensor to detect visitors before they press the doorbell.
The Arduino can automatically illuminate an entrance light or activate a camera.
Wireless Notifications
Replace the Arduino Uno with an ESP32 Development Board.
This allows the system to send notifications to a smartphone whenever the doorbell is pressed.
Visitor Display
Connect a 16×2 LCD or OLED display to show messages such as:
- Welcome
- Please Wait
- Door Open
- Visitor Detected
Smart Lock Integration
A relay module can be used to control an electronic door lock.
Combined with RFID or keypad authentication, this creates a basic smart access control system.
Camera Integration
A camera module can automatically capture an image whenever the button is pressed.
This forms the basis of a smart video doorbell system.
Cloud Logging
Using an ESP32, every doorbell event can be logged to an IoT platform.
The system can record:
- Time of visitor arrival
- Number of button presses
- Visitor history
- Remote alerts
Final Thoughts
A Smart Doorbell is one of the most practical Arduino home automation projects because it introduces digital input handling, output control, and event-driven programming through a familiar real-world application. While the basic version uses only a push button, buzzer, and LED, the same architecture can be expanded into a fully connected smart home device with motion sensing, wireless notifications, access control, and cloud connectivity.
For anyone looking to build a smart doorbell project in India, this tutorial provides a solid foundation in Arduino programming and hardware interfacing while leaving plenty of room for future upgrades as your embedded systems skills grow.







