CryptoWatch

Introducere

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ți la evoluția pieței cripto în timp real, contribuind la îmbunătățirea înțelegerii și gestionării investițiilor în criptomonede.

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 și prelucra informația pentru a afișa pe ecran informații precum numele criptomonedei, prețul curent într-o monedă selectată și rata de schimbare a 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.

Crypto Watch este un produs care poate fi folosit de către toți entuziaștii și investitorii de criptomonede.

Descriere generală

Hardware Design

Lista piese
  • Placă de dezvoltare ESP32
  • Ecran OLED
  • 2 x butoane

Software Design

Mediu de dezvoltare

Proiectul a fost dezvoltat în ArduinoIDE.

Librării
  • Wifi ⇒ gestionează conexiunea wifi a plăcii esp32
  • ArduinoJson ⇒ este folosit pentru lucrul cu formate json
  • WebServer ⇒ este folosit de esp32 pentru a gestiona requesturi de tip http
  • U8g2lib ⇒ este folosit pentru lucrul cu fonturi pentru afișajul ecranului oled
  • HttpClient ⇒ este folosit pentru a face requesturi către api-uri externe.
  • FreeRTOS ⇒ folosită pentru multithreading
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.

Î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.org/ pentru a obține timpul și un mod în care afișează informațiile despre crypto monede.

Î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.

În fișierele coinapi.h și clockapi.h este implementată logica pentru requesturi.

Logică

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 internet. După ce se face conexiunea, dispozitivul nu se mai poate configura, începând să facă requesturi pentru timp și cryptomonedele adăugate.

Rezultate Obţinute

Concluzii

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.

Datorită dimensiunii sale mici este plăcut de utlizabil, neatrăgând atenția.

Câteva probleme:

  1. uneori butoanele nu răspund corespunzător la apăsare (probabil de la delayuri).
  2. reconfigurarea dispozitivului se face doar prin reconectarea acestuia la o sursă de curent.

Download

Bibliografie/Resurse

Componente Hardware folosite:

Resurse software:

Export to PDF

pm/prj2024/amocanu/florin.romulescu.txt · Last modified: 2024/05/27 12:22 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