AI video doorbell and mobile app designed to help home-workers avoid interruptions during video calls. Sends instant visitor notifications through the app, recognises familiar faces using computer vision, and enables seamless interaction with visitors – all without leaving their desk.
Coursework project for A Level Computer Science awarded 97%.
📄 Download Project Report (PDF)
📹 Watch Demo Video
- Hardware: Raspberry Pi 4, Monk Makes Speaker Module, Raspberry Pi Camera Module V1
- Frontend: Python Kivy (mobile app UI)
- Backend: Flask (API + server logic), OpenCV (image processing), face_recognition (deep learning-based face recognition), MQTT (real-time notifications)
- Database: MySQL (visitor logs, face data, audio recordings, user accounts) with SHA3-256 hashing for secure credential storage
For my A Level Computer Science coursework, I wanted to create a project that was genuinely useful. During COVID, a family friend working from home mentioned that her video calls were frequently interrupted by visitors ringing the doorbell, making it difficult to stay focused and professional. I decided to solve this problem with an intelligent, AI-powered solution. Over several months, I designed, developed, tested, and refined a fully functional system SmartBell.
SmartBell is an AI-driven video doorbell and mobile app. At its core, a Raspberry Pi equipped with a camera, speaker, and button captures an image of any visitor. If the visitor is familiar, the system recognises them using deep learning-based face recognition via the Python face_recognition library.
The mobile app allows the user to interact with the doorbell in real-time. When the doorbell is rung, a notification appears on the user’s phone with a photo of the visitor and, where it is known, their name. The user can then play a pre-recorded audio message through the doorbell’s speaker without leaving their desk, for example, “Could you leave the shopping by the porch?”. If the user is away, the app logs all visits, storing images and timestamps for easy review.
- Button press triggers Raspberry Pi camera to capture visitor image
- Detects faces using OpenCV Haar cascades
- Sends notification via MQTT to the user’s phone with visitor image and name (if recognised)
- Computes face encodings for each detected face using
face_recognition - Compares encodings against a stored database of known visitors
- Identifies visitors in real-time and updates database with new faces for improved accuracy
- Notifies user when the doorbell is rung and displays visitor image and name (if available)
- Plays pre-recorded messages remotely via Raspberry Pi speaker using MQTT
- Logs visits when the user is unavailable
- Stores visitor images and timestamps in a secure MySQL database
- Sends notifications even when the user is away from home
- Provides an easy-to-review history of all visits