Table of Contents

Smart Green Lamp

Introducere

Proiectul presupune crearea unei lămpi inteligente a cărei folosire să fie axată pe consumul eficient de energie.

Scopul proiectului este evident limitarea consumului de energie, într-o lume în care trecerea către energie regenerabilă se face oarecum lent. Este convingerea mea că fiecare mic consum de energie poate fi optimizat sau chiar limitat.

Ideea de la care am pornit este strâns legată de acest scop: pentru că recent a fost Ziua Pământului, m-am gândit la lucrurile mici pe care le pot face pentru planeta noastră, iar alegerea unui proiect verde, eco-friendly, poate fi unul dintre ele.

Consider că Smart Green Lamp este un proiect util, pentru că:

Știați că? La nivelul Uniunii Europene, orașele consumă ~20% din venitul lor pe iluminatul stradal. Folosirea unui sistem inteligent de iluminare ar putea reduce acest cost de 10 ori.

Descriere generală

Hardware Design

Listă de piese:

  • Arduino UNO R3
  • display LCD 16×2 cu modul I2C integrat
  • modul RTC DS3231
  • senzor ultrasonic de distanță HC-SR04+
  • modul releu cu un canal
  • bec cu LED E27 / fasung / stecher
  • baterie VARTA 6F22 9V
  • breadboard
  • fire
  • stand de montaj

Schemă electrică

Software Design

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.

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().

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ă.

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().

În plus, Arduino ascultă pe interfața serială comenzi pentru aprinderea/stingerea lămpii inteligente, precum și pentru setarea orei și datei calendaristice.

Ș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))).

Rezultate Obţinute

Concluzii

“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

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

Download

smart_green_lamp.zip

Jurnal

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.

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.

Bibliografie/Resurse

Î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.

[1] - https://www.youtube.com/watch?v=s9dsR_X92io

Export to PDF