This is an old revision of the document!


PIR-Based Home Security System

Introducere

Proiectul reprezinta un sistem simplu de securitate pentru casa, construit pe ATmega328P-Xplained Mini, folosind un senzor de miscare PIR, un keypad 4×4 si un display LCD 16×2. Sistemul poate fi armat si dezarmat prin introducerea unui cod PIN. Odata armat, monitorizeaza miscarea si ofera un interval de timp pentru dezarmare inainte de declansarea alarmei (buzzer si LED). Logica este implementata folosind o masina de stari, pentru un comportament eficient, fara blocaje.

Pe langa functionalitatea de baza, sistemul include un senzor de gaz/fum (MQ-2) si conectivitate wireless (Bluetooth prin HC-05) pentru trimiterea de notificari in timp real catre utilizator (prin aplicatia Serial Bluetooth Terminal).

Descriere generala

Sistemul functioneaza ca o masina de stari cu 4 stari principale:

DEZARMAT → EXIT DELAY → ARMAT → ENTRY DELAY → ALARMA → DEZARMAT

  • DEZARMAT — LED verde aprins, LCD afiseaza “System disarmed”. Utilizatorul armeaza sistemul apasand * si introducand PIN-ul.
  • EXIT DELAY (10s) — countdown pe LCD, bip la fiecare 2 secunde, timp sa iasa din camera.
  • ARMAT — PIR activ prin intrerupere externa (INT0), LED rosu aprins.
  • ENTRY DELAY (15s) — miscare detectata, countdown pe LCD, bip accelerat. Utilizatorul introduce PIN-ul.
  • ALARMA — buzzer continuu + LED rosu clipeste + LCD afiseaza “ALARM!”. Se dezactiveaza doar prin PIN corect.

Schema bloc:

Hardware Design

Lista de piese:

Componenta Model Rol
Microcontroller ATmega328P-Xplained Mini Unitate centrala de control
Senzor PIR HC-SR501 Detectie miscare
Display LCD 16×2 + modul I2C (adresa 0x27) Afisare stare sistem
Keypad Membrana 4×4 Introducere cod PIN
Buzzer Pasiv 5V Alerta sonora
LED rosu 5mm + rezistor 220Ω Indicator alarma
LED verde 5mm + rezistor 220Ω Indicator sistem dezarmat
Senzor gaz MQ-2 Detectie fum/gaz
Modul Bluetooth HC-05 Notificari wireless
Breadboard + fire Prototipare

Conexiuni:

Componenta Pin ATmega328P Directie
PIR OUT PD2 (INT0) Input - intrerupere externa
LED rosu PD5 Output
Buzzer PD6 Output PWM
LED verde PD7 Output
HC-05 TX PD0 Input UART
HC-05 RX PD1 Output UART
Keypad R1 PD3 Output
Keypad R2 PD4 Output
Keypad R3 PB3 Output
Keypad R4 PB4 Output
Keypad C1 PB0 Input pull-up
Keypad C2 PB1 Input pull-up
Keypad C3 PB2 Input pull-up
Keypad C4 PC0 Input pull-up
MQ-2 DO PC1 Input
MQ-2 AO PC2 Input
LCD SDA PC4 I2C Data
LCD SCL PC5 I2C Clock

Software Design

Mediu de dezvoltare: AVR-GCC + VSCode + PlatformIO

Periferic Utilizare
INT0 (PD2) Intrerupere externa pentru PIR - rising edge
Timer1 CTC Timekeeping non-blocant - echivalent millis()
TWI (I2C) Comunicare LCD prin modul PCF8574 (adresa 0x27)
UART (PD0/PD1) Comunicare Bluetooth HC-05 la 9600 baud
GPIO Scan keypad matriceal 4×4, LED-uri, buzzer

Structura software - masina de stari:

  • DISARMED — sistem dezarmat, LED verde aprins, LCD afiseaza “System disarmed / * to arm”
  • EXIT DELAY (10s) — countdown pe LCD dupa apasarea *, timp sa iesi din camera
  • ARMED — PIR activ prin INT0, LED rosu aprins, LCD afiseaza “System ARMED”
  • ENTRY DELAY (15s) — miscare detectata, countdown accelerat, utilizatorul introduce PIN
  • ALARM — buzzer continuu, LED rosu clipeste, dezactivare doar prin PIN corect

Functionalitati implementate:

  • Cod PIN implicit: 1234 (configurabil in cod)
  • Maxim 3 incercari gresite de PIN → declansare imediata alarma
  • Tasta # reseteaza PIN-ul introdus
  • Senzor MQ-2 cu debounce (10 citiri consecutive) pentru evitarea falselor alarme
  • Warm-up MQ-2 de 30 secunde la pornire
  • Notificari Bluetooth prin UART: armare, miscare detectata, PIN gresit, alarma activa, gaz detectat

Rezultate Obtinute

Concluzii

Proiectul a fost o experienta utila care m-a ajutat sa inteleg mai bine cum functioneaza un microcontroller la nivel de registre, fara librarii de nivel inalt. Am invatat sa configurez intreruperi externe, comunicatie I2C si UART, si sa implementez o masina de stari pentru un comportament corect si predictibil.

Cea mai mare dificultate a fost maparea corecta a pinilor pentru keypad, rezolvata prin testare iterativa si debugging pe serial.

Download

Bibliografie/Resurse

pm/prj2026/alexandru.jipa2803/vnedelceva.1779561741.txt.gz · Last modified: 2026/05/23 21:42 by vnedelceva
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0