This shows you the differences between two versions of the page.
|
pm:prj2024:mdinica:andrei.dragomir1401 [2024/05/23 19:19] andrei.dragomir1401 |
pm:prj2024:mdinica:andrei.dragomir1401 [2024/05/27 03:52] (current) andrei.dragomir1401 |
||
|---|---|---|---|
| Line 56: | Line 56: | ||
| } | } | ||
| } | } | ||
| + | .title { | ||
| + | font-size: 18px; /* Smaller font size for titles */ | ||
| + | font-weight: bold; | ||
| + | margin-top: 20px; | ||
| + | } | ||
| + | .toggle-button { | ||
| + | background-color: #87CEFA; /* Light blue background */ | ||
| + | color: white; /* White text */ | ||
| + | border: none; | ||
| + | padding: 8px 16px; /* Some padding */ | ||
| + | text-align: center; | ||
| + | text-decoration: none; | ||
| + | display: inline-block; | ||
| + | font-size: 14px; /* Set a font size */ | ||
| + | margin: 4px 2px; | ||
| + | cursor: pointer; /* Pointer/hand icon */ | ||
| + | border-radius: 12px; /* Rounded corners */ | ||
| + | } | ||
| + | .image-container { | ||
| + | display: none; | ||
| + | margin-top: 10px; | ||
| + | } | ||
| </style> | </style> | ||
| </head> | </head> | ||
| Line 91: | Line 113: | ||
| </ul> | </ul> | ||
| | | ||
| - | <h3 id="software-design">Schema electrica</h2> | + | <p> |
| - | <img src="https://i.imgur.com/KLG6f9M.jpeg" alt="Hardware Design Image 1"> | + | <button class="toggle-button" onclick="toggleImage('image1')">Vezi Schema Electrică</button> |
| - | + | <div id="image1" class="image-container"> | |
| - | <h3 id="software-design">Hardware milestone 1</h2> | + | <img src="https://i.imgur.com/KLG6f9M.jpeg" alt="Schema Electrică"> |
| - | <img src="https://i.imgur.com/yQM2sp7.jpeg" alt="Hardware Design Image 2"> | + | </div> |
| - | + | </p> | |
| - | <h3 id="software-design">Hardware milestone 2</h2> | + | <p> |
| - | <img src="https://i.imgur.com/cioxv89.jpeg" alt="Hardware Design Image 3"> | + | <button class="toggle-button" onclick="toggleImage('image2')">Vezi Hardware milestone 1</button> |
| - | + | <div id="image2" class="image-container"> | |
| - | <h3 id="software-design">Hardware milestone 3</h2> | + | <img src="https://i.imgur.com/yQM2sp7.jpeg" alt="Hardware Design Image 1"> |
| - | <img src="https://i.imgur.com/HbFsXPM.jpeg" alt="Hardware Design Image 4"> | + | </div> |
| - | + | <p> | |
| - | <h3 id="software-design">Hardware milestone 4</h2> | + | <button class="toggle-button" onclick="toggleImage('image3')">Vezi Hardware milestone 2</button> |
| - | <img src="https://i.imgur.com/3hROTNs.jpeg" alt="Hardware Design Image 4"> | + | <div id="image3" class="image-container"> |
| - | + | <img src="https://i.imgur.com/cioxv89.jpeg" alt="Hardware Design Image 2"> | |
| - | <h3 id="software-design">Hardware milestone 5</h2> | + | </div> |
| - | <img src="https://i.imgur.com/aw3MsaR.jpeg" alt="Hardware Design Image 5"> | + | </p> |
| + | <p> | ||
| + | <button class="toggle-button" onclick="toggleImage('image4')">Vezi Hardware milestone 3</button> | ||
| + | <div id="image4" class="image-container"> | ||
| + | <img src="https://i.imgur.com/HbFsXPM.jpeg" alt="Hardware Design Image 3"> | ||
| + | </div> | ||
| + | </p> | ||
| + | <p> | ||
| + | <button class="toggle-button" onclick="toggleImage('image5')">Vezi Hardware milestone 4</button> | ||
| + | <div id="image5" class="image-container"> | ||
| + | <img src="https://i.imgur.com/3hROTNs.jpeg" alt="Hardware Design Image 4"> | ||
| + | </div> | ||
| + | </p> | ||
| + | <p> | ||
| + | <button class="toggle-button" onclick="toggleImage('image6')">Vezi Hardware milestone 5</button> | ||
| + | <div id="image6" class="image-container"> | ||
| + | <img src="https://i.imgur.com/aw3MsaR.jpeg" alt="Hardware Design Image 5"> | ||
| + | </div> | ||
| + | </p> | ||
| + | |||
| + | <script> | ||
| + | function toggleImage(id) { | ||
| + | var img = document.getElementById(id); | ||
| + | if (img.style.display === "none") { | ||
| + | img.style.display = "block"; | ||
| + | } else { | ||
| + | img.style.display = "none"; | ||
| + | } | ||
| + | } | ||
| + | </script> | ||
| + | |||
| + | <script> | ||
| + | function toggleImage(id) { | ||
| + | var img = document.getElementById(id); | ||
| + | if (img.style.display === "none") { | ||
| + | img.style.display = "block"; | ||
| + | } else { | ||
| + | img.style.display = "none"; | ||
| + | } | ||
| + | } | ||
| + | </script> | ||
| | | ||
| Line 141: | Line 203: | ||
| </li> | </li> | ||
| - | <li><strong>Laboratorul 2: Întreruperi</strong> - Gestionarea întreruperilor pentru joystick: | + | <li><strong>Laboratorul 1: UART</strong> - Comunicarea serială pentru debug și afișarea mesajelor în consola serială: |
| - | <pre><code>attachInterrupt(digitalPinToInterrupt(JOYSTICK_SW_PIN), joystickISR, FALLING); | + | <pre><code>Serial.begin(9600); |
| + | Serial.println("Approximate your card to the reader..."); | ||
| </code></pre> | </code></pre> | ||
| </li> | </li> | ||
| Line 297: | Line 360: | ||
| <p><strong>Explicați cum, de ce și unde ați realizat optimizări:</strong> <p>Optimizarea citirii și comparării UID-urilor RFID:</p> | <p><strong>Explicați cum, de ce și unde ați realizat optimizări:</strong> <p>Optimizarea citirii și comparării UID-urilor RFID:</p> | ||
| + | <p>Această optimizare a fost realizată pentru a asigura citirea rapidă și compararea eficientă a UID-urilor cardurilor RFID. Funcția <code>convertUID</code> transformă UID-ul citit într-un format string pentru a facilita compararea cu UID-urile stocate ale utilizatorilor autorizați. Această conversie este necesară deoarece UID-urile sunt citite sub formă de byte și trebuie convertite într-un format ușor de utilizat pentru comparare:</p> | ||
| <pre><code>String convertUID(MFRC522 &mfrc522) { | <pre><code>String convertUID(MFRC522 &mfrc522) { | ||
| String readUID = ""; | String readUID = ""; | ||
| Line 304: | Line 368: | ||
| readUID.toUpperCase(); | readUID.toUpperCase(); | ||
| return readUID; | return readUID; | ||
| + | } | ||
| + | </code></pre> | ||
| + | <p>Prin convertirea UID-urilor la formatul string, codul poate compara eficient UID-urile citite cu cele stocate pentru a verifica autorizarea utilizatorilor:</p> | ||
| + | <pre><code>bool isAuthorizedUID(String uid) { | ||
| + | for (int i = 0; i < uidCount; i++) { | ||
| + | if (authorizedUsers[i].uid == uid) return true; | ||
| + | } | ||
| + | return false; | ||
| } | } | ||
| </code></pre> | </code></pre> | ||
| </p> | </p> | ||
| - | <p><strong>Milestone-urile de proiect se prezintă în cadrul laboratorului:</strong> Milestone-urile prezentate includ: | + | |
| - | <ul> | + | |
| - | <li>Configurarea hardware-ului și testele individuale.</li> | + | |
| - | <li>Integrarea RFID cu LCD și buzzer.</li> | + | |
| - | <li>Implementarea meniului administrativ și a joystick-ului.</li> | + | |
| - | <li>Testarea și validarea sistemului complet.</li> | + | |
| - | </ul> | + | |
| - | </p> | + | |
| </div> | </div> | ||
| + | |||
| - | + | <h2 id="video">Video</h2> | |
| - | <h2 id="rezultate-obținute">Rezultate Obținute</h2> | + | <p></p> |
| - | <p></p> | + | <iframe width="560" height="315" src="https://www.youtube.com/embed/o9jGTlWHWa4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> |
| - | <h2 id="concluzii">Concluzii</h2> | + | |
| - | <h2 id="download">Download</h2> | + | |
| - | <p></p> | + | |
| - | <h2 id="jurnal">Jurnal</h2> | + | |
| - | <p></p> | + | |
| <h2 id="bibliografieresurse">Bibliografie/Resurse</h2> | <h2 id="bibliografieresurse">Bibliografie/Resurse</h2> | ||
| - | <p>Listă cu documente, datasheet-uri, resurse Internet folosite...</p> | + | <p><a href="https://github.com/Dragomir1401/PRODUCTIVITY-LOGGER" target="_blank">https://github.com/Dragomir1401/PRODUCTIVITY-LOGGER</a></p> |
| </div> | </div> | ||
| </body> | </body> | ||
| </html> | </html> | ||