S16: SmartDoorLock

From Embedded Systems Learning Academy
Revision as of 06:59, 24 May 2016 by Proj user15 (talk | contribs) (Automatic Door Opening by motion sensing)

Jump to: navigation, search

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
  • Deciding on the project topic, deciding on hardware requirements.
  • Planning schedule
Done
2 4/26/2016
  • Ordering the components.
  • Understanding basic working of components.
Done
3 5/03/2016
  • Interface PIR sensor with SJone Board.
  • Verify functionality of the sensor.
Done
4 5/06/2016
  • Interface LCD.
  • Gather data from temperature sensor and display messages accordingly.
Done
5 5/10/2016
  • Design circuit for Electric Door Strike.
  • Test Electric Door strike functionality.
Done
6 5/13/2016
  • Interface Bluetooth module with SJone board.
  • Interface Bluetooth module with Android app.
  • Verify communication between Bluetooth module and Android app.
Done
7 5/17/2016
  • Integrate all modules.
  • Test system functionality.
  • Update Wiki
Done
8 5/20/2016
  • Testing and fixing issues.
  • Complete Wiki Report
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

Fig 1. 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.

Fig 2. Electric Door Strike Voltage_supply 12V

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.

Fig 4. PIR Motion Sesor

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.