Motion Detection Alarm Clock

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. Daca butonul de amanare nu este apasat, alarma va suna la nesfarsit.

Astfel, scopul proiectului este de a face un ceas desteptator care chiar te trezeste, venind in ajutorul celor care au tendinta de a apasa butonul de snooze si de a se culca la loc.

Descriere generală

Ora curenta si ora pentru alarma in format digital vor fi afisate pe un ecran LCD, folosind un modul RTC. Ora alarmei poate fi schimbata oricand prin intermediul a 4 butoane, 2 pentru minute si 2 pentru ora.

Odata ce alarma suna cu o melodie aleasa de utilizator, folosind un buzzer, aceasta nu poate fi oprita pana cand senzorul PIR al ceasului nu detecteaza miscarea utilizatorului aproximativ in fata sa. Daca butonul de amanare este apasat, dar nu este detectata prezenta, alarma se va opri, dar va reincepe sa sune peste aproximativ 2 minute, obligand utilizatorul sa se ridice din pat. Odata cu pornirea alarmei, va lumina un LED, pentru a atrage si mai tare atentia utilizatorului. Utilizatorul va putea sa vada si data curenta si va putea alege in orice moment melodia pe care ceasul sa o foloseasca pentru alarma.

Hardware Design

Lista de piese:

  • Arduino UNO R3
  • Buzzer
  • Senzor PIR
  • Modul RTC
  • Ecran LCD 16×2
  • Butoane
  • Breadboard
  • Rezistenta
  • LED
  • Baterie 9V

Software Design

Mediul de devoltare utilizat a fost cel folosit la laborator: Arduino IDE.

Biblioteci şi surse 3rd-party:

In functia de setup se seteaza pinii de INPUT/OUTPUT si se initializeaza ora alarmei ca fiind ora curenta fara un minut.

In loop(), pe baza butoanelor apasate, se alege functionalitatea dorita, fiecare fiind implemenatata intr-o functie diferita.

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.
  • 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.
  • 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.
  • DisplayDate() - functie folosita pentru afisarea datei curente la apasarea butonului de amanare cand alarma nu este activa.
  • 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.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

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.

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

Bibliografie/Resurse

pm/prj2023/razvans/motion-detection-alarm-clock.txt · Last modified: 2023/05/31 12:45 by adelina_maria.rizea
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