miércoles, 3 de junio de 2015

Sensor de proximidad y alarma de llamada al Móvil.

/*
Sensor de proximidad y al ser inferior a 10cm
envia un pulso de alarma por  el pin 13 y hace una llamada
Se puede seguir el proceso en Monitor Serial.

 HC-SR04 conexiones:
  VCC al arduino 5v
  GND al arduino GND
  Echo al Arduino pin 9
  Trig al Arduino pin 10
 
Descargar planos de conexiones en http://elprofegarcia.com/
 */

#include <SoftwareSerial.h>
SoftwareSerial mySerial(7, 8); // configure software serial port
#define Pecho 9
#define Ptrig 10
long duracion, distancia;  

void setup() {
  mySerial.begin(19200);
  mySerial.print("AT+CLIP=1\r"); // cambio a on notificacion ID LLamanador
  delay(100);
  Serial.begin (19200);       // inicializa el puerto seria a 19200 baudios
  pinMode(Pecho, INPUT);     // define el pin 6 como entrada (echo)
  pinMode(Ptrig, OUTPUT);    // define el pin 7 como salida  (triger)
  pinMode(13, 1);            // Define el pin 13 como salida
  }
 
void callSomeone()
{
  mySerial.println("ATD60947****;"); // numero a llamar
  delay(10000);   // wait for 10 seconds...
  mySerial.println("ATH");   // fin de llamada
}
 
void loop() {
 
  digitalWrite(Ptrig, LOW);
  delayMicroseconds(2);
  digitalWrite(Ptrig, HIGH);   // genera el pulso de triger por 10ms
  delayMicroseconds(10);
  digitalWrite(Ptrig, LOW);
 
  duracion = pulseIn(Pecho, HIGH);
  distancia = (duracion/2) / 29;            // calcula la distancia en centimetros
 
  if (distancia >= 500 || distancia <= 0){  // si la distancia es mayor a 500cm o menor a 0cm
    Serial.println("---");                  // no mide nada
  }
  else {
    Serial.print(distancia);           // envia el valor de la distancia por el puerto serial
    Serial.println("cm");              // le coloca a la distancia los centimetros "cm"
    digitalWrite(13, 0);               // en bajo el pin 13
  }
 
   if (distancia <= 10 && distancia >= 1){
    digitalWrite(13, 1);                     // en alto el pin 13 si la distancia es menor a 10cm
    Serial.println("Alarma.......Llamando");         // envia la palabra Alarma por el puerto serial
    callSomeone(); // call someone
}
  delay(400);                                // espera 400ms para que se logre ver la distancia en la consola
}

No hay comentarios:

Publicar un comentario