💤 Alarma de ceas cu sistem RFID 💤

Nume : Barbu Lavinia-Mihaela
Grupă : 334CC

Introducere

Proiectul constă în implementarea unui sistem de alarmă de ceas bazat pe un sistem de închidere RFID. Scopul sistemului este de a oferi o modalitate simplă și sigură de a vă trezi la timp dimineața și de a vă ajuta să vă odihniți bine în timpul nopții și de a oferi utilizatorului un ceas cu alarmă util și atractiv, care să permită personalizarea alarmei în funcție de preferințe.

Ideea a pornit de la nevoia de a avea un sistem de alarmă inteligent care să ofere mai mult decât un simplu sunet de alarmă obișnuit. Sistemul oferă o gamă largă de caracteristici personalizabile, precum setarea timpului de somn și a tonului de alarmă, toate controlate de la distanță cu ajutorul unei telecomenzi. Cred că sistemul de alarmă cu închidere RFID este util pentru toți cei care doresc să se trezească odihniți și să aibă un început de zi bun. Acesta oferă o soluție convenabilă și sigură pentru a vă trezi dimineața.

Descriere generală

Sistemul pornește în momentul în care modulul IR primește semnalul de la telecomanda și setează timpul de somn. Dat fiind faptul ca sistemul folosește un display cu 4 cifre și 7 segmente timpul setat poate fi reprezentat de ore și minute sau de minute și secunde. Afișajul începe inițial cu 4 liniuțe ( — —: — — ). Pe măsură ce setați ora folosind telecomanda IR, puteți vedea numerele afișate unul câte unul. O dată ce timpul a fost setat începe să numere invers timpul de somn și afișează timpul rămas pe display. Acest lucru ajută când vă treziți în miezul nopții și doriți să știți câte ore mai aveți de dormit. Știu cât de mult contează acele câteva minute în plus. 😉 După ce timpul ajunge la 0, sistemul începe a reda o melodie aleasă de utilizator. În plus, există 3 LED-uri care clipesc la tonul melodiei. Acest lucru ajută la localizarea poziției modulului RFID necesară pentru a opri soneria. Utilizatorul trebuie să plaseze cardul RFID pe cititor, astfel încât fiind detectat cardul, sistemul să oprească soneria.

Hardware Design

Lista componentelor:

  • Arduino ATmega2560
  • Sistem RFID
  • Telecomanda IR
  • Senzor IR
  • Buzzer
  • Led-uri
  • Fire
  • Display de 4 cifre pe 7 segmente
  • Breadboard
  • Tranzistoare 2N2222
  • Rezistente 220Ω

Schema electrica

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare: Arduino IDE
  • librării:
    • SPI.h: pentru comunicarea utilizând protocolul de comunicație serială sincronă SPI
    • MFRC522.h: pentru a interacționa cu modulul RFID bazat pe cipul MFRC522
    • IRremote.h: pentru a controla dispozitivele infraroșu (IR Receiver & Remote)
  • Schemă bloc: diagrams.net
  • Design circuit: TinkerCad

Codul a fost realizat astfel:

Definiții:

Diverse note muzicale sunt definite cu valorile lor de frecvență corespunzătoare pentru redarea melodiei Mario. Sunt definiti pini pentru cititorul RFID, buzzerul pasiv, afișajul cu 7 segmente și receptorul IR.

Variabile globale: Variabile pentru stocarea timpului de alarmă, timpului curent, vitezei melodiei, luminozității afișajului, etc.

Funcția de setup():

  • Inițializează comunicarea serială, busul SPI, cititorul RFID MFRC522 și receptorul IR.
  • Setează modurile de pin pentru buzzer, indicatorul LED, afișajul cu 7 segmente și pini de cifre.

Funcția de loop():

  • Afișează timpul de alarmă setat pe afișajul cu 7 segmente.
  • Ascultă semnalele IR folosind receptorul IR pentru a seta timpul de alarmă.
  • Când butonul “power” de pe telecomanda IR este apăsat, setează timpul de alarmă în funcție de semnalul IR primit.
  • Când butonul “stop” de pe telecomanda IR este apăsat, pornește numărătoarea inversă a alarmei.
  • În interiorul buclei de numărătoare inversă a alarmei, verifică dacă timpul a expirat sau dacă cititorul RFID detectează o carte.
  • Dacă timpul a expirat, redă melodia temei Mario folosind buzzerul pasiv.
  • Dacă cititorul RFID detectează o carte, întrerupe numărătoarea inversă a alarmei până când cartea este îndepărtată.

Funcții ajutătoare:

  • translateIR() - Traduce semnalul IR primit într-o funcție specifică.
  • Display() și Display_once() - Funcții pentru afișarea valorilor de timp pe afișajul cu 7 segmente.
  • timeToNum() - Converteste orele și minutele într-un număr de 4 cifre în scopuri de afișare.
  • convert() - Converteste cifrele individuale din semnalul IR în valorile lor întregi corespunzătoare.
  • buzz() - Redă o notă muzicală specifică pe buzzerul pasiv pentru o durată dată.

Rezultate Obţinute

Concluzii

A fost un proiect interesant de unde am invatat foarte multe lucruri. Sunt extrem de încântată că proiectul a atins obiectivele pe care mi le-am propus de la bun început. În plus, am dobândit mult mai multă experiență cu mediul de dezvoltare Arduino. ^_^

Download

În arhiva atașată se poate găsi și un demo. 8-) alarmadeceas.zip

Jurnal

  1. 22.04.2023 - Stabilirea temei proiectului
  2. 30.04.2023 - Comandarea componentelor
  3. 07.05.2023 - Completare milestone 1
  4. 21.05.2023 - Adaugare schema electrica
  5. 28.05.2023 - Completare parte de software + Finalizare pagina wiki

Bibliografie/Resurse

pm/prj2023/ndrogeanu/rfidbasedalarmclock.txt · Last modified: 2023/05/30 11:30 by lavinia.barbu1512
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