This is an old revision of the document!
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ă:
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 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 funcția 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))).
21 mai 2023: Am adăugat schema electrică și am conectat piesele conform acesteia.