This shows you the differences between two versions of the page.
pm:prj2024:vstoica:stefan.popescu1407 [2024/04/29 20:18] stefan.popescu1407 [Descriere generală] |
pm:prj2024:vstoica:stefan.popescu1407 [2024/05/26 02:10] (current) stefan.popescu1407 [Software Design] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== SmartKey Guardian - Popescu Stefan Lucian 331AC ====== | + | ====== SmartKey Guardian ====== |
===== Introducere ===== | ===== Introducere ===== | ||
- | SmartKey Guardian este un sistem de încuietoare inteligentă care oferă securitate îmbunătățită și comoditate prin tehnologia Bluetooth. | + | SmartKey Guardian este un sistem de încuietoare inteligentă care oferă securitate și comoditate prin tehnologia Bluetooth. |
- | | + | Avem un sistem care folosește o aplicație pe telefon pentru a controla accesul. Scopul este de a elimina nevoia cheilor fizice și de a integra tehnologia modernă în securitatea zilnică, oferind un nivel suplimentar de securitate și confort pentru utilizatori. Proiectul evită problemele cauzate de pierderea sau uitarea cheilor. |
- | Scopul proiectului este de a crea o încuietoare care se deschide automat când utilizatorul autorizat se apropie, bazându-se pe comunicarea Bluetooth. Ideea a pornit de la dorința de a elimina nevoia cheilor fizice și de a integra tehnologia modernă în securitatea zilnică. Proiectul este util pentru că oferă un nivel suplimentar de securitate și confort pentru utilizatori, evitând problemele cauzate de pierderea sau uitarea cheilor. | + | |
- | | + | |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | {{:pm:prj2024:vstoica:screenshot_2024-04-29_195454.jpg?200|}} | + | {{:pm:prj2024:vstoica:untitled_diagram2.png?200|}} |
- | Sistem integrat care folosește tehnologia Bluetooth și RFID pentru controlul accesului securizat. Diagrama de bloc ilustrează interacțiunea dintre modulul central Arduino UNO, modulul Bluetooth pentru comunicare la distanță, RFID pentru autentificarea utilizatorului și un servomotor care acționează încuietoarea fizică. Un display LCD oferă feedback vizual, iar un buzzer activează alerte sonore. Un microcontroler extern cu sursa sa de alimentare de 12V și propriul modul Bluetooth servește drept telecomandă portabilă." | + | Sistem integrat care folosește tehnologia Bluetooth pentru controlul accesului securizat.Utilizând aplicația pe telefon, utilizatorii pot controla încuietoarea de la distanță, eliminând necesitatea unei telecomenzi fizice. Sistemul include un Arduino UNO ca unitate centrală, un modul Bluetooth pentru comunicare și un servomotor care activează mecanismul fizic de încuiere. Un display LCD și un buzzer sunt integrate pentru feedback vizual și alerte sonore. Aceasta versiune modernizată permite o integrare mai eficientă și adaptabilă la nevoile utilizatorilor. |
- | ===== Hardware Design ===== | + | ===== Hardware Design ===== |
+ | |||
+ | - Arduino Uno | ||
+ | - Modul Bluetooth HC-05 | ||
+ | - Motor servo | ||
+ | - LCD cu interfață I2C | ||
+ | - Buzzer | ||
+ | - LED-uri | ||
+ | - Rezistori pentru LED-uri | ||
+ | - Sursa de alimentare | ||
+ | - Breadboard și fire jumper | ||
+ | |||
+ | Schemele electrice: | ||
+ | |||
+ | {{:pm:prj2024:vstoica:poza1pm.jpg?200|}} | ||
+ | {{:pm:prj2024:vstoica:keysmart_.jpg?200|}} | ||
- | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | ||
- | * listă de piese | ||
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | ||
- | * diagrame de semnal | ||
- | * rezultatele simulării | ||
- | </note> | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | <note tip> | + | **Mediu de dezvoltare**: Utilizăm Arduino IDE pentru dezvoltarea firmware-ului datorită accesibilității și suportului extins pentru biblioteci. |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | **Biblioteci și surse terțe-părți**: |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | - LiquidCrystal_I2C: pentru operarea display-ului LCD. |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | - Servo.h: pentru controlul preciz al motorului servo. |
- | * (etapa 3) surse şi funcţii implementate | + | - SoftwareSerial.h: pentru comunicația serială cu modulul Bluetooth. |
- | </note> | + | |
+ | **Algoritmi și structuri de date**: | ||
+ | - Mașină de stări: pentru gestionarea diferitelor stări ale încuietorii. | ||
+ | - Debouncing: pentru stabilizarea semnalelor de la butoane. | ||
+ | - Algoritmi de autentificare: pentru securizarea conexiunii Bluetooth. | ||
+ | |||
+ | **Surse și funcții implementate**: | ||
+ | - Inițializarea și configurarea Bluetooth. | ||
+ | - Funcții pentru inițializarea și controlul servo și LCD. | ||
+ | - Logica de autentificare și control pentru încuietoare. | ||
+ | |||
+ | **setup():** | ||
+ | |||
+ | --Inițializarea LCD: Configurarea ecranului LCD pentru a afișa mesaje. | ||
+ | |||
+ | --Atașarea servo: Conectează motorul servo la pinul specificat, care controlează mecanismul fizic al încuietorii. | ||
+ | |||
+ | --Inițializarea LED-urilor: Setează pinii pentru LED-uri ca ieșiri și definește starea inițială (verde pentru deschis, roșu pentru închis). | ||
+ | |||
+ | --Inițializarea Bluetooth: Pornește comunicația serială Bluetooth și pregătește pinul STATE pentru citirea stării conexiunii. | ||
+ | |||
+ | **loop():** | ||
+ | |||
+ | --Verifică starea conexiunii Bluetooth prin pinul STATE. | ||
+ | |||
+ | --Afișează pe LCD starea curentă a conexiunii și a încuietorii. | ||
+ | |||
+ | --Verifică dacă sunt date disponibile de la Bluetooth pentru procesare. | ||
+ | |||
+ | --În funcție de starea pinului STATE, execută funcțiile de deschidere sau închidere. | ||
+ | |||
+ | **Funcții auxiliare:** | ||
+ | |||
+ | --checkBluetooth(): Verifică dacă există date disponibile de la modulul Bluetooth și le citește. | ||
+ | |||
+ | --processInput(): Procesează comenzi precum "open" sau "close" primite prin Bluetooth. | ||
+ | |||
+ | --openLock() și closeLock(): Funcții pentru activarea mecanismului de încuietoare, actualizarea stării LED-urilor și afișarea stării pe LCD. | ||
+ | |||
+ | --buzz(): Activează un buzzer pentru a oferi feedback sonor la deschiderea sau închiderea încuietorii. | ||
+ | |||
+ | --updateLCD(): Actualizează afișajul LCD pentru a reflecta starea curentă a sistemului. | ||
+ | |||
+ | Aici se poate gasi codul sursa {{:pm:prj2024:vstoica:cod_sursa2.rar|}} | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | https://youtube.com/shorts/AlxcZiljCi0. |
</note> | </note> | ||