Hello again...
I've been working on a project that has interested me ever since I got my hands on the Uno - my "home "security" system" (I put security in quotes mainly because, well, it's not really security, more so monitoring/indication). Anyways, I finished the project some time ago, and just a while ago, added the DS1307 RTC to it (just to add a little functionality/style, if you will). So, here is me showing it off a little bit it's by no means perfect, and as usual, I welcome feedback and criticism. By no means does this project really secure anything. I would not recommend setting this up as a serious home security measure (unless you have the resources, in that case, more power to you!)
Here is the sketch;
/* BLUE/STR.BLUE - REED SW.
 PIR - Vs: STR.ORANGE, GND:BRN, OUT: STR.GRN
 Author - Gtr_Stitch
 01/27/2013
*/
#include <LiquidCrystal.h>
int piez = 8;
volatile int state = LOW;
LiquidCrystal lcd(4,5,6,7,9,10);
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
void setup(){
 RTC.begin();
 Wire.begin();
 lcd.begin(16,2);
 attachInterrupt(0,sound,RISING);
 attachInterrupt(1,sound2,RISING);
 pinMode(3,INPUT);
 pinMode(11, OUTPUT);
 lcd.setCursor(0,0);
 lcd.print("--INITIALIZING--");
 lcd.setCursor(0,1);
 lcd.print(" PLEASE WAIT... ");
 delay(30000); // give the PIR time to calibrate
 lcd.clear();
 lcd.setCursor(0,0);
 lcd.print("  *ACTIVE*  ");
 delay(2000);
}
void indicator(){
 digitalWrite(11, HIGH);
 delay(250);
 digitalWrite(11, LOW);
 delay(250);
}
void trip_door(){
 lcd.setCursor(0,0);
 lcd.print(" BREACH DOOR ");
 indicator();
}
void trip_motion(){
  lcd.setCursor(0,1);
  lcd.print("  MOTION  ");
  indicator();
}
void loop(){
Â
 int door = digitalRead(2);
 int pir = digitalRead(3);
 if ( door == LOW){
  trip_door();
 }
Â
 else if ( pir == HIGH){
  trip_motion();
 }
Â
 else {
 DateTime now = RTC.now();
Â
 lcd.clear();
 lcd.setCursor(4,0);
 lcd.print(now.hour(), DEC);
 lcd.print(':');
 lcd.print(now.minute(), DEC);
 lcd.print(':');
 lcd.print(now.second(), DEC);
 delay(1000);
 }
}
void sound()
{
 tone(8, 500, 500);
}
void sound2()
{
 tone(8, 750, 500);
}
In a nutshell, the Uno monitors the PIR and a magnetic reed switch attached to the door downstairs. If either is tripped, a buzzer and a flashing led indicates motion or the door is open. When all is quiet, I query the time from the RTC, and a simple clock keeps the time. Pic down below. I used a very long cat5 cable to reach from downstairs to my computer desk. Because of the cat5's length, I've had some issues with interference, which I'm working on.
In another project, I fashioned a combination lock out of five push buttons and a servo. Maybe later on I'll incorporate that into this project. But that's another story
'Til next time!
~Stitch