Table of Contents

Security Alarm

Autor

Tomescu Petru-Alin
Grupa: 331CC

Introducere

Proiectul descrie crearea unui sistem de securitate ce poate să detecteze intrușii prin intermediul unui senzor PIR și care comunică cu telefonul mobil.

Scopul proiectului este de a obține un sistem de alarmă, de dimensiuni reduse, capabil să atenționeze utilizatorii, atât prin intermediul unor indicatori fizici ai săi precum un ecran LCD și un buzzer, cât și prin transmiterea unor alerte la distanță, pe telefon. Oprirea alarmei se poate face fie fizic prin introducerea unei parole, fie de la distanță, prin intermediul aplicației.

Consider că proiectul devine util pentru protejarea unei zone împortiva accesului nedorit, oferind protecție continuă prin capacitatea sa de alertare la distanță.

Descriere generală

La pornirea sistemului, acesta va citi parola de securitate, salvată pe un card SD. Totodată, sistemul oferă utilizatorului posibilitatea de a o reseta. Pentru a avea acces la conținutul cardului SD și a putea realiza operații (citire/scriere), va fi utilizat un modul de card SD. Urmează apoi inițializarea componentelor, durând aproximativ un minut pentru acomodarea senzorului PIR cu camera în care se află.

Atunci când senzorul PIR detectează mișcare, buzzer-ul sistemului de securitate va începe să scoată un zgomot de atenționare. Sistemul va folosi modulul bluetooth pentru a transmite că alarma a fost activată și pe telefonul mobil. Oprirea alarmei se realizează direct din aplicație, sau prin apăsarea unui buton pentru a activa o întrerupere a sistemului, ce permite apoi utilizatorului să introducă parola de securitate (anterior setată sau resetată).

În timpul funcționării, un LCD va fi utilizat cu scopul de a afișa diverse mesaje despre starea în care se găsește sistemul de securitate. Sistemul dispune și de un keypad, utilizat pentru introducerea parolei sau acceptarea, neacceptarea diferitelor operații. Aceste două componente vor fi conectate nu direct la placa Arduino, ci prin intermediul unor module I2C. Această interfațare are drept scop reducerea numărului de pini necesari pentru conectarea celor două componente.

Schema Bloc

Hardware Design

Componente Utilizate Cantitate
Arduino UNO R3 ATmega328p X1
Senzor PIR HC-SR501 X1
Buzzer X1
LCD 1602 X1
I2C adaptor pentru LCD X1
Button X1
Tastatura Matriciala 4×4 (Keypad) X1
Modul expansiune IO I2C X1
Modul SD card X1
Card Micro SDHC de 8 GB X1
Modul bluetooth HC-05 X1
Breadboard X5
Fire legatura -

Schemă Electrică

Software Design

In cadrul proiectului, am folosit ca mediu de dezvoltare Arduino IDE.

Arduino Uno

Biblioteci utilizate

In cadrul proiectului am utilizat urmatoarele bibilioteci:

Functionare sistem

Setup

La pornirea sistemului, au loc urmatoarele actiuni:

Bucla principala

Pe durata functionarii sistemului de alarma, exista 4 stari(moduri) in care acesta se afla:

Senzor Bluetooth HC-05 si aplicatia de telefon

Comunicarea cu senzorul HC-05 se realizeaza printr-o aplicatie de android. Pentru implementarea functionalitatilor aplicatiei, am utilizat MIT app inventor. Aplicatia permite conectarea la senzorul HC-05, precum si deconectarea de la acesta in orice moment in timpul functionarii aplicatiei.

La primirea mesajului “Motion Detected!”, aplicatia afiseaza pe ecran mesajul. Totodata, se activeaza butonul de stop alarm. Apasarea sa determina trimiterea unui mesaj de stop inapoi catre Arduino, ce opreste alarma.

La primirea mesajului “WAIT”, aplicatia nu mai permite apasarea butonului de stop alarm, in cazul in care acesta era activ. Scopul este impiedicarea trimiterii unui mesaj de stop eronat catre Arduino, in cazul in care alarma oricum este dezactivata de la sistemul principal, in mod fizic. Desi primirea mesajului nu afecteaza alarma, atunci cand aceasta este in alt mod de functionare, mesajul ramane salvat in buffer-ul lui HC-05. Astfel, la o viitoare declansare a alarmei, mesajul de stop trimis eronat va primit, si alarma oprita in mod gresit.

Functii implementate

Functia realizeaza asteptarea unui minut, ceea ce permite resetarea senzorului PIR pentru a putea detecta din nou.

Functia asteapta introducerea unei parole de 4 digits de la keypad, si o salveaza in memoria programului.

Functia citeste din memoria cardului micro sd parola, si o incarca in memoria programului.

Functia realizeaza setarea pinului butonului, in mod INPUT PULLUP.

Functia realizeaza setarea pinilor pentru PIR si Buzzer, precum si pentru buton prin apelarea lui setButton().

Functia seteaza intreruperile externe, declansate la apasarea butonului.

Functia initializeaza LCD-ul.

Functia scrie pe cardul micro-sd parola curenta salvata in memorie.

Functia permite resetarea parolei curente, utilizatorul putand accepta (apasa tasta A) sau nu (apasa tasta D). Daca decide resetarea, parola este setata prin functia setPassword() si apoi scrisa pe cardul micro-sd cu un apel al functiei writeToCard().

Functia asteapta introducerea unei parole de 4 cifre de la tastatura. Daca aceasta este corecta, are loc recalibrarea senzorului PIR (un apel calibratePir()), precum si trecerea in modul 0 de functionare. Daca parola este gresita, sistemul va ramane in modul 1, iar alarma va ramane activa.

Rezultate Obţinute

Demo activare alarma si oprire prin aplicatie
Demo introducere parola incorecta si corecta
Demo password reset
Demo introducere parola gresita si oprire alarma din aplicatie




Aplicatie

Aplicatie neconectata \ conectata


Aplicatie conectata, cu notificare primita. Butonul de oprirea a sistemului nu e activat. Se asteapta oprirea prin introducerea parolei.

Aplicatie conectata, cu notificare primita si butonul de oprire a sistemului activ.

Concluzii

De-a lungul proiectului, am intampinat mici obstacole, atat software, cat si hardware. Acestea m-au determinat sa lucrez cu mai multe metode de debugging, de la printarea pe seriala, la testarea separate a componentelor, atat a functionalitatii, cat si a alimentarii lor corecte, utilizand leduri. Am invatat, de asemenea, sa lucrez mai bine cu Arduino, proiectul oferindu-mi posibilitatea de a aprofunda conceptele studiate la laborator si curs.

In concluzie, experienta a fost una placuta si o modalitate excelenta de a pune in practica ceea ce am invatat de-a lungul semestrului despre lucrul cu Arduino, cu datasheet-uri pentru diverse componente electronice si de intra in lumea micro-controller-elor.

Download

Link catre arhiva zip, unde se pot gasi atat codul sursa, cat si codul aplicatie de android si schema electrica:
security_alarm.zip
Github: SecurityAlarm

Jurnal

alertelor;

Bibliografie/Resurse

Security Alarm

Linkuri utile:
Laboratoare

Software

Hardware


Biblioteci utilizate: