Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:iotelea:emilian.horduna [2025/05/26 20:38]
emilian.horduna [Rezultate Obţinute]
pm:prj2025:iotelea:emilian.horduna [2025/05/27 19:22] (current)
emilian.horduna [Bibliografie/Resurse]
Line 35: Line 35:
 - blocarea automată a ușii. - blocarea automată a ușii.
  
-{{:​pm:​prj2025:​iotelea:​emi-schema-bloc_1_.png?700}}+{{:​pm:​prj2025:​iotelea:​emi-schema-bloc2.drawio.png?700|}}
  
 Actor → Keypad 4x4 → Arduino UNO R3: Actor → Keypad 4x4 → Arduino UNO R3:
Line 89: Line 89:
  
 {{:​pm:​prj2025:​iotelea:​unfinished-safe-rear.jpg?​700|}} {{:​pm:​prj2025:​iotelea:​unfinished-safe-rear.jpg?​700|}}
 +
 +{{:​pm:​prj2025:​iotelea:​whatsapp_image_2025-05-27_at_16.26.55_4555e98c.jpg?​700|}}
  
 ===== Software Design ===== ===== Software Design =====
Line 188: Line 190:
 - `scanKeypad()`  ​ - `scanKeypad()`  ​
  
-  Scanează rândurile tastaturii 4x4, setează LOW câte un rând pe rând și citește coloanele. Debouncing software este realizat cu `millis()`.  ​+  Scanează rândurile tastaturii 4x4, setează LOW câte un rând pe rând și citește coloanele. Debouncing software este realizat cu millis().  ​
  
  
Line 202: Line 204:
  
 - `lcd_init()`  ​ - `lcd_init()`  ​
 +
  
   Inițializează LCD-ul în mod 4-bit, 2 rânduri, folosind comenzi standard trimise prin I2C cu funcții low-level (`twi_write()`).  ​   Inițializează LCD-ul în mod 4-bit, 2 rânduri, folosind comenzi standard trimise prin I2C cu funcții low-level (`twi_write()`).  ​
Line 228: Line 231:
 Toate modulele funcționează sincron, fără blocări sau conflicte, datorită utilizării `millis()` pentru temporizări non-blocante și a organizării logice clare între stări (locked/​unlocked).  ​ Toate modulele funcționează sincron, fără blocări sau conflicte, datorită utilizării `millis()` pentru temporizări non-blocante și a organizării logice clare între stări (locked/​unlocked).  ​
 ` `
 +
 +^ Componentă ​          ^ Metodă de calibrare ​                                                      ^ Rezultat / Valoare finală ​                ^
 +| Servomotor ​          | Testare empirică a impulsurilor PWM manuale ​                             | 600 µs = deblocat (0°), 1500 µs = blocat (90°) |
 +| Tastatură 4×4        | Debounce software ajustat folosind `millis()` ​                           | Timp de debounce: 50 ms                     |
 +| LCD 1602 I2C         | Ajustare timpi între comenzi și date, conform datasheet ​                 | Funcționare stabilă, fără caractere corupte |
 +| Buzzer piezoelectric | Reglare durată și frecvență pentru sunete clare și diferențiate ​         | Ton pozitiv: 262–330 Hz, eroare: 262–175 Hz |
 +
  
 ===== Rezultate obținute ===== ===== Rezultate obținute =====
Line 247: Line 257:
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Proiectul a reușit să integreze cu succes conceptele studiate în laborator, precum GPIO, PWM și I2C, într-un sistem embedded funcțional și bine organizat. Abordarea low-level, fără librării externe, a permis un control complet asupra hardware-ului și o înțelegere aprofundată a comunicației între componente.  ​
  
-<note warning>​ +Sunt fericit că am reușit să implementez de la zero un seif inteligent folosind Arduino, parcurgând toate etapele esențialeplanificarea logiciicăutarea și achiziția componentelordocumentarea din surse online și vizionarea de tutoriale video pe YouTube  
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurseschemeetcUn fişier READMEun ChangeLogun script de compilare şcopiere automată pe uC crează întotdeauna o impresie bună ;-).+ 
 +Experiența a fost una practicăeducativă și motivantășm-a ajutat să înțeleg mai bine cum se dezvoltă un proiect embedded cap-coadă 
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. 
-</​note>​ 
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +- 26 Aprilie – Alegerea temei proiectului ​ 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul ​proiectului+
-</​note>​+
  
 +- 1, 2 Mai – Brainstorming pentru alegerea componentelor  ​
 +
 +- 3 Mai – Comandarea componentelor hardware  ​
 +
 +- 6 Mai – Construirea circuitului electronic în Tinkercad (simulare)  ​
 +
 +- 8 Mai – Recepționarea componentelor fizice  ​
 +
 +- 10 Mai – Completarea Milestone 1  ​
 +
 +- 12 Mai – Asamblarea circuitului real  ​
 +
 +- 12 Mai – Implementarea unui cod funcțional high-level (cu librării)  ​
 +
 +- 17 Mai – Prezentarea Milestone 2  ​
 +
 +- 24 Mai – Convertirea codului high-level în cod low-level (fără librării)  ​
 +
 +- 25 Mai – Finalizarea și prezentarea Milestone 3  ​
 +
 +- 28 Mai – Participarea la PM Fair 
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
Line 266: Line 294:
 [[https://​github.com/​Emilian953/​Smart-Safe-Box| Pagina de GitHub]] [[https://​github.com/​Emilian953/​Smart-Safe-Box| Pagina de GitHub]]
  
-[[https://​drive.google.com/​file/​d/​12_EX6L4X6f8X2gsXAWvi_QgrKrP5VBlj/​view?​usp=drive_link|Demo-Video]]+[[https://​drive.google.com/​file/​d/​12_EX6L4X6f8X2gsXAWvi_QgrKrP5VBlj/​view?​usp=drive_link|Demo-Video ​in development]] 
 + 
 +[[https://​drive.google.com/​file/​d/​1xmLwBL_BmBSYDKec8ba2yeDeOBSv0kOU/​view?​usp=sharing|Demo-Video fully built]]
 </​note>​ </​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>​
  
pm/prj2025/iotelea/emilian.horduna.1748281100.txt.gz · Last modified: 2025/05/26 20:38 by emilian.horduna
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