F15: Laser Security System

From Embedded Systems Learning Academy
Jump to: navigation, search

Laser Security System

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


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


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

• Project Approval

• Project Research

• Purchase all required parts


• Project Research

2 10/19-10/25

• Build Schematics

• Order all parts

• Test individual components


• 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


• Hardware design implementation started

4 11/2-11/8

• Trouble shoot hardware design with

• Test the hardware as a whole


• 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


• 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


• Order another board for Bluetooth communication

• Research more about Bluetooth communication

7 11/23-11/29

• Test Bluetooth communication with SJ One Board


• 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


• Debugging bluetooth communication interface

9 12/7-12/13

• Finish Debugging text message communication feature

• Start writing project report

• Test system design


• Started implementing SMS feature with bluetooth communication

• Continued the project report

10 12/14-12/16

• Complete system testing

• Finish project report


• Debugging SMS/ bluetooth communication

• Completed system testing

• Created video for presentation

• Finish project report

11 12/17

• Demo Project on Thursday, December 17, 2015


• 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


// 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


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.


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



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

Preetpal Kang and Dr. Haluk Ozemek

References Used


Bluetooth Module


LPC1759 Datasheet


SJ One Board LPC1758 schematics


LPC176x/5x User manual


RN42XV Bluetooth Module


General Purpose Transistor BC547B


MG2639 Cellular Module


Arduino schematics