S16: SmartDoorLock
Contents
- 1 Grading Criteria
- 2 SmartDoorLock
- 3 Abstract
- 4 Objectives & Introduction
- 5 Schedule
- 6 Parts List & Cost
- 7 Design & Implementation
- 8 Electric Door Strike
- 9 Bluetooth Module
- 10 PIR Motion Sensor Module
- 11 LCD Module
- 12 Door lock and unlock
- 13 Automatic door opening by motion sensing
- 14 Temperature display at the entrance
- 15 Software Design
- 16 Algorithm used
Grading Criteria
- How well is Software & Hardware Design described?
- How well can this report be used to reproduce this project?
- Code Quality
- Overall Report Quality:
- Software Block Diagrams
- Hardware Block Diagrams
- Schematic Quality
- Quality of technical challenges and solutions adopted.
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.
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 |
|
In progress |
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
- 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.
//Put strike-flow diagram here
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.
//Put sensor-flow diagram here
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!!
//Put lcd flow diagram here
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.
//Put image of code snippet here
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.
//Image of code snippet
Temperature Display on LCD
- 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
Implementation
This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.
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
Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?
Project Video
Upload a video of your project and post the link here.
Project Source Code
References
Acknowledgement
Any acknowledgement that you may wish to provide can be included here.
References Used
List any references used in project.
Appendix
You can list the references you used.