Large home alarm project..


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.


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:

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.



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

I was thinking that devices would be connected to their selves by i2c bus - but this is not an option as wires can't go very long.. Currently the furthest point needs about 40 meters long wiring..

Was thinking about that mainboard would be usb hub + raspberry, but usb can't be longer than 5 meter also.. If I don't extend it with a powered hub once in 5 meter.. Doesn't sound good either..

RS-485 is typically used to cover any non-trivial distance and add noise immunity.

Some other possibilities…

• Ethernet
• 1-Wire
• XBee
• WiFi
• 433MHz radio (and its ilk)

I believe there are I2C bus extenders available that will cover 40 meters.

I'd rather not use wireless, as wires are required anyway for powering devices and as the device is supposed to be a security system --

i2c bus extenders sound most interesting in here. Also this device is pretty expensive as most parts have their own arduino and displays + ttl cameras + fingerprint scanner + touch screens aren't cheap, I think ethernet - as expensive device - should also be out. Also I think if eth/wifi would be used - system could be compromised..

XBee - I think it maybe won't have long enough range. In the open it might work, but here we have walls.. For wireless keyboard it's propably fine as you can carry it to where ever there's signal..

1-wire sounds interesting; but I am not sure if if's suitable for my needs; here' another thread:,19707.0.html

Also - I don't know about CANBUS.. Googling it showed me a list of applications about connecting arduino to car's obd socket..

RS-485: That sounds perfect. But also a bit pricy - and impossible - most documents I found about rs-485 and arduino say that I need a sensor shield. Well I cannot install a tft01 shield over a sensor shield, actually, sensorshield v6 might allow that. Just don't know how many pins it needs.. Maybe I can provide a COM port without sensor shield.. Also rs-485 boards are a bit pricy, what about this board, is that any use? Atleast it would be pretty cheap..

So thanks for some more ideas, rs-485 sounds about right but needs further investigation.. What do you think about the project in large scale?

BTW; here's a good site about arduino and rs-485:

This is even more informative page about arduino and rs-485: