This shows you the differences between two versions of the page.
pm:prj2023:razvans:motion-detection-alarm-clock [2023/05/30 02:48] adelina_maria.rizea [Rezultate Obţinute] |
pm:prj2023:razvans:motion-detection-alarm-clock [2023/05/31 12:45] (current) adelina_maria.rizea [Rezultate Obţinute] |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Proiectul consta in implementarea unui ceas desteptator care nu se opreste din sunat pana cand nu detecteaza prezenta utilizatorului in fata sa. Ideea de baza este detectarea prin intermediul unui senzor daca subiectul se afla inca in pat sau s-a ridicat. Indiferent de numarul de apasari al butonului de oprire al alarmei, aceasta va continua sa sune pana cand omul nu se pune aproximativ in fata sa timp de 30 de secunde. Ceasul afiseaza, de asemenea, ora curenta si ora setata pentru alarma, care poate fi schimbata prin intermediul unor butoane. Prin apasarea unui buton, se afiseaza si data curenta, iar utilizatorul isi poate alege melodia pentru alarma. | + | Proiectul consta in implementarea unui ceas desteptator care nu se opreste din sunat pana cand nu detecteaza prezenta utilizatorului in fata sa. Ideea de baza este detectarea prin intermediul unui senzor daca subiectul se afla inca in pat sau s-a ridicat. Indiferent de numarul de apasari al butonului de oprire al alarmei, aceasta va continua sa sune pana cand omul nu se pune aproximativ in fata sa timp de 30 de secunde. Ceasul afiseaza, de asemenea, ora curenta si ora setata pentru alarma, care poate fi schimbata prin intermediul unor butoane. Prin apasarea unui buton, se afiseaza si data curenta, iar utilizatorul isi poate alege melodia pentru alarma. Daca butonul de amanare nu este apasat, alarma va suna la nesfarsit. |
<note tip> | <note tip> | ||
Line 34: | Line 34: | ||
<note tip> | <note tip> | ||
- | Librării şi surse 3rd-party: | + | Biblioteci şi surse 3rd-party: |
*"Wire.h" | *"Wire.h" | ||
*"RTClib.h" | *"RTClib.h" | ||
Line 43: | Line 43: | ||
In functia de setup se seteaza pinii de INPUT/OUTPUT si se initializeaza ora alarmei ca fiind ora curenta fara un minut. | In functia de setup se seteaza pinii de INPUT/OUTPUT si se initializeaza ora alarmei ca fiind ora curenta fara un minut. | ||
- | In functia loop(), pe baza butoanelor apasate, se alege functionalitate dorita, fiecare fiind implemenatata intr-o functie diferita. | + | In loop(), pe baza butoanelor apasate, se alege functionalitatea dorita, fiecare fiind implemenatata intr-o functie diferita. |
Functii folosite: | Functii folosite: | ||
*DiplayDateTime() - aceasta este functia de baza care afiseaza pe ecran ora curenta si ora setata pentru alarma. Aceasta este folosita atat in functia de loop, cand nu sunt apasate alte butoane pentru setari, cat si in functia pentru alarma propriu-zisa, pentru a afisa ora chiar si in timp ce ceasul suna. | *DiplayDateTime() - aceasta este functia de baza care afiseaza pe ecran ora curenta si ora setata pentru alarma. Aceasta este folosita atat in functia de loop, cand nu sunt apasate alte butoane pentru setari, cat si in functia pentru alarma propriu-zisa, pentru a afisa ora chiar si in timp ce ceasul suna. | ||
- | *PIR_alarm() - functia pentru alarma. Se apeleaza cand ora curenta este aceeasi cu cea pentru ora alarmei si verifica daca dupa apasarea butonului de amanare si oprirea alarmei, utilizatorul se misca sau nu in fata senzorului. Daca trec mai mult de 4 secunde in care nu detecteaza miscare, afiseaza un mesaj pe LCD si reprogrameaza alarma peste 2 minute(modificand minutul pentru ora alarmei). Daca timp de 30 de secunde detecteaza miscare, nu mai modifica ora alarmei. Aceasta functie apeleaza functia ring(). | + | *PIR_alarm() - functia pentru alarma. Se apeleaza cand ora curenta este aceeasi cu cea pentru ora alarmei si verifica daca dupa apasarea butonului de amanare si oprirea alarmei, utilizatorul se misca sau nu in fata senzorului. Daca trec mai mult de 6-7 secunde in care nu detecteaza miscare, afiseaza un mesaj pe LCD si reprogrameaza alarma peste 2 minute(modificand minutul pentru ora alarmei). Daca timp de 30 de secunde detecteaza miscare, nu mai modifica ora alarmei. Aceasta functie apeleaza functia ring(). |
*ring() - functia folosita pentru a canta melodia aleasa de catre utilizator pentru alarma. Se opreste cand este apasat butonul de amanare. | *ring() - functia folosita pentru a canta melodia aleasa de catre utilizator pentru alarma. Se opreste cand este apasat butonul de amanare. | ||
*DisplaySetMinuteAll() - functia folosita pentru setarea minutului pentru alarma. Este apelata cand butoanele pentru schimbarea minutului sunt apasate simultan. | *DisplaySetMinuteAll() - functia folosita pentru setarea minutului pentru alarma. Este apelata cand butoanele pentru schimbarea minutului sunt apasate simultan. | ||
*DisplaySetHourAll() - functia folosita pentru setarea orei pentru alarma. | *DisplaySetHourAll() - functia folosita pentru setarea orei pentru alarma. | ||
*DisplayDate() - functie folosita pentru afisarea datei curente la apasarea butonului de amanare cand alarma nu este activa. | *DisplayDate() - functie folosita pentru afisarea datei curente la apasarea butonului de amanare cand alarma nu este activa. | ||
- | *setAlarm(int my_melody[], int my_count, int size) - functia utilizata pentru schimbarea alarmei de catre utilizator. Acesta poate sa asculte pe rand melodiile disponibile si sa apase pe un buton pentru a o alege pe cea dorita. | + | *setAlarm - functia utilizata pentru schimbarea alarmei de catre utilizator. Acesta poate sa asculte pe rand melodiile disponibile si sa apase pe un buton pentru a o alege pe cea dorita. |
Line 63: | Line 63: | ||
Care au fost rezultatele obţinute în urma realizării proiectului vostru. | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | ||
</note> | </note> | ||
- | Rezultatele obtinute sunt cele dorite, toate functionalitatile propuse fiind implemenetate. Pentru partea de alegerea alarmei, mi-as fi dorit ca utilizatorul sa aiba de ales intre mai mult de 2 optiuni, insa am fost limitata de memoria placutei arduino. Am obtinut, astfel, un ceas desteptator ce detecteaza miscarea, afiseaza ora si data curenta si ofera utilizatorului diferite optiuni pentru setare, fiind util pentru cei ce nu reusesc sa se dea jos din pat. | + | Rezultatele obtinute sunt cele dorite, toate functionalitatile propuse fiind implemenetate. Am obtinut, astfel, un ceas desteptator ce detecteaza miscarea, afiseaza ora si data curenta si ofera utilizatorului diferite optiuni pentru setare, fiind un obiect foarte util pentru cei ce nu reusesc sa se dea jos din pat. |
+ | {{:pm:prj2023:razvans:alarm.jpeg?300|}} | ||
+ | {{:pm:prj2023:razvans:alarm_on.jpeg?300|}} | ||
+ | {{:pm:prj2023:razvans:alarm_off.jpeg?300|}} | ||
+ | {{:pm:prj2023:razvans:senzor.jpeg?200|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Realizarea proiectului mi s-a parut foarte interesanta, fiind foarte placut sa aplici cunostinte teoretice pentru a realiza ceva util. Mi s-a parut destul de greu la inceput, la realizarea partii hardware, dar pe parcurs, chiar mi-a facut placere sa realizez acest proiect. | ||
===== Download ===== | ===== Download ===== | ||
- | |||
- | <note warning> | ||
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | ||
- | |||
- | 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 ===== | ||
- | |||
<note tip> | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | {{:pm:prj2023:razvans:rizea_adelina-maria_334ca_motiondetectionalarmclock.zip|}} |
</note> | </note> | ||
Line 85: | Line 80: | ||
*https://github.com/robsoncouto/arduino-songs | *https://github.com/robsoncouto/arduino-songs | ||
*https://projecthub.arduino.cc/tittiamo68/0571331a-031d-4006-946a-a7830f62cda1 | *https://projecthub.arduino.cc/tittiamo68/0571331a-031d-4006-946a-a7830f62cda1 | ||
+ | *https://projecthub.arduino.cc/galoebn/alarm-clock-that-really-gets-you-out-of-bed-in-the-morning-500499 | ||