Aller au contenu


celes

Inscrit(e) (le) 25 mars 2016
Déconnecté Dernière activité mars 28 2016 08:41
-----

Messages que j'ai postés

Dans le sujet : problème de téléversement arduino

25 mars 2016 - 04:01

voila le schéma sauf que j'ai enlevé la caméra , les LED bleu et les relies 

 

https://drive.google...it?pref=2&pli=1


Dans le sujet : problème de téléversement arduino

25 mars 2016 - 03:50

voila le code 
 
#include <LiquidCrystal.h>

#include <Wire.h>
#include <Password.h> //http://www.arduino.cc/playground/uploads/Code/Password.zip
#include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip
#include <Servo.h> 
#include "RTClib.h"


//Servo
Servo myservo;        // create servo object to control a servo           


int passwd_pos = 15;  // the postition of the password input


//Real Time Clock
RTC_DS1307 RTC; 


//Password
Password password = Password( "1234" );


const byte ROWS = 4; // Four rows
const byte COLS = 4; // Four columns


char keys[ROWS][COLS] = { // Define the Keymap
  {
    '1','2','3','A'      }
  ,
  {
    '4','5','6','B'      }
  ,
  {
    '7','8','9','C'      }
  ,
  {
    '*','0','#','D'      }
};


byte rowPins[ROWS] = {
  46, 47, 48, 49};     //connect to the row pinouts of the keypad
byte colPins[COLS] = {
  50, 51, 52, 53};     //connect to the column pinouts of the keypad


// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );


// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // Assignign arduino pins to LCD display module


//Stroke LED Lights
int ledDelay = 50; // delay by 50ms
int redPin = 29;




//constants for LEDs, inputs and outputs


int greenLED = 37;
int redLED = 38;
int pirPin1 = 39;
int pirPin2 = 34;


int reedPin1 = 41;
int reedPin2 = 42;
int speakerPin = 35; 




int alarmStatus = 0;
int zone = 0;
int alarmActive = 0;


void setup()
{
  Serial.begin(9600);
  lcd.begin(20, 4);
  //Adding time 
  Wire.begin();
  RTC.begin();
  //If we remove the comment from the following line, we will set up the module time and date with the computer one
  RTC.adjust(DateTime(__DATE__, __TIME__));
  
  myservo.attach(2);  // attaches the servo on pin 2 to the servo object 


  


  //Police LED Lights
  pinMode(redPin, OUTPUT);


  
  //setup and turn off both LEDs
  pinMode(redLED, OUTPUT);
  pinMode(greenLED, OUTPUT);
  pinMode(speakerPin, OUTPUT);
  
  


  pinMode(pirPin1, INPUT);  //Bedroom 2
  pinMode(pirPin2, INPUT);  //Garage
  pinMode(reedPin1, INPUT); //Front door
  pinMode(reedPin2, INPUT); //Back door


  digitalWrite(redLED, LOW);
  digitalWrite(greenLED, HIGH);
  digitalWrite(speakerPin, LOW);




  keypad.addEventListener(keypadEvent); //add an event listener for this keypad
  
}


void loop(){
  //display time and date
  DateTime now = RTC.now();


  //DATE
  lcd.setCursor(0,1);
  lcd.print(now.month(), DEC);
  lcd.print('/'); 
  //We print the day
  lcd.print(now.day(), DEC);
  lcd.print('/');  
  //We print the year
  lcd.print(now.year(), DEC);
  lcd.print(' ');


  //TIME
  lcd.setCursor(13,1);
  lcd.print(now.hour(), DEC);
  lcd.print(':');
  lcd.setCursor(16,1);
  lcd.print(now.minute(), DEC);
  //lcd.print(':');
  //lcd.print(now.second(), DEC);
  //delay(1000);


  keypad.getKey();
  //Serial.println(digitalRead(reedPin2));
  //Serial.println(digitalRead(pirPin));
  //Serial.println(digitalRead(pirPin2));
  if (alarmActive == 1){ 
    if (digitalRead(pirPin1) == HIGH)
    {
      zone = 0;
      alarmTriggered();
    }
    if (digitalRead(reedPin1) == LOW)
    {
      zone = 1;
      alarmTriggered();
    }
    if (digitalRead(reedPin2) == LOW)
    {
      zone = 2;
      alarmTriggered();
    }
    
    if (digitalRead(pirPin2) == HIGH)
     {
     zone = 3;
     alarmTriggered();
     }
   }
}


/////////////////////////  Functions  /////////////////////////////////
//take care of some special events
void keypadEvent(KeypadEvent eKey){
  switch (keypad.getState()){
  case PRESSED:
    if (passwd_pos - 15 >= 5) { 
      return ;
    }
    lcd.setCursor((passwd_pos++),0);
    switch (eKey){
    case '#':                 //# is to validate password 
      passwd_pos  = 15;
      checkPassword(); 
      break;
    case '*':                 //* is to reset password attempt
      password.reset(); 
      passwd_pos = 15;
   // TODO: clear the screen output 
      break;
    default: 
      password.append(eKey);
      lcd.print("*");
    }
  }
}


void alarmTriggered(){


  int incr;
  digitalWrite(speakerPin, HIGH);


//
  password.reset();
  alarmStatus = 1;
  // alarmActive = 0;
  lcd.clear();
  lcd.setCursor(0,2);
  lcd.print("  SYSTEM TRIGGERED  ");
  lcd.setCursor(0,4);
  if (zone == 1)
  { 
    lcd.print("  Front Door Open  ");


    delay(1000);
  }
   if(zone == 0){


    lcd.print("Motion in Bedroom 1 ");
    delay(1000);
  }
  else if(zone == 2){


    lcd.print("Backdoor Open");
    delay(1000);
  }
   else if(zone == 3){


   lcd.print("Motion in Garage");
   delay(1000);
   }
   
  
   
  
  
  {
   StrokeLight();
  }
}


void StrokeLight(){                                                      //Stroke LED Lights
    digitalWrite(redPin, HIGH);        // turn the red light on
    delay(ledDelay); // wait 50 ms
    digitalWrite(redPin, LOW);         // turn the red light off
    delay(ledDelay); // wait 50 ms
    digitalWrite(redPin, HIGH);        // turn the red light on
    delay(ledDelay); // wait 50 ms
    digitalWrite(redPin, LOW);         // turn the red light off
    delay(ledDelay); // wait 50 ms
    digitalWrite(redPin, HIGH);        // turn the red light on
    delay(ledDelay); // wait 50 ms
    digitalWrite(redPin, LOW);         // turn the red light off
    delay(ledDelay); // wait 50 ms
    delay(10); // delay midpoint by 100ms
   
    }                                                          


void checkPassword(){                  // To check if PIN is corrected, if not, retry!
  if (password.evaluate())
  {  
    if(alarmActive == 0 && alarmStatus == 0)
    {
      activate();
    } 
    else if( alarmActive == 1 || alarmStatus == 1) {
      deactivate();
    }
  } 
  else {
    invalidCode();
  }
}  


void invalidCode()    // display meaasge when a invalid is entered
{
  password.reset();
  lcd.clear();
  lcd.setCursor(1,0);
  lcd.print("INVALID CODE! LOL!");
  lcd.setCursor(5,2);
  lcd.print("TRY AGAIN!");
  digitalWrite(greenLED, LOW);
  digitalWrite(redLED, HIGH);
  delay(2000);
  digitalWrite(redLED, LOW);
  delay(1000);
}


void activate()      // Activate the system if correct PIN entered and display message on the screen
{
  if((digitalRead(reedPin1) == HIGH) && (digitalRead(reedPin2) == HIGH)){
    digitalWrite(redLED, HIGH);
    digitalWrite(greenLED, LOW);
    digitalWrite(2, HIGH);
    lcd.setCursor(0,0);
    lcd.print("SYSTEM ACTIVE!"); 
    alarmActive = 1;
    password.reset();
    delay(2000);
  }
  else{
    deactivate();   // if PIN not corrected, run "deactivate" loop
  }
}


void deactivate()
{


  alarmStatus = 0;
  digitalWrite(redLED, LOW);
  digitalWrite(greenLED, HIGH);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(" SYSTEM DEACTIVATED!");
  digitalWrite(speakerPin, LOW);
  alarmActive = 0;
  password.reset();
  delay(5000);


}