Alarme Residencial
Lucas Guilherme, Arthur Moreira, Mateus Amaral e Mateus Rafael

Introdução

Nosso trabalho consiste em programar o funcionamento de um sistema de alarme residencial, visto que vem sendo um problema a segurança de nossas casas e a nossa própria segurança. Iremos utilizar um sistema de alarme que quando algo chega próximo a residência, ela ascende as luzes (LED), mas se chegar mais próximo ainda, aciona uma sirene (buzzer), e as luzes piscam, fazendo assim um sinal de alerta.

Lista de Materiais:
- Protoboard
- Arduino UNO
- Piezo Buzzer
- Fita de LED RGB 5050
- 3 Transístor TIP 120
- 3 Resistores de 220 Ohm
- Sensor Ultrassônico HC-SR04
- Resistor de 100 Ohm
- 2 Botões NA
- 2 Resistores de 10K Ohm
- Cabos variados

Montagem

Circuito

Programa Arduino

#include <NewTone.h>
#include <NewPing.h>

// Pinos LED RGB compatíveis com PWM devem ser usados.
#define VERMELHO_PINO 10
#define VERDE_PINO 11
#define AZUL_PINO 9

//SENSOR ULTRASSÔNICO
#define TRIGGER_PINO 6 // Pino do Arduino amarrado ao gatilho no sensor ultrassônico.
#define ECHO_PINO 5 // Pino do Arduino amarrado ao pino de eco no sensor ultrassônico.
#define MAX_DISTANCE 400 // Distância máxima que queremos fazer ping parar (em centímetros).

//BUZZER
#define ALARME 7

//BOTÕES
#define REARME 2
#define LIGA_DESLIGA 4

//VARIÁVEIS
float sinVal;
int toneVal;
int buttonStateR = 0;
int buttonStateLD = 0;
int guarda_estado = LOW; //Armazena valores do botão

//SENSOR ULTRASSONICO
NewPing sonar(TRIGGER_PINO, ECHO_PINO, MAX_DISTANCE); // Configuração NewPing de pinos e distância máxima.
boolean triggered = false;

void setup() {

//LED RGB
pinMode(VERMELHO_PINO, OUTPUT);
pinMode(AZUL_PINO, OUTPUT);
pinMode(VERDE_PINO, OUTPUT);

//BUZZER
pinMode(ALARME, OUTPUT);

//RESET LUZES
analogWrite(VERMELHO_PINO, 0);
analogWrite(AZUL_PINO, 0);
analogWrite(VERMELHO_PINO, 0);
delay(300);

//SENSOR ULTRASSONICO
Serial.begin(115200); // Abra o monitor serial a 115200 baud para ver os resultados do ping.

//BOTÕES
pinMode(REARME, INPUT);
pinMode(LIGA_DESLIGA, INPUT);
}

//Botão Liga/Desliga
void loop() {
buttonStateLD = digitalRead(LIGA_DESLIGA);
if (buttonStateLD == HIGH) {
triggered = false;
noNewTone(ALARME);
guarda_estado = !guarda_estado; //Inverte valor da variável
delay(300);
analogWrite(VERMELHO_PINO, 0);
analogWrite(AZUL_PINO, 0);
analogWrite(VERDE_PINO, 0);
}
if (guarda_estado == HIGH) {
loop1();
}
else {
loop();
}
}

//Leitura do sensor ulrassônico e Botão Rearme
void loop1() {
if (triggered == true) {
alarm();
}
else {
delay(50);// Aguarde 50 ms entre pings (cerca de 20 pings / seg). 29ms deve ser o menor atraso entre os pings.
unsigned int uS = sonar.ping(); // Envie ping, obtenha o tempo de ping em microssegundos (uS).
unsigned int distance = uS / US_ROUNDTRIP_CM;
Serial.print("Distância: ");
Serial.print(distance);
Serial.println("cm");
if (distance > 0 & distance < 20) {
triggered = true;
}
if (distance > 19 & distance < 40) {
color(255, 255, 0); //amarelo
}
else{
color(0, 0, 0);
}
}
buttonStateR = digitalRead(REARME);
if (buttonStateR == HIGH) {
triggered = false;
noNewTone(ALARME);
analogWrite(VERMELHO_PINO, 0);
analogWrite(AZUL_PINO, 0);
analogWrite(VERDE_PINO, 0);
loop1();
}
}

//Pisca LEDs e Buzzer
void alarm() {
color(255, 0, 0); //vermelho
delay(100);
color(0, 255, 0); //verde
delay(100);

for (int x = 0; x < 180; x++) {
// converte graus em radianos e obtém o valor de seno
sinVal = (sin(x * (3.1412 / 180)));
// gera uma frequência apartir do valor de seno
toneVal = 2000 + (int(sinVal * 1000));
NewTone(ALARME, toneVal);
}
}

// função auxiliar que nos permite enviar uma cor em um comando
void color (unsigned char vermelho, unsigned char verde, unsigned char azul) // a função de geração de cor
{
analogWrite(VERMELHO_PINO, vermelho);
analogWrite(AZUL_PINO, azul);
analogWrite(VERDE_PINO, verde);
}

Conclusão

Esse projeto tem como objetivo implementar um diferente sistema de alarme do que os atualmente usados nas residências. Ele visa uma maior proteção de nossas casas e a nossa segurança.

Referências

https://www.makeuseof.com/tag/how-to-make-a-simple-arduino-alarm-system/
https://www.youtube.com/watch?v=mSwRuOnOkTE&amp;amp;amp;amp;amp;t=376s
https://www.arduino.cc/reference/pt/#functions



Administrado por: Epaminondas Lage