Differences

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

Link to this comparison view

pm:prj2023:iotelea:clocksetdatatime [2023/05/29 14:32]
asmaa_gamal.al [Concluzii]
pm:prj2023:iotelea:clocksetdatatime [2023/05/30 19:36] (current)
asmaa_gamal.al [Bibliografie/Resurse]
Line 40: Line 40:
 ===== Software Design ===== ===== Software Design =====
  
-Algoritmul principal implementat în aplicație ​este unul simplu de afișare ​timpului curent ​și verificare a activării alarmei în funcție de valorile setate de utilizatorAu fost implementate următoarele surse și funcții:​\\ +Codul furnizat ​este o implementare ​unui ceas cu alarmă utilizând un Arduino ​și un modul RTC (Real-Time Clock)Acesta folosește o serie de biblioteci precum ​**Wire.h**, **RTClib.h**,​ **TimeLib.h** și **LiquidCrystal_I2C.h** pentru a permite comunicarea cu modulul RTC și afișarea datelor pe un afișaj LCD. Codul este structurat în jurul unei bucle principale ​**loop()**, care se execută ​în mod continuu. În această buclă, se verifică valoarea variabilei **menu** pentru a determina starea curentă a programului ​și se apelează funcțiile corespunzătoare pentru a afișa și gestiona diferitele aspecte ale ceasului\\ 
-    ​Funcția ​**setup()**: Această funcție inițializează mediul de lucru și setează stările inițiale ale piniilorEa configurează ​modulul RTC, inițializează afișajul LCD și afișează un mesaj de inițializare pe afișajul LCD.\\ +De exemplufuncția **DisplayDateTime()** ​afișează ​data și ora curentă pe afișajul LCD. Utilizatorul poate apăsa butonul ​"SET" pentru a trece în modul de setare a oreiminutei, anului, lunii sau zilei, iar funcțiile corespunzătoare precum **DisplaySetHour()** sau **DisplaySetMinute()** permit modificarea valorilor corespunzătoare. Există, de asemenea, funcția **DisplaySetAlarm()** care permite setarea alarmei. Utilizatorul poate ajusta ​ora și minutul ​alarmei utilizând butoanele specifice, iar starea alarmei (pornită sau oprită) poate fi modificată prin apăsarea butonului "ALARM ON/​OFF"​ 
-    * Funcția ​**loop()**: Aceasta reprezintă bucla principală a aplicațieiîn care se execută ​logica principală a programului. ​În cadrul buclei loopse afișează ​timpul ​și data curentă pe afișajul LCD, se verifică ​apăsarea butonului ​"Set" pentru ​activarea modului de setare ​alarmei și se implementează ​modul de setare a alarmeicare permite utilizatorului să stabilească ora și minutul ​pentru alarmă. De asemenea, ​se verifică dacă ora curentă se potrivește cu ora și minutul setate ​de utilizator ​pentru alarmă ​și se activează un buzzer în caz de potrivire. +În funcția **Saving()**,​ valorile actualizate ale datei și orei sunt salvate în modulul RTC, iar utilizatorul primește un mesaj de confirmare pe afișaj. Codul conține, de asemenea, ​utilizarea funcției **tone()** pentru a genera un sunet de alarmă dacă ora curentă se potrivește cu ora și minutul setate pentru alarmă.
-Codul aplicației este structurat într-un mod clar și modular, cu funcții separate pentru diverse funcționalități și bucle de execuție distincte pentru diferite stări ale aplicației. Aceasta facilitează înțelegerea,​ întreținerea și extinderea codului.\\+
  
-Aplicația utilizează următoarele librării și surse terțe:\\ 
-    * **Wire**: Biblioteca Wire facilitează comunicarea prin protocolul I2C, utilizată pentru a interacționa cu modulul RTC DS1307 și cu afișajul LCD utilizat în proiect.\\ 
-    * **RTClib**: Această bibliotecă oferă funcționalitatea necesară pentru a comunica cu modulul RTC (Real-Time Clock), în acest caz modelul DS1307. Biblioteca RTClib simplifică operațiile de citire și scriere a timpului și datei.\\ 
-    * **LiquidCrystal_I2C**:​ Această bibliotecă permite controlul unui afișaj LCD prin intermediul protocolului I2C. Afișajul LCD utilizat în proiect are o configurație I2C, ceea ce face ca această bibliotecă să fie utilă pentru a simplifica interacțiunea cu afișajul.\\ 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 73: Line 68:
 ===== Download ===== ===== Download =====
  
-{{:​pm:​prj2023:​iotelea:​pm_-_proiect.zip|}}+Acest fisier ​{{:​pm:​prj2023:​iotelea:​pm_clock_set_data_time_-_files.zip|}} ​contine toate resursele necesare pentru proiectul "Clock with Alarm" pe platforma Arduino. Fisierul include urmatoarele elemente:​\\ 
 +1. Codul sursa: **PM_Software.ino**:​ Este fisierul principal al proiectului care contine codul sursa pentru implementarea unui ceas cu functie de alarma. Acesta poate fi deschis si editat cu Arduino IDE. 
 +2. Biblioteci:​\\ 
 +   - RTClib: O biblioteca pentru a permite comunicarea cu modulul RTC (Real-Time Clock).\\ 
 +   - LiquidCrystal_I2C:​ O biblioteca pentru controlul display-ului LCD (I2C).\\ 
 +   - Alte biblioteci specifice pot fi incluse in fisierul ZIP, daca sunt folosite in proiect.\\ 
 + 
 +3. README.md\\ 
 +4. Imagini: contine imagini relevante pentru proiect, cum ar fi scheme de conexiune sau capturi de ecran ale aplicatiei.\\ 
  
 ===== Jurnal ===== ===== Jurnal =====
Line 93: Line 97:
     * <​html><​a class="​https://​www.instructables.com/​Simple-Arduino-Clock/"​ href="?​do=export_pdf">​Simple Arduino Clock</​a></​html>​     * <​html><​a class="​https://​www.instructables.com/​Simple-Arduino-Clock/"​ href="?​do=export_pdf">​Simple Arduino Clock</​a></​html>​
     * <​html><​a class="​https://​www.tinkercad.com"​ href="?​do=export_pdf">​Tinkercad</​a></​html>​     * <​html><​a class="​https://​www.tinkercad.com"​ href="?​do=export_pdf">​Tinkercad</​a></​html>​
 +    * <​html><​a class="​pm_final.pdf"​ href="?​do=export_pdf">​Clock Set Data Time - PDF</​a></​html>​
 +   
        
  
  
pm/prj2023/iotelea/clocksetdatatime.1685359921.txt.gz · Last modified: 2023/05/29 14:32 by asmaa_gamal.al
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