Differences

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

Link to this comparison view

pm:prj2021:abasoc:ceasdigital [2021/04/29 23:17]
cristian.descultu in
pm:prj2021:abasoc:ceasdigital [2021/05/28 21:36] (current)
cristian.descultu
Line 23: Line 23:
   - buzzer   - buzzer
  
 +== Schema Electrica ==
 +
 +{{:​pm:​prj2021:​abasoc:​alarm_clock_scheme.png?​700|}}
 +
 +===== Software Design =====
 +  * Pentru dezvoltarea aplicatiei am folosit Arduino IDE si MIT App Inventor pentru realizarea unei aplicatii android care sa poata comunica cu Arduino.
 +  * Bibliotecile folosite sunt "​LiquidCrystal_I2C.h",​ "​dht.h",​ "​RTClib.h",​ "​Wire.h",​ "​stdio.h",​ "​stdlib.h"​.
 +  * Am folosit o structura de date pentru a retine datele legate de alarma si de statusul acesteia.
 +
 +==== Functionare Ceas ====
 +
 +  * Se porneste interfata seriala si LCD-ul, iar pinii de in/out sunt setati
 +  * RTC-ul este pornit (daca nu este sincronizat in concordanta cu ora sistemului, acest lucru se va face decomentand linia marcata
 +  * Se verifica ce tip de butoane au fost apasate pentru a intoarce comportamentul dorit
 +  * Alarma poate fi setata fie apasand butonul "​SET",​ urmat de "​UP"​ pentru setarea orei/​minutului,​ dupa care se va apasa "​CHScreen",​ pentru a trece la urmatorul element sau pentru a finaliza setarea, fie prin intermediul aplicatiei android.
 +  * Pentru oprirea alarmei se va apasa butonul "​STOP"​.
 +  * Se verifica in mod constant daca exista date pe interfata seriala (s-au trimis date de pe smartphone prin bluetooth catre arduino).
 +{{:​pm:​prj2021:​abasoc:​blscr.jpg?​300|}} \\
 +{{:​pm:​prj2021:​abasoc:​mscr3.jpg?​720|}} \\
 +{{:​pm:​prj2021:​abasoc:​mscr1.jpg?​720 |}} \\
 +{{:​pm:​prj2021:​abasoc:​mscr2.jpg?​720|}} \\
 +{{:​pm:​prj2021:​abasoc:​mscr0.jpg?​720|}} \\
 +===== Rezultate Obţinute =====
 +S-a obtinut un ceas digital care afiseaza pe ecranul principal detalii despre data si ora, acesta putand fi schimbat la apasarea unui buton. Acesta are incorporat si o alarma care se poate seta fie fizic, apasand butoanele de pe arduino, fie remote prin intermediul unei aplicatii android. Cand se ajunge la ora si minutul setate pentru alarma, se va auzi "The Imperial March"​. Alarma se poate opri la apasarea butonului de pe breadboard. \\
 +[[https://​youtu.be/​51THLYmIkQc|Demo]]
 +===== Concluzii =====
 +Dispozitivul functioneaza impecabil, singura modificare pe care as adauga-o pe viitor ar fi un "​blinking digits"​ in momentul in care se seteaza ora/minutul de catre user, pentru a fi mai intuitiv la care categorie se afla. \\
 +===== Download =====
 +{{:​pm:​prj2021:​abasoc:​alarm_clock.zip|}} - Arhiva contine sursele, README, bibliotecile folosite si aplicatia android.
 +
 +===== Jurnal =====
 +
 +Am inceput prin a ma obisnui cu fiecare componenta in parte, astfel ca am conectat separat Display-ul, RTC-ul si senzorul DHT11 si m-am jucat cu ele cu scopul de a ma familiariza si de a-mi pune niste baze. Ulterior, dupa ce am considerat ca sunt pregatit, am inceput sa iau proiectul pe bucatele. Am conectat si configurat LCD-ul, doar afisand un mesaj. Apoi am adaugat senzorul la proiect, am citit si prelucrat datele si am verificat daca se trimit bine la LCD. Cand am fost multumit si am facut mici modificari la cum sa afisez informatiile,​ am adaugat si RTC-ul. In urma informatiilor gasite, acesta trebuie initializat o singura data, de aceea in cod am comentat linia respectiva, pentru a fi in continuare acolo in cazul in care crapa ceva(am patit:)). Am testat ca totul merge ok(opream si porneam alimentarea sa vad ca datele temporale sunt retinute in RTC). Nefiind multumit de modul in care se afisa si de faptul ca avand foarte multe delay-uri in cod, era greu de apasat un buton pentru oprirea alarmei, am ajuns de la un display care se schimba automat, la unul controlat din butoane. Am adaugat 4 butoane, pentru schimbarea ecranului, setarea alarmei si oprirea acesteia. Cand am rulat din nou cateva teste fie setand alarma din cod, fie din butoane, mi-am dat seama ca bipaitul acela monoton al buzzer-ului nu-i foarte incantator asa ca am decis sa iau o configuratie de pe net pentru buzzer pentru a recrea o melodie. Ultima etapa a fost sa invat sa folosesc site-ul MIT APP INVENTOR (se poate gasi la resurse) pentru dezvoltarea unei aplicatii android minimaliste pentru a seta alarma.
 +
 +===== Bibliografie/​Resurse =====
 +
 +  - [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​abasoc/​ceasdigital|Link proiect]] \\
 +  - {{:​pm:​prj2021:​abasoc:​ceas_digital_cu_alarma_cs_open_courseware_.pdf| PDF proiect}}
 +== Resurse Hardware ==
 +
 +  - [[https://​www.instructables.com/​How-to-Connect-I2C-Lcd-Display-to-Arduino-Uno/​ | Tutorial conectare LCD]]
 +  - [[https://​create.arduino.cc/​projecthub/​electropeak/​interfacing-ds1307-rtc-module-with-arduino-make-a-reminder-08cb61 | Tutorial conectare RTC]]
 +  - [[https://​create.arduino.cc/​projecthub/​mayooghgirish/​arduino-bluetooth-basic-tutorial-d8b737 | Tutorial Bluetooth]]
 +  - [[https://​create.arduino.cc/​projecthub/​pibots555/​how-to-connect-dht11-sensor-with-arduino-uno-f4d239 | Tutorial DHT11]]
 +
 +== Resurse Software ==
 +
 +  - [[https://​www.instructables.com/​How-to-Connect-I2C-Lcd-Display-to-Arduino-Uno/​ | Tutorial conectare LCD]]
 +  - [[https://​create.arduino.cc/​projecthub/​electropeak/​interfacing-ds1307-rtc-module-with-arduino-make-a-reminder-08cb61 | Tutorial conectare RTC]]
 +  - [[https://​create.arduino.cc/​projecthub/​mayooghgirish/​arduino-bluetooth-basic-tutorial-d8b737 | Tutorial Bluetooth]]
 +  - [[https://​create.arduino.cc/​projecthub/​HiHiHiHiiHiiIiH/​star-wars-on-a-buzzer-0814f2 | melodie alarma]]
 +  - [[https://​appinventor.mit.edu/​ | dezvoltare aplicatie android]]
 +  - [[https://​www.youtube.com/​watch?​v=pZWdFEzCZP0 | tutorial app inventor]]
 +  - [[https://​create.arduino.cc/​projecthub/​pibots555/​how-to-connect-dht11-sensor-with-arduino-uno-f4d239 | Tutorial DHT11]]
pm/prj2021/abasoc/ceasdigital.1619727468.txt.gz · Last modified: 2021/04/29 23:17 by cristian.descultu
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