Differences

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

Link to this comparison view

pm:prj2024:avaduva:adrian.dumitrache02 [2024/05/13 17:24]
adrian.dumitrache02 [Hardware Design]
pm:prj2024:avaduva:adrian.dumitrache02 [2024/05/24 23:09] (current)
adrian.dumitrache02 [Download]
Line 48: Line 48:
  
 {{https://​i.imgur.com/​Olv8iak.jpeg?​600x450}} {{https://​i.imgur.com/​Olv8iak.jpeg?​600x450}}
 +
 +Oglinda in sine:
 +{{https://​i.imgur.com/​auBRUlT.jpeg?​768x1024}}
 +
  
 ==Schematic== ==Schematic==
Line 58: Line 62:
 Am abuzat de faptul ca placuta mea este compatibila cu Arduino IDE din deplin. Astfel, folosesc **Arduino IDE** si urmatorele biblioteci pentru Arduino: Am abuzat de faptul ca placuta mea este compatibila cu Arduino IDE din deplin. Astfel, folosesc **Arduino IDE** si urmatorele biblioteci pentru Arduino:
   * **ESP8266** pentru Wifi si cereri HTTP   * **ESP8266** pentru Wifi si cereri HTTP
 +  * **WiFi Manager** pentru a servi o pagina web ce ajuta la setup-ul oglinzii
   * **Arduino JSON** pentru manipulare date primite de la API-uri   * **Arduino JSON** pentru manipulare date primite de la API-uri
   * **AdaFruit ILI9341** pentru display si **AdaFruit GFX** pentru a scrie la display   * **AdaFruit ILI9341** pentru display si **AdaFruit GFX** pentru a scrie la display
-  * **DHT Sensor Library** pentru comunicare cu senzorul de umiditate+  * **Simple ​DHT** pentru comunicare cu senzorul de umiditate
   * **DS3231** pentru RTC   * **DS3231** pentru RTC
 +  * **Clock** pentru a pastra evidenta timpului dupa citirea initiala de la RTC (mai simplu decat sa citim de o mie de ori de la ceas)
  
-===== Rezultate Obţinute =====+Arhitectura de baza a software-ului este strans legata de ce trebuie afisat la ecran, astfel avem urmatoare **masina de stari**: 
 +{{https://​i.imgur.com/​wk4upUl.png}}
  
-<note tip> +In starea **loading screen** se realizeaza: 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +  * setupul tuturor obiectelor din diversele biblioteci folosite 
-</​note>​+  * conectarea la Wifi 
 +  * citirea unor valori initiale de la senzori
  
-===== Concluzii =====+Prima data cand oglinda este folosita, aceasta are nevoie de un mic setup din partea utilizatorului,​ mai exact trebuie configurata **reteaua WiFi** la care se va conecta oglinda. Pentru acest lucru oglinda va deschide un access point numit **SmartMirrorAP** la care se pot care utilizatorul trebuie sa se conecteze de pe telefon/​calculator,​ in aceasta retea este servita o pagina web la adresa IP **192.168.4.1** in care utilizatorul poate alege reteaua dorita: 
 +{{https://​i.imgur.com/​q8CqUwX.png?​800x500}}
  
-===== Download =====+Dupa setup-ul initial, oglinda se va conecta automat reteaua aleasa in urma unui restart.
  
-<note warning>​ +Starea **weather** prezinta informatii despre vreme de pe **OpenWeatherMap** si un sfat pentru o vestimentatie adecvata. Pentru a determina **locatia** despre care sa preluam informatii ​este folosita **geolocatia IP-ului**. Evidentaici pot aparea erori daca geolocatia IP-ului este una eronataSpre exemplucand conectezez oglinda la datele mele mobile am un IP cu geolocatie ​de Brasov.
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, schemeetcUn 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 Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Starea ​**humidity info** prezinta procentul de umiditate al camerei si determina daca acest procent ​este adecvat vremii ​de afara sau nu In plusexista si o logica interna de loading deoarece citirile de la senzorul de umiditate sunt lente si inconsistente,​ fiind posibil ​ sa dureze peste 10 secunde de la pornire pana se face o citire cu succes.
-</​note>​+
  
 +Starea **time and date** prezinta ora si data actuala, acestea se actualizeaza la fiecare minut.
 +
 +Am abordat urmatoarele subiecte de laborator:
 +  * **intreruperi**
 +  * **SPI** pentru display
 +  * **I2C** pentru RTC
 +  * **GPIO** pentru buton
 +
 +===== Rezultate Obţinute =====
 +
 +Demo software: https://​youtu.be/​XXP2upEUx5Y
 +
 +Demo produs final: https://​youtu.be/​awK3mPZTxls
 +===== Concluzii =====
 +
 +A fost foarte distractiv si cred ca o sa folosesc aceasta oglinda in continuare. Ar merge extinsa si mai mult, eventual cu o metoda mai smart de a schimba intre ecrane (ma gandeam la un senzor de gesturi), double buffering la ecran si mai multe ecrane.
 +===== Download =====
 +[[https://​www.dropbox.com/​scl/​fi/​yp7gtr9v38cguhgycn2e4/​proiect_pm.ino?​rlkey=rnyrvutzbl0itycblg8nvhmec&​st=at5926zz&​dl=0|Cod sursa]]
 ===== Jurnal ===== ===== Jurnal =====
   * 12 mai pe la ora 12: mi-au venit toate piesele, optimus digital mi-a trimis display-ul gresit, aia e ne descurcam   * 12 mai pe la ora 12: mi-au venit toate piesele, optimus digital mi-a trimis display-ul gresit, aia e ne descurcam
   * 12 mai pe la ora 23: am legat si am testat tot mai putin RTC-ul, pentru care nu am deocamdata o baterie CR2032 (ma voi duce in piata sa cumpar probabil) ​   * 12 mai pe la ora 23: am legat si am testat tot mai putin RTC-ul, pentru care nu am deocamdata o baterie CR2032 (ma voi duce in piata sa cumpar probabil) ​
   * 13 mai: am scris documentatia hardware, am actualizat putin schematic-ul pentru ca n-am legat lucrurile cum am crezut ca o sa le leg si am facut si un symbol dragut pentru placuta   * 13 mai: am scris documentatia hardware, am actualizat putin schematic-ul pentru ca n-am legat lucrurile cum am crezut ca o sa le leg si am facut si un symbol dragut pentru placuta
 +  * 23 mai: am scris si documentat ideea de baza de software, ramane de lipit totul la oglinda si eventual imbunatatit codul pana la PM fair :)
 +  * 24 mai: am atasat totul la oglinda si am facut niste imbunatatiri la partea de software (e.g: access point pentru configurare)
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
Line 91: Line 118:
 <​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>​
  
 +=== Resurse hardware === 
 +  * [[https://​www.makershop.de/​download/​d1-wifi-esp8266-board.pdf|Wemos D1 R2 datasheet]] 
 +  * [[http://​www.nihamkin.com/​2016/​03/​04/​connecting-esp8266-with-ili9341-tft-display/​|Tutorial conectare display la ESP8266]]
pm/prj2024/avaduva/adrian.dumitrache02.1715610282.txt.gz · Last modified: 2024/05/13 17:24 by adrian.dumitrache02
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