This is an old revision of the document!
Sistemul de Securitate Smart este un dispozitiv de alarma bazat pe Arduino Nano si ESP32-CAM, care detecteaza intrusi prin senzori IR, emite alarma sonora prin buzzer, afiseaza statusul pe un LCD 1602 si transmite imagini live prin WiFi catre orice dispozitiv conectat in retea.
Ideea proiectului porneste din dorinta de a construi un sistem de securitate accesibil si functional, care sa demonstreze practic comunicarea I2C, controlul GPIO, utilizarea intreruperilor si integrarea unui modul WiFi cu camera.
Proiectul este util deoarece:
Ipoteza: Credem ca un sistem de detectie bazat pe senzori IR combinat cu o camera WiFi va oferi o solutie de securitate mai completa decat un sistem doar cu senzori, deoarece furnizeaza atat detectie imediata cat si dovada vizuala a evenimentului detectat.
Sistemul este compus din doua unitati principale: Arduino Nano ca unitate de control central si ESP32-CAM ca modul de supraveghere video. Arduino Nano primeste semnale de la senzorii IR si microfon, controleaza buzzerul si actualizeaza LCD-ul prin I2C. ESP32-CAM ruleaza independent un server web care transmite imagini live prin WiFi si trimite notificari pe Telegram.
Schema bloc a sistemului:
Modulele principale ale proiectului sunt:
| Referinta | Componenta | Cantitate |
|---|---|---|
| U1 | Arduino Nano (Plusvo, ATmega328P, CH340) | 1 |
| U2 | ESP32-CAM cu camera OV2640 | 1 |
| U3 | FT232RL - adaptor USB-to-Serial | 1 |
| DISP1 | LCD 1602 cu modul I2C (QAPASS PCF8574) | 1 |
| IR1 | Senzor IR de proximitate MH-B | 1 |
| MIC1 | Senzor microfon MH cu potentiometru | 1 |
| BZ1 | Buzzer pasiv | 1 |
| HUB1 | USB Hub TP-Link 3 porturi USB 3.0 | 1 |
| BB1 | Breadboard | 1 |
| — | Fire jumper tata-mama / tata-tata | — |
| — | Cablu USB-A la Mini-USB | 2 |
| Pin Arduino Nano | Tip | Conectat la |
|---|---|---|
| 5V | Power | Sina rosie breadboard |
| GND | GND | Sina albastra breadboard |
| A4 (SDA) | I2C SDA | SDA - Modul I2C LCD |
| A5 (SCL) | I2C SCL | SCL - Modul I2C LCD |
| D2 | GPIO INPUT | OUT - Senzor IR |
| D3 | GPIO INPUT | OUT - Senzor microfon (intrerupere) |
| D8 | GPIO OUTPUT | Pin + Buzzer pasiv |
| D9 | GPIO OUTPUT | GPIO12 - ESP32-CAM (trigger) |
| Pin ESP32-CAM | Conectat la |
|---|---|
| 5V | VCC - FT232RL |
| GND | GND - FT232RL + sina albastra breadboard |
| U0R (RX) | TX - FT232RL (doar la programare) |
| U0T (TX) | RX - FT232RL (doar la programare) |
| IO0 | GND (doar la programare) |
| GPIO12 | D9 - Arduino Nano (trigger alarma) |
Senzorul IR foloseste un LED emitator infrarosu si un receptor pentru a detecta obstacolele prin reflectia luminii IR. Distanta de detectie este reglabila intre 5-25cm prin potentiometrul albastru de pe placheta. Senzorul da semnal LOW cand detecteaza un obstacol si HIGH cand nu detecteaza nimic.
Observatie: Senzorul este sensibil la lumina ambianta intensa. Se recomanda pozitionarea ferita de surse de lumina directa.
LCD-ul foloseste modulul PCF8574 (QAPASS) pentru comunicare I2C, reducand numarul de fire de la 16 la 4. Adresa I2C implicita este 0x27. Potentiometrul albastru de pe modulul I2C regleaza contrastul ecranului.
ESP32-CAM ruleaza un server web HTTP care expune captura foto la adresa /capture. Camera OV2640 captureaza imagini JPEG la rezolutie VGA. Modulul se conecteaza automat la reteaua WiFi 2.4GHz si trimite notificari pe Telegram prin API HTTPS cu WiFiClientSecure.
Combinarea detectiei prin doua tipuri de senzori (IR + audio) cu feedback diferentiat — sunete diferite pentru fiecare tip de detectie (sunet ascendent pentru IR, descendent pentru audio), transmisie video live prin WiFi si notificari automate pe Telegram cu link la camera, toate integrate intr-un singur sistem embedded accesibil si low-cost.
Arduino Nano:
setup():
- initializeaza pinii (INPUT/OUTPUT)
- ataseaza intreruperea pentru microfon pe D3 (RISING)
- initializeaza LCD prin I2C la adresa 0x27
- afiseaza mesaj initial "Sistem gata!"
loop():
- citeste senzorul IR prin digitalRead()
- verifica flag-ul microfonului (setat prin intrerupere)
- daca e intrus:
- trimite HIGH pe TRIGGER_PIN (D9) catre ESP32-CAM
- afiseaza tip intrus pe LCD (IR / AUD / IR+AUD)
- emite sunet diferentiat prin buzzer PWM
- reseteaza flag-ul microfonului
- daca nu e intrus:
- trimite LOW pe TRIGGER_PIN
- afiseaza "Sistem gata! / Monitorizare..."
ESP32-CAM:
setup():
- initializeaza camera OV2640
- conecteaza la WiFi
- porneste server web HTTP
loop():
- gestioneaza cererile HTTP (capture/root)
- daca TRIGGER_PIN == HIGH:
- trimite notificare pe Telegram cu link camera
- asteapta 30 secunde
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); #define IR1_PIN 2 #define MIC_PIN 3 #define BUZZER_PIN 8 #define TRIGGER_PIN 9 volatile bool micDetectat = false; void micISR() { micDetectat = true; } void setup() { Serial.begin(9600); pinMode(IR1_PIN, INPUT); pinMode(MIC_PIN, INPUT); pinMode(BUZZER_PIN, OUTPUT); pinMode(TRIGGER_PIN, OUTPUT); digitalWrite(TRIGGER_PIN, LOW); attachInterrupt(digitalPinToInterrupt(MIC_PIN), micISR, RISING); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Sistem gata!"); lcd.setCursor(0, 1); lcd.print("Monitorizare..."); } void loop() { int ir1 = digitalRead(IR1_PIN); Serial.print("IR1: "); Serial.print(ir1); Serial.print(" MIC: "); Serial.println(micDetectat); bool irDetectat = (ir1 == LOW); bool audDetectat = micDetectat; bool intrus = (irDetectat || audDetectat); if (intrus) { digitalWrite(TRIGGER_PIN, HIGH); lcd.setCursor(0, 0); lcd.print("!! INTRUS !! "); lcd.setCursor(0, 1); if (irDetectat && audDetectat) { lcd.print("Tip: IR + AUD "); } else if (irDetectat) { lcd.print("Tip: IR "); } else if (audDetectat) { lcd.print("Tip: AUD "); } if (audDetectat && !irDetectat) { for (int freq = 2000; freq >= 500; freq -= 50) { tone(BUZZER_PIN, freq); delay(20); } noTone(BUZZER_PIN); delay(500); } else { for (int freq = 500; freq <= 2000; freq += 50) { tone(BUZZER_PIN, freq); delay(20); } noTone(BUZZER_PIN); delay(500); } micDetectat = false; } else { digitalWrite(TRIGGER_PIN, LOW); noTone(BUZZER_PIN); lcd.setCursor(0, 0); lcd.print("Sistem gata! "); lcd.setCursor(0, 1); lcd.print("Monitorizare... "); } }
Proiectul demonstreaza integrarea practica a comunicatiei I2C, GPIO, UART, PWM si intreruperi hardware pe Arduino Nano, impreuna cu un modul WiFi cu camera ESP32-CAM. Sistemul ofera detectie imediata prin senzori IR si microfon, alarma sonora diferentiata, afisare pe LCD si notificari automate pe Telegram — toate componentele unui sistem de securitate functional si accesibil.
Ipoteza initiala a fost confirmata — combinarea senzorilor IR cu camera WiFi ofera o solutie mai completa decat un sistem doar cu senzori, furnizand atat detectie imediata cat si dovada vizuala prin link-ul la camera trimis pe Telegram.
Arhiva proiectului: GitHub Repository
| Data | Activitate |
|---|---|
| 15.05.2026 | Identificarea componentelor si planificarea proiectului. |
| 16.05.2026 | Conectare si testare Arduino Nano + LCD 1602 I2C. |
| 17.05.2026 | Conectare si calibrare senzori IR, testare detectie. |
| 18.05.2026 | Conectare buzzer pasiv, testare alarma sonora. |
| 19.05.2026 | Programare si testare ESP32-CAM cu stream video WiFi. |
| 20.05.2026 | Integrare microfon cu intreruperi hardware. |
| 21.05.2026 | Integrare ESP32-CAM cu Arduino Nano prin GPIO trigger. |
| 22.05.2026 | Implementare notificari Telegram prin API HTTPS. |
| 23.05.2026 | Testare finala si documentatie. |