Differences

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

Link to this comparison view

pm:prj2023:dene:smart-green-lamp [2023/05/29 21:57]
vlad.zinca [Software Design]
pm:prj2023:dene:smart-green-lamp [2023/05/29 22:43] (current)
vlad.zinca [Bibliografie/Resurse]
Line 40: Line 40:
   * senzor ultrasonic de distanță HC-SR04+   * senzor ultrasonic de distanță HC-SR04+
   * modul releu cu un canal   * modul releu cu un canal
-  * bec cu LED E27+  * bec cu LED E27 / fasung / stecher
   * baterie VARTA 6F22 9V   * baterie VARTA 6F22 9V
   * breadboard   * breadboard
   * fire   * fire
 +  * stand de montaj
 </​note>​ </​note>​
  
Line 52: Line 53:
 ===== Software Design ===== ===== Software Design =====
  
-Pentru a scrie codul, m-am folosit de **Arduino IDE** și trei biblioteci: **Wire**, pentru modulul I2C, **LiquidCrystal_I2C**,​ pentru display-ul LCD, și **RTClib**, pentru modulul RTC.+Pentru a scrie codul, m-am folosit de **Arduino IDE** și de trei biblioteci: **Wire**, pentru modulul I2C, **LiquidCrystal_I2C**,​ pentru display-ul LCD, și **RTClib**, pentru modulul RTC.
  
 +<note tip>
 Implementarea se bazează pe crearea unei **baze de date** cu orele de răsăsit și de apus din București calculate ca număr de minute de la miezul nopții (de exemplu, pentru a ține minte ora 7:51 se va memora 7 * 60 + 51 = 471). Acest fapt s-a realizat folosind keyword-ul **PROGMEM**,​ iar citirea elementelor din baza de date s-a făcut folosind funcția **pgm_read_word_near()**. Implementarea se bazează pe crearea unei **baze de date** cu orele de răsăsit și de apus din București calculate ca număr de minute de la miezul nopții (de exemplu, pentru a ține minte ora 7:51 se va memora 7 * 60 + 51 = 471). Acest fapt s-a realizat folosind keyword-ul **PROGMEM**,​ iar citirea elementelor din baza de date s-a făcut folosind funcția **pgm_read_word_near()**.
 +</​note>​
  
 Pentru a aprinde/​stinge becul la apus/​răsărit,​ Arduino verifică **în loop()** dacă ora curentă se află între ora de apus și de răsărit al zilei respective, și trimite un semnal către releu care pornește becul doar dacă acest lucru se întâmplă. Pentru a aprinde/​stinge becul la apus/​răsărit,​ Arduino verifică **în loop()** dacă ora curentă se află între ora de apus și de răsărit al zilei respective, și trimite un semnal către releu care pornește becul doar dacă acest lucru se întâmplă.
Line 62: Line 65:
 Și mai important, lumina de fond a afișajului LCD este activată sau dezactivată de aproprierea unei persoane, pentru a elimina consumul energetic inutil atunci când nimeni nu se află în preajmă. Și mai important, lumina de fond a afișajului LCD este activată sau dezactivată de aproprierea unei persoane, pentru a elimina consumul energetic inutil atunci când nimeni nu se află în preajmă.
  
-Acest lucru este asigurat de către **senzorul ultrasonic de măsurare a distanței HC-SR04+** care, atunci când cineva se apropie la o distanță mai mică de 50 cm, aprinde lumina de fond a ecranului LCD prin activarea metodei **backlight()**,​ și o stinge atunci când persoane se îndepărtează la o distanță mai mare de 50 cm, folosind ​funcția ​**noBacklight()**.+<note tip> 
 +Acest lucru este asigurat de către **senzorul ultrasonic de măsurare a distanței HC-SR04+** care, atunci când cineva se apropie la o distanță mai mică de 50 cm, aprinde lumina de fond a ecranului LCD prin activarea metodei **backlight()**,​ și o stinge atunci când persoane se îndepărtează la o distanță mai mare de 50 cm, folosind ​metoda ​**noBacklight()**. 
 +</​note>​
  
-În plus, Arduino ascultă pe interfața serială comenzi pentru aprinderea/​stingerea lămpii inteligente,​ precum și pentru setarea orei și datei calendaristice.+În plus, Arduino ascultă pe interfața serială ​**comenzi** pentru aprinderea/​stingerea lămpii inteligente,​ precum și pentru setarea orei și datei calendaristice.
  
 +<note tip>
 **Știați că?** În momentul conectării codulul la Arduino, acesta preia data și timpul din calculatorul de pe care se încarcă codul și le transmite modulului RTC, folosind funcția **rtc.adjust(DateTime(F(__DATE__),​ F(__TIME__)))**. **Știați că?** În momentul conectării codulul la Arduino, acesta preia data și timpul din calculatorul de pe care se încarcă codul și le transmite modulului RTC, folosind funcția **rtc.adjust(DateTime(F(__DATE__),​ F(__TIME__)))**.
 +</​note>​
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +
 +{{:​pm:​prj2023:​dene:​1.jpeg?​700|}}
 +{{:​pm:​prj2023:​dene:​2.jpeg?​700|}}
 +{{:​pm:​prj2023:​dene:​3.jpeg?​700|}}
 +{{:​pm:​prj2023:​dene:​4.jpeg?​700|}}
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +<note important>"​The true measure of a person'​s character lies not in the promises they make, but in the unwavering pursuit of facts they undertake to fulfill those promises."​ - Socrates</​note>​
 +
 +No, really, e foarte ușor să spui că faci x sau y ca proiect la PM, e foarte greu să cumperi piesele, să te documentezi,​ să le pui cap la cap până când iese ceea ce trebuie.
 +
 +Însă a fost o experiență foarte plăcută. Mult mai plăcută decât mă așteptam, recunosc. E ceva foarte satisfăcător în a face ceva complex din bucăți ceva mai simple cu propriile mâini. I like it.
 +
 +Acum, mă uit la el când scriu rândurile astea, și sincer, chiar dacă sunt doar niște bucăți de plastic, pentru mine proiectul ăsta e mai mult decât atât. <3
 +
 +{{:​pm:​prj2023:​dene:​meme_pm.png?​400|}}
 ===== Download ===== ===== Download =====
  
 +{{:​pm:​prj2023:​dene:​smart_green_lamp.zip|}}
 ===== Jurnal ===== ===== Jurnal =====
  
 <note tip> <note tip>
-7 mai 2023: S-a creat pagina proiectului Smart Green Lamp, precum și documentația sa inițială, schema bloc și lista de piese necesare.+//7 mai 2023//: S-a creat pagina proiectului Smart Green Lamp, precum și documentația sa inițială, schema bloc și lista de piese necesare.
  
-21 mai 2023: Am adăugat schema electrică și am conectat piesele conform acesteia.+//21 mai 2023//: Am adăugat schema electrică și am conectat piesele conform acesteia
 + 
 +//27 mai 2023//: S-a terminat implementarea codului proiectului folosind Arduino IDE. 
 + 
 +//29 mai 2023//: S-au adăugat detaliile implementării software, poze cu rezultatul proiectului,​ precum și concluziile personale.
 </​note>​ </​note>​
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +
 +<note important>​În implementarea soluției, am plecat de la **acest video** [1] care descrie cum un bec poate fi controlat folosind Arduino și un releu. Proiectul a evoluat considerabil,​ însă videoclipul a reprezentat un punct de plecare important.
 +</​note>​
 +
 +[1] - https://​www.youtube.com/​watch?​v=s9dsR_X92io
  
 <​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/prj2023/dene/smart-green-lamp.1685386633.txt.gz · Last modified: 2023/05/29 21:57 by vlad.zinca
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