S16: SmartDoorLock
Contents
SmartDoorLock
Abstract
The frustration when you forget or lose the keys to your door is a common experience. SmartDoorLock provides a mechanism to lock and unlock your door with just your mobile phone, using bluetooth communication. The door also opens automatically when it senses an object approaching from the inside. An additional feature in the project is that a display near the entrance informs you about the weather outside, and gives friendly suggestions accordingly.
Objectives & Introduction
- Communication between Bluetooth Module and Android app
- Locking and unlocking electric strike via Bluetooth with password protection.
- Detecting motion using PIR motion sensor.
- Automatic unlocking the door based on motion detection.
- Reading temperature and displaying suggestions.
Team Members
- Arpita Ramanath
- Sravani Aitha
Responsibilties
- Circuit design for Electric door strike
- Establishing Bluetooth communication between SJone Board and Android app using Uart.
- Building power circuits for PIR motion sensor, LCD and Electric door strike
- Interfacing LCD module with SJone Board using Uart.
- Overall Circuit Integration and Testing.
Weekly Schedule
Week# | Date | Task | Status |
---|---|---|---|
1 | 4/26/2016 |
|
Done |
2 | 4/26/2016 |
|
Done |
3 | 5/03/2016 |
|
Done |
4 | 5/06/2016 |
|
Done |
5 | 5/10/2016 |
|
Done |
6 | 5/13/2016 |
|
Done |
7 | 5/17/2016 |
|
Done |
8 | 5/20/2016 |
|
Done |
Parts List & Cost
Parts | Cost* |
---|---|
PIR Motion sensor |
$13.87 |
Electric Door Strike |
$24.22 |
LCD |
$10.99 |
BTBee Pro Bluetooth Xbee wireless Module |
$14.99 |
SJ-One Board |
$80 x 2 |
Design & Implementation
System Schematic
SmartDoorLock system is designed in a way that the door can be locked and unlocked using an Android app. It also detects motion when someone approaches the door towards the exit. Moreover, an LCD module is fitted near the exit which displays the outside temperature and provides friendly suggestions to the person exiting the door. It has the following components integrated.
- Electric Door Strike: To unlock the door when user sends unlock signal through blurtooth.
- Bluetooth Module: To establish a connection from Android app to SJone Board
- Android app: Application to communicate with the SJone board over Bluetooth.
- PIR Motion sensor: Detects motion if any person is approaching the exit. Based on sensor readings, SJone board sends a signal to electric door strike to unlock the Door.
- Temperature Sensor: SJone board receives outside temperature using temperature sensor and passes it to the LCD to display.
- LCD: To display outside temperature and suggestions to the person exiting the door.
Hardware Design
Electric Door Strike
The door strike being used in this project is of the type "fail-secure". This means that when there is no power being supplied to the strike, it remains locked. When a DC power supply of 12V is given, the strike unlocks, which can be detected by the characteristic clicking sound it makes.
The 3.3V supplied by our SJOne board is not sufficient for operation of the strike, which needs 12V. Hence, we designed a power supply circuit to supply the strike with 12V. The circuit consists of a 12V supply, a 15V to 12V voltage regulator and a couple of capacitors.
// Put circuit diagram, diagram of voltage regulator here
Bluetooth Module
The bluetooth module we are using is the BTBee Pro Xbee Wireless Bluetooth Module from Adafruit. The pins of this module are perfectly compatible with the pins of the SJOne board such that it can be directly fixed on to the board (as shown in the diagram).
// Put image of bluetooth on SJOne board here.
The bluetooth module is interfaced with SJOne using UART2. When a connection is established, it is possible to send and receive messages via bluetooth between the Android App and SJOne board. This section does not require any other hardware.
PIR Motion Sensor Module
The PIR Motion Sensor from Adafruit allows us to sense motion, usually used to detect whether a human has moved in or out of the sensor's range. The sensitivity of this particular sensor is upto 20 feet. It needs a DC power supply of 5V. The circuit we are using to supply 5V to the sensor is similar to the 12V power supply circuit that was designed for the electric door strike. The sensor is interfaced with the SJOne board. The output wire of the sensor is connected to a GPIO pin (made as input) on the SJOne board.
When motion is detected, a logic "1" is sent via the output wire of the sensor to the board. When there is no motion detected, the SJOne board receives a logic "0".
LCD Module
A 20x4 LCD(CM 204-1) module along with a LCD driver by SJValley Engineering is used in the project. The LCD is provided a 5V DC power supply from the same circuit that provides power supply to the motion sensor. The connections between the SJOne board and LCD module are as shown in the diagram below.
// Put LCD and SJOne board connection diagram here.
The LCD module is interfaced with the SJOne board using UART. We have to make sure to set the baud rate correctly before any communication.
System Operation
The basic operation of the system can be divided into 3 parts.
Door lock and unlock
Insert non-formatted text here
- A connection between the bluetooth module and android app is established using UART2.
- A message "LOCK" or "OPEN" is sent from the app to the bluetooth module.
- If the bluetooth module receives a message "OPEN", it reverts to the app asking for a password.
- Now a password is sent from the app to the bluetooth module.
- The password is verified.
- If the password is a match, the SJOne board closes a switch between the electric door strike and 12V power supply.
- The door is unlocked.
- If the password do not match, an error message is sent to the app.
- If a message "LOCK" is received by the bluetooth module, The SJOne board cuts off power supply to the strike using the switch.
- The door is locked.
Automatic door opening by motion sensing
- The PIR motion sensor is connected to the SJOne board, which in turn is connected to the strike via a switch.
- When motion is detected on the inside of the door, the sensor send a logic "1" to the SJOne board.
- The SJOne board closes the switch between the electric strike and power supply.
- The door opens.
- When the sensor stops detecting motion, it sends a logic "0" to the board.
- The switch between the strike and power supply is opened.
- The door closes.
Temperature display at the entrance
- SJOne board has temperature sensors embedded in it.
- The outside temperature values are sensed, and sent to a LCD module.
- The LCD module is interfaced to the SJOne board using UART.
- The temperature values are displayed, along with appropriate and friendly suggestions to a person leaving the house!!
Software Design
Door Opening and closing
Algorithm used
- Initialize bluetooth using bt_int().
- Use Uart2.gets()and Uart2.putstr() to receive and transmit characters respectively.
- Compare received string to "OPEN" or "LOCK".
- If password received, compare received password string with saved password.
- Make a GPIO pin on SJOne board as output.
- If "OPEN" is received, send 1 from GPIO pin to close the switch.
- Else if "LOCK" is received, send 0 from GPIO pin to open the switch.
Automatic Door Opening by motion sensing
Algorithm used
- Make a GPIO pin on SJOne board as input.
- Receive sensor output values on that pin.
- If pin reads "1", send "1" from the other GPIO pin to close the switch.
- Else if pin reads "0", send "0" from the other GPIO pin to open the switch.
Temperature Display on LCD
Algorithm used
- Initilize LCD using lcd_init().
- Set baud rate using uart_init().
- Get temperature sensor values.
- Display text on LCD using uart_putline().
//Image of code snippet
Testing & Technical Challenges
Issue #1
The electric door strike wasn't working. The piece was faulty, but it took us a while to realize that. Before figuring it out, a considerable amount of time was wasted under the impression that there was something wrong with our circuit.
Issue #2
The most basic circuit connection between any two hardware parts operating at two different voltage levels is a common ground. We forgot to connect a common ground between the SJOne board and the motion sensor and struggled for quite a bit before realizing it.
Issue #3
Insufficient amperage to the electric strike. Though the voltage we were supplying to the electric strike was 12V, it was not receiving enough current (200 mA) due to our incorrect selection of resistor values. As a result, the strike made a weak buzzing sound but didn't unlock.
Conclusion
This project was so much fun to work on. We also learnt a lot about interfacing sensors, LCD modules and bluetooth modules to embedded platforms. We faced our portion of challenges, and overcame them. Mainly, it sparked a greater interest in us about embedded development. Overall it was a great experience working on it.
Project Video
Upload a video of your project and post the link here.
Project Source Code
References
Acknowledgement
We would like to thank Professor Preet Kang for his constant guidance, support, encouragement and words of wisdom.
References Used
- Adafruit website: https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor/overview
- https://www.sparkfun.com/datasheets/Components/LM7805.pdf
- Electric door strike connections: https://www.youtube.com/watch?v=K9fCKt6-b7o
Appendix
You can list the references you used.