DIY: Introduction to AlarmsBy Ryan Winters
Jameco Product Manager
Description: Introduction to Alarms
Skill Level: Intermediate
Assembly Time: 1 hour
Sensors are in everything from cars and phones to coffee pots and handheld games, but if they're not watching your windows and doors, how do you know if your things are safe? You could pay $100 a month or more for a home security service. Granted, they can provide critical response services like police or fire in an emergency, but perhaps you don't want the additional service or bill. Maybe you do subscribe to a service, but you want to experiment with a few detection methods of your own.
This introduction to alarms covers magnetic proximity sensors (Hall Effect), laser break-beam sensing and touch sensing. The status of the alarm will be output to a sweet RGB backlit 2x20 LCD display.
All of these sensors are going to be mounted on a breadboard to keep things simple, but these can be mounted in actual locations you want to monitor – although you'll probably need a ton of wire to connect everything.
Click here to buy DIY alarm kit
|Part Description||Manufacturer Part Number|
|Arduino Uno R3, DIP version||A000066|
|830 Point Breadboard, 6.5" x 2.125"||WBU-202-R|
|Transistor, PN2222A, NPN||PN2222A|
|Force Sensing Resistor, 0.5" circle||1696|
|Laser Pointer Pen, red||4012|
|Photocell, 90mW, 150VPK, 16KΩ||CDS001-8003|
|Radial Capacitor, 1µF, 50V||R1/50|
|10kΩ Resistor, 1/4 watt||CF1/4W103JRC|
|1kΩ Resistor, 1/4 watt||CF1/4W102JRC|
|120Ω Resistor, 1/4 watt||CF1/4W121JRC|
|20 x 2 LCD Display, RGB Backlight, I2C||NHD-C0220BIZ-FS(RGB)-FBW|
|Wire Jumper Kit, 22 AWG, 70 pcs||WJW-70B-5|
|USB Cable, A to B, 6', Black||10U2-02206-BK-R|
The magnetic proximity sensor is a two piece switch where each piece is a particular pole of a magnet. The contacts can be either normally open and closed in the presence of a magnetic field, or normally closed and open when a magnetic field is present. The sample code for the magnetic sensor will allow you to use the serial monitor in the Arduino IDE to view the state of the sensor when the magnetic field is applied and removed. The Arduino will display a high or low and will be the deciding logic used in the alarm program later.
Magnetic Sensor and Loose Magnet
Laser Diode Module
A laser break-beam sensor is something you've probably encountered at a convenience store or seen in a movie protecting a bank vault from multiple angles. In this example, a laser diode module provides the laser beam and a CdS photocell will measure the brightness of the laser. Because the photocell can be influenced by ambient light, a small piece of paper rolled into a tube can serve to allow only light from the laser to enter the sensor.
In a practical application, a hole can be drilled into a door frame to bury the photocell and try to isolate the stray light. The sample code will display the analog reading of the photocell. You can use the serial monitor to see how the value changes when the beam is blocked versus not being blocked. The change from a higher to lower reading can be the trigger for the alarm.
Touch sensing is accomplished with a force sensitive resistor. These polymer thick film devices exhibit a decrease in resistance when an increase in force is applied to the surface. Because the sensor reacts to forces applied, it can be placed under a panel to detect a pressure change.
Another way it could be used is to monitor the presence of an object. If you know the value measured when a known object is resting on the sensor, if the object is moved or removed, the alarm can react to the change in force applied. The sample code provided will display the reading to the serial monitor so you can decide how you want the sensor to react in the alarm application.
Follow the diagrams and notes below for wiring the sensors to the breadboard and connecting the Arduino. (A larger file called Schematic can be found on the product page.) Luckily, everything can run from the five volts supplied from the Arduino. If you are powering the Arduino with the USB cable, you can tap 5V to the breadboard via the VIN pin. If you are using a 9V wall adapter, tap power from the 5V pin.
The schematic diagram below is representative of the included 2x20 display. There are eight pins at the bottom of the display for data connection and four pins at the side for the RGB LED backlight. When looking down at the top side of the display, the pin assignment from left to right is pin 8 to pin 1. A green backlight will indicate a safe condition while a red backlight will indicate a fault has been detected at one of the sensors. Be sure to use the 3.3V supply for the display at pin 5. The 2mm pin spacing on the display is not breadboard friendly. Use mini clip test leads or solder some solid jumper wire to the pins to complete the connections.
You can use the same 3.3V supply to power the common anode of the backlight. Green and blue operate at 3.3V, but red will use a 120Ω current limiting resistor because the forward voltage requirement for red is 2.2V. The two PN2222 transistors will switch the red and green backlights on or off independently. The backlight is shown as a single RGB LED on the schematic layout. For it to function properly, you will also need the library for the display. You can find it in the additional files archive or in a link on the product page for the display.
After you have run the sample codes for each sensor and determined the value you want to trigger the alarm, you will need to input those values into the primary test condition. There is an IF statement in the main loop that checks all sensors and gives the "all clear." If one test fails, individual routines are run that will report the triggered sensor. You may need to modify the equations that test the conditions to get the desired operation. The messages can also be modified, but you're limited to 20 characters per line.
The main program - called sensor Sample - is configured to give the all clear message when all three sensors satisfy the following conditions: 1) the magnet is in proximity of the sensor, 2) the CdS photocell is receiving an unobstructed beam from the laser and 3) the touch sensor has no force applied. As long as these conditions are true, the LCD will glow green and output the message "All Clear," as well as output the ambient temperature of the display. If one sensor is tripped, the LCD backlight will immediately change to red and also display the current fault.
This covers the basic operation, but you may want to add additional outputs like a buzzer or alarm. Other useful features could be adding a delay between the readings when two sensors are triggered at the same time. Another useful idea would be for the alarm to continue sounding until a button or code was pressed to reset the alarm back to a clear condition. There are many more ways this alarm system can be expanded with the addition of more sensors or by adding Ethernet or WiFi modules to enable remote monitoring or notification. Years ago, I never would have imagined that building a home alarm system could be so DIY friendly.
Try building one and protect your prized possessions. What do you have to lose?
Ryan Winters is a Product Manager at Jameco Electronics and a Bay Area native. He is mostly self-taught and his hobbies include working on cars and computers, fiddling with electronic gadgets and experimenting with robotics.