This is an old revision of the document!
Autor: Bianca - Ioana Mașala
Ceasul va afișa pe un ecran LCD, controlat cu ajutorul unui potențiometru toate măsurătorile luate. Pentru a avea un afișaj corect al timpului, vom conecta la placuța Arduino Uno un modul RTC. Alarma va avea o melodie prestabilită. Am introdus și un senzor de sunet ce îmi va determina starea ceasului. Temperatura va fi măsurată cu ajutorul unui senzor de temperatură și umiditate, iar în funcție de cât de ridicată sau scăzută este față de limita impusă, va interpreta această informație prin aprinderea fie a ledului albastru, fie a celui roșu. Proiectul poate fi conectat și la o baterie, dar fără a putea seta alarma, la această variantă.
* Limbaj utilizat: C * Biblioteci: Serial library, LiquidCrystal, DS3231, DHT * Mediu de dezvoltare: * Schema bloc: draw.io * Schema Electrică: Tinkercad * Software: Arduino IDE
Structura codului
Codul este scris în Arduino IDE și interpretează datele primite de pe plăcuța Arduino. Pe un ecran LCD îmi afișez toate datele de care am nevoie. Pentru a naviga mai ușor între paginile LCD-ului și a modifica anumite date, mă folosesc de 4 butoane ce funcționaeză după cum urmează: Butonul 1: → face posibilă navigarea între pagini, pentru a afișa diverse informații; Butonul 2: → plasează cursorul pentru a modifica data sau ora; Butonul 3: → incrementează valorile pentru a fi modificate; Butonul 4: → determină formatul orei
Codul este structurat cu ajutorul mai multor funcții: *setup() - setez pinii de INPUT/OUTPUT; *fbuttonState() - contorizez apăsarea butonului; *isButtonPushed() - verific dacă a fost apăsat vreun buton; *setAlarm() - citește caractere date în Serial Monitor și setează alarma; *play() - redă o melodie *loop() - citesc datele transmise de senzori și în funcție de pagina pe care mă aflu fac modificările necesare. Ecranul se repornește constant atunci când detectează zgomot.
Alarma *Alarma a fost inițial gândită pentru a fi setată din telefon, doar că datorită problemelor întâmpinate de la modulul Bluetooth aceasta este setată din Serial Monitor. Acolo trimit constant caractere corespunzătoare orelor, minutelor și secundelor, iar atunci când timpul setat corespunde cu ora care este piezo-ul va porni melodia predefinită și se va aprinde led-ul RGB.
TODO
Aplicația a fost una foarte interesantă de implementat. Parte de legare a componentelor a fost una mai dificilă, dar și puțin din partea de implementare a codului, deoarece la un moment dat mă pierdusem în toate variabilele avute. Per total proiectul consider că este unul chiar util și îmi doresc să lucrez în continuare la el, pentru a reuși să conectez proiectul la aplicația din telefon pe care am realizat-o în AppInventor, dar și să conectez modulul Pir, atunci când acesta îmi detectează mișcare, toate alarmele curente să fie oprite.
TODO
* 21 Aprilie - alegere temă proiect * 5 mai - prima comandă de piese * 13 mai - primul Milestone * 27 mai - a doua comandă de piese * 29 mai - finalizare
https://www.youtube.com/watch?v=nm-lrZTYoew https://ocw.cs.pub.ro/courses/pm/lab/lab2-2022 https://github.com/robsoncouto/arduino-songs https://github.com/fariha6412/Digital-Clock-in-arduino-with-alarm-timer-and-stopwatch/blob/main/digital_clock_with_alarm_timer_and_stopwatch.ino https://howtomechatronics.com/tutorials/arduino/arduino-ds3231-real-time-clock-tutorial/ https://www.arduino.cc/en/Tutorial/BuiltInExamples/toneMelody/ http://www.rinkydinkelectronics.com/library.php?id=73