En este video, te mostraré cómo construir una alarma casera utilizando un Arduino, un sensor infrarrojo y un módulo micro SD para reproducir voz. Con este proyecto, podrás crear un sistema de seguridad básico para tu hogar u oficina. Te guiaré paso a paso a través del montaje del circuito, la programación del Arduino y la demostración del sistema en funcionamiento. No te pierdas esta tutorial en la creación de esta alarma
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
Componentes electrónicos
Arduino mini pro
El Arduino Pro Mini es una placa de microcontrolador basada en el ATmega328 .
Tiene 14 pines de entrada / salida digital (de los cuales 6 se pueden usar como salidas PWM), 6 entradas analógicas, un resonador integrado, un botón de reinicio y orificios para montar encabezados de pines. Se puede conectar un encabezado de seis pines a un cable FTDI o una placa de conexión Sparkfun para proporcionar alimentación USB y comunicación a la placa.
El Arduino Pro Mini está diseñado para su instalación semipermanente en objetos o exposiciones. La placa viene sin encabezados pre montados, lo que permite el uso de varios tipos de conectores o la soldadura directa de cables. El diseño del pin es compatible con el Arduino Mini.
Hay dos versiones del Pro Mini. Uno corre a 3.3V y 8 MHz, el otro a 5V y 16 MHz.
Microcontrolador | ATmega328 * |
Fuente de alimentación de la placa | 3,35-12 V (modelo de 3,3 V) o 5-12 V (modelo de 5 V) |
Voltaje de funcionamiento del circuito | 3.3V o 5V (dependiendo del modelo) |
Pines de E / S digitales | 14 |
Pines PWM | 6 6 |
UART | 1 |
SPI | 1 |
I2C | 1 |
Pines de entrada analógica | 6 6 |
Interrupciones externas | 2 |
Corriente CC por pin de E / S | 40 mA |
Memoria flash | 32 KB de los cuales 2 KB utilizados por el gestor de arranque * |
SRAM | 2 KB * |
EEPROM | 1 KB * |
Velocidad de reloj | 8 MHz (versiones de 3.3V) o 16 MHz (versiones de 5V) |
Pines hembra
Zócalo para arduino nano
Módulo receptor infrarrojo ky-022
Tamaño: 6.4 * 7.4 * 5.1MM, ángulo de aceptación 90 °, voltaje de trabajo 2.7-5.5V.
Frecuencia 37.9KHZ, recibiendo la distancia 18 m.
Rechazo de luz diurna hasta 500LUX, capacidad de interferencia electromagnética, IC dedicado de infrarrojos incorporado.
Ampliamente utilizado: estéreo, TV, VCR, CD, decodificadores, marco de fotos digital, audio para el automóvil, juguetes de control remoto, receptores de satélite, disco duro, aire acondicionado, calefacción, ventiladores, iluminación y otros electrodomésticos.
Pinout:
1 …. GND (-)
2 …. + 5V
3 …. Salida (S)
Modulo KY-003 Sensor Efecto Hall Magnético
El módulo KY-003 consta de un sensor de efecto Hall 3144, una resistencia de 680Ω y un LED. Es compatible con plataformas electrónicas como Arduino, Pic y Raspberry Pi, entre otras.
El 3144 es un sensor del tipo Digital. Nos entrega un valor Alto si existe un campo magnético, y bajo si no hay campo magnético cercano.
Hay dos tipos de sensores hall digitales:
- Switch, se activan al acercar el polo de un imán, y se desactivan al retirar el polo
- Del tipo Latch, se activan al acercar un polo, y mantienen su valor hasta que se acerca un polo contrario.
- En este video usaremos el sensor Hall A3144, de tipo digital Switch
ESPECIFICACIONES TÉCNICAS
- Voltaje de funcionamiento 4.5 Volts a 24 Volts CD
- Rango de temperatura de funcionamiento -40 °C a 85 °C [ -40 °F a 185 °F]
- Dimensiones 18.5 mm x 15 mm [0.728 in x 0.5905 in]
- Corriente sin carga 3 mA
- Corriente con carga 8 mA (Cuando detecta un campo magnético)
PinOut
Un resistor de 330 Ohm
Un diodo led de 5 mm
Módulo Buzzer
PCB
Descargar archivo gerber –> pcb alarma ir
Memoria micro SD: Aquí guardaremos los archivos de audio en formato wav después de la conversión de los archivos, para adecuarla a nuestro proyecto
Módulo lector micro SD: Este módulo nos permite hacer una interface escribir o leer archivos, en el proyecto desarrollado, hace de interface de lectura de los archivos de audio, con el arduino y la tarjeta micro sd.
Un parlante (se recomienda un amplificador)
Circuito
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
#include <SD.h> // Librería para interectuar con la tarjeta SD #define SD_ChipSelectPin 10 //usando el pin digital 10 en arduino nano 328, puedes usar otros pines #include <TMRpcm.h> // Es necesario incluir esta biblioteca para reproducir audio #include <SPI.h> #include <Wire.h> #include <IRremote.h> TMRpcm tmrpcm; // crear un objeto tmrpcm //Definición de pines int RECV_PIN = 2; int magnetPin = 5; int buzzerPin = 8; int alarma = 0; int sensorM; int activada = 0; const int analogOutPin = A0;//Luz led IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(magnetPin, INPUT); pinMode(buzzerPin, OUTPUT); tmrpcm.speakerPin = 9; //5,6,11 or 46 en Mega, 9 en Uno, Nano, etc if (!SD.begin(SD_ChipSelectPin)) { // ver si la tarjeta está presente y se puede inicializar Serial.println("Fallo la tarjeta SD "); return; } } void loop() { //Leemos un código por infrarrojos if (irrecv.decode(&results)) { Serial.println(results.value, HEX);// Lo convertimos a valor hexadecimal irrecv.resume(); sensorM = digitalRead(magnetPin);//Leemos el estdo del sensor mágnetico Serial.print("sensorM: "); Serial.println(sensorM); //Si se cumple este código la alarma queda armada if (results.value == 0xFFB24D ){ //Pero si el sensor mágentico detecta la puerta cerrada if (sensorM == LOW){ analogWrite(analogOutPin, 255);//Encendesmos el led alarma = 1 ; buzzer();//activamos el buzzer por tiempo breve Serial.println("Alarma armada"); tmrpcm.play("armada.wav");//Mensaje de voz alrma armada delay(1000); } //Si está la puerta abierta no arma la alarma if (sensorM == HIGH){ tmrpcm.play("puerta.wav");//Mensaje de voz puerta abierta Serial.println("Verifica que el iman esté serca del sensor magnético"); } } //Desarma la alarma o la desactiva si está sonando if (results.value == 0xFF6897) { analogWrite(analogOutPin, 0);//Apaga el led alarma = 0; buzzer();//activamos el buzzer por tiempo breve tambien desactiva el buzzer si estaba sonando por el dispara de alarma Serial.print("alarma: "); Serial.println(alarma); Serial.println("Alarma desactivada"); activada = 0; tmrpcm.play("desac.wav");//Mensaje de voz alarma desactivada } } //Leemos el estado del sensor magnético y si la alarma está armada y el iman lejos del sensor empieza a sonar la alarma sensorM = digitalRead(magnetPin); if(sensorM == HIGH && alarma == 1)// { if(activada == 0){ tmrpcm.play("activada.wav");//Mensaje de voz alarma activada delay(1500); digitalWrite(buzzerPin, HIGH);//Activa el buzzer Serial.println("Alarma activada"); activada = 1; } } } //Función que para hacer cortos pitidos del buzzer void buzzer(){ digitalWrite(buzzerPin, HIGH); delay(100); digitalWrite(buzzerPin, LOW); delay(100); } |
PROYECTO RECOMENDADO