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:34]
vlad.zinca
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 =====
  
-```cpp +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.
-test +
-#include <​iostream>​ +
-```+
  
 +<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()**.
 +</​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 arăta ora și data curentă, **display-ul LCD** comunică cu modulul **RTC DS3231** de mare precizie și obține aceste date de la acesta. Acest lucru se facilitează în cod folosind un obiect de tip **RTC_DS3231** și metoda acestuia **now()**.
 +
 +Ș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ă.
 +
 +<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.
 +
 +<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__)))**.
 +</​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.1685385273.txt.gz · Last modified: 2023/05/29 21:34 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