Differences

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

Link to this comparison view

pm:prj2024:sseverin:nicoleta.dobrica [2024/05/23 23:33]
nicoleta.dobrica [Software Design]
pm:prj2024:sseverin:nicoleta.dobrica [2024/05/27 10:46] (current)
nicoleta.dobrica [Concluzii]
Line 31: Line 31:
  
 În funcție de preferința utilizatorului,​ datele vor fi afișate pe un display LCD ce comunică prin SPI. În funcție de preferința utilizatorului,​ datele vor fi afișate pe un display LCD ce comunică prin SPI.
- 
  
 **Etapa 1:** **Etapa 1:**
 +
 +{{:​pm:​prj2024:​sseverin:​etapa1_ada.jpeg?​500 |}}
 +
 +
 +==== Etapa finală ====
 +
 +{{:​pm:​prj2024:​sseverin:​asamblare_carcasa_ada.jpeg?​600 |}}
  
  
-{{:​pm:​prj2024:​sseverin:​etapa1_ada.jpeg?400 |}}+Aici asamblat plăcuța în carcasa imprimată 3D. Pentru a lipi display-ul și plăcuța am folosit silicon, și pentru alimentare am folosit un battery holder cu mufă jack și 4 baterii de 1.5V.
 ===== Software Design ===== ===== Software Design =====
  
Line 49: Line 55:
 Pentru modulul de ceas, care functioneaza prin I2C, a trebuit sa creez separat o instanta de TwoWire pentru a seta 2 pini de pe placuta ESP32 pentru comunicare I2C, deoarece nu am folosit pinii I2C default de pe aceasta. Pentru modulul de ceas, care functioneaza prin I2C, a trebuit sa creez separat o instanta de TwoWire pentru a seta 2 pini de pe placuta ESP32 pentru comunicare I2C, deoarece nu am folosit pinii I2C default de pe aceasta.
  
 +In functia de **setup()**,​ m-am ocupat de initializarea tuturor senzorilor si componentelor necesare:
 +  * **Serverul web asincron** si un handler pentru request-urile facute din aplicatie. Mai intai, robotul se conecteaza la Wi-fi si din aplicatie se pot alege diverse moduri de afisare a ecranului si ce exact sa se afiseze pe ecran. Fiecare buton apasat din aplicatie va fi un request de tip GET pe ruta <​nowiki>"​http://<​IP_ESP32>/​display?​mode=valoare"</​nowiki>​. Valoarea va determina ce se va afisa pe ecran la momentul curent de timp (temperatura,​ data si ora, umiditatea sau presiunea aerului). De asemenea, exista si ruta <​nowiki>​“http://<​IP_ESP32>/​display?​time=valoare_timp&​message=mesaj</​nowiki>​” pentru ca utilizatorul sa isi poata seta o notificare/​reminder ce va fi afisat pe ecran atunci cand isi doreste. Odata ce va fi afisata notificarea respectiva, utilizatorul poate dezactiva notificarea apasand un buton de “Disable” ce va trimite un request de <​nowiki>​“http://<​IP_ESP32>/​display?​alarm=stop”</​nowiki>​.
 +  * Am initializat aici **modulul de ceas** si instanta de TwoWire pentru aceasta
 +  * Am initializat **senzorul de presiune atmosferica** BMP280. Senzorul poate fi folosit sa comunice ori prin I2C ori prin SPI, insa am facut comunicarea prin SPI, si am setat sampling mode-ul senzorului la cel normal.
 +  * Am initializat si un **timer** pe care il folosesc la modul “default” de afisare al ecranului: cand inca nu a apasat utilizatorul niciun buton, robotul isi schimba fetele odata la 10 secunde.
 +
 +In functia **loop()** am implementat flow-ul display-ului:​ utilizatorul poate afisa pe ecran urmatoarele lucruri: temperatura,​ umiditatea, data si ora, si presiunea atmosferica si altitudinea. Fiecare dintre aceste componente vin in doua moduri diferite de afisare pe care le poate schimba utilizatorul oricand din aplicatie. ​
 +
 +Aplicația a fost făcută cu MIT App Inventor.
 +
 +{{:​pm:​prj2024:​sseverin:​aplicatie_mit_app_inventor.jpeg?​200 |}}
  
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Acesta este unul dintre modurile de afișare ale temperaturii și unul pentru presiunea atmosferică și altitudine
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</​note>​+{{:​pm:​prj2024:​sseverin:​final1_ada.jpeg?​300 |}}
  
 +{{:​pm:​prj2024:​sseverin:​final2_ada.jpeg?​300|}}
 ===== Concluzii ===== ===== Concluzii =====
  
 +Din păcate, nu am reușit să fac să funcționeze touchscreen-ul la display, însă per total a fost un proiect interesant și de la care am învățat multe lucuri (și răbdare).
 ===== Download ===== ===== Download =====
  
-<note warning> 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). 
- 
-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>​ 
  
 +{{:​pm:​prj2024:​sseverin:​proiect_pm_ada.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
  
Line 75: Line 90:
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ + 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +  * https://​www.luisllamas.es/​en/​esp32-timers/ 
-</note>+  ​https://​www.instructables.com/​How-to-Connect-BMP-280-to-ESP32-Get-Pressure-Tempe/​ 
 +  ​https://​electropeak.com/​learn/​interfacing-2-8-inch-tft-lcd-touch-screen-with-esp32/​ 
 +  ​https://​randomnerdtutorials.com/​esp32-tft-touchscreen-display-2-8-ili9341-arduino/​ 
 +  ​https://​learn.adafruit.com/​adafruit-gfx-graphics-library/​minimizing-redraw-flicker 
 +  * https://​microcontrollerslab.com/​esp32-ds3231-real-time-clock-rtc-oled/
  
 <​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/sseverin/nicoleta.dobrica.1716496388.txt.gz · Last modified: 2024/05/23 23:33 by nicoleta.dobrica
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