This shows you the differences between two versions of the page.
pm:prj2025:mdinica:cristian.popescu03 [2025/05/29 23:02] cristian.popescu03 [Software Design] |
pm:prj2025:mdinica:cristian.popescu03 [2025/05/30 01:10] (current) cristian.popescu03 [Jurnal] |
||
---|---|---|---|
Line 28: | Line 28: | ||
* Ecranul va fi folosit pentru afișarea aplicațiilor și conținutului. | * Ecranul va fi folosit pentru afișarea aplicațiilor și conținutului. | ||
* Funcția capacitivă a modulului permite utilizatorului sa navigheze prin aplicații și să controleze anumite funcționalități ale acestora. | * Funcția capacitivă a modulului permite utilizatorului sa navigheze prin aplicații și să controleze anumite funcționalități ale acestora. | ||
+ | * Ecranul dispune de un Touch Pen pentru a crește precizia. | ||
^ ^ Pin ^ Pin ESP32 ^ Descriere ^ | ^ ^ Pin ^ Pin ESP32 ^ Descriere ^ | ||
Line 161: | Line 162: | ||
* La fiecare revenire, homescreen-ul este actualizat. Dacă utilizatorul s-a conectat la Wi-Fi, atunci vremea si timpul sunt actualizate cu date in timp real. | * La fiecare revenire, homescreen-ul este actualizat. Dacă utilizatorul s-a conectat la Wi-Fi, atunci vremea si timpul sunt actualizate cu date in timp real. | ||
- | </note> | ||
** Main loop ** | ** Main loop ** | ||
<code cpp> | <code cpp> | ||
- | |||
void loop() { | void loop() { | ||
// If button is pressed, toggle the display | // If button is pressed, toggle the display | ||
Line 172: | Line 171: | ||
} | } | ||
- | // Check and handle any gesture | + | // Check and handle any gesture |
if (get_sensor_flag()) | if (get_sensor_flag()) | ||
handle_gesture(); | handle_gesture(); | ||
- | // If the screen is off, return | + | // If the screen is off, return |
if (!screen_on) { | if (!screen_on) { | ||
idle(); | idle(); | ||
Line 182: | Line 181: | ||
} | } | ||
- | // If the clock timer updated the time, draw the new time | + | // If the clock timer updated the time, draw the new time |
if (update_time) { | if (update_time) { | ||
update_time = false; | update_time = false; | ||
- | draw_clock_time(); | + | draw_clock_time(); |
} | } | ||
- | // Check for any touch | + | // Check for any touch |
uint16_t touch_x = 0, touch_y = 0; | uint16_t touch_x = 0, touch_y = 0; | ||
bool touch = tft.getTouch(&touch_x, &touch_y); | bool touch = tft.getTouch(&touch_x, &touch_y); | ||
if (!touch) | if (!touch) | ||
- | return; | + | return; |
// If user exited app, redraw homescreen | // If user exited app, redraw homescreen | ||
Line 200: | Line 199: | ||
} | } | ||
</code> | </code> | ||
+ | </note> | ||
<note> | <note> | ||
Line 224: | Line 223: | ||
{{pm:prj2025:mdinica:cristian.popescu03:music_app_v1.jpeg?700x800|Music app}} | {{pm:prj2025:mdinica:cristian.popescu03:music_app_v1.jpeg?700x800|Music app}} | ||
+ | |||
+ | == ESPhone v2.0 == | ||
+ | |||
+ | {{pm:prj2025:mdinica:cristian.popescu03:esphone_with_battery.jpeg?225x450|ESPhone}} | ||
+ | {{pm:prj2025:mdinica:cristian.popescu03:keyboard.jpeg?225x450|ESPhone keyboard}} | ||
+ | {{pm:prj2025:mdinica:cristian.popescu03:bytechat.jpeg?225x450|ESPhone ByteChat app}} | ||
+ | |||
+ | {{pm:prj2025:mdinica:cristian.popescu03:esphone_pm.jpeg?700x850|Paint app again}} | ||
+ | |||
+ | {{pm:prj2025:mdinica:cristian.popescu03:back_with_espen_holder.jpeg?700x510|ESPhone with ESPen holder}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | După multe zile de debugging și o grămadă de fire lipite, pot să spun că am reușit să creez ceea ce mi-am propus: un telefon ușor de folosit, greu de asamblat. Am învățat o grămadă de lucruri noi, mai ales pe partea de embedded, și sigur nu o să uit această experiență prea curând. |
===== Jurnal ===== | ===== Jurnal ===== | ||
+ | <note> | ||
+ | * 15.04.2025 -> M-am decis în legătură cu tema proiectului. | ||
+ | * 22.04.2025 -> Am comandat ecranul TFT LCD 2.8". | ||
+ | * 28.04.2025 -> Am desenat UI pentru aplicații. | ||
+ | * 5.05.2025 -> Am comandat un kit Plusivo, ESP32 DevKit-V1 si un APDS9960. | ||
+ | * 11.05.2025 -> M-am apucat să dezvolt "OS-ul" pentru ESPhone. | ||
+ | * 15.05.2025 -> Am cumpărat o placă de test. De asemenea, am implementat aplicația de desenat, de redat muzică, conectat la WiFi și schimbat culoarea fundalului. | ||
+ | * 22.05.2025 -> Am cumpărat fire pentru momentul când voi lipi piesele pe placa de test. | ||
+ | * 27.05.2025 -> Am implementat aplicația de mesagerie si galerie foto. | ||
+ | * 28.05.2025 -> Am lipit componentele pe placa de test. | ||
+ | * 29.05.2025 -> Am finalizat ESPhone. | ||
+ | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | |||
+ | Resurse Software: | ||
+ | * https://github.com/Bodmer/TFT_eSPI | ||
+ | * https://github.com/Bodmer/TJpg_Decoder | ||
+ | * https://randomnerdtutorials.com/esp32-tft-touchscreen-display-2-8-ili9341-arduino/ | ||
+ | * https://randomnerdtutorials.com/esp32-ntp-timezones-daylight-saving/ | ||
+ | * https://randomnerdtutorials.com/esp32-date-time-ntp-client-server-arduino/ | ||
+ | * https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv | ||
+ | * https://projecthub.arduino.cc/tmekinyan/playing-popular-songs-with-arduino-and-a-buzzer-546f4a | ||
+ | * https://github.com/hibit-dev/buzzer | ||
+ | * https://randomnerdtutorials.com/esp32-pwm-arduino-ide/ | ||
+ | * https://randomnerdtutorials.com/esp32-useful-wi-fi-functions-arduino/ | ||
+ | * https://cataas.com/ | ||
+ | * https://www.weatherapi.com/ | ||
+ | Resurse Hardware: | ||
+ | * https://www.youtube.com/watch?v=rq5yPJbX_uk&list=LL&index=1&t=832s&pp=gAQBiAQB | ||
+ | * https://www.youtube.com/watch?v=gj-H_agfd6U |