Go Down

Topic: Casa Domòtica (Read 94 times) previous topic - next topic

astroita



int ledPati = 2; //led del patio
int ldrPati = A0; //sensor ldr del pati
int ledSala = 3; //led de la sala d'estar
int ledHabitacio1 = 4; //led de la habitació amb balcó
int ledHabitacio2 =6 ; //led de la habitació amb la finestra gran
int estado = 0; // estat del modul bluetooh
int trigPin = 9; // sensor ultrasònic
int echoPin = 10; // sensor ultrasònic
int alarma = 11; //alarma que provoca un soroll agut
int ledAlarma = 13; //led que s'encen en cas que s'activi l'alarma
 //servo motor que acciona el garatge
#include <SoftwareSerial.h> // incluir entrada i sortida per el bluetooth

#include <Servo.h> //incluir servo
Servo myservo; // servo nom

int bluetoothTx = 0; // bluetooth tx al 0 pin
int bluetoothRx = 1; // bluetooth rx al 1 pin

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);


// variables
long duration;
int distance;
int safetyDistance;
int pos = 0;



void setup() {

Serial.begin (9600) ;   
pinMode(ledPati, OUTPUT) ; //sortida de la led del pati
pinMode(ldrPati, INPUT) ;  // lectura de la lluminositat del pati
pinMode(ledSala, OUTPUT) ; //sortida de la sala d'estar
pinMode(ledHabitacio1, OUTPUT) ; //sortida de la led habitació petita
pinMode(ledHabitacio2, OUTPUT) ; //sortida de la led habitació gran
pinMode(trigPin, OUTPUT); //sortida del modul bluetooh
pinMode(echoPin, INPUT); //entrada del modul
pinMode(alarma, OUTPUT); //sortida de l'alarma
pinMode(ledAlarma, OUTPUT); //sortida de la led de l'alarma

 myservo.attach(12); // sortida servomotor al pin 9
 
  //Connexió del bluetooh amb l'android
  bluetooth.begin(9600);


}




void loop() {

int ldrNivell = analogRead(ldrPati) ; //PATI
if (ldrNivell <=120){            //Si el nivell de lluminositat és inferior a 120
  digitalWrite(ledPati, HIGH) ;      //Encendre LED del pati
  Serial.println("A la nit no hi ha llum, LED encesa") ; //I escriure això al serial println
}
else{                               //Sino...
  digitalWrite(ledPati, LOW) ;      //La LED s'apaga
  Serial.println("Durant el dia hi ha llum, LED apagada");
}

 if(Serial.available()>0){ //Si es troba disponible...
 estado = Serial.read();   //Actuació sobre la sala d'estar
 }
 if (estado =='1'){                 //Si enviem senyal 1 desde l'app
   digitalWrite(ledSala,HIGH);       //S'encen el LED de la Sala
  }
if(estado=='2'){                      //Si enviem senyal 2 desde l'app
   digitalWrite(ledSala,LOW);         //S'apaga el LED de la sala
  }

 if(Serial.available()>0){ //Si es troba disponible...
 estado = Serial.read(); //Actuació sobre habitació1, habitació amb balcó
 }
 if (estado =='3'){
   digitalWrite(ledHabitacio1,HIGH);
  }
if(estado=='4'){
   digitalWrite(ledHabitacio1,LOW);
  }
 
 if(Serial.available()>0){  //Si es troba disponible...
 estado = Serial.read();  //Actuació sobre habitació2,habitació gran
 }
 if (estado =='5'){
   digitalWrite(ledHabitacio2,HIGH);
  }
if(estado=='6'){
   digitalWrite(ledHabitacio2,LOW);
  }



//ALARMA


{
// Esborra el trigPin, per generar un impuls ''nou''
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

// Estableix el trigPin en estat high per a 10 microsegons, generem un tir,impuls
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW); //Acabem amb l'impuls

//Llegeix l'echoPin, retorna el temps de desplaçament de l'ona sonora en microsegons
duration = pulseIn(echoPin, HIGH);

// Calcular la distancia, la passem a cm
distance= duration*0.034/2;



if(Serial.available()>0){  //Si es troba disponible la connexió bluetooh
 estado = Serial.read();    //Llegeix els bytes donat per el modul bluetooh, rep la informació
}
safetyDistance = distance; //distancia de seguretat és igual a la distància que hi ha

 if (estado =='7'){      //Si rep la senayl 7 (alarma activada)
if (safetyDistance <= 5){      //I la distancia de seguretat són 5 o menys...
  digitalWrite(alarma, HIGH);     //Encen el soroll de l'alarma(buzzer)
  digitalWrite(ledAlarma, HIGH);   //Encen la LED
 
}
 
 }
else{                         //Sino, mantent-lo tot apagat
  digitalWrite(alarma, LOW);
  digitalWrite(ledAlarma, LOW);
}
}
if (estado =='8') {         //I si es troba la senyal 8 (alarma desactivada), apaga tot
 
  digitalWrite(alarma,LOW) ;
  digitalWrite(ledAlarma,LOW) ;
}


// Posar la distancia en el Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);

{


  //GARATGE
  //LLegir el numero bluetooh i escriure la senyal
  if(bluetooth.available()> 0 ) // rebre el numero del bluetooh si es troba disponible
  {
    int servopos = bluetooth.read(); // guardar el nombre
    Serial.println(servopos); // serial print rebut pel bluetooh
    myservo.write(servopos); // rotar el servo a l'angle demanat per l'app
  }
}
}

Go Up