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

Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
Home Alarm System using
Raspberry Pi, Netduino Plus and
ATtiny85 (HomeAlarmPlusPi project)
Written By: Feitan
INTRODUCTION
This is an open source home alarm monitoring system using Raspberry Pi, Netduino 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).
© 2014
www.botsbits.org
Page 1 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
PARTS:
Raspberry Pi Model A or B (1)
Netduino Plus (1)
ATtiny85 (ATTINY85-20PU) (1)
SD Memory Card 4 GB or above (Class 10 preferred) (1)
5V 1A (1000mA) USB port power supply (1)
Micro SD Card 2 GB (1)
WiFi(802.11b/g/n) USB Module (1)
SD Card Adapter (1)
3mm green Light Emitting Diode(LED) per alarm zone and motion detector (1)
330 ohm for each LED (1)
NPN Transistor (1)
10k ohm variable resistor (1)
1k ohm resistor for transistor's base (1)
5600 ohm resistor per alarm zone and motion detector (1)
Schottky diode per alarm zone. Schottky diode should have low forward voltage drop like the
SBR10U40CT (1)
ScrewShield (Proto-Screwshield (Wingshield) kit (1)
WiFi connection using any WiFi Internet Adapter. Tested on Netgear WNCE3001 (1)
WiFi connection using any WiFi Internet Adapter. Tested on Netgear IOGEAR GWU627 (1)
Basic 16x2 Character LCD 1 (1)
Basic 16x2 Character LCD 2 (1)
DPDT switch (1)
LCD voltage selection (1)
74HC595 Shift Register (1)
© 2014
www.botsbits.org
Page 2 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
Step 1 — Home Alarm System using Raspberry Pi, Netduino Plus and
ATtiny85 (HomeAlarmPlusPi project)
Programming Languages and Web Development
On Netduino Plus (See image 1)
C# for Netduino Plus
HTML for Web Server with Cascading Style Sheets (CSS)
JavaScript for Web Server
On Raspberry Pi (See image 2)
HTML5, PHP, Java Script, JSON, jQuery, Weather Underground API, Python (under
development: use of GPIO)
© 2014
www.botsbits.org
Page 3 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
Step 2
© 2014
www.botsbits.org
Page 4 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
On ATtiny85 (See image 1)
C/C++ to program the ATTiny85.
Built an ArduinoISP shield
following the MIT High-Low Tech
Group.
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.
© 2014
www.botsbits.org
Page 5 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
Step 3
Optional Hardware
Panel Mount LED (Green LED with Holder) (See image 1)
Mini Buzzer (3VDC) (See image 2)
USB Ruggedized / Waterproof Panel Connector (RR-211300-30) (See image 3)
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
Plus board on the alarm panel
200 Watts / 350 VA UPS (APC BE350G UPS System or similar).
Push button for external reset
Step 4
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]
© 2014
www.botsbits.org
Page 6 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
Step 5
Settings (See image 1)
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".
More debugging capabilities will be implemented for Raspberry Pi and ATtiny85.
Circuitry (See image 2 & 3)
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.
© 2014
www.botsbits.org
Page 7 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
Step 6
Keep in mind that one or more zone consist of the following: (See image 1)
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.
Web server options on Netduino Plus (See image 2 & 3)
Step 7
Web server options on Raspberry Pi
© 2014
www.botsbits.org
Page 8 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
Step 8
Software Architecture (See image 1 & 2)
Final Product (See image 3)
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]
© 2014
www.botsbits.org
Page 9 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
Step 9
References
Simple Mail Transfer Protocol
(SMTP) based on
BanskySPOTMail by: Pavel
Bánský.
Netduino Web Server based on
MFToolkit library by: Michael
Schwarz.
Pachube Embeddable Graph
Generator (Beta) by: Cosm
(formerly Pachube), adapted by
Gilberto García.
Extensions class based on a
post/implementation by:
Valkyrie-MT, expanded by
Gilberto García.
StopWatch class based on a
post/implementation by: Chris
Walker.
LCD display using
uLiquidCrystal library.
TimeSpan reference [1].
© 2014
www.botsbits.org
Page 10 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
Step 10
Raspberry Pi basic setup.
Raspberry Pi initial setup.
Setting up a VNC server on
Raspberry Pi.
How to setup a Raspberry Pi
Windows NAS storage and web
server [1], [2] and [3].
ATtiny85 PWM tutorial.
Wunderground API.
Wunderground weather forecast
Stack overflow solution.
JSON, jQuery and jQuery Mobile
tools and tutorials [1], [2] and [3].
Step 11
Mobile browser detection [1] and
[2].
PushingBox notifications.
PHP DateTimeZone [1].
Code Repository and
Documentation
HomeAlarmPlusPi
Video
HomeAlarmPlus Pi just
initializing
HomeAlarmPlus Pi Initializing
and Running
This document was last generated on 2014-10-08 02:52:23 PM.
© 2014
www.botsbits.org
Page 11 of 12
Home Alarm System using Raspberry Pi, Netduino Plus and ATtiny85 (HomeAlarmPlusPi project)
© 2014
www.botsbits.org
Page 12 of 12