This shows you the differences between two versions of the page.
pm:prj2025:ajipa:claudiu.stefan [2025/05/24 19:28] claudiu.stefan1702 [Software Design] |
pm:prj2025:ajipa:claudiu.stefan [2025/05/24 21:39] (current) claudiu.stefan1702 [Bibliografie/Resurse] |
||
---|---|---|---|
Line 112: | Line 112: | ||
* daca seiful este **deblocat** si senzorul de distanta detecteaza un obstacol usa se va deschide automat | * daca seiful este **deblocat** si senzorul de distanta detecteaza un obstacol usa se va deschide automat | ||
- | **Calibrari**: | + | Codul este creat individual pe placuta si verifica daca codul introdus este egal cu codul generat, astfel ca aplicatia si placuta lucreaza independent una de alta. Ambele folosesc algoritmul TOTP cu aceeasi cheie secreta si se poate garanta ca vor genera acelasi cod. Modulul RTC retine data si ora exacta, astfel se asigura faptul ca cele doua coduri sunt sincronizate (daca modulul ar retine ora cu 3 secunde in urma, atunci codul va fi actualizat cu 3 secunde intarziere, de unde rezulta importanta sincronizarii la secunda). |
- | * senzorul de distanta este setat sa detecteze la o distanta mica pentru a evita situatia ca senzorul sa detecteze ceva prea indepartat si sa deschida usa fara a dori acest lucru | + | |
- | * modulul RTC trebuie calibrat cu data si ora exacte dupa ce acesta pierde alimentarea de la curent (exista functia ajutatoare setRTC pentru a facilita acest lucru) | + | |
- | * a fost introdus un delay intre activarea motoraselor pentru a nu se suprapune actiunea acestora (ex: al doilea motor sa deschida usa inainte ca primul motor sa inlature incuietoarea) | + | |
- | * la pornirea placutei incuietoarea este ridicata, usa adusa in pozitia de "inchis" si incuietoarea este lasata jos pentru a asigura faptul ca seiful porneste ca fiind incuiat | + | |
- | **Optimizari**: | ||
- | * | ||
Repartizare pini: | Repartizare pini: | ||
<code> | <code> | ||
Line 140: | Line 134: | ||
DDRD &= ~(1 << IR_SENSOR_PIN); // Set as input | DDRD &= ~(1 << IR_SENSOR_PIN); // Set as input | ||
PORTD |= (1 << IR_SENSOR_PIN); // Enable pull-up resistor | PORTD |= (1 << IR_SENSOR_PIN); // Enable pull-up resistor | ||
+ | |||
+ | start_led(RED_LED); // acest apel executa aceasta linie PORTB |= (1 << PB4); | ||
</code> | </code> | ||
Line 181: | Line 177: | ||
Serial.begin(9600); | Serial.begin(9600); | ||
</code> | </code> | ||
+ | |||
+ | Serialul este folosit in principal pentru debug si afisarea erorilor. | ||
Pentru a asigura ca motorasele se misca lin si la o viteza rezonabila a fost folosita urmatoarea functie pentru a schimba gradual unghiul la care sa se miste motorasul: | Pentru a asigura ca motorasele se misca lin si la o viteza rezonabila a fost folosita urmatoarea functie pentru a schimba gradual unghiul la care sa se miste motorasul: | ||
Line 201: | Line 199: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | **Calibrari**: | ||
+ | * senzorul de distanta este setat sa detecteze la o distanta mica pentru a evita situatia ca senzorul sa detecteze ceva prea indepartat si sa deschida usa fara a dori acest lucru | ||
+ | * modulul RTC trebuie calibrat cu data si ora exacte dupa ce acesta pierde alimentarea de la curent (exista functia ajutatoare setRTC pentru a facilita acest lucru) | ||
+ | * a fost introdus un delay intre activarea motoraselor pentru a nu se suprapune actiunea acestora (ex: al doilea motor sa deschida usa inainte ca primul motor sa inlature incuietoarea) | ||
+ | * la pornirea placutei incuietoarea este ridicata, usa adusa in pozitia de "inchis" si incuietoarea este lasata jos pentru a asigura faptul ca seiful porneste ca fiind incuiat | ||
+ | |||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Ca rezultat am obtinut un seif cu deschidere/inchidere automata si cu un nivel de securitate marit datorita codului temporar (acesta fiind aproape imposibil de ghicit - probabilitate 1 la un milion). In acelasi timp, acesta este foarte usor de folosit, deoarece codul se afla permanent pe telefon si poate fi adaugatfoarte usor, doar scanand codul QR. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | <html> |
+ | <iframe width="800" height="450" | ||
+ | src="https://youtube.com//embed/5Rv_Cynij14" | ||
+ | frameborder="0" | ||
+ | allow="autoplay; encrypted-media" | ||
+ | allowfullscreen> | ||
+ | </iframe> | ||
+ | </html> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Proiectul a indeplinit asteptarile initiale si se comporta cum ar trebui. Implementarea software a fost relativ simpla, partea dificila fiind conectarea tuturor componentelor si functionarea simultana a acestora. Totodata proiectul a aratat ca se poate face ceva util si interesant folosind o placuta Arduino si niste componente. | ||
===== Download ===== | ===== Download ===== | ||
Line 225: | Line 238: | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | [[https://github.com/s1koO/2FA-Vault/tree/main|Github]] |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | |
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||