This shows you the differences between two versions of the page.
pm:prj2022:rtilimpea:prompter-esp [2022/06/01 22:07] cosmin.mihaila2507 |
pm:prj2022:rtilimpea:prompter-esp [2022/06/02 16:31] (current) cosmin.mihaila2507 [Bibliografie/Resurse] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | <div class="left_page"> | + | ====== Prompter ESP ====== |
- | + | ===== Introducere ===== | |
- | <h1 class="sectionedit1" id="nume_proiect">Nume proiect</h1> | + | |
- | <div class="level1"> | + | |
- | </div> | + | Am folosit ESP8266 si o matrice led pentru a face un fel de Promoter. Trimit text de pe telefon si se afiseaza pe matricea led in derulare. |
+ | Am pornit de la ideea de a face ceva apropiat de IoT prin care sa aduc mai aproape partea aceasta de microprocesoare de oamenii de rand care folosesc telefonul in fiecare zi. | ||
+ | Cu mici ajustari acesta poate fi folosit pe post de prompter adevarat. | ||
+ | ===== Descriere generală ===== | ||
- | <h2 class="sectionedit2" id="introducere">Introducere</h2> | + | Folosim o aplicatie de android pe telefon prin care scriem IP-ul dispozitivului ESP (trebuiesc conectate la aceeasi retea locala) si un text pe care vrem sa-l afisam si apasam pe butonul "Trimite". |
- | <div class="level2"> | + | Aplicatia de android va face un POST Request pe ip-ul ESP-ului, iar in body va introduce textul pe care dorim sa-l afisam. |
+ | ESP-ul primeste textul si il va afisa derulanduse pe matrice pana cand cineva apasa pe buton pentru a oprii derularea acestuia. | ||
+ | In timp ce se deruleaza va fi aprins si un LED care semnifica ca mesajul este in afisare. | ||
+ | Cand se apasa pe buton, derularea mesajului se opreste si se asteapta al request. | ||
+ | Si in timpul asteptarii unui nou request, dar si in timpul afisarii mesajului, putem rotii de potentionemtru pentru a marii/micsora viteza de derulare a mesajului. | ||
- | <p> | ||
- | </p><p></p><div class="notetip"> | ||
- | Prezentarea pe scurt a proiectului vostru: | ||
- | <p></p> | ||
- | <ul> | ||
- | <li class="level1"><div class="li"> ce face</div> | ||
- | </li> | ||
- | <li class="level1"><div class="li"> care este scopul lui</div> | ||
- | </li> | ||
- | <li class="level1"><div class="li"> care a fost ideea de la care aţi pornit</div> | ||
- | </li> | ||
- | <li class="level1"><div class="li"> de ce credeţi că este util pentru alţii şi pentru voi</div> | ||
- | </li> | ||
- | </ul> | ||
- | <p> | + | ===== Hardware Design ===== |
- | </p></div><p></p> | + | Pentru parte de hardware am folosit: |
- | <p></p> | + | |
- | </div> | + | 1 x ESP8266 |
- | <h2 class="sectionedit3" id="descriere_generala">Descriere generală</h2> | + | 4 x Modul matrice LED FC-16 DIY |
- | <div class="level2"> | + | |
- | <p> | + | 1 x Encoder rotativ hw-040 (folosit ca potentiometru si buton) |
- | </p><p></p><div class="notetip"> | + | |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
- | <p></p> | + | |
- | <p> | + | Fire de legatura |
- | Exemplu de schemă bloc: <a href="http://www.robs-projects.com/mp3proj/newplayer.html" class="urlextern" title="http://www.robs-projects.com/mp3proj/newplayer.html" rel="nofollow">http://www.robs-projects.com/mp3proj/newplayer.html</a> | + | |
- | </p></div><p></p> | + | 1 x Mother board |
- | <p></p> | + | |
- | </div> | + | ===== Software Design ===== |
- | <h2 class="sectionedit4" id="hardware_design">Hardware Design</h2> | + | Pentru partea de android am folosit Android Studio. |
- | <div class="level2"> | + | Pentru partea de ESP am folosit Arudino IDE. |
- | <p> | + | Android: |
- | </p><p></p><div class="notetip"> | + | |
- | Aici puneţi tot ce ţine de hardware design: | + | |
- | <p></p> | + | |
- | <ul> | + | |
- | <li class="level1"><div class="li"> listă de piese</div> | + | |
- | </li> | + | |
- | <li class="level1"><div class="li"> scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. <a href="http://www.captain.at/electronic-atmega16-mmc-schematic.png" class="urlextern" title="http://www.captain.at/electronic-atmega16-mmc-schematic.png" rel="nofollow">http://www.captain.at/electronic-atmega16-mmc-schematic.png</a>)</div> | + | |
- | </li> | + | |
- | <li class="level1"><div class="li"> diagrame de semnal </div> | + | |
- | </li> | + | |
- | <li class="level1"><div class="li"> rezultatele simulării</div> | + | |
- | </li> | + | |
- | </ul> | + | |
- | <p> | + | Aplicatia porneste o activitate in care se afla 2 editor text si 1 buton. |
+ | Pe un editor text trebuie sa trecem IP-ul ESP-ului, iar pe celalalt textul pe vrem sa-l trimitem. | ||
+ | Pentru partea de request am folosit biblioteca Volley prin care cream un request de tip POST in care avem in body textul pe care vrem sa-l trimitem. | ||
+ | Cand apasam pe butonul "Trimite" se trimite requestul catre ESP. | ||
- | </p></div><p></p> | + | Biblioteci utilizate: |
- | <p></p> | + | |
- | </div> | + | Volley |
- | <h2 class="sectionedit5" id="software_design">Software Design</h2> | + | ESP: |
- | <div class="level2"> | + | |
- | <p> | + | In prima parte declaram pinii folositi, facem setarile matricei si ne conectam la retea. |
- | </p><p></p><div class="notetip"> | + | Dupa care in loop citim datele de pe potentiometru si in acelasi timp asteptam sa primim request-uri de la mobile. |
- | Descrierea codului aplicaţiei (firmware): | + | Cand primim un request, verificam daca textul este gol, iar daca nu este, afisam in continuu textul si se aprinde LED-ul pana la apasarea butonului. |
- | <p></p> | + | Pentru a nu folosii delay, in loc de acesta avem un do while in care citim potentiometrul pana trece un timp definit. |
- | <ul> | + | |
- | <li class="level1"><div class="li"> mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)</div> | + | |
- | </li> | + | |
- | <li class="level1"><div class="li"> librării şi surse 3rd-party (e.g. Procyon AVRlib)</div> | + | |
- | </li> | + | |
- | <li class="level1"><div class="li"> algoritmi şi structuri pe care plănuiţi să le implementaţi</div> | + | |
- | </li> | + | |
- | <li class="level1"><div class="li"> (etapa 3) surse şi funcţii implementate</div> | + | |
- | </li> | + | |
- | </ul> | + | |
- | <p> | + | Biblioteci utilizate: |
- | </p></div><p></p> | + | Max72xxPanel |
- | <p></p> | + | |
- | </div> | + | Adafruit_GFX |
- | <h2 class="sectionedit6" id="rezultate_obtinute">Rezultate Obţinute</h2> | + | ESP8266WebServer |
- | <div class="level2"> | + | |
- | <p> | + | ESP8266WiFi |
- | </p><p></p><div class="notetip"> | + | |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </div><p></p> | + | ===== Rezultate Obţinute ===== |
- | <p></p> | + | |
- | </div> | + | Link rezultat video: |
+ | https://youtube.com/shorts/ENO9x_B0sno?feature=share | ||
+ | ===== Concluzii ===== | ||
- | <h2 class="sectionedit7" id="concluzii">Concluzii</h2> | + | Consider ca acest proiect m-a ajutat in intelegerea materiei, dar mai ales m-a apropiat de partea aceasta de hardware de care ma cam feream in trecut. Consider ca oportunitatile ce le ofera microprocesoarele sunt nelimitate si ca partea de IoT este cu siguranta printre domeniile viitorului. |
- | <div class="level2"> | + | |
- | </div> | ||
- | <h2 class="sectionedit8" id="download">Download</h2> | + | ===== Bibliografie/Resurse ===== |
- | <div class="level2"> | + | |
- | <p> | + | https://www.espressif.com/sites/default/files/documentation/esp8266-technical_reference_en.pdf |
- | </p><p></p><div class="notewarning"> | + | |
- | 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ă <img src="/courses/lib/images/smileys/icon_wink.gif" class="icon" alt=";-)">. | + | |
- | <p></p> | + | |
- | <p> | + | https://majicdesigns.github.io/MD_MAX72XX/ |
- | Fişierele se încarcă pe wiki folosind facilitatea <strong>Add Images or other files</strong>. Namespace-ul în care se încarcă fişierele este de tipul <strong>:pm:prj20??:c?</strong> sau <strong>:pm:prj20??:c?:nume_student</strong> (dacă este cazul). <strong>Exemplu:</strong> Dumitru Alin, 331CC → <strong>:pm:prj2022:cc:dumitru_alin</strong>. | + | |
- | </p></div><p></p> | + | https://www.inro-electronics.com/hobby-robotic-parts/sensors/rotary-encoder-module-pulse-digital-hw-040?limit=100 |
- | <p></p> | + | |
- | </div> | ||
- | <h2 class="sectionedit9" id="jurnal">Jurnal</h2> | ||
- | <div class="level2"> | ||
- | |||
- | <p> | ||
- | </p><p></p><div class="notetip"> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | |||
- | </div><p></p> | ||
- | <p></p> | ||
- | |||
- | </div> | ||
- | |||
- | <h2 class="sectionedit10" id="bibliografieresurse">Bibliografie/Resurse</h2> | ||
- | <div class="level2"> | ||
- | |||
- | <p> | ||
- | </p><p></p><div class="noteclassic"> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe <strong>Resurse Software</strong> şi <strong>Resurse Hardware</strong>. | ||
- | |||
- | </div><p></p> | ||
- | <p></p> | ||
- | |||
- | <p> | ||
- | <a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a> | ||
- | </p> | ||
- | |||
- | </div> | ||
- | |||
- | </div> |