Saturday, April 6, 2013

Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)

Latest update: Friday, November 8, 2013

This is an open source home alarm monitoring system using Raspberry PiNetduino Plus, ATtiny 85 and a typical home alarm system. This implementation could be used in conjunction with the PC5010 Digital Security Controls (DSC) PowerSeries Security System control panel and sensors.  Tested with Netduino Plus 1 running .NET Micro Framework 4.2 (QFE1 or QFE2) and Raspberry Pi Model A running Debian GNU/Linux 7.0 (wheezy).

Previous Implementation
When I first started HomeAlarmPlus on February 2012 my intent was to have a simple home alarm monitoring system and learn more about microcontrollers. As the knowledge kept growing, also the complexity of the circuitry, system and requirements. Then Raspberry Pi complemented the existing project by using full capability of Apache Web server. This involved massive code changes to the original project reflected in HomeAlarmPlusPi.

Objective
Use full capabilities of Raspberry Pi and Netduino Plus to monitor home alarm system and report any sensor/motion detector activities via email (using Simple Mail Transfer Protocol (SMTP)), local web server, notifications (using PushingBox) and Pachube (now Cosm).

Programming Languages and Web Development

On Netduino Plus

Netduino Plus 1
  • C# for Netduino Plus
  • HTML for Web Server with Cascading Style Sheets (CSS)
  • JavaScript for Web Server

On Raspberry Pi
Raspberry Pi with enclosure and cardboard on top with 12 VDC micro fan.
  • HTML5
  • PHP
  • Java Script
  • JSON
  • jQuery
  • Weather Underground API
  • Python (under development: use of GPIO)

On ATtiny85
Arduino “in-system programmer” (ISP) shield ATtiny programmer. 
Warning
This code contains information related to a typical home alarm systems.  Please, be aware that this procedure may void any warranty.  Any alarm system of any type may be compromised deliberately or may fail to operate as expected for a variety of reasons.

The author, Gilberto García, is not liable for any System Failures such as: inadequate installation,  criminal knowledge, access by intruders, power failure, failure of replaceable batteries, compromise of Radio Frequency (Wireless) devices, system users, smoke detectors, motion detectors, warning devices (sirens, bells, horns), telephone lines, insufficient time, component failure, inadequate testing, security and insurance (property or life insurance).

One last thing:
DISCONNECT AC POWER AND TELEPHONE LINES PRIOR TO DOING ANYTHING.

Required Hardware
  • Raspberry Pi Model A or B
  • Netduino Plus
  • ATtiny85 (ATTINY85-20PU).
  • SD Memory Card 4 GB or above (Class 10 preferred).
  • 5V 1A (1000mA) USB port power supply.
  • Micro SD Card 2 GB
  • WiFi(802.11b/g/n) USB Module [1], [2] or [3]
  • SD Card Adapter
  • 3mm green Light Emitting Diode(LED) per alarm zone and motion detector.
  • 330 ohm for each LED.
  • NPN Transistor
  • 10k ohm variable resistor
  • 1k ohm resistor for transistor's base.
  • 5600 ohm resistor per alarm zone and motion detector.
  • Schottky diode per alarm zone.  Schottky diode should have low forward voltage drop like the SBR10U40CT.
  • ScrewShield (Proto-Screwshield (Wingshield) kit from [1] or [2]).
  • WiFi connection using any WiFi Internet Adapter. Tested on Netgear WNCE3001 and IOGEAR GWU627.
  • Basic 16x2 Character LCD [1] or others [2].
  • DPDT switch [1] or others [2] for LCD voltage selection.
  • 74HC595 Shift Register

Optional Hardware
  • Panel Mount LED (Green LED with Holder)

  • Mini Buzzer (3VDC)

  • USB Ruggedized / Waterproof Panel Connector (RR-211300-30)
  • Debugging Alarm using external USB.  There is no need to open the alarm panel.

  • RF Receiver Toggle Type to arm/disarm [1].
  • USB 2.0 Cable, Type A Male to A Male (10 Feet or above). Used to access the Netduino Plusboard on the alarm panel.
  • 200 Watts / 350 VA UPS (APC BE350G UPS System or similar).
  • Push button for external reset.
  • Arduino Proto Shield R3. More space for additional components.[1] or others [2], [3].
  • Low-profile microSD card adapter for Raspberry Pi [1].
  • Raspberry Pi case [1] or others [2]
  • In-line power switch for 2.1mm barrel jack [1] or [2].
  • Raspberry Pi heat sink set [1].
  • 12 VDC Micro fan to cool down Raspberry Pi [1].

Modified Raspberry Pi case with fan

Settings
For HomeAlarmPlus and HomeAlarmPlus Pi the conditional symbol ALARM_DEBUG enables alarm debug on Visual Studio. To enable debugging on Visual Studio just right click AlarmByZones project, select properties, select Build tab and add ALARM_DEBUG under "Conditional compilation symbols".
Debug setup
More debugging capabilities will be implemented for Raspberry Pi and ATtiny85.

Circuitry
The following Fritzing diagram shows how the Netduino plus, LEDs and the alarm zones (or motion detector) are wired. Compared from previous implementation(HomeAlarmPlus) I added ATtiny85 in order to reduce threads in the Netduino Plus 1. By doing this I saved 2 KB of RAM and have more code space.

HomeAlarmPlus Pi connection diagram Rev I.

HomeAlarmPlus Pi circuitry
HomeAlarmPlus Pi circuitry details
Keep in mind that one or more zone consist of the following:
a) 1 Normally Open contact and 1 Normally closed contact with End Of Line (EOL) resistor.
b) Double EOL circuit, 1 Normally closed contact with 5.6kohm EOL resistor and Schottky diode.  This will bring the protection needed for the Netduino or Arduino.
c) Each ground zone should be connected to the  ProtoScrewShield GND.

Netduino/ProtoScrewShield Pin
Description
A0 Zone #1
A1 Zone #2
A2 Zone #3
A3 Zone #4
A4 Sensor #1 [Motion Detector]
D0 xBee RX
D2 LED Zone #1
D3 LED Zone #2
D4 LED Zone #3
D5 LED Zone #4
D6 LED Sensor #1 [Motion Detector]
D7 RF Toggle Pin (RF Receiver)
D8 Power ATtiny85
D9 Burglar Alarm or Mini Buzzer
D10, D11 and D13 Shift register LCD

Web server options on Netduino Plus
Options
Description
/Root page desktop format.
/openOpen last file on SD card.
/sdcardList files on SD card.
/suSuper user. Shows additional options.
/pachubeShows Pachube activity per zone/Datastream.
/aboutApplication credits and version.[Desktop version]
/about-mobileApplication credits and version.[Mobile version]
/delete-confirmDelete last file on SD card [confirm window].
/delete-lastDelete last file on SD card [no confirm window].
/diagDisplays available memory on Netduino and forces to clear the garbage collector.[Desktop version]
/diag-mobileDisplays available memory on Netduino and forces to clear the garbage collector.[Mobile version]
/dateGets date time from Raspberry Pi.
/mobileRoot page mobile format.

HomeAlarmPlus [Desktop version]
HomeAlarmPlus [Mobile version]

Web server options on Raspberry Pi
Options
Description
/Root page desktop format.
/index.phpRoot page desktop format.
/weather.htmlWeather data from Wunderground.[Desktop version]
/mobileRoot page mobile format.
/mobile/index.phpRoot page mobile format.
/references.htmProject link references.
/aboutApplication credits and version.
/NetduinoPlus/setNetduinoTimer.phpSetup/Update Netduino Plus time/date.

HomeAlarmPlus Pi web server [Desktop version]
HomeAlarmPlus Pi webserver [Mobile version]

HomeAlarmPlus Pi [Apple mobile screenshot]

Software Architecture

HomeAlarmPlus Pi Software Architecture

Detailed Software Architecture

Final Product
Final Product showing mobile access, Raspberry Pi, Netduino Plus 1, custom shield for Netduino and Home Alarm Panel

Under Development
  • Web interface for tablet based devices. [Testing, not released]
  • Cameras with integrated motion sensor and night vision. Camera should be integrated with Raspberry Pi GPIO.
  • More debugging capabilities for Raspberry Pi and ATtiny85.
  • Explore additional notification options like IFTTT. [Done. Released July 17, 2013]

References
Code Repository and Documentation
HomeAlarmPlusPi

Video
HomeAlarmPlus Pi just initializing

HomeAlarmPlus Pi Initializing and Running

50 comments:

  1. Great work.... thanks for share.... i will like to see whith the ITTT....

    ReplyDelete
    Replies
    1. Thank you for you comments Eduardo. I have been updating code in repository.

      Delete
    2. Eduardo, as promised, I added Pushover notification on the Raspberry Pi side. It is on PHP (index.php). You can create recipes on IFTTT and add Pushover.

      Delete
  2. Security is the primary factor for everyone to safe guard their family and business. This blog will be helpful for those who needs to know about Home security System and its advantages.

    ReplyDelete
  3. Hi, great work.
    Do you connect the PIR sensors to the old system as well as your new circuit? If yes, how do you do this?

    ReplyDelete
    Replies
    1. Maknet, thank you for your interest in HomeAlarmPlus Pi. I used the following link as a reference for the old circuit (http://rawrwarbear.com/2011/04/10/home-alone-netduino-wireless-motion-alarm-project/). I have not implemented PIR yet for the new circuit. Thank you again.

      Delete
  4. Hi Gilberto,
    I am not sure why used the 2 micro-controllers though the RB-Pi already has a processor in it ?

    Baba

    ReplyDelete
    Replies
    1. Baba, for this project I use the Raspberry Pi as web server and Netduino Plus for the alarm/sensors. Raspberry Pi does not have ADC so you need to use MCP3008 or MCP3424. I could consolidate in one platform but in security systems it is better to have redundant monitoring. Thanks.

      Delete
  5. If you change your event listeners from "onClick" to "touchstart", the button down-state will appear ~300ms earlier. 'onClick' waits 300ms for a double click.

    ReplyDelete
  6. Hello,

    I've created a similar project using Arduino.

    A PC is used for external control (WebUi)

    More info here :
    I’ve created an alarm system based on Arduino.

    I’m also communicating with a PC using USB (serial over usb)

    More info :
    http://dev.kprod.net/?q=aalarm-v2-intrusion-detection-using-arduino-alarm-with-django-and-perl-en

    ReplyDelete
  7. Hello there! I must tell you the blog post is really good. It is very informative. Yes off course security is must in house.I really appreciate and keep writing..
    Thank you..

    ReplyDelete
  8. Hi, Gilberto... Thanks for sharing this; I've bookmarked it (meaning I hope it stays up for a while) and intend to give it a whirl in a month or so. Meanwhile, I just have to tell you that I got a kick out of your robo-spammers. (I get them, too...)

    - Jim

    ReplyDelete
  9. Hallo, can you explain me why you used Netduino Plus and not Arduino?

    Kr Guido

    ReplyDelete
    Replies
    1. Thanks for your question. There are many reasons but the main one is that I use C# daily. You will find out that concurrency and multithreading on Arduino is not as easy as in Netduino boards. Another reason is that I do not need to buy an Ethernet shield since it is integrated in Netduino Plus.

      Delete
  10. I really appreciate yOu posting this very imformative blog. I just hate to see your blog comments becoming an advertising column. Maybe you can use your c# programming skills to filter them out? Excellent alarm though, the best I've seen on the web so far

    ReplyDelete
  11. Very nice information .....thanks for sharing....

    ReplyDelete
  12. You have really selected the suitable topic; this is one of my favorite blogs. the owner

    ReplyDelete
  13. I am wheelchair bound and cannot reach traditional fire alarms on the ceiling. I would love to get a new alarm system that is encompassing of fire alarms. It would be super nice if this whole alarm system could be accessible from my wheelchair. Is there anything like this available these days?

    http://www.mdelectrical.net/mdelectrical_003.htm

    ReplyDelete
  14. Your style is so exclusive compared to other individuals. Thank you for posting when you have the chance, guess I would just make this bookmarked. home security systems reviews

    ReplyDelete
  15. Keep on working man, great job! Inspiring posts on the blog, I love it. best home security

    ReplyDelete
  16. This implementation could be used in conjunction with the PC5010 Digital Security Controls (DSC) PowerSeries Security System control panel and sensors.
    Credit Link: local security guard companies

    ReplyDelete
  17. This is a security measure that all websites of the service hosting in Pakistan are offered with to ensure safe web hosting.
    Web Hosting In Pakistan

    ReplyDelete
  18. When you are planning a trip to South Africa, flights can make up a large percentage of the trip costs. With ebookers, you can save money by using our powerful search engine to find the best deals on flights to South Africa Cheap Flights to Africa

    ReplyDelete
  19. A word of warning here: your home contents insurer may not recognize an alarm system you have made yourself under the terms of your insurance agreement. But if you need any Ac Repair in Dubai you may put a query on the websit.

    ReplyDelete
  20. Do not go away if you looking for “dedicated server in Pakistan”. We provides Reliable Windows / Linux managed and unmanaged dedicated servers hosting.
    http://www.softhof.com/dedicated-servers-pakistan.html

    ReplyDelete
  21. Excellent blog here. It’s out-of-the-way quality writing. If truth be told I appreciate the people like you! Take care best home security system

    ReplyDelete
  22. A Cheapest Dedicated Server ideal for businesses wanting to make hugely professional and secure websites. Cheapest Dedicated Server has a range of server hosting all with unique advantages. Softhof offers website server options for all budgets, as each server contains various processing speeds, hard disk space and RAM. We strongly believe that we have the perfect server package for you.
    http://www.softhof.com/dedicated-servers-pakistan.html
    A Cheapest Dedicated Server suit your business plan, as we offer packages that adapt to however much you actually require from a web server. Talk to our friendly and helpful support team via phone or email 24/7, who will guide you to the best suits Wen Hosting Plane for you.
    We provides Reliable Windows / Linux managed and unmanaged dedicated servers hosting.

    ReplyDelete
  23. Softhof is a leading E-Services provider with the foremost characteristics of committed quality, assured reliability and affordability. Thank you for choosing Softhof. You have made the right choice in selecting us as your web hosting in Pakistan. We provide excellent customer service, reliable hardware and affordable prices.We have our own dedicated servers managed by our staff to ensure 99.99% Uptime.

    ReplyDelete
  24. Great Blog, thanks for sharing with us.
    Guardsys is a London based wireless burglar alarm systems, wireless intruder alarm provider company. If you want to Repair, Install , Maintenance , Upgrade Your security system , then this can be a good choice for you.

    ReplyDelete
  25. Now that right there is a cool home security alarm system. You can even set it up yourself fairly easily and know for a matter of fact that it will work. Those are the kind of security systems that I like to have in my own home. That way I would know that they would help me out when I was in need.
    http://www.pricealarms.com.au/products

    ReplyDelete
  26. Hard-wired alarms were the standard in the alarm business for a very long time. Wireless systems are the new kids on the block. Often, older alarm systems are hard-wired because that was the only type available. But, now, there are more options for people that need different things from their alarm system.

    ReplyDelete
  27. In case the security service provide safety from intruders and success to safe my in laws members way too i will prefer to Raspberry Pi, Netduino Plus and ATtiny85. best security system

    ReplyDelete
  28. Your blog has always attracted and this particular post left me speechless. It is one of the best pieces of writing I have seen. Good job.
    We have a wide range of top quality security systems.

    ReplyDelete
  29. Hey very nice blog!! Man you have done the Amazing efforts to make this blog... I will surely bookmark your blog. home security systems 101

    ReplyDelete
  30. I am greatly thankful to you for this exciting blog; I am cheerful because of your smart working really. car insurance

    ReplyDelete
  31. What a simplified article with all imperative information about home alarm systems at one place. I have been working on finding the right alarm system but couldn't make up my mind until I landed at http://safetechalarms.com/. After speaking to their experts and knowing more about the solutions they offer, it sounds to me to be a safe bet. I am looking forward to more options to arrive at the best one. Thanks for helping me direct my search precisely.

    ReplyDelete
  32. This is quite helpful suggestion I will surely apply this into my life, thanks for imparting great knowledge. German Beer Steins

    ReplyDelete
  33. Main purpose of Security Systems is to protect you against burglary, these systems are must for home security. Thanks for sharing this informative post with us.

    ReplyDelete
  34. This blog post is really great; the standard stuff of the post is genuinely amazing.go to this web-site

    ReplyDelete
  35. I was on rummage around for the sites related to provide good information, so I came up to your site. cheap security systems for apartments

    ReplyDelete
  36. This comment has been removed by the author.

    ReplyDelete
  37. Well security is the most important concern now a days. Anyone wants to be secure whether at home or at commercial place.So installing a high security system is very crucial to be safe and keep your things safe when you are out from your home.You should install CCTV camera as well as electronic locks to keep your belongings safe in your home or at other place you put in

    ReplyDelete
  38. I am glad to see such amazing things at one place, how did you do this? I am still surprised. home security companies

    ReplyDelete
  39. Nice unit. I wish I could assemble my own. I looked for a supplier of alarm systems in Sydney that offers 24/7 monitoring. I was lucky to find one at a good price.

    ReplyDelete