Smart Door Bell

Overview

The goal of this project is to develop a "Smart Door Bell" that allows users to unlock their door using a fingerprint sensor. In addition, the doorbell will be able to capture an image of anybody that rings the doorbell to provide security so that the user can later review the images for suspicious activity if needed.

Protocols

  • Camera Module: I2C for configuration, SPI for capture image (on preset the settings using I2C on an Arduino so I only used SPI on STM32)

  • Fingerprint Sensor: UART

  • HC-05: UART

Goals

  • Interface fingerprint sensor with STM32

    • Be able to add/remove fingerprints to fingerprint DB

    • Verify if fingerprint is stored in fingerprint DB (user is authenticated to unlock the house)

  • Interface camera with STM32

    • Whenever pushbutton (doorbell) is pressed, capture an image and store bytes in array

  • Interface HC-05 with STM32

    • Receive commands to add/remove fingerprints from fingerprint DB

    • Transmit image data to reciever Raspberry Pi

Stretch Goals

  • Stretch Goal 1: Create script on that listens to COM Port and can automatically process hex bytes of image to JPEG format

    • Create expect script that expects "0xFF 0xD9" (termination byte sequence for JPEG format) and triggers an hex to JPEG script

    • Hex to JPEG script: Use grep and awk to find last occurance of "0xFF 0xD8" (start byte sequence of JPEG) and all bytes that follow until "0xFF 0xD9" (termination sequence). Pipe those bytes through xxd -r -p and store command output into "date".jpeg where date is the date-time string at the moment of processing.

    • Use gsutil cp to upload image to cloud bucket to user to view

  • Stretch Goal 2: Expand expect script on Raspberry Pi to turn

    • Expand expect script to expect string "Found" which is what we send if the Fingerprint is found

    • Turn Servo Motor if found (call back function from expect script)

  • Stretch Goal 3:

    • Design minimal PCB for board

      • Since the Discovery Board has a lot of components that are not required for this project, it would make sense to manufacture a minimal PCB that could interface with the HC-05, Fingerprint Sensor, and Camera Module

      • Fabricate/Assemble PCB

        • Order PCB from OSHParks (Note: Need to review PCB and check loading capacitance on crystal before ordering)

        • Hand Assembly?

Team

Venkat Krishnan

Block Diagram


Demo Video