#14 Alarma para tu casa con PICARO y 4-Relay-Shield

Introducción

Como principiante de la electrónica, seguramente te has preguntado como activar un dispositivo que se conecte a la red eléctrica, sea un motor, una máquina o cualquier cosa que necesite ser conectada a 110 o 220 VAC. Para eso es necesario trabajar con un relé. Un relé es un interruptor que podemos activar mediante una señal eléctrica. En su versión más simple es un pequeño electro-imán que cuando lo excitamos mueve la posición de un contacto eléctrico de conectado a desconectado o viceversa. De esta manera, permite el paso de la corriente a lo que deseamos encender. En este caso trabajaremos con nuestra tarjeta 4 Relay Shield, que consta de 4 relés como salidas y 4 entradas opto acopladas, es decir, que con este shield puedes utilizar como señal de entrada un voltaje más alto (0 a 30VDC) de los que soporta tu tarjeta PICARO directamente (0 a 5VDC), evitando que algunas partes de tu circuito se vean afectadas por corrientes o voltajes excesivos.

Puedes acceder a la información del shield en este link, verás que es muy útil y de gran ayuda. Para probar nuestra tarjeta 4-Relay Shield, vamos a imaginar la entrada de nuestro hogar donde la luz de la fachada de la casa se encienda al detectar que es de noche, de igual manera podemos encenderla o apagar mediante un interruptor. También tendremos un botón que activará el sistema de seguridad de la casa, es decir, si se abre la puerta después de accionar el sistema de seguridad se activará una alarma, para avisar que alguien entro a nuestro hogar. Debes tener cuidado al activar la sirena, ya que al conectarla a los 12VDC produce un sonido muy fuerte que puede lastimar tus oídos, procura probarla estando alejada de ti o con un voltaje menor.

 

Cuando el relé 1 se activa, da continuidad la ampolleta que se alimenta con 220v, cuando se activa el relé 3 suena la sirena indicando que se infringió el sistema de seguridad.

Pasos a seguir:

#1   Armar el circuito según la imagen

#2   Abrir el IDE de Arduino y conectar la tarjeta PICARO al computador

#3   Seleccionar el tipo de tarjeta como Arduino Uno

#4   Elegir el puerto serial en que se encuentra conectada la tarjeta PICARO

#5   Copiar el código de ejemplo al IDE, compilarlo y subirlo

Listado de componentes :

Código:

Antes de comenzar con el código, debes saber que las entradas en nuestra tarjeta 4 Relay-Shield trabajan con lógica inversa, es decir, cuando la tarjeta recibe una señal de 5VDC en nuestro código lo vemos como un 0 (bajo) y cuando recibe un 0 lo ve como 5V. En este proyecto lo que haremos es leer las entradas opto acopladas para obtener el estado de los interruptores y una entrada analógica donde estará conectado el LDR (sensor de luz). Se realizan tres funciones que son llamadas en la función void loop(), donde la primera función es chequearsensor() que se encarga de comparar si es de día o de noche dependiendo de lo que se reciba por la entrada analógica, en la función chequearInterruptor(), verificamos si el botón que está conectado a la entrada opto acoplada 1, pasa de bajo a alto quiere decir que lo apaga y del modo contrario lo enciende y por último tenemos la función de sistema de seguridad, donde verificamos si se activa el sistema por medio de un interruptor y luego se chequea el sensor de la puerta que está conectado a la entrada opto acoplada 2. Si se encuentra cerrada, envía un alto o si está abierta envía un bajo.
// Optoacopladores en las entradas digitales D4, D5, D6 y D7

int Opto4 = 7;

int Opto3 = 6;

int Opto2 = 5;

int Opto1 = 4;

// Las entradas análogas se comportan como salidas digitales A0, A1, A2 y A3

int Relay1 = A0;

int Relay2 = A1;

int Relay3 = A2;

int Relay4 = A3;

//Estado de la lectura de los optoacopladores

int estado1;

int estado2;

int estado3;

int estado4;

int dia;

//Variables para comparar

int estadoBoton = 0; // Si es 0: Encendido ; Si es 1: Apagado

int estadoAnterior = LOW; //almacena el estado anterior del interruptor de luz

int botonSeguridad = LOW; // Activa seguridad de casa

int puerta = HIGH ; //Sensor magnetico puerta

int auxSensor;

int auxBoton;

int sensorActual;

void setup() {

// configurando los pines como salidas digitales

  pinMode(Relay1, OUTPUT);

  pinMode(Relay2, OUTPUT);

  pinMode(Relay3, OUTPUT);

  pinMode(Relay4, OUTPUT);

 

// configurando los pines como entradas digitales

  pinMode(Opto1, INPUT);

  pinMode(Opto2, INPUT);

  pinMode(Opto3, INPUT);

  pinMode(Opto4, INPUT);

  pinMode(A5, INPUT);

  Serial.begin(9600);

  // Primera Lectura

  estadoBoton = digitalRead(Opto4);

  estadoAnterior = estadoBoton;

  estado3 = analogRead(A5);

  chequearSensor(estado3);

}

void loop(){

// Lectura de los optoacopladores

  estado1 = digitalRead(Opto1);

  estado2 = digitalRead(Opto2);

  estado3 = analogRead(A5);

  estado4 = digitalRead(Opto4);

 SistemaSeguridad(); //Se llama la funcion de seguridad

    // lee el valor del estado del boton

    estadoBoton = digitalRead(Opto4); // lee el estado del interruptor de luz

    Serial.println(estado3); //Salida del sensor de luz (Solo con proposito para visualizar)

    chequearSensor(estado3); // Llama a la funcion chequeando el LDR

    chequearInterruptor(); //Llama a la funcion para chequear el interruptor

  }

  void chequearSensor(int x){

    if((x <= 350) && (auxSensor == 1)){ // Como el LDR tiene salida analogica, se debe selecciona un ragon para comparar, en este caso es 350

      Serial.println("Es de noche");

      delay(600);

      sensorActual = 0; // Se utiliza para saber cuando es de dia o de noche

      auxSensor = sensorActual;

      digitalWrite(Relay1, HIGH); // Enciende la LUZ

    } else if ((x > 350) && (auxSensor == 0)) {

      Serial.println("Es de dia");

      delay(600);

      sensorActual = 1; // Es de Día

      auxSensor = sensorActual;

      digitalWrite(Relay1, LOW); // apaga la LUZ

    }

  }

  void chequearInterruptor(){

   if ((estadoBoton == 1) && (auxBoton == 0)) { // Se compara con el estado anterior

    Serial.println("Apagar");

   delay(600);

    auxBoton = estadoBoton;

    digitalWrite(Relay1, LOW); // Interruptor Apagado

  }else if((estadoBoton == 0) && (auxBoton == 1)){ // Se compara con el estado anterior

    Serial.println("Encender");

    delay(600);

    auxBoton = estadoBoton;

    digitalWrite(Relay1, HIGH); // Interruptor Encendido

  }

}

void SistemaSeguridad(){

  botonSeguridad= digitalRead(Opto1);

  puerta= digitalRead(Opto2);

  if (botonSeguridad == 1){ // Se desactiva el boton de seguridad

    Serial.println("Sin Seguridad");

    digitalWrite(Relay2, LOW);

    digitalWrite(3, LOW);

    digitalWrite(2, HIGH);

  }

  if ((botonSeguridad ==0) && (puerta == HIGH)){ // Si el boton de seguridad esta activo y la puerta esta abierta

    digitalWrite(Relay2, HIGH); // Activa la alarma

    Serial.println("Puerta abierta");

    digitalWrite(3, HIGH);

    digitalWrite(2, LOW);

  }

  else if ((botonSeguridad ==0) && (puerta == LOW)) {

    digitalWrite(Relay2, LOW);

    Serial.println("Puerta cerrada");

      digitalWrite(3, HIGH);

    digitalWrite(2, LOW);

  }

}

 

Demostración

Acá tenemos un vídeo donde podremos observar el funcionamiento de nuestro circuito, como se explicó anteriormente, tenemos un sistema de iluminación automático, que se activa al percibir que es de noche (ausencia de luz). De igual manera, tenemos un interruptor que puede encender o apagar la ampolleta cuando sea presionado y por último, tenemos un sistema de seguridad, que se activa por medio de otro interruptor. Si el sistema está activo y se abre la puerta se activará una Sirena indicando que se infringió el sistema.

¿En busca del Kit PICARO?

Con el PICARO Starter Kit podrás realizar estos ejemplos ¡y mucho más!
Producto Chileno. Encuéntralo en MCI Electronics.

Contacto

Direccion Luis Thayer Ojeda 0115 Of. 1105, Providencia, Santiago, Chile.

Phone: +56 2 2333 9579 / +56 2 2231 9268

Horario Lunes a Viernes de 8:00 a 18:00

Nosotros

En MCI Electronics, estamos aquí para mantener la industria en movimiento. Nuestro objetivo es difundir y hacer accesible el uso de la electrónica a todo aquel que tenga el interés. Para ello nos esforzamos para traer los mejores componentes y módulos de manera que puedas aprender desarrollando tus propios proyectos.

Somos tu aliado en electrónica.

Suscríbete a nuestro boletín