Differences

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

Link to this comparison view

pm:prj2021:agrigore:daily [2021/06/03 06:54]
gabriela.mircia [Jurnal]
pm:prj2021:agrigore:daily [2021/06/03 07:39] (current)
gabriela.mircia [Jurnal]
Line 2: Line 2:
 ===== Autor ===== ===== Autor =====
 [[gabriela.mircia@stud.acs.upb.ro|Gabriela-Camelia Mircia]] [[gabriela.mircia@stud.acs.upb.ro|Gabriela-Camelia Mircia]]
 +
 +Grupa: 332CA
 ===== Introducere ===== ===== Introducere =====
     * Proiectul consta in implementarea unui ceas care are mai multe functionalitati precum: afisarea datei si a orei, afisarea zilei saptamanii, posibilitatea de a seta alarme, vizualizarea temperaturii si a umiditatii. Este usor de folosit prin butoane si o aplicatie simpla, dar si usor de vizualizat pe un ecran.     * Proiectul consta in implementarea unui ceas care are mai multe functionalitati precum: afisarea datei si a orei, afisarea zilei saptamanii, posibilitatea de a seta alarme, vizualizarea temperaturii si a umiditatii. Este usor de folosit prin butoane si o aplicatie simpla, dar si usor de vizualizat pe un ecran.
Line 9: Line 11:
 Se conecteaza la o placuta de Arduino UNO un modul RTC pentru afisarea datei si orei. Acestea pot fi modificate prin butoanele de pe breadboard. Utilizatorul are posibilitatea de a vizualiza ora fie in format AM, fie PM. Toate informatiile detaliate sunt afisate pe un LCD controlat cu ajutorul unui potentiometru. ​ Se conecteaza la o placuta de Arduino UNO un modul RTC pentru afisarea datei si orei. Acestea pot fi modificate prin butoanele de pe breadboard. Utilizatorul are posibilitatea de a vizualiza ora fie in format AM, fie PM. Toate informatiile detaliate sunt afisate pe un LCD controlat cu ajutorul unui potentiometru. ​
  
-La nivelul de temperatura si umiditate este folosit un senzor pentru preluarea datelor, acestea sunt interpretate folosind doua LED-uri: cel rosu se va aprinde daca temperatura ​trece de o anumita limita (cea setata este de 24C), cel albastru va porni daca temperatura scade sub limita impusa.+La nivelul de temperatura si umiditate este folosit un senzor pentru preluarea datelor, acestea sunt interpretate folosind doua LED-uri: cel rosu se va aprinde daca temperatura ​depaseste ​o anumita limita (cea setata este de 24C), cel albastru va porni daca temperatura scade sub limita impusa.
  
-Pentru a face mai interactiv proiectul am adaugat un senzor de sunet care determina pornirea si oprirea ceasului. Acesta recunoaste sunete de frecvente asemanatoare ​unui batut din palme. Spre exemplu, daca e folosit intr-o camera unde exista un dialog continuu, ceasul se va reporni permanent.+Pentru a face mai interactiv proiectul am adaugat un senzor de sunet care determina pornirea si oprirea ceasului. Acesta recunoaste sunete de frecvente asemanatoare ​unei batai din palme. Spre exemplu, daca e folosit intr-o camera unde exista un dialog continuu, ceasul se va reporni permanent.
  
 Spre final, pentru a complica putin setarea alarmei, a fost introdus un modul bluetooth care functioneaza impreuna cu o aplicatie simpla pentru mobile. Astfel utilizatorul poate seta alarma chiar din telefon. La acel moment buzzerul va suna si cele doua LED-uri vor lumina intermitent. Spre final, pentru a complica putin setarea alarmei, a fost introdus un modul bluetooth care functioneaza impreuna cu o aplicatie simpla pentru mobile. Astfel utilizatorul poate seta alarma chiar din telefon. La acel moment buzzerul va suna si cele doua LED-uri vor lumina intermitent.
Line 23: Line 25:
 ==Componente== ==Componente==
  
-^ Piesa               ^Nr^ Link  ^Datasheet/Utile                                                                                          ^+^ Piesa               ^Nr^ Link  ^Datasheet/Utils                                                                                          ^
 | Arduino Uno              | 1   | [[https://​cleste.ro/​arduino-uno-r3-atmega328p.html| link]] |  [[https://​www.farnell.com/​datasheets/​1682209.pdf| link]] ​                                   | | Arduino Uno              | 1   | [[https://​cleste.ro/​arduino-uno-r3-atmega328p.html| link]] |  [[https://​www.farnell.com/​datasheets/​1682209.pdf| link]] ​                                   |
 | |
Line 56: Line 58:
 | |
 ==Schema electrica== ==Schema electrica==
-{{:​pm:​prj2021:​agrigore:​zzzzzzzzzzzzzzzzzzzzzzzzz.png?​650|}}+{{:​pm:​prj2021:​agrigore:​zzzzzzzzzzzzzzzzzzzzzzzzz.png?​700|}}
  
 Schema a fost realizata in Eagle folosind informatiile din laboratoarele de [[https://​ocw.cs.pub.ro/​courses/​icalc| IC]]. Schema a fost realizata in Eagle folosind informatiile din laboratoarele de [[https://​ocw.cs.pub.ro/​courses/​icalc| IC]].
Line 77: Line 79:
 Alegerea celor 2 LED-uri monocolore a venit din cauza faptului ca nu am avut suficienti pini, mai aveam ramasi 2, dar pentru un RGB erau necesari 3. Am realizat ca o rezolvare a acestei probleme ar fi putut fi folosirea unui LCD cu I2C care nu necesita si un potentiometru,​ deci numarul pinilor ocupati ar fi scazut. Alegerea celor 2 LED-uri monocolore a venit din cauza faptului ca nu am avut suficienti pini, mai aveam ramasi 2, dar pentru un RGB erau necesari 3. Am realizat ca o rezolvare a acestei probleme ar fi putut fi folosirea unui LCD cu I2C care nu necesita si un potentiometru,​ deci numarul pinilor ocupati ar fi scazut.
 ===== Software Design ===== ===== Software Design =====
 +    * Limbaj: C
 +    * Tehnologie: Arduino IDE Windows, [[https://​app.diagrams.net/​ | diagrams.net]]
 +
 +
 +Software-ul se imparte in mai multe parti pentru fiecare functie. Majoritatea codului consta in notiuni de baza in C la care se adauga initializari si interpretarea datelor de pe placuta de Arduino. Codul contine comentarii care lamuresc deciziile luate.
 +
 +
 +Bibliotecile folosite au fost incluse in arhiva. Acestea depind de senzorii utilizati.
 +
 +Exemple: DHT_sensor_library,​ DS3231, LiquidCrystal
 +==before==
 +    * initializarea variabilelor folosite pe parcurs
 +==setup()==
 +    * pornirea modulelor folosite: LCD, RTC, Serial, Bluetooth
 +==buttoninfo(..)==
 +    * functie care mentine contorizarea apasarii butonului
 +    * asigura ca se inregistreaza o singura apasare
 +
 +==loop()==
 +      * citirea datelor transmise de senzori
 +      * verificarea apasarii butoanelor
 +      * logica de afisare principala se bazeaza pe senzorul de sunet, declansarea acestuia modifica afisajul de pe ecran: "​on-off"​-ul ceasului
 +      * logica "​paginilor":​ o apasare a primului buton modifica afisajul de pe LCD, astfel se creeaza un meniu interactiv
 +      * pagini: ora, data, ziua saptamanii, temp/​umiditate,​ alarma
 +      * butonul 2: selectarea datei care se doreste a fi modificata
 +      * butonul 3: permite modificarea valorilor orei/datei
 +      * butonul 4: permite afisarea in format 12/24 ore
 +      * afisarea se face in functie de pozitiile de pe LCD folosind setCursor(..)
 +      * pagina intermediara:​ apare dupa apasarea butoanelor 2+1, adica dupa o modificare facuta de utilizator
 +      * logica optiune temperatura:​ in functie de limita impusa, setez pe LOW/HIGH LED-ul de culoarea potrivita
 +
 +==modul Bluetooth==
 +        * pentru a interactiona cu acest modul am creat o aplicatie pe Android cu ajutorul [[https://​appinventor.mit.edu/​ | Mit App Inventor]]
 +        * programul se bazeaza pe blocuri si imagini, de unde mai apoi este generata o aplicatie
 +        * contine 6 butoane: unul pentru conectarea la Bluetooth, unul pentru a opri conectarea, 2 pentru modificarea orei, 2 pentru modificarea minutului
 +        * aplicatia trimite caractere ('​a','​b','​c','​d'​) care sunt interpretate printr-o serie de blocuri conditionate in C, un caracter reprezinta o modificare a unui minut/unei ore
 +
 +
 +==alarma==
 +        * o logica simpla: cand timpul dictat de aplicatie corespunde cu timpul ceasului, se pornesc LED-urile si buzzerul
 +        * nu poate functiona in acelasi timp cu optiunea pentru temperatura deoarece nu ar trebui confundata lumina LED-urilor
 +
 +{{:​pm:​prj2021:​agrigore:​apppppppppp.jpg?​300|}}
 +
 +
  
  
Line 92: Line 139:
 In final, proiectul s-a dovedit a fi usor de folosit, toate functionalitatile dorite au putut fi observate. In final, proiectul s-a dovedit a fi usor de folosit, toate functionalitatile dorite au putut fi observate.
 S-au folosit componente cu functii diversificate pentru un scop comun: sa ofere utilizatorului informatii S-au folosit componente cu functii diversificate pentru un scop comun: sa ofere utilizatorului informatii
-si optiuni utile zilnic printr-o interactiune cat mai accesibila+si optiuni utile zilnic printr-o interactiune cat mai accesibila.
  
 ===== Concluzii ===== ===== Concluzii =====
Line 115: Line 162:
     * 25-27 mai - Hardware + Software..     * 25-27 mai - Hardware + Software..
     * 28 mai - Upgrade la baterie 9V     * 28 mai - Upgrade la baterie 9V
-    * 29 mai - Upgrade la modul bluetooth+    * 29 mai - Upgrade la modul bluetooth, Finalizare schema electrica
     * 1 iunie - Filmare si finalizare demo     * 1 iunie - Filmare si finalizare demo
     * 3 iunie - Editare pagina wiki     * 3 iunie - Editare pagina wiki
pm/prj2021/agrigore/daily.1622692469.txt.gz · Last modified: 2021/06/03 06:54 by gabriela.mircia
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