Desk Panic Button

by randofo in Circuits > Arduino

162981 Views, 925 Favorites, 0 Comments

Desk Panic Button

main.jpg

When I was a kid my father had a panic button under his desk that was wired to call 911. While I thought this was pretty cool at the time, it later occurred to me that he had this because the neighborhood that his business was located in was a bit rough, and -- perhaps -- we were in perpetual danger. Nonetheless, I always thought the idea of having a panic button was pretty darn neat. Perhaps this notion stuck with me for so long of a time because I was never allowed to press it as a kid. It was 'off limits,' and thus a very appealing idea.

Now that I am an adult and have a desk of my own, I resolved that I too needed a panic button. However, I feel like one that calls 911 has limited use in my line of work, and my opportunity for panic was probably less severe. So, I decided that I needed to tone it down a bit. The under desk panic button that I have created dials my own phone when it's pressed.

Of course, you may be wondering why on Earth I would want to call my own phone. Think of this way -- an annoying coworker walks over to your desk with the intention of locking you into a long dull impromptu meeting. You have nowhere to run; nowhere to hide. There is only one way to get out of this -- you need something more important to do. Perhaps now you can see how a device that places a call to yourself may come in extremely useful. If you still can't see it, picture this; Your phone rings. You explain that you need to take this important call. In fact, this is going to take a while. You will need to continue this conversation later. Crisis averted thanks to the Desk Panic Button.

Go Get Stuff

1A.jpg

You will need:

(x1) Arduino Uno
(x1) GPRS shield
(x1) SIM card
(x1) CR1220 coin battery
(x1) Momentary button switch
(x2) 1/8" mono jacks
(x1) 1/8" male to male mono cable
(x1) Power jack
(x1) Power plug
(x1) 1" x 2" x 3" project enclosure
(x1) 2" x 2.5" x 5" project enclosure
(x1) 9V power supply
(x1) 12" x 12" x 1/8" acrylic sheet
(x2) 1" x 6-32 wood screw
(x1) 1" x 4-40 nut and bolt

(Please note that some of the links on this page contain Amazon affiliate links. This does not change the price of any of the items for sale. However, I earn a small commission if you click on any of those links and buy anything. I reinvest this money into materials and tools for future projects. If you would like an alternate suggestion for a supplier of any of the parts, please let me know.)

Prep the Shield

2A.jpg
2B.jpg
2C.jpg
2D.jpg

Plug the CR1220 battery into the socket on the GPRS shield, and insert the SIM card.

Insert

3A.jpg
3B.jpg
3C.jpg

Insert the GPRS shield into the Arduino.

Drill

4A.jpg
4B.jpg
4C.jpg
4D.jpg
4E.jpg
4F.jpg
4G.jpg
4H.jpg

Drill a 1/4" hole centered and the 1" x 2" side of the smaller project box.

Drilll a 1/2" hole centered on the other 1" x 2" side.

Pushbutton

5A.jpg
5B.jpg
5C.jpg

Insert the pushbutton into the 1/2" hole and fasten it in place with its mounting nut.

Jack

6A.jpg
6B.jpg
6C.jpg

Insert the 1/8" jack and fasten it into place with its mounting nut.

Drill

7A.jpg
7B.jpg
7C.jpg
7D.jpg
7E.jpg
7F.jpg
7G.jpg

Put the Arduino and GPRS shield into the large 2" x 2.5" x 5" project enclosure. Make a mark on the outside of the project enclosure approximately where the antenna jack is on the opposite wall. Drill through this mark with a 1/2" drill bit.

On the opposite side of the project box, drill a 1/4" hole on the center face for the 1/8" jack.

Drill another 1/4" hole right around the corner on the 5" x 2" face of the enclosure for the power jack.

Attach

8A.jpg
8B.jpg

Insert a 1/8" jack into the 1/4" hole that has been drilled center in the 2" x 2.5" face of the larger project enclosure. Fasten it firmly in place with its mounting nut.

Insert the M-type power jack into the other 1/4" hole and fasten it in place with a mounting nut.

Solder

9A.jpg
9B.jpg
9C.jpg

Solder a red wire from one of the solder lugs on the pushbutton switch to the signal terminal on the 1/8" jack.

Solder a black wire from the other solder lug of the pushbutton switch to the ground terminal on the 1/8" jack.

Connect Wires

10A.jpg
10B.jpg
10C.jpg

Solder a 6" black wire to the ground terminal on the M-type power socket, and a 6" red wire to the signal terminal.

Solder a 6" black wire to the ground terminal on the 1/8" jack.

Solder a 10K resistor and a 6" red wire to the signal terminal on the 1/8" jack.

Finally, solder a 6" green wire to the other side of the 10K resistor.

Power Plug

11A.jpg
11B.jpg
11C.jpg
11D.jpg

Take apart the M-type plug and slide the casing onto the red and black wire.

Solder the red wire to the plug's tip terminal, and the black wire to the plug's barrel terminal.

Screw the casing back onto the plug.

Program

12A.jpg

Program the Arduino with the following code:

<pre> /*
 Desk Panic Button
 by Randy Sarafan
 
 For more information please visit:
 https://www.instructables.com/id/Desk-Panic-Button/
 
 Code in the Public Domain
 */

 
//includes necessary libraries
#include <SoftwareSerial.h>
#include <String.h>
 
//establish virtual serial port for shield 
SoftwareSerial mySerial(7,8);
 
// the number of the pushbutton pin
const int buttonPin = 2;     

// the state of the button:
int buttonState = 0;

//setup serial and pin states
void setup()
{
  mySerial.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);    // the GPRS baud rate 
  pinMode(buttonPin, INPUT);     
  
  //engage the shield
  powerUpOrDown();
  
  delay(500);
}
 
void loop()
{

  //checks to see if there is cause for panic
  panic();
  
  //looks to see if the GPRS shield is communicating
  if (mySerial.available())
    Serial.write(mySerial.read());
}
 
 
///DialVoiceCall
///this function is to dial a voice call
void panic(){
  
  //get the current state of the panic button
  buttonState = digitalRead(buttonPin);
 
  //checks to see if the panic button is pressed 
  if (buttonState == HIGH){     
    
    //calls phone number
    //replace with your own phone number
    //if in the US, keep the 1 in the front
    //otherwise replace the 1 with your country code
    
    Serial.println("HELLO");
    
    mySerial.print("ATD14155551212;\r");
    delay(1000);  
  } 
}
 
void ShowSerialData()
{
  while(mySerial.available()!=0)
    Serial.write(mySerial.read());
}

void powerUpOrDown()
{
  pinMode(9, OUTPUT); 
  digitalWrite(9,LOW);
  delay(1000);
  digitalWrite(9,HIGH);
  delay(2000);
  digitalWrite(9,LOW);
  delay(3000);
}

Wire It Up

13A.jpg
13B.jpg
PanicSchematic.jpg

Insert the M-type plug into the power input on the Arduino.

Connect the green wire wire to the 5V socket on the GPRS shield.

Connect the black wire to the ground socket on the GPRS shield.

Connect the red wire to pin 2on the GPRS shield.

Attach the Antenna

14A.jpg
14B.jpg

Thread the antenna onto the GPRS shield through the hole in the project box.

Case Closed

15A.jpg
15B.jpg
15C.jpg

Close the case on the project box with screws.

Cut

16A.jpg

Cut a piece of 1/8" acrylic using the attached template.

The solid black area around the center hole should be etched down 1/16".

Drill

17A.jpg
17B.jpg
17C.jpg

Drill a 1/8" hole in the center of the 3" x 2" side of the smaller project box.

Attach

18A.jpg
18B.jpg
18C.jpg
18D.jpg

Place the mounting bracket just shy of the edge of the desk and use the two outer holes to make marks for drilling.

Drill these marks using a 3/32" drill bit.

Place the 4-40 nut into the etched portion of the center hole and then firmly mount the acrylic bracket to the desk with 6-32 wood screws.

Mount

19A.jpg
19B.jpg

Place the open edge of the smaller project box around the 1/8" acrylic bracket.

Fasten it in place with 1" bolt.

Power

20A.jpg
20B.jpg

Plug the 9V power adapter into the power jack installed in the larger project enclosure. Place this unit somewhere inconspicuous.

The whole system should now be active.

Use

21A.jpg
push.gif

Wait until an unwanted conversation presents itself, and then DON'T PANIC!

Discretely press the button, and politely excuse yourself when the phone rings.

Did you find this useful, fun, or entertaining?
Follow @madeineuphoria to see my latest projects.