Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Construye un Sistema de Seguridad y Alarma con Arduino: Tutorial Paso a Paso

En este proyecto aprenderemos a hacer un Sistema de Seguridad y Alarma con Arduino. Ver video o leer tutorial abajo.

Resumen

La alarma se activa 10 segundos tras pulsar botón A. Detecta objetos con sensor ultrasónico; si detecta algo, buzzer suena. Para parar: introducir contraseña 4 dígitos. Contraseña por defecto: 1234, pero se puede cambiar.

Construye un Sistema de Seguridad y Alarma con Arduino: Tutorial Paso a Paso

Botón B: menú cambio contraseña. Primero pide contraseña actual, luego nueva de 4 dígitos. Tras cambiar, alarma solo se desactiva con nueva contraseña. Si fallas: "Wrong! Try Again".

Componentes Necesarios

Arduino, sensor ultrasónico, LCD, buzzer, keypad 4×4.

Construye un Sistema de Seguridad y Alarma con Arduino: Tutorial Paso a Paso
  • Keypad 4×4
  • LCD 16×2
  • Sensor ultrasónico HC-SR04
  • Buzzer
  • Arduino (Uno/Nano/Mega)
  • Protoboard y jumpers

Esquema de Circuito Alarma Arduino


Construye un Sistema de Seguridad y Alarma con Arduino: Tutorial Paso a Paso

Buzzer: 1 pin PWM. Keypad 4×4: 8 pines (4 filas, 4 columnas). Cada botón = pulsador que cierra fila-columna. Ejemplo: fila 1 LOW, columnas HIGH → pulsar '3' → columna 3 LOW → detectado.

Construye un Sistema de Seguridad y Alarma con Arduino: Tutorial Paso a Paso

Ultrasónico y LCD: ver mis tutoriales detallados previos.

Código Fuente Alarma Arduino


Código en secciones para mejor entendimiento. Completo al final.

Librerías: LiquidCrystal (estándar) y Keypad (instalar adicional). Definir pines buzzer, ultrasónico, variables, teclas keypad, objetos keypad y LCD.

#include <LiquidCrystal.h> #include <Keypad.h>
#define buzzer 8 #define trigPin 9 #define echoPin 10
long duration; int distance, initialDistance, currentDistance, i;
int screenOffMsg = 0;
String password = "1234"; String tempPassword;
boolean activated = false, isActivated, activateAlarm = false;
boolean alarmActivated = false, enteredPassword;
boolean passChangeMode = false, passChanged = false;

const byte ROWS = 4, COLS = 4;
char keypressed;
char keyMap[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {14, 15, 16, 17};
byte colPins[COLS] = {18, 19, 20, 21};
Keypad myKeypad = Keypad(makeKeymap(keyMap), rowPins, colPins, ROWS, COLS);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);

void setup() {
  lcd.begin(16,2);
  pinMode(buzzer, OUTPUT);
  pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);
}

Setup: solo inicializar LCD y pines buzzer/ultrasónico.

Loop: comprobamos si alarma activada. Si no: pantalla inicio con opciones A (activar) y B (cambiar pass). myKeypad.getKey() lee tecla. Si 'A': beep 200ms, activateAlarm = true.

if (!alarmActivated) {
  if (screenOffMsg == 0) {
    lcd.clear(); lcd.setCursor(0,0); lcd.print("A - Activate");
    lcd.setCursor(0,1); lcd.print("B - Change Pass");
    screenOffMsg = 1;
  }
  keypressed = myKeypad.getKey();
  if (keypressed == 'A') {
    tone(buzzer, 1000, 200); activateAlarm = true;
  }
}

Si activateAlarm: cuenta regresiva 9 seg en LCD, beep cada segundo. Luego "Alarm Activated!", mide distancia inicial, flags activados.

if (activateAlarm) {
  lcd.clear(); lcd.setCursor(0,0); lcd.print("Alarm will be");
  lcd.setCursor(0,1); lcd.print("activated in");
  int countdown = 9;
  while (countdown != 0) {
    lcd.setCursor(13,1); lcd.print(countdown);
    countdown--; tone(buzzer, 700, 100); delay(1000);
  }
  lcd.clear(); lcd.setCursor(0,0); lcd.print("Alarm Activated!");
  initialDistance = getDistance();
  activateAlarm = false; alarmActivated = true;
}

Si alarmActivated: ultrasónico mide continuamente. Si distancia actual + 10cm < distancia inicial → objeto detectado → buzzer 1kHz + enterPassword().

if (alarmActivated) {
  currentDistance = getDistance() + 10;
  if (currentDistance < initialDistance) {
    tone(buzzer, 1000); lcd.clear(); enterPassword();
  }
}

enterPassword(): imprime "*** ALARM ***" y "Pass>". Bucle while lee teclas, acumula en tempPassword (muestra *). >4 dígitos o '#' → limpia. '*' → compara con password. Si igual: desactiva alarma, para buzzer, vuelve a inicio. Si distinta: "Wrong! Try Again" 2seg, reintenta.

void enterPassword() {
  int k=5; tempPassword=""; activated=true;
  lcd.clear(); lcd.setCursor(0,0); lcd.print(" *** ALARM *** ");
  lcd.setCursor(0,1); lcd.print("Pass>");
  while(activated) {
    keypressed = myKeypad.getKey();
    if (keypressed != NO_KEY) {
      if (keypressed >= '0' && keypressed <= '9') {
        tempPassword += keypressed; lcd.setCursor(k,1); lcd.print("*"); k++;
      }
    }
    if (k > 9 || keypressed == '#') { /* reset */ }
    if (keypressed == '*') {
      if (tempPassword == password) {
        activated = false; alarmActivated = false; noTone(buzzer); screenOffMsg = 0;
      } else {
        lcd.setCursor(0,1); lcd.print("Wrong! Try Again"); delay(2000);
        lcd.clear(); lcd.setCursor(0,0); lcd.print(" *** ALARM *** ");
        lcd.setCursor(0,1); lcd.print("Pass>");
      }
    }
  }
}

Cambio contraseña (tecla 'B'): similar. Primero pide contraseña actual. Si correcta → "Set New Password" → guarda nueva en password.

else if (keypressed == 'B') { /* ... lógica cambio pass ... */ }

Código Completo del Sistema Alarma Arduino

/* Arduino Security and Alarm System by Dejan Nedelkovski, www.HowToMechatronics.com */
#include <LiquidCrystal.h> #include <Keypad.h>
#define buzzer 8 #define trigPin 9 #define echoPin 10
// ... variables ...
void setup() { /* ... */ }
void loop() { /* ... lógica completa: activateAlarm, alarmActivated, enterPassword, cambio pass ... */ }
void enterPassword() { /* ... */ }
long getDistance() {
  digitalWrite(trigPin, LOW); delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;
  return distance;
}

Toque Final


Caja eléctrica plástica para meter todos los componentes y conectarlos.

Construye un Sistema de Seguridad y Alarma con Arduino: Tutorial Paso a Paso

¡Eso es todo! Espero que disfrutaras el proyecto. Preguntas en comentarios.

Proceso de manufactura

  1. Sistema de Asistencia RFID Fiable con Arduino y Python
  2. Crea Animaciones y Juegos en LCD 16×2 con Arduino UNO
  3. SERENA: Sistema de Alarma Personalizado Arduino Mega 2560 con Pantalla TFT LCD Táctil
  4. Evaluación de seguridad de sistemas de alarma con Arduino y módulos RF 433 MHz
  5. Detector de frecuencia de audio con Arduino – Mide los picos de sonido más intensos
  6. Construye un sistema de automatización y seguridad del hogar inteligente con 1Sheeld
  7. Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
  8. Construye un voltímetro DIY con Arduino y pantalla Nokia 5110 – Guía paso a paso
  9. Construye un Temporizador Regresivo Fiable con Arduino y Pantalla de 7 Segmentos SparkFun
  10. Sistema de Ventilación Inteligente para Sótanos: Control de Humedad con Arduino
  11. Control Arduino UNO desde Python 3 – Envío de Comandos y Demo LED