Alarmă anti furt

Introducere

Proiectul meu urmărește implementarea unei alarme anti furt, folosind un microcontroller ESP32. Se va declanșa un buzzer la detectarea mișcării și se va afișa pe un LCD un mesaj. Alarma se poate dezactiva prin introducerea unei parole. Există 2 variante de proiect:

  • Varianta pe care vreau să o implementez folosește un server pentru introducerea parolei, schimbarea acesteia și trimiterea de notificări în legătură cu declanșarea alarmei. Parola poate fi schimbată doar de un user privilegiat, care poate fi modificat.
  • O variantă mai simplă în cazul în care va fi prea dificilă implementarea serverului folosește un keypad pentru introducerea parolei și schimbarea acesteia.

Descriere generală

Utilizatorul va deschide serverul pentru a introduce parola. Acesta are 2 opțiuni: fie dorește să dezactiveze alarma (știind că acesta sau o persoană de încredere va trece pe lângă senzor și nu este nevoie să fie declanșat), fie o oprește dacă deja s-a declanșat. Pentru a afla informații despre utilizarea alarmei, acesta va avea un log care conține data și ora la care a fost declanșată alarma, și data, ora la care a fost introdusă parola și numele persoanei care a introdus-o. Alte funcționalități disponibile sunt schimbarea parolei și modificarea numelui utilizatorului privilegiat.

1

Hardware

Am folosit următoarele componente:

  • Placă de dezvoltare ESP32 S3 Nano - am ales-o pentru abilitatea de a se conecta la Wifi
  • Senzor de mișcare tip radar
  • Buzzer piezoelectric activ
  • LCD 1602 cu modul I2C - am ales pentru simplitatea cu care se conectează
  • LED
  • Sursă alimentare
  • Breadboard

Am conectat componentele la placa de dezvoltare astfel:

  • LCD-ul la GPIO21 și 22 - SDA și SCL
  • LED și buzzer la GPIO5
  • senzorul la GPIO7

Am alimentat placa cu 3,3V.

Software

La pornire, se efectuează un warm-up al sistemului, în care se asteaptă câteva secunde. Se printează pe LCD mesaje care confirmă începerea warm-up-ului, desfășurarea lui și finalizarea. Se printează apoi un mesaj de listening. Senzorul verifică dacă se detectează mișcare. În caz afirmativ, se declanșează LED-ul și buzzer-ul, iar pe LCD se afișează un mesaj de avertizare și timpul trecut de când a sunat alarma. Pentru a o opri, utilizatorul pornește serverul, introduce numele său și parola, iar alarma se resetează. Parola se poate schimba din pagina corespunzătoare a site-ului, introducând parola veche pentru verificare. De asemenea, există o pagină de log-uri, care contorizează declanșarea alarmei, oprirea ei și schimbarea parolei.

Am folosit PlatformIO pentru lucrul cu placa ESP32 și PyCharm pentru dezvoltarea serverului și frontend-ului. Am folosit următoarele biblioteci 3rd-party:

  • WiFi.h – pentru conectarea plăcii ESP32 la rețea Wi-Fi
  • HTTPClient.h – pentru trimiterea de cereri HTTP către un server extern REST
  • Wire.h – pentru comunicarea I2C cu LCD-ul
  • LiquidCrystal_I2C.h – pentru afișajul LCD pe interfață I2C
  • Flask - pentru dezvoltarea serverului

Funcționalități implementate:

  • Inițializare hardware - inițializarea pinilor LED, buzzer și senzor, detectarea LCD-ului I2C și stabilizarea senzorului
  • Controlul sistemului de alarmă - detectarea mișcării folosind senzorul, activarea LED-ului și buzzer-ului la detectarea mișcării, dezactivarea alarmei prin comenzi HTTP de la server, stabilizare după dezactivare
  • Interfața cu utilizatorul - afișaj pe LCD cu mesaje de status, frontend pentru server
  • Comunicare cu serverul - trimiterea de loguri către server, trimiterea statusului actual al alarmei

Rezultate obținute

Am reușit să implementez un proiect cu majoritatea funcționalităților pe care mi le-am propus. În final, am reușit să obțin atât din punct de vedere hardware, cât și software, un produs simplu, dar funcțional.

Concluzii

Am reușit să implementez tot ce mi-am propus. Mi-am dezvoltat cunoștințele harware comparativ cu începutul proiectului și am avut ocazia să lucrez cu tehnologii care mă interesau și să le integrez în proiect (partea de server).

pm/prj2025/rnedelcu/catalina.mihale.txt · Last modified: 2025/05/28 15:25 by catalina.mihale
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