Differences

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

Link to this comparison view

pm:prj2024:amocanu:florin.romulescu [2024/05/04 13:49]
florin.romulescu
pm:prj2024:amocanu:florin.romulescu [2024/05/27 12:22] (current)
florin.romulescu [Concluzii]
Line 2: Line 2:
 ===== Introducere ===== ===== Introducere =====
  
-<note tip> +Crypto Watch reprezintă un instrument util și eficient pentru cei interesați de lumea criptomonedelor,​ o lume care este în continuă schimbare. Cu funcționalitatea sa intuitivă și designul său compact, acest proiect oferă utilizatorilor o modalitate simplă și accesibilă ​de a monitoriza și de a rămâne conectațla evoluția pieței cripto în timp real, contribuind la îmbunătățirea înțelegerii șgestionării investițiilor în criptomonede.
-Prezentarea pe scurt a proiectului vostru: +
-  * ce face +
-  * care este scopul lui +
-  * care a fost ideea de la care aţpornit +
-  * de ce credeţcă este util pentru alţii şpentru voi +
-</​note>​ +
-===== Descriere generală =====+
  
-<note tip> +Dispozitivul se dorește a fi un ceas care prezintă informații în timp real despre evoluția unei game largi de criptomonede prin interacțiunea ​cu un api. Acesta va prelua șprelucra informația pentru ​afișa pe ecran informații ​precum ​numele criptomonedei,​ prețul curent într-o monedă selectată șrata de schimbare ​criptomonedei. Utilizatorul poate schimba criptomoneda monitorizată prin apăsarea unui buton și moneda ​în care se face conversia prin apăsarea unui al doilea buton. Pe lângă cele 2 inputuri, utilizatorul va putea adăuga noi criptomonede pe care să le monitorizeze prin telefon.
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şhardware însoţită de o descriere ​acestora ​precum ​şi a modului ​în care interacţionează.+
  
-Exemplu ​de schemă blochttp://www.robs-projects.com/​mp3proj/​newplayer.html +Crypto Watch este un produs care poate fi folosit ​de către toți entuziaștii și investitorii de criptomonede. 
-</​note>​+===== Descriere generală ===== 
 + 
 +{{:pm:prj2024:​amocanu:​diagramabloc-cryptowatch.png?200|}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +== Lista piese == 
-Aici puneţi tot ce ţine de hardware design: +  * Placă de dezvoltare ESP32 
-  * listă de piese +  * Ecran OLED 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +  * 2 x butoane
-  * diagrame de semnal  +
-  * rezultatele simulării +
-</​note>​+
  
 +{{:​pm:​prj2024:​amocanu:​schema-cw.jpg?​200|}}
 ===== Software Design ===== ===== Software Design =====
  
 +== Mediu de dezvoltare ==
 +Proiectul a fost dezvoltat în ArduinoIDE.
  
-<note tip+== Librării == 
-Descrierea codului aplicaţiei (firmware): +  * Wifi =gestionează conexiunea wifi a plăcii esp32 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +  * ArduinoJson => este folosit pentru lucrul cu formate json 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +  * WebServer => este folosit ​de esp32 pentru a gestiona requesturi de tip http 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +  * U8g2lib => este folosit pentru lucrul cu fonturi pentru afișajul ecranului oled 
-  * (etapa 3) surse şi funcţii implementate +  * HttpClient => este folosit pentru a face requesturi către api-uri externe. 
-</note>+  * FreeRTOS =folosită pentru multithreading
  
-===== Rezultate Obţinute =====+== Algoritmi ​== 
 +Se vor implementa două taskuri(threaduri) care vor gestiona butoanele și afișajul displayului. În loopul principal se vor face requesturi către api-ul celor de la CoinGecko (site: https://​www.coingecko.com/​ ; documentație:​ https://​docs.coingecko.com/​reference/​introduction). Aceste requesturi se vor trimite o dată la un minut când există deja un rezultat pe ecran, altfel se vor trimite la 1 secundă până când obținem un rezultat.
  
-<note tip> +În fișierul display.h se găsește logica pentru afișaj. Ecranul se poate afla în 3 stări: unul în care așteaptă o conexiune wifi și afișează că are nevoie de conexiune pentru a continua, unul în care afișează ora curentă, trimițând la 10 secunde requesturi către http://​worldtimeapi.orgpentru a obține timpul și un mod în care afișează informațiile despre crypto monede.
-Care au fost rezultatele obţinute ​în urma realizării proiectului vostru. +
-</note>+
  
-===== Concluzii =====+În fișierul button.h se află funcțiile care gestionează comenzile primite de la butoane. 
 +  * Prin apăsarea celor 2 butoane simultan se comută între afișajul orei și cel al crypto monedelor. 
 +  * În modul de afișare a crypto monedelor se poate apăsa primul buton pentru a comuta între crypto monedele existente, iar cel de-al doilea buton pentru a comuta între monele în care se convertește.
  
-===== Download =====+În fișierele coinapi.h și clockapi.h este implementată logica pentru requesturi.
  
-<note warning> +== Logică == 
-O arhivă (sau mai multe dacă este cazul) ​cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etcUn fişier READMEun ChangeLogun script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+Plăcuța la pornire se va seta ca și access point unde mai multe dispozitive se pot conecta pentru a o configura. Aici se pot trimite requesturi către plăcuță pentru a adăuga noi crypto monede și pentru a face conexiunea la internetDupă ce se face conexiuneadispozitivul nu se mai poate configuraîncepând să facă requesturi pentru timp și cryptomonedele adăugate. 
 +===== Rezultate Obţinute =====
  
-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**. +{{:pm:prj2024:amocanu:pm-1.jpg?200|}}
-</​note>​+
  
-===== Jurnal ​=====+{{:​pm:​prj2024:​amocanu:​pm-2.jpg?​200|}} 
 +===== Concluzii ​=====
  
-<note tip> +Dispozitivul funcționează cum a fost intenționat. A fost setat să dea requesturi către api-ul de la Coin Gecko la 25 de secunde, deci nu va depăși limita ​de 30 de requesturi pe minut decât dacă se schimbă foarte repede între cripto monede. Deoarece am folosit acest api utlizatorii au o gamă foarte mare de monede din care pot alege la configuare.
-Puteți avea și o secțiune ​de jurnal în care să poată urmări asistentul ​de proiect progresul proiectului. +
-</​note>​+
  
 +Datorită dimensiunii sale mici este plăcut de utlizabil, neatrăgând atenția.
 +
 +Câteva probleme:
 +  - uneori butoanele nu răspund corespunzător la apăsare (probabil de la delayuri).
 +  - reconfigurarea dispozitivului se face doar prin reconectarea acestuia la o sursă de curent.
 +===== Download =====
 +
 +{{:​pm:​prj2024:​amocanu:​cryptowatch.zip|}}
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<note> +Componente Hardware folosite: 
-Listă ​cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse ​Software** şi **Resurse Hardware**+  - <html><a href="​https://​www.sigmanortec.ro/​placa-dezvoltare-esp32-cu-wifi-si-bluetooth?​fast_search=fs">​Esp32</​a></​html>​ 
-</note>+  - <​html><​a href="​https://​www.sigmanortec.ro/​Display-OLED-1-3-Alb-128x64-p136081872?​fast_search=fs">​Display</​a></​html>​ 
 + 
 +Resurse ​software: 
 +  - <​html><​a href="​https://​www.freertos.org/​index.html">​FreeRTOS</​a></​html>​ 
 +  - <​html><​a href="​https://​github.com/​olikraus/​u8g2">​U8g2 Fonts</​a>​</html>
  
 <​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/prj2024/amocanu/florin.romulescu.1714819768.txt.gz · Last modified: 2024/05/04 13:49 by florin.romulescu
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