Difference between revisions of "F15: Laser Security System"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Software Design)
(Grading Criteria)
 
(49 intermediate revisions by one other user not shown)
Line 6: Line 6:
 
[[File:CMPE146_F15_LaserSecuritySystem_secondboardinterface.jpg|600px|thumb|centre|Final hardware design for second microcontroller, bluetooth module, cellular shield and Arduino board]]
 
[[File:CMPE146_F15_LaserSecuritySystem_secondboardinterface.jpg|600px|thumb|centre|Final hardware design for second microcontroller, bluetooth module, cellular shield and Arduino board]]
  
== Abstract ==
+
== '''Abstract''' ==
  
The Laser Security System allows to maintain security in a room. For example by shining a laser across a door's entrance to a photo-resistor inside a box. When laser is block from the photo resistor we send an alerting message via bluetooth communication to a guarded slave micro controller. The slave micro controller, Arduino and cellular shield will work together to send a text message to alert the owner that there has been a breach.
+
The Laser Security System allows to maintain security in a room. For example by shining a laser across a photo-resistor inside a box. When laser is block from the photo resistor we send an alerting message via bluetooth communication to a guarded slave micro controller. The slave micro controller, Arduino and cellular shield will work together to send a text message to alert the owner that there has been a breach.
  
== Objectives & Introduction ==
+
== '''Objectives & Introduction''' ==
This security system will be using GPIO pins on the SJSUOne Board to detect if the laser has been trip. It will use TX and RX lines to connect to the RN42-XV Bluetooth Module using serial communication (UART). There two Bluetooth modules, each one is connected to a SJSUOne Board and will communicate with each other, in order to specify when we should send a text message. The Arduino module will provide power to the cellular shield and retrieve the information from the slave micro controller to send the according commands to the cellular shield.
+
This security system will be using GPIO pins on the SJ One Board to detect if the laser has been trip. This board will use TX and RX lines to connect to the RN42-XV Bluetooth Module using serial communication (UART). There are two bluetooth modules, each one is connected to a SJ One Board and will communicate with each other, in order to specify when a text message should be sent. The Arduino module will provide power to the cellular shield and retrieve the information from the slave micro controller to send the according commands to the cellular shield.
  
 
Objectives for this project:
 
Objectives for this project:
*Research and design the schematics to connect a light detection circuit to one of the SJSUOne Board and showing the output by lighting an LED
+
*Research and design the schematics to connect a light detection circuit to one of the SJ One Board and showing the output by lighting an LED
 
*Research bluetooth communication and integrate it to the light detection circuit
 
*Research bluetooth communication and integrate it to the light detection circuit
 
*Research gsm communication
 
*Research gsm communication
Line 28: Line 28:
 
Irlanda Altamirano: Hardware Implementation and Report Writer
 
Irlanda Altamirano: Hardware Implementation and Report Writer
  
== Schedule ==
+
== '''Schedule''' ==
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 46: Line 46:
 
•        Purchase all required parts
 
•        Purchase all required parts
  
|
+
|Completed:
        Project Research
+
        Project Research
  
 
|-
 
|-
Line 59: Line 59:
 
•      Test individual components
 
•      Test individual components
  
|
+
|Completed:
 
•        Schematics for the overall system is done
 
•        Schematics for the overall system is done
  
Line 73: Line 73:
 
•      Test the hardware design  
 
•      Test the hardware design  
  
|
+
|Completed:
 
 
 
•      Hardware design implementation started
 
•      Hardware design implementation started
  
Line 85: Line 84:
 
•      Test the hardware as a whole
 
•      Test the hardware as a whole
  
|
+
|Completed:
 
•      Hardware design implementation interfacing a laser, photo-resistor and SJ One Board completed
 
•      Hardware design implementation interfacing a laser, photo-resistor and SJ One Board completed
  
Line 96: Line 95:
 
•      Build Bluetooth circuit
 
•      Build Bluetooth circuit
  
|
+
|Completed:
 
•      Test the hardware design
 
•      Test the hardware design
  
Line 111: Line 110:
 
•      Test the complete hardware interface
 
•      Test the complete hardware interface
  
|
+
|Completed:
 
•      Order another board for Bluetooth communication
 
•      Order another board for Bluetooth communication
  
Line 122: Line 121:
 
•      Test Bluetooth communication with SJ One Board
 
•      Test Bluetooth communication with SJ One Board
  
|
+
|Completed:
 
•      Hardware design implementation interfacing a laser, photo-resistor, bluetooth communication and SJ One Board started
 
•      Hardware design implementation interfacing a laser, photo-resistor, bluetooth communication and SJ One Board started
  
Line 133: Line 132:
 
•      Implement text message feature with Bluetooth communication
 
•      Implement text message feature with Bluetooth communication
  
|
+
|Completed:
 
•      Debugging bluetooth communication interface
 
•      Debugging bluetooth communication interface
  
Line 146: Line 145:
 
•      Test system design
 
•      Test system design
  
|
+
|Completed:
 
•      Started implementing SMS feature with bluetooth communication
 
•      Started implementing SMS feature with bluetooth communication
  
Line 159: Line 158:
 
•      Finish project report
 
•      Finish project report
  
|
+
|Completed:
 
•      Debugging SMS/ bluetooth communication  
 
•      Debugging SMS/ bluetooth communication  
  
Line 174: Line 173:
 
•      Demo Project on Thursday, December 17, 2015
 
•      Demo Project on Thursday, December 17, 2015
  
|
+
|Completed:
 
•      Demo Project completed
 
•      Demo Project completed
  
Line 187: Line 186:
 
! scope="col"|  Item  
 
! scope="col"|  Item  
 
! scope="col"| Cost
 
! scope="col"| Cost
 +
! scope="col"|
  
 
|-
 
|-
Line 192: Line 192:
 
|SJ One Board
 
|SJ One Board
 
| $80.00
 
| $80.00
 +
|SJSU from SCE at Engr294
 
|-
 
|-
 
|-
 
|-
Line 197: Line 198:
 
|Quad-band Cellular Duck Antenna SMA
 
|Quad-band Cellular Duck Antenna SMA
 
| $7.95
 
| $7.95
 +
|https://www.sparkfun.com/products/675
 
|-
 
|-
  
Line 204: Line 206:
 
|RN42-XV Bluetooth Module - PCB Antenna
 
|RN42-XV Bluetooth Module - PCB Antenna
 
| $24.95
 
| $24.95
 +
|https://www.sparkfun.com/products/11601
 
|-
 
|-
  
Line 211: Line 214:
 
|Mini Photocell
 
|Mini Photocell
 
| $1.50
 
| $1.50
 +
|https://www.sparkfun.com/products/9088
 
|-
 
|-
  
Line 218: Line 222:
 
|SparkFun Cellular Shield - MG2639
 
|SparkFun Cellular Shield - MG2639
 
| $69.95
 
| $69.95
 +
|https://www.sparkfun.com/products/13120
 
|-
 
|-
  
Line 225: Line 230:
 
|Arduino Uno R3
 
|Arduino Uno R3
 
| $24.95
 
| $24.95
 +
|https://www.sparkfun.com/products/11021
 
|-
 
|-
  
Line 231: Line 237:
 
! scope="row"| 1
 
! scope="row"| 1
 
|LED
 
|LED
| $0.10
+
| $0.35
 +
|https://www.sparkfun.com/products/9590
 
|-
 
|-
  
Line 237: Line 244:
 
|-
 
|-
 
! scope="row"| 1
 
! scope="row"| 1
|Resistors 8.2K, 2.7K and 1K ohms
+
|Resistors 8.2K, 2.7K and 1K ohms,
| $0.20
+
| $7.99
 +
|Frys- Resistor set of 610 assorted
 +
|-
 +
 
 +
|-
 +
! scope="row"| 1
 +
|AT Command Application
 +
| FREE
 +
|Android Play Store
 
|-
 
|-
 
|}
 
|}
  
 
== '''Design & Implementation''' ==
 
== '''Design & Implementation''' ==
The design section can go over your hardware and software design.  Organize this section using sub-sections that go over your design and implementation.
 
  
 
=== Hardware Design ===
 
=== Hardware Design ===
 +
 
Figures 1-5 show the modules needed for this project as listed in the Parts list.
 
Figures 1-5 show the modules needed for this project as listed in the Parts list.
The security system is made up of two main two components, the laser detection component and the transmitting text messaging component/ receiving text message commands. Figure 7 is the first circuit, it includes the master SJSU One Board connected to a bluetooth module by using UART communication. The  master SJSU One Board is also connected to the laser detection circuit. The circuit is comprised  of a transistor that relies on a set amount of current to create a channel from the collector to the emitter. The photocell is used to increase and decrease the resistance, thus limiting or increasing the current flow. When there is enough light or the laser is shining on the photocell the resistance decreases allowing the current to travel to ground instead of the base of the transistor. When the laser is interrupted from shining on the photo cell that is encased in a box then this produces high resistance, and allowing the current to flow into the base of the transistor instead of going to ground. The micro controller will take this input and and output 3.3v through another gpio pin to an led to indicate the laser has been trip.  
+
The security system is made up of two main two components, the laser detection component and the transmitting text messaging component/ receiving text message commands. Figure 7 is the first circuit, it includes the master SJ One Board connected to a bluetooth module by using UART communication. The  master SJ One Board is also connected to the laser detection circuit. The circuit is comprised  of a transistor that relies on a set amount of current to create a channel from the collector to the emitter. The photocell is used to increase and decrease the resistance, thus limiting or increasing the current flow. When there is enough light or the laser is shining on the photocell the resistance decreases allowing the current to travel to ground instead of the base of the transistor. When the laser is interrupted from shining on the photo cell that is encased in a box then this produces high resistance, and allowing the current to flow into the base of the transistor instead of going to ground. The micro controller will take this input and and output 3.3v through another gpio pin to an led to indicate the laser has been trip. Once we receive input from the photo circuit, the micro controller will transmit data (UART communication) to the bluetooth module  and will send the information to the other bluetooth module which is connected to the second micro controller. The second circuit is shown in Figure 8 which shows the second SJ board. This board is connect to a bluetooth module that receives information when the laser has been interrupted. The SJ One board #2 connects to the Arduino and communicate through GPIO. When the Arduino gets an input from the second board it sends commands to the cellular shield to send a text message.  
 
 
once we receive input from the photo circuit, the micro controller will transmit data (UART communication) to the bluetooth module  and will send the information to the other bluetooth module which is connected to the second micro controller. The second circuit is shown in Figure 8 which shows the second SJSU board. This board is connect to a bluetooth module that receives information when the laser has been interrupted. The SJSU One board #2 connects to the Arduino and communicate through GPIO. When the Arduino gets an input from the second board it sends commands to the cellular shield to send a text message.  
 
  
  
[[File:CMPE146_F15_LaserSecuritySystem_SJSUboard.jpg|500px|thumb|centre|Figure 1. SJSU One Board]]
+
[[File:CMPE146_F15_LaserSecuritySystem_SJSUboard.jpg|700px|thumb|centre|Figure 1. SJ One Board]]
  
  
Line 270: Line 283:
  
  
[[File:CMPE146_F15_LaserSecuritySystem_MasterBoardCircuitSchematics.jpeg|600px|thumb|centre|Figure 7. Master SJSU One Board and Bluetooth schematics with light sensor circuit]]
+
[[File:CMPE146_F15_LaserSecuritySystem_MasterBoardCircuitSchematics.jpeg|600px|thumb|centre|Figure 7. Master SJ One Board and Bluetooth schematics with light sensor circuit]]
  
  
[[File:CMPE146_F15_LaserSecuritySystem_bluetooth2schematics.jpeg|600px|thumb|centre|Figure 8. Second SJSU One Board connected to Bluetooth module circuit schematics]]
+
[[File:CMPE146_F15_LaserSecuritySystem_bluetooth2schematics.jpeg|600px|thumb|centre|Figure 8. Second SJ One Board connected to Bluetooth module circuit schematics]]
  
  
[[File:CMPE146_F15_LaserSecuritySystem_secondcircuitInterface.jpeg|600px|thumb|centre|Figure 9. Second SJSU One Board connected to Bluetooth module, cellular shield, and Arduino board schematics]]
+
[[File:CMPE146_F15_LaserSecuritySystem_secondcircuit.jpeg|600px|thumb|centre|Figure 9. Second SJ One Board connected to Bluetooth module, cellular shield, and Arduino board schematics]]
  
 
=== Hardware Interface ===
 
=== Hardware Interface ===
  
To sync our the devices and connect them via bluetooth we used an app called "AT command" from the Android app store which can be downloaded for free. First we make sure our circuits are powered on. Then we open the App and scan for nearby bluetooth devices using an AT command. once we see the desired device name/serial number, we store the serial number on the master bluetooth module. We then send another AT command connect to the master SJSU board to the slave SJSU board so that they can communication thru bluetooth. Note that one bluetooth module must be set to master, since the module default state is slave.
+
To sync our the devices and connect them via bluetooth an app called "AT command" was downloaded from the Android app store for free. First we make sure our circuits are powered on. Then we open the App and scan for nearby bluetooth devices using an AT command. Once we see the desired device name/serial number, we store the serial number on the master bluetooth module. We then send another AT command to connect to the master SJ board so that it can communicates to the slave SJ board via bluetooth. Note that one bluetooth module must be set to master, since the module default state is slave.
  
The command inX is used to search for nearby bluetooth devices, "in" stands for inquiry and the X represent a variable number that tells the searching bluetooth module for how long to search in seconds.  
+
The command inX is used to search for nearby bluetooth devices, "in" stands for inquiry and the X represent a variable number that tells the searching bluetooth module how long it has to wait in seconds to search for other bluetooth devices.  
  
After the searches in X seconds is complete then we connect to the second module by sending the character c.
+
After the searches in X seconds is complete then we connect to the second module by sending the character c.
 
*note again once you find the desire bluetooth module, the serial number must be store in the master bluetooth module before we can connect.
 
*note again once you find the desire bluetooth module, the serial number must be store in the master bluetooth module before we can connect.
  
another useful command is "h", which provides you with the list of AT commands and a description of their purpose.
+
Another useful command is "h", which provides you with the list of AT commands and a description of their purpose.
  
 
After once the bluetooth modules are connected they can begin transmitting data. Allowing both components to do their intended tasks.
 
After once the bluetooth modules are connected they can begin transmitting data. Allowing both components to do their intended tasks.
 +
 +
[[File:CMPE146_F15_LaserSecuritySystem_pinconnectiontable.jpg|600px|thumb|centre|Pin connection tables for figure 9]]
 +
 +
===Master microcontroller===
 +
<pre>
 +
  bool init(void){}// initialize GPIO pins for laser detection and initialize UART for bluetooth communication
 +
  char printchar_UART2(char out){}// transmit data when ready
 +
  bool run(void *p){} //check GPIO pins from laser circuit, if triggered light led and transmit data
 +
</pre>
 +
 +
===Slave microcontroller===
 +
<pre>
 +
  bool init(void){}// initialize GPIO pins for Arduino trigger and initialize UART for bluetooth communication
 +
  char getchar_UART2(void){}//  Retrieve data when ready, light on board LEDs to indicate data is obtained
 +
  bool run(void *p){}// constantly check if data is obtained, trigger GPIO pin to notify Arduino data has been received,
 +
                              // if buffer is full, clear the buffer
 +
</pre>
 +
 +
===Arduino===
 +
<pre>
 +
// initialize shield requirements,
 +
  variables to hold phone number , text message string, pin setting, set serial communication baud rate,
 +
  send power to cellular shield and verify if shield is working properly, delay system to allow sim to set up
 +
  call set SMS mode protocol
 +
  void loop(){}//  check if pin has been set, for both cases print pin information, if pin is set call writeSMS function
 +
  void writeSMS()// notify shield we are about to send a message, we can send a unique text message or predefined text message
 +
                        // fill buffer until delimiter character then send text message
 +
</pre>
  
 
=== Software Design ===
 
=== Software Design ===
  
  
[[File:CMPE146_F15_LaserSecuritySystem_flowchart.png|600px|thumb|centre|Figure 10. Software Design flow diagram]]
+
[[File:CMPE146_F15_LaserSecuritySystem_flowdiagram.png|600px|thumb|centre|Figure 10. Software Design flow diagram]]
  
 
=== Implementation ===
 
=== Implementation ===
The first step was to initialize the GPIO pins for the laser detection. Then we initialized the micro controller for UART communication. We Created to one function for the master to transmit and another for the slave to receive. Within our run function for the master, we are continuously checking if the light has been block. If the light is blocked the master will transmit data to the slave via Bluetooth. Note that the Bluetooth devices need to be initialized using AT commands. one Bluetooth device needs to be set to master so it can transmit to the other. Once the Bluetooth's are initialized, the master will search for any nearby devices it can communicate with. once we see our slave Bluetooth device we need to record its name in the master Bluetooth device so it can easily pair with this device the next time we setup communication. Once the Slave receives data that the laser has been trip, the slave will the communicate with the Arduino one board using a GPIO pin. The Arduino board initializes the cellular shield and provides power to the board. If the Arduino receives the signal from the slave micro controller, the Arduino will sent commands to the cellular shield.  cellular shield will then to send a text message to the predefined phone number. If the Arduino does not receive the signal from the slave micro controller, it will stay idle until it is triggered by the slave micro controller.
+
The first step was to initialize the GPIO pins for the laser detection. Then we initialized the micro controller for UART communication. We created to one function for the master to transmit and another for the slave to receive. Within our run function for the master, we are continuously checking if the light has been block. If the light is blocked the master will transmit data to the slave via Bluetooth. Note that the bluetooth devices need to be initialized using AT commands. After downloading the ATCommand application from an Android app store we scan for the master bluetooth device as shown in the picture below.
 +
 
 +
[[File:CMPE146_F15_LaserSecuritySystem_mainscreen.png|300px|thumb|centre|Figure 11. AT command application main screen]]
 +
 
  
== Testing & Technical Challenges ==
+
We select the set option to configure and set the master bluetooth as our master device in which it will be control by this application.
 +
 
 +
[[File:CMPE146_F15_LaserSecuritySystem_connection.png|300px|thumb|centre|Figure 12. AT command application setting master connection]]
 +
 
 +
 
 +
One bluetooth device needs to be set to master so it can transmit to the other. Once the bluetooth devices are initialized, the master will search for any nearby devices it can communicate with. To search for bluetooth module #2 we select the advance option and then we type the command in5 to search for nearby bluetooth connection from the master. Then type the command c to connect to bluetooth module #2.
 +
 
 +
[[File:CMPE146_F15_LaserSecuritySystem_settings.png|300px|thumb|centre|Figure 13. AT command application pairing bluetooth connection to the second bluetooth device using advance settings]]
 +
 
 +
Once we see our bluetooth module #2 device we need to record its name in the master bluetooth device so it can easily pair with this device the next time we setup communication. Once the slave or bluetooth device #2 receives data that the laser has been trip, the slave will then communicate with the Arduino one board using a GPIO pin. The Arduino board initializes the cellular shield and provides power to the board. If the Arduino receives the signal from the slave microcontroller, the Arduino will send commands to the cellular shield. Then the cellular shield will then send a text message to the predefined phone number. If the Arduino does not receive the signal from the slave microcontroller, it will stay idle until it is triggered by the slave micro controller.
 +
 
 +
== '''Testing & Technical Challenges''' ==
 
The following difficulties were encounter during this project but were able to successfully overcome them to delivery a functional project. Most of the time spent in this project was testing and debugging our program.  
 
The following difficulties were encounter during this project but were able to successfully overcome them to delivery a functional project. Most of the time spent in this project was testing and debugging our program.  
  
 
=== My Issue #1 ===
 
=== My Issue #1 ===
At the beginning of the project we encounter some problems since we never had worked with bluetooth communication, gsm communication,and interfacing it with laser detection circuit between two microcontrollers. This was challenging but not impossible to solve this problem so from our part we conducted a lot of research before even building the first circuit in this project which was the light detection sensor circuit.
+
At the beginning of the project we encounter some problems since we never had worked with bluetooth communication, gsm communication,and interfacing it with laser detection circuit between two microcontrollers. This was challenging but not impossible to solve this problem so from our part we conducted a lot of research before even building the first circuit in this project which was the light detection sensor circuit. So we wouldn't feel overwhelmed, we broke our project into three parts, the laser detection component, the bluetooth communication component, and gsm communication component. We made sure each component was working properly before moving onto the next component.
 
 
so we wouldn't feel overwhelmed, we broke our project into three parts, the laser detection component, the bluetooth communication component, and gsm communication component. We made sure each component was working before moving onto the next component.
 
  
 
=== My Issue #2 ===
 
=== My Issue #2 ===
 
Another problems we encounter in this project was that the cellular shield was not receiving enough power to work correctly. We tried sending commands and or send text messages but we were not receiving any feedback from the board. To solve this problem we connected an external power supply to the Arduino board and connected the voltage pin to the cellular shield board.
 
Another problems we encounter in this project was that the cellular shield was not receiving enough power to work correctly. We tried sending commands and or send text messages but we were not receiving any feedback from the board. To solve this problem we connected an external power supply to the Arduino board and connected the voltage pin to the cellular shield board.
  
== Conclusion ==
+
== '''Conclusion''' ==
  
After overcoming the problems associated with this project and a lot of software debugging was performed we were able to successfully complete this project. Through out this project we learn about how to implement bluetooth communication between two microcontrollers from the hardware and software side. Understanding data sheets for the devices and obtaining the information needed to implemented the desire functionality from the bluetooth module, SJSU one board, Arduino board, and cellular shield was crucial in order to obtain a successful outcome and create a fully functional text message security system.  
+
After overcoming the problems associated with this project and a lot of software debugging was performed we were able to successfully complete this project. Through out this project we learn how to implement bluetooth communication between two microcontrollers and being able to send and receive data successfully. From the hardware to software design and implementation, we learned the basics functionality for a security system. Due to time constraints, we were not able to incorporated an alarm sound. Understanding data sheets for the devices and obtaining the information needed to implemented the desire functionality from the bluetooth module, SJ one board, Arduino board, and cellular shield was crucial in order to obtain a successful outcome and create a fully functional text message security system.  
  
 
=== Project Video ===
 
=== Project Video ===
Line 318: Line 371:
  
 
=== Project Source Code ===
 
=== Project Source Code ===
[https://sourceforge.net/projects/sjsu/files/CmpE_F2015/ Sourceforge Source Code Link]
+
*  https://sourceforge.net/projects/laser-security-system/files/
  
== References ==
+
== '''References''' ==
 
=== Acknowledgement ===
 
=== Acknowledgement ===
  
Line 339: Line 392:
  
 
http://www.nxp.com/documents/data_sheet/LPC1759_58_56_54_52_51.pdf
 
http://www.nxp.com/documents/data_sheet/LPC1759_58_56_54_52_51.pdf
 +
 +
'''SJ One Board LPC1758 schematics'''
 +
 +
http://www.socialledge.com/sjsu/images/d/de/2012SJOneBoardSchematic.pdf
  
 
'''LPC176x/5x User manual'''
 
'''LPC176x/5x User manual'''
Line 348: Line 405:
 
http://cdn.sparkfun.com/datasheets/Wireless/Bluetooth/RN42XV.pdf
 
http://cdn.sparkfun.com/datasheets/Wireless/Bluetooth/RN42XV.pdf
  
'''General Purpose Transistor'''
+
'''General Purpose Transistor BC547B'''
 +
 
 +
http://www.farnell.com/datasheets/410427.pdf
 +
 
 +
'''MG2639 Cellular Module'''
 +
 
 +
https://cdn.sparkfun.com/datasheets/Cellular/MG2639%20Cellular%20Shield_v11.pdf
 +
 
 +
'''Arduino schematics'''
  
file:///Users/Irlanda/Downloads/410427.pdf
+
https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Latest revision as of 17:54, 19 December 2015

Laser Security System

Final hardware design for master board
Final hardware design for second microcontroller, bluetooth module, cellular shield and Arduino board

Abstract

The Laser Security System allows to maintain security in a room. For example by shining a laser across a photo-resistor inside a box. When laser is block from the photo resistor we send an alerting message via bluetooth communication to a guarded slave micro controller. The slave micro controller, Arduino and cellular shield will work together to send a text message to alert the owner that there has been a breach.

Objectives & Introduction

This security system will be using GPIO pins on the SJ One Board to detect if the laser has been trip. This board will use TX and RX lines to connect to the RN42-XV Bluetooth Module using serial communication (UART). There are two bluetooth modules, each one is connected to a SJ One Board and will communicate with each other, in order to specify when a text message should be sent. The Arduino module will provide power to the cellular shield and retrieve the information from the slave micro controller to send the according commands to the cellular shield.

Objectives for this project:

  • Research and design the schematics to connect a light detection circuit to one of the SJ One Board and showing the output by lighting an LED
  • Research bluetooth communication and integrate it to the light detection circuit
  • Research gsm communication
  • Complete hardware design
  • Test functionality of the system
  • Able to receive text messages from shield and send commands through text message
  • Detect and connect to other bluetooth devices

Team Members & Responsibilities

Emmanuel Gonzalez: Software Implementation and Report Writer

Irlanda Altamirano: Hardware Implementation and Report Writer

Schedule

Week# Date Planned Task Actual
1 10/12-10/18

• Project Approval

• Project Research

• Purchase all required parts

Completed:

• Project Research

2 10/19-10/25

• Build Schematics

• Order all parts

• Test individual components

Completed:

• Schematics for the overall system is done

• Order all parts

3 10/26-11/1

• Begin hardware design interfacing a laser, photo-resistor and SJ One Board

• Test the hardware design

Completed:

• Hardware design implementation started

4 11/2-11/8

• Trouble shoot hardware design with

• Test the hardware as a whole

Completed:

• Hardware design implementation interfacing a laser, photo-resistor and SJ One Board completed

5 11/9-11/15

• Research about Bluetooth communication

• Build Bluetooth circuit

Completed:

• Test the hardware design

• Starting software interfacing previous hardware implementation

• Read data sheet for Bluetooth communication

6 11/16-11/22

• Interface Bluetooth communication with SJ One Board

• Test the complete hardware interface

Completed:

• Order another board for Bluetooth communication

• Research more about Bluetooth communication

7 11/23-11/29

• Test Bluetooth communication with SJ One Board

Completed:

• Hardware design implementation interfacing a laser, photo-resistor, bluetooth communication and SJ One Board started

8 11/30-12/6

• Complete the software interfaces for laser, SJ One Board and Bluetooth communication

• Implement text message feature with Bluetooth communication

Completed:

• Debugging bluetooth communication interface

9 12/7-12/13

• Finish Debugging text message communication feature

• Start writing project report

• Test system design

Completed:

• Started implementing SMS feature with bluetooth communication

• Continued the project report

10 12/14-12/16

• Complete system testing

• Finish project report

Completed:

• Debugging SMS/ bluetooth communication

• Completed system testing

• Created video for presentation

• Finish project report

11 12/17

• Demo Project on Thursday, December 17, 2015

Completed:

• Demo Project completed

Parts List & Cost

Quantity Item Cost
2 SJ One Board $80.00 SJSU from SCE at Engr294
1 Quad-band Cellular Duck Antenna SMA $7.95 https://www.sparkfun.com/products/675
2 RN42-XV Bluetooth Module - PCB Antenna $24.95 https://www.sparkfun.com/products/11601
1 Mini Photocell $1.50 https://www.sparkfun.com/products/9088
1 SparkFun Cellular Shield - MG2639 $69.95 https://www.sparkfun.com/products/13120
1 Arduino Uno R3 $24.95 https://www.sparkfun.com/products/11021
1 LED $0.35 https://www.sparkfun.com/products/9590
1 Resistors 8.2K, 2.7K and 1K ohms, $7.99 Frys- Resistor set of 610 assorted
1 AT Command Application FREE Android Play Store

Design & Implementation

Hardware Design

Figures 1-5 show the modules needed for this project as listed in the Parts list. The security system is made up of two main two components, the laser detection component and the transmitting text messaging component/ receiving text message commands. Figure 7 is the first circuit, it includes the master SJ One Board connected to a bluetooth module by using UART communication. The master SJ One Board is also connected to the laser detection circuit. The circuit is comprised of a transistor that relies on a set amount of current to create a channel from the collector to the emitter. The photocell is used to increase and decrease the resistance, thus limiting or increasing the current flow. When there is enough light or the laser is shining on the photocell the resistance decreases allowing the current to travel to ground instead of the base of the transistor. When the laser is interrupted from shining on the photo cell that is encased in a box then this produces high resistance, and allowing the current to flow into the base of the transistor instead of going to ground. The micro controller will take this input and and output 3.3v through another gpio pin to an led to indicate the laser has been trip. Once we receive input from the photo circuit, the micro controller will transmit data (UART communication) to the bluetooth module and will send the information to the other bluetooth module which is connected to the second micro controller. The second circuit is shown in Figure 8 which shows the second SJ board. This board is connect to a bluetooth module that receives information when the laser has been interrupted. The SJ One board #2 connects to the Arduino and communicate through GPIO. When the Arduino gets an input from the second board it sends commands to the cellular shield to send a text message.


Figure 1. SJ One Board


Figure 2. Bluetooth Module


Figure 3. Cellular Antenna


Figure 4. Cellular Shield


Figure 5. Arduino Uno R3


Figure 6. System Block Diagram


Figure 7. Master SJ One Board and Bluetooth schematics with light sensor circuit


Figure 8. Second SJ One Board connected to Bluetooth module circuit schematics


Figure 9. Second SJ One Board connected to Bluetooth module, cellular shield, and Arduino board schematics

Hardware Interface

To sync our the devices and connect them via bluetooth an app called "AT command" was downloaded from the Android app store for free. First we make sure our circuits are powered on. Then we open the App and scan for nearby bluetooth devices using an AT command. Once we see the desired device name/serial number, we store the serial number on the master bluetooth module. We then send another AT command to connect to the master SJ board so that it can communicates to the slave SJ board via bluetooth. Note that one bluetooth module must be set to master, since the module default state is slave.

The command inX is used to search for nearby bluetooth devices, "in" stands for inquiry and the X represent a variable number that tells the searching bluetooth module how long it has to wait in seconds to search for other bluetooth devices.

After the searches in X seconds is complete then we connect to the second module by sending the character c.

  • note again once you find the desire bluetooth module, the serial number must be store in the master bluetooth module before we can connect.

Another useful command is "h", which provides you with the list of AT commands and a description of their purpose.

After once the bluetooth modules are connected they can begin transmitting data. Allowing both components to do their intended tasks.

Pin connection tables for figure 9

Master microcontroller

   bool init(void){}// initialize GPIO pins for laser detection and initialize UART for bluetooth communication
   char printchar_UART2(char out){}// transmit data when ready
   bool run(void *p){} //check GPIO pins from laser circuit, if triggered light led and transmit data

Slave microcontroller

   bool init(void){}// initialize GPIO pins for Arduino trigger and initialize UART for bluetooth communication
   char getchar_UART2(void){}//  Retrieve data when ready, light on board LEDs to indicate data is obtained
   bool run(void *p){}// constantly check if data is obtained, trigger GPIO pin to notify Arduino data has been received,
                               // if buffer is full, clear the buffer

Arduino

// initialize shield requirements,
  variables to hold phone number , text message string, pin setting, set serial communication baud rate,
  send power to cellular shield and verify if shield is working properly, delay system to allow sim to set up 
  call set SMS mode protocol
  void loop(){}//  check if pin has been set, for both cases print pin information, if pin is set call writeSMS function
  void writeSMS()// notify shield we are about to send a message, we can send a unique text message or predefined text message 
                         // fill buffer until delimiter character then send text message

Software Design

Figure 10. Software Design flow diagram

Implementation

The first step was to initialize the GPIO pins for the laser detection. Then we initialized the micro controller for UART communication. We created to one function for the master to transmit and another for the slave to receive. Within our run function for the master, we are continuously checking if the light has been block. If the light is blocked the master will transmit data to the slave via Bluetooth. Note that the bluetooth devices need to be initialized using AT commands. After downloading the ATCommand application from an Android app store we scan for the master bluetooth device as shown in the picture below.

Figure 11. AT command application main screen


We select the set option to configure and set the master bluetooth as our master device in which it will be control by this application.

Figure 12. AT command application setting master connection


One bluetooth device needs to be set to master so it can transmit to the other. Once the bluetooth devices are initialized, the master will search for any nearby devices it can communicate with. To search for bluetooth module #2 we select the advance option and then we type the command in5 to search for nearby bluetooth connection from the master. Then type the command c to connect to bluetooth module #2.

Figure 13. AT command application pairing bluetooth connection to the second bluetooth device using advance settings

Once we see our bluetooth module #2 device we need to record its name in the master bluetooth device so it can easily pair with this device the next time we setup communication. Once the slave or bluetooth device #2 receives data that the laser has been trip, the slave will then communicate with the Arduino one board using a GPIO pin. The Arduino board initializes the cellular shield and provides power to the board. If the Arduino receives the signal from the slave microcontroller, the Arduino will send commands to the cellular shield. Then the cellular shield will then send a text message to the predefined phone number. If the Arduino does not receive the signal from the slave microcontroller, it will stay idle until it is triggered by the slave micro controller.

Testing & Technical Challenges

The following difficulties were encounter during this project but were able to successfully overcome them to delivery a functional project. Most of the time spent in this project was testing and debugging our program.

My Issue #1

At the beginning of the project we encounter some problems since we never had worked with bluetooth communication, gsm communication,and interfacing it with laser detection circuit between two microcontrollers. This was challenging but not impossible to solve this problem so from our part we conducted a lot of research before even building the first circuit in this project which was the light detection sensor circuit. So we wouldn't feel overwhelmed, we broke our project into three parts, the laser detection component, the bluetooth communication component, and gsm communication component. We made sure each component was working properly before moving onto the next component.

My Issue #2

Another problems we encounter in this project was that the cellular shield was not receiving enough power to work correctly. We tried sending commands and or send text messages but we were not receiving any feedback from the board. To solve this problem we connected an external power supply to the Arduino board and connected the voltage pin to the cellular shield board.

Conclusion

After overcoming the problems associated with this project and a lot of software debugging was performed we were able to successfully complete this project. Through out this project we learn how to implement bluetooth communication between two microcontrollers and being able to send and receive data successfully. From the hardware to software design and implementation, we learned the basics functionality for a security system. Due to time constraints, we were not able to incorporated an alarm sound. Understanding data sheets for the devices and obtaining the information needed to implemented the desire functionality from the bluetooth module, SJ one board, Arduino board, and cellular shield was crucial in order to obtain a successful outcome and create a fully functional text message security system.

Project Video

Project Demo: https://youtu.be/Z2P5bmgPy7c

Project Source Code

References

Acknowledgement

We would like to thank the following people for their contributions and support during this project:

Preetpal Kang and Dr. Haluk Ozemek

References Used

Appendix

Bluetooth Module

https://www.sparkfun.com/products/11601

LPC1759 Datasheet

http://www.nxp.com/documents/data_sheet/LPC1759_58_56_54_52_51.pdf

SJ One Board LPC1758 schematics

http://www.socialledge.com/sjsu/images/d/de/2012SJOneBoardSchematic.pdf

LPC176x/5x User manual

http://www.nxp.com/documents/user_manual/UM10360.pdf

RN42XV Bluetooth Module

http://cdn.sparkfun.com/datasheets/Wireless/Bluetooth/RN42XV.pdf

General Purpose Transistor BC547B

http://www.farnell.com/datasheets/410427.pdf

MG2639 Cellular Module

https://cdn.sparkfun.com/datasheets/Cellular/MG2639%20Cellular%20Shield_v11.pdf

Arduino schematics

https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf