Hi.
First of all - my project might be a bit idiotic.. As there are existing professional solutions that good do this, but I decided that I want to build something usefull instead of just blinking leds..
I have a home security system - and it's working. It is a device that has a some sort of computer/main board inside a wall that everything else is connected to.. There's 3 PIRs, 5 sensors for checking if door is closed, 2 sensors for moisture, sensor for (backup) battery voltage, 2 or 3 sensors for vibration in windows.. At least.. It has a GSM module that is able to call to specific number and has a robot beeping and listening to dtfm tones..
And it also has a siren and a keyboard. Keyboard has numbered lights that present the state of sensors and status of the system. Keyboard has buttons that can be used to enter your code to lock/unlock the system and do also some things with the device.
I would create a way more complex system. Here's what I had in mind.
Mainboard: combination of arduino and raspberry pi or similar. No GSM module, but is connected to internet through ethernet. WebUI allows monitoring over internet. SSH connection available only from LAN - allow root to disarm by SSH if other authentication methods cannot be used. Raspberry acts as the systems brains while arduino acts as a bridge between devices connected to it and raspberry. Propably going to be connected together by USB.
Here's list of devices that I plan to be compatible with system.
Keyboard:
Arduino with touchscreen(with SD) + fingerprint reader + PIR + speaker/beeper + tactile button + possibly RTC + numpad?. Screen activates and beeper beeps when someone comes in if system is armed. Screen waits for user to touch number pad drawn on screen to get authentication code for disarming. Can be disarmed also by touching fingerprint reader with registered finger. System can have multiple codes that can be used to disarm/arm - so it can be logged who has armed/disarmed and when. Just like when using fingerprint scanner. Must be MEGA because a touch screen needs lot of pins.
PIR sensor is installed over the screen, so when someone moves it powers the screen up for next 1-2 minutes. This countdown for shutting down the screen restarts with every touch on screen. If PIR fails, there's tactile button that allows user to wake up the device. Device can also be waked up by a command from mainboard. When system is disarmed, but device has been waken up - it displays a picture of a floorplan with "virtual leds" that represent state of gathered sensor data. Admin mode can also be accessed, again, authentication code is needed, or fingerprint - admin mode allows atleast simple log reading and some setup that hasn't yet been decided (for e.g. set single silent alarm with email alarm, so I know when my kids have waken up on a school morning when they were late from school). System also shows time on-screen and data from thermal sensors and what ever that fits on a small screen that is setup to show from main system. Beeper can also be activated from mainboard - for example if moisture is detected (washing machine drooling) or backup battery voltage dropping too low. Also can display a picture sent by mainboard. For example a camera activated by a doorbell button to show who is behind the door. SD card can hold pictures of users allowed to disarm/arm system and can welcome user with their own picture.
Virtual keyboard could be replaced by a numpad? With numpad I mean this: Recommendations For You - DealeXtreme
Simple Keyboard:
Arduino with: touchscreen. PIR. Tactile button. RTC? signal to doorbell module. numpad? Must be MEGA again.
Activation of device similar to keyboard - PIR, tactile button, wake up from mainboard. Simpler features. Activated usually by mainboard when triggered with doorbell button. Mainboard sends a image data to display on screen. Also if device is manually started, floor plan is showed and shows location of cameras. By touch of camera icon, a conversation with mainboard begins and image from chosen camera can be requested to be shown on screen. This feature can be disabled or locked with code. Depending on how things are setup on a mainboard's configurations. When triggered by doorbell button, also sends a signal to actual doorbell device if not in silent mode.
Possibility to set doorbell to silent mode or silent mode for next 10 minutes/1 hour/2 hours. Or disable silent mode if it's active. Can also be showing time and thermal data possibly.
Doorbell device: (option to simple keyboard)
Arduino + MP3 shield with SD and speaker. potentiometer. UNO is enough.
When signal is sent from simple keyboard plays a mp3 from SD. Volume is controlled with potentiometer. Cannot be digital as this device is not communicating with mainboard.
Wireless simple keyboard:
Arduino + touch screen + rtc + tactile + on/off swith + LiPo battery + USB loader for battery + speaker/beeper + xbee or some other wireless way + keypad? . Must be MEGA.
Hasn't been planned yet, just initial idea in mind. on/off switch to control if this is being used at all. Activated by tactile or xbee, if signaled from mainboard.
If doorbell signal is sent, beep(if not in silent mode) and show picture from doorbell camera sent by mainboard. Allow changes to silent mode like wired simple keyboard.
Sensors:
PIR/Camera:
Arduino UNO + temperature sensor + PIR + light sensor + TTL Camera + IR Leds + red LED.
red led is activated by PIR. mainboard can request this data from device: temperature, pir state, light level, camera pir state, JPEG. if mainboard requests for JPEG and light sensor reports a low light, activate
IR leds for better picture.
Doorbell button:
Tactile button and led light.
Connected to mainboard.
Moisture sensor:
start with using current ones that work with 12V. Later replace these by:
Arduino + moisture sensor + temperature sensor.
Vibration sensors:
for the moment; use current sensors that work with 12V
Door sensors:
For the moment; use current sensors that work with 12V