Sistema de alarme de segurança Arduino

Tempo de leitura: 2 minutes

Cansado de intrusos indesejados (irmãos) entrando em seu quarto durante a quarentena? Então este projeto é ótimo para você. Pessoalmente, fiz este sistema de alarme para que, se meu cachorro entrar em meu quarto para vasculhar minha lata de lixo e espalhar por todo o chão, eu saberei que devo ir impedi-lo. No geral, é um projeto divertido e simples. Eu sou muito novo no Arduino, então este projeto também foi apenas para autoeducação.

 

Coisas usadas neste projeto

Componentes de hardware

  1. Sensor Ultrassônico – HC-SR04 (Genérico) × 1
  2. Arduino UNO × 1
  3. Campainha × 1
  4. LED (genérico) × 1
  5. Resistor 221 ohm× 1
  6. Switch da série PTS 645

 

Esquemas do sistema de segurança Arduino

 

Código do sistema de segurança Arduino

const int trigPin = 11;//Pino para enviar onda sonora
const int echoPin = 10; //Pino para ouvir a volta da onda sonora

int ledPin = 5;//Pino para ligar o Led
int buttonApin = 9;//Pino para armar o alarme
int buttonBpin = 8;//Pino para desarmar o alarme
int value_A;//Valor do pino A
int value_B; //Valor do pino B

int buzzer = 6; // o pino da campainha ativa
int delayTime1= 250;
int delayTime2=250;

long duration; // Tempo de viagem obtido do sensor
int distance; // distância calculada de quão longe o objeto está

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(buttonApin, INPUT_PULLUP);  
  pinMode(buttonBpin, INPUT_PULLUP);  
  pinMode(buzzer, OUTPUT);
  pinMode(12, INPUT);
  Serial.begin(9600);
}

void loop() {
  // Verifique para ver o estado dos botões A e B
  value_A = digitalRead(buttonApin);
  value_B = digitalRead(buttonBpin);
  
  delay(500);
  if (value_A == LOW)
  {
    // Se o alarme estiver armado, ligue o LED
    digitalWrite(ledPin, HIGH);
    while(ledPin, HIGH)
    {
      // Envie uma onda sonora e calcule a distância que o objeto mais próximo está dele.
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
    
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
    
      duration = pulseIn(echoPin, HIGH);
      distance = duration*0.034/2;
    
      Serial.print("Distância:");
      Serial.println(distance);
      while (distance < 98)
      {
          // Se a distância for inferior a 98 cm, soe o alarme e faça o led piscar
          digitalWrite(buzzer,HIGH);
          digitalWrite(ledPin, HIGH);
          delay(delayTime1);//wait for 1ms
          digitalWrite(buzzer,LOW);
          digitalWrite(ledPin, LOW);
          delay(delayTime1);//wait for 1ms
          digitalWrite(buzzer,HIGH);
          digitalWrite(ledPin, HIGH);
          delay(delayTime2);//wait for 2ms
          digitalWrite(buzzer,LOW);
          digitalWrite(ledPin, LOW);
          delay(delayTime2);//wait for 2ms   

          // Se o botão B for pressionado, desligue o alarme e desarme-o
          if (digitalRead(buttonBpin) == LOW)
          {
             break;
          }
        }
        delay(100);
        // Se o botão b for pressionado, desarme o alarme
        if (digitalRead(buttonBpin) == LOW)
        {
          break;
        }
      }
  }
  // Se o alarme for desarmado, desligue o LED
  if (value_B == LOW)
  {
    digitalWrite(ledPin, LOW);
  }
}