Arduino

Arduino

Kasper

#include <SoftwareSerial.h>

#include <Servo.h>

 

int tempPin = A0;

int servoPin = 9;

int btRxPin = 4;

int btTxPin = 2;

int relayPin = 3;

int atkLedPin = 5;

int ownerLedPin = 6;

int acLedPin = 7;


bool isRelayOn = false;

bool isAttacker = false;

bool isOwner = false;

bool isACOn = false;

bool fakeTemp = true;

bool doorOpen = false;

bool alarmTriggered = false;


SoftwareSerial bt(btRxPin,btTxPin);

Servo servoMotor;


void setup() {

 Serial.begin(9600);

 bt.begin(9600);

 pinMode(relayPin, OUTPUT);

 servoMotor.attach(servoPin);

}


void loop() {

 if(getTemp() < 29) {

  isACOn = false;

 } else {

  isACOn = true;

 }

 if (bt.available()){

   String S = GetLine();

   S.trim();

   if(S == "ft 1"){

    bt.write("OK!\n");

    fakeTemp = true;

   }

   if(S == "ft 0"){

    bt.write("OK!\n");

    fakeTemp = false;

   }

   if(S == "sec attacker 1"){

    bt.write("OK!\n");

    isOwner = false;

    isAttacker = true;

   }

   if(S == "sec owner 1"){

    bt.write("OK!\n");

    isOwner = true;

    isAttacker = true;

   }

   if(S == "relay 1"){

    bt.write("OK!\n");

    isRelayOn = true;

   }

   if(S == "relay 0"){

    bt.write("OK!\n");

    isRelayOn = false;

   }

   if(S == "door 0"){

    bt.write("OK!\n");

    doorOpen = false;

   }

   if(S == "door 1"){

    bt.write("OK!\n");

    doorOpen = true;

   }

 }

 if (Serial.available()){

   String S = GetLineSerial();

   S.trim();

   if(S == "ft 1"){

    Serial.write("OK!\n");

    fakeTemp = true;

   }

   if(S == "ft 0"){

    Serial.write("OK!\n");

    fakeTemp = false;

   }

   if(S == "sec attacker 1"){

    Serial.write("OK!\n");

    isOwner = false;

    isAttacker = true;

   }

   if(S == "sec owner 1"){

    Serial.write("OK!\n");

    isOwner = true;

    isAttacker = true;

   }

   if(S == "relay 1"){

    Serial.write("OK!\n");

    isRelayOn = true;

   }

   if(S == "relay 0"){

    Serial.write("OK!\n");

    isRelayOn = false;

   }

   if(S == "door 0"){

    Serial.write("OK!\n");

    doorOpen = false;

   }

   if(S == "door 1"){

    Serial.write("OK!\n");

    doorOpen = true;

   }

 }


 // CODE //

 if(isOwner){

  digitalWrite(ownerLedPin, HIGH);

  digitalWrite(atkLedPin, LOW);

  openDoor();

  if(alarmTriggered) {

   bt.write("(+) La alarma de seguridad ha sido desactivada. Procesando tarjeta...");

   alarmTriggered = false;

  } 

  bt.write("(!) Bienvenido! El acceso a su propiedad desde: PUERTA_PRINCIPAL fue realizado con exito. ");

  bt.write("(!) La puerta se cerrara automaticamente en 5 segundos.... ");

  delay(5000);

  closeDoor();

 }

 // CODE //

 if(isAttacker){

  digitalWrite(ownerLedPin, LOW);

  digitalWrite(atkLedPin, HIGH);

  doorOpen = false;

  bt.write("(!) Alguien intenta entrar en su propiedad a traves de: PUERTA_PRINCIPAL! He asegurado la puerta y he iniciado la secuencia de alarma, si fue usted, por favor escanee su tarjeta en el lector.");

  alarmTriggered = true;

  closeDoor();

 }

 if(isRelayOn) {

  digitalWrite(relayPin, HIGH);

 } else {

  digitalWrite(relayPin, LOW);

 }

 if(doorOpen){

  openDoor();

 } else {

  closeDoor();  

 }

}


bool openDoor() {

  

}


bool closeDoor(){

  

}

float getTemp(){

 int value=analogRead(A0);   

 float temp =(4.8 * value * 100.0)/1024.0;  

 if(fakeTemp) {

  return 31.2;      

 } else {

  return temp;

 }

  

}


String GetLine(){ 

 String S = "" ;

 if (bt.available()){  

   char c = bt.read(); 

   while ( c != '\n'){

     S = S + c ;

     delay(25) ;

     c = bt.read();

   }

   return( S) ;

 }

}


String GetLineSerial(){ 

 String S = "" ;

 if (Serial.available()){  

   char c = Serial.read(); 

   while ( c != '\n'){

     S = S + c ;

     delay(25) ;

     c = Serial.read();

   }

   return( S) ;

 }

}

Report Page