Differences

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

Link to this comparison view

pm:prj2026:ciprian.popescu0411:alexandru.nehoianu [2026/05/23 17:59]
alexandru.nehoianu
pm:prj2026:ciprian.popescu0411:alexandru.nehoianu [2026/05/23 19:28] (current)
alexandru.nehoianu
Line 104: Line 104:
   * HTTPClient.h - Crearea și trimiterea cererilor HTTP   * HTTPClient.h - Crearea și trimiterea cererilor HTTP
  
-<note tip> +Elementul de noutate al proiectului constă în posibiliățile pe care le oferă. Fiind conectat la WiFi și la Bluetooth înseamnă că poți obține orice fel de informații,​ iar cu ajutorul bilbiotecii TFT_eSPI îți poți crea ușor propria interfață. 
-Descrierea ​codului ​aplicaţiei (firmware): + 
-  * mediu de dezvoltare ​(if any) (e.gAVR Studio, CodeVisionAVR) +Scheletul ​codului
-  * librării şsurse 3rd-party (e.gProcyon AVRlib) +^ Funcție ^ Rol ^ 
-  * algoritmi şstructuri ​pe care plănuiţsă le implementaţ+| batteryStatusCallback | Actualizează variabila //​batteryStatus//​ cu noul nivel al bateriei de la telefon | 
-  * (etapa 3) surse şfuncţii implementate+| subscribeToBatteryService | Subscribe la serviciul de Bluetooth pentru baterie. Se primesc notificări când se modifică nivelul bateriei și sunt gestionate de funcția batteryStatusCallback | 
 +| amsCallBack | Actualizează informațiile despre melodia redată pe telefon (titlu, artist, durată, stare etc.). Pentru a determina tipul informației primite, am urmărit specificațiile din documentația AMS | 
 +| subscribeToAMS | Subscribe la Apple Media Service | 
 +| printTime | Afișează ​(pe Serialdata curentă | 
 +| getCurrentTime | Sincronizează ceasul microcontroller-ului cu ceasul ​de la telefon ​(prin Bluetooth
 +| printTrack | Afișează informații ​(pe Serial) despre melodia redată | 
 +| sensorCallback | Citește valorile senzorilor și modifică modul de afișare (Dark Mode / Light Mode) dacă este nevoieFuncția este un task FreeRTOS care se apelează automat la 2 secunde| 
 +| reminderCallback | Verifică lista cu remindere și semnalează pornirea alarmeiFuncția este un task FreeRTOS care se apelează automat la o secundă | 
 +| httpGETRequest | Creează ștrimite cererea HTTP la serverul RESTÎntoarce răspunsul de la server | 
 +| WiFiStationDisconnected | Încearcă reconectarea la WiFi | 
 +| parseReminderList | Se parsează răspunsul primit de la server și se actulizează lista cu remindereRăspunsul conține titlul și timpul reminder-ului | 
 +| drawCustomCentredString | Afișează un text centrat la coordonatele date | 
 +| drawDividers | Desenează liniile orizontale care delimitează secțiunile interfeței grafice | 
 +| updateHeaderView | Afișează pe ecran timpul șinformațiile de la senzori | 
 +| updateDateBarView | Afișează ​pe ecran data curentă 
 +| drawRemindersList | Desenează pe ecran lista cu remindere | 
 +| updateMediaScrubber | Afișează pe ecran titlul melodiei redate pe telefon șdesenează o bară care se actualizează cu progresul melodiei| 
 +| setup | Se inițializează senzorii, display-ul și conexiunea la WiFi șBluetooth | 
 +| loop | Se actulizează interfața grafică, se acționează buzzer-ul șse fac periodic cereri la serverul HTTP | 
 + 
 +<​note>​ 
 +Videoclip demo: https://​youtube.com/​shorts/​l6caujJPsVg
 </​note>​ </​note>​
  
-===== Rezultate Obţinute =====+Optimizările pe care le-am realizat sunt legate de Bluetooth. Prima optimizare a fost alegerea BLE (Bluetooth Low Energy) în loc de Bluetooth obișnuit. BLE consumă mult mai puțină energie (pe microcontroller,​ dar și pe telefon) și oferă toate serviciile de care am nevoie. A doua optimizare constă în folosirea funcției de //​subscribe//​ la un serviciu Bluetooth. Folosind subscribe, primesc notificări doar atunci când se modifică datele (de exemplu se schimbă melodia) și nu trebuie să fac polling constant. De asemenea, în cadrul funcțiilor de callback (funcții care se apelează automat când primesc o notificare Bluetooth) am evitat instrucțiunile complexe și doar am setat anumite flag-uri, pe care le-am tratat ulterior în loop.
  
-<​note ​tip+<​note>​ 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+Link Github: https://​github.com/​neho2245/​proiect_pm
 </​note>​ </​note>​
 +
  
 ===== Concluzii ===== ===== Concluzii =====
Line 126: Line 148:
  
 Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**.
-</​note>​ 
- 
-===== Jurnal ===== 
- 
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
 </​note>​ </​note>​
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +Resurse: 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +  https://​developer.apple.com/​library/​archive/​documentation/​CoreBluetooth/​Reference/​AppleMediaService_Reference/​Introduction/​Introduction.html 
-</note>+  ​https://​www.bluetooth.com/​wp-content/​uploads/​Files/​Specification/​HTML/​Assigned_Numbers/​out/​en/​Assigned_Numbers.pdf 
 +  ​https://​github.com/​Bodmer/​TFT_eSPI 
 +  ​https://​github.com/​h2zero/​NimBLE-Arduino 
 +  * https://​esp32.com/​viewtopic.php?​t=9875
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
  
pm/prj2026/ciprian.popescu0411/alexandru.nehoianu.1779548389.txt.gz · Last modified: 2026/05/23 17:59 by alexandru.nehoianu
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