Skip to the content
×
  • Testers League
  • Comparativas
  • Casos de éxito
  • Arduino
  • Guía de compras
    • Escáners 3D
    • Impresoras 3D
    • Grabadoras Láser
  • Tienda
×

Proyecto Arduino: Alarma Inteligente

TP3D
agosto 30, 2024
0

Este proyecto tiene como objetivo crear una alarma sencilla que se activa cuando una puerta se abre. Utilizaremos un sensor magnético de puerta para detectar el estado de la puerta y un buzzer para emitir una alarma sonora. Opcionalmente, un LED también se encenderá para indicar visualmente que la alarma está activa. Este sistema es ideal para alertar sobre la apertura de una puerta en lugares como casas, oficinas o almacenes.

¿Qué podés hacer con este sistema?

  • Detectar Aperturas de Puerta: El sistema usa un sensor magnético para monitorear si la puerta está abierta o cerrada.
  • Activar Alarma Sonora: Cuando se detecta que la puerta está abierta, el buzzer emite un sonido fuerte para alertar sobre el acceso no autorizado.
  • Notificaciones Remotas (Opcional): Si se integra un módulo de comunicación, como un GSM o Wi-Fi, puedes recibir alertas en tu teléfono móvil o enviar notificaciones por correo electrónico.
Materiales necesarios:
  • Arduino Uno
  • Sensor de puerta (Interruptor magnético o reed switch)
  • Buzzer o sirena de 5V
  • Resistencia de 10k ohmios
  • LED (opcional para indicación visual)
  • Módulo de comunicación (como un módulo GSM o Wi-Fi, opcional)
  • Cables y protoboard
  • Fuente de alimentación para el Arduino

Código Ejemplo para Arduino:

const int sensorPin = 2;   // Pin al que está conectado el sensor

const int buzzerPin = 8;   // Pin al que está conectado el buzzer

const int ledPin = 13;     // Pin al que está conectado el LED (opcional)

void setup() {

  pinMode(sensorPin, INPUT);

  pinMode(buzzerPin, OUTPUT);

  pinMode(ledPin, OUTPUT);

  Serial.begin(9600);

}

void loop() {

  int sensorState = digitalRead(sensorPin);

  if (sensorState == HIGH) {

    digitalWrite(buzzerPin, HIGH);   // Activar alarma

    digitalWrite(ledPin, HIGH);      // Encender LED (opcional)

    Serial.println(“¡Puerta abierta!”);

  } else {

    digitalWrite(buzzerPin, LOW);    // Desactivar alarma

    digitalWrite(ledPin, LOW);       // Apagar LED (opcional)

    Serial.println(“Puerta cerrada.”);

  }

  delay(100);

}

¡Conseguí los materiales!

Paso 1: Añadir un Módulo de Comunicación (Notificaciones Remotas)

  • Componente: Módulo GSM (como SIM900) o módulo Wi-Fi (como ESP8266).
  • Funcionalidad: Recibir alertas SMS o notificaciones por correo electrónico cuando se activa la alarma.
  • Código Adicional: Añadir comandos AT para enviar mensajes SMS con el módulo GSM.

Paso 2: Incorporar una Pantalla LCD para Información

  • Componente: Pantalla LCD 16×2 o 20×4 con I2C.
  • Funcionalidad: Mostrar mensajes como “Puerta Cerrada”, “Puerta Abierta”, “Alarma Activa”, etc.
  • Código Adicional: Implementar librerías como LiquidCrystal_I2C para controlar la pantalla.

Paso 3: Añadir un Teclado Matricial para Activar/Desactivar la Alarma

  • Componente: Teclado matricial 4×4.
  • Funcionalidad: Usar un código PIN para armar o desarmar la alarma.
  • Código Adicional: Integrar la librería Keypad y lógica para manejar el PIN.

Paso 4: Implementar un Sensor PIR para Detectar Movimiento

  • Componente: Sensor PIR (sensor de movimiento).
  • Funcionalidad: Activar la alarma si se detecta movimiento, incluso si la puerta no se abre.
  • Código Adicional: Lógica para leer el sensor PIR y activar la alarma en consecuencia.

Paso 5: Agregar un Registro de Eventos en una Tarjeta SD

  • Componente: Módulo lector de tarjetas SD.
  • Funcionalidad: Registrar cada evento (puerta abierta, alarma activada) en una tarjeta SD.
  • Código Adicional: Uso de la librería SD para manejar archivos en la tarjeta SD.

Paso 6: Optimización del Código

  • Debouncing para el Sensor de Puerta: Usar debouncing para evitar falsas alarmas por ruido eléctrico.
  • Modo Sleep: Implementar modos de ahorro de energía cuando no se detecte actividad.

#include <LiquidCrystal_I2C.h>

#include <Keypad.h>

#include <SoftwareSerial.h>

// Definiciones para componentes

const int sensorPin = 2; 

const int buzzerPin = 8;

const int pirPin = 7;     // Sensor PIR

const int sdCardPin = 10; // Módulo SD (pin CS)

LiquidCrystal_I2C lcd(0x27, 16, 2);

SoftwareSerial gsmSerial(9, 10); // Pines para el módulo GSM

// Definiciones para el teclado matricial

const byte rows = 4;

const byte cols = 4;

char keys[rows][cols] = {

  {‘1′,’2′,’3′,’A’},

  {‘4′,’5′,’6′,’B’},

  {‘7′,’8′,’9′,’C’},

  {‘*’,’0′,’#’,’D’}

};

byte rowPins[rows] = {9, 8, 7, 6};

byte colPins[cols] = {5, 4, 3, 2};

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);

// Variables de estado

bool alarmArmed = false;

String inputCode = “”;

void setup() {

  pinMode(sensorPin, INPUT);

  pinMode(buzzerPin, OUTPUT);

  pinMode(pirPin, INPUT);

  lcd.begin();

  gsmSerial.begin(9600); // Configuración para el módulo GSM

  Serial.begin(9600);

  lcd.print(“Sistema de Alarma”);

  delay(2000);

}

void loop() {

  char key = keypad.getKey();

  if (key) {

    if (key == ‘#’) {

      if (inputCode == “1234”) {

        alarmArmed = !alarmArmed;

        lcd.clear();

        lcd.print(alarmArmed ? “Alarma Armado” : “Alarma Desarmado”);

      }

      inputCode = “”;

    } else {

      inputCode += key;

    }

  }

  if (alarmArmed) {

    int sensorState = digitalRead(sensorPin);

    int pirState = digitalRead(pirPin);

    if (sensorState == HIGH || pirState == HIGH) {

      digitalWrite(buzzerPin, HIGH);

      lcd.clear();

      lcd.print(“ALERTA! Puerta/PIR”);

      gsmSerial.println(“AT+CMGF=1”);

      delay(100);

      gsmSerial.println(“AT+CMGS=\”+1234567890\””);

      delay(100);

      gsmSerial.print(“Alarma activada!”);

      gsmSerial.write(26); // Enviar mensaje

    } else {

      digitalWrite(buzzerPin, LOW);

      lcd.clear();

      lcd.print(“Sistema Normal”);

    }

  }

}

Encontrá en nuestra web todo lo que buscás para tus proyectos, desde componentes hasta kits completos. ¡Conseguí lo necesario para transformar tus ideas en realidad!

TP3D

No te pierdas nuestras próximas notas, donde vamos a presentar otros proyectos Arduino innovadores. ¡Seguí nuestras publicaciones y descubrí nuevas ideas cada semana!

Hasta la próxima.

blogger Image

TP3D

Publicaciones relacionadas

Proyecto arduino: Válvula Eléctrica para Cultivo

Leer más

Proyecto Arduino: Juego Memotécnico con Keypad

Leer más

Proyecto Arduino: Reloj y Termómetro Digital

Leer más

Agrega tu comentario

Cancel Reply

Main Menu
  • Industria
  • Odontología
  • Joyería
  • Educación
Main Menu
  • Industria
  • Odontología
  • Joyería
  • Educación
Main Menu
  • Industria
  • Odontología
  • Joyería
  • Educación

Social Chat is free, download and try it now here!