This is an old revision of the document!


Smart Lamp

Autor

Introducere

Scopul proiectului este implementarea unei Smart Lamp care are mai multe functionaliti:

  1. se poate seta un interval orar in care sa se aprinda/stinga singura (ex: seara intre 22:00 si 00:00 sa fie aprinsa)
  2. se poate stinge aprinde prin batai din palme
  3. music mode: culoarea se poate schimba in functie de muzica
  4. poate fi aleasa culoarea in functie de preferinta utilizatorului

Descriere generala

Schema bloc

Componenete

  1. Modul sunet OKY3131 OKYSTAR: folosit pentru a capta batai/intensitate sonora
  2. Arduino: folosit pentru a seta intervalul orar si pentru a configura LED-ul si modulul pentru sunet
  3. Led: lampa proiectului

Hardware Design

Lista de piese

Nume Numar piese
Arduino Uno R3 1
OKY3131 OKYSTAR 1
RTC 1
LED 1
Fire 19
Rezistente 3
Breadbord 1

LED-urile RGB (lampa)

Sunt conectate in serie, folosind rezistente, la pinii 9 (RED), 10 (GREEN), 11 (BLUE) si la ground.

Butoanele

Sunt conectate la ground si la pinii 7 (butonul de on/off), 6 (butonul pentru schimbarea culorilor, folosind o serie de culori presetate), 5 (butonul care activeaza/dezactiveaza modul pentru muzica)

Modulul pentru sunet cu microfon

Acesta are 3 pini: ground (conectat la ground), vcc (conectat la pinul corespondent 5V de pe Arduino UNO) si out (conectat la A0, pin folosit pentru citire analogica a carui rezultat este folosit pentru a determina cand sa se aprinda/stinga lampa in functie de batai din palme si pentru a cicla prin culori in modul de muzica)

Ceas RTC

Acesta are 4 pini: ground (conectat la ground), vcc (conectat la pinul corespondent 5V de pe Arduino UNO), SDA (conectat la pinul corespondent, specific pentru acesta, A4 de pe Arduino UNO) si SCL(conectat la pinul corespondent, specific pentru acesta, A5 de pe Arduino UNO).

Software Design

LED-urile RGB (lampa)

Pentru colorarea led-urilor in diferite culori si intensitati se foloseste analogWrite si pentru asta este folosita o functie setColorRGB care primeste ca parametri 3 valori pentru red, green, blue. Pinii corespunzatori red, green, blue sunt setati pe modul OUTPUT.

Butoanele

Pentru folosirea butoanelor si a functionalitatilor lor, pinii corespunzatori acestora sunt setati pe modul INPUT_PULLUP si se foloseste digitalRead.

Modulul pentru sunet cu microfon

Pentru modulul sonor cu microfon, pinul corespunzator A0 este setat pe modul INPUT. Exista cele doua moduri:

  • music on: care foloseste analogRead de pe pinul pentru sunet si converteste valoarea citita la niste valori ce pot fi comparate cu un vectori de valori in functie de care se decide ce culoare sa fie folosita pentru led-uri.
  • music off: foloseste o serie de 300 de analogReaduri pentru care se face medie, iar daca rezultatul final depaseste o anumita valoare, atunci lampa se stinge/aprinde.
Ceas RTC

Pentru ceasul RTC se foloseste o biblioteca specifica numita RTClib.h care are diverse functii pentru data si ora. Pentru lampa inteligenta avem nevoie doar de functia pentru ora now.hour(), unde now este o variabila luata dintr-o structura specifica rtc. In functie de ora curenta se decide daca lampa se stinge sau se aprinde astfel:

  • daca lampa este aprinsa si iesim din intervalul de folosire, aceasta se stinge
  • daca lampa este stinsa si intram in intervalul de folosire, aceasta se aprinde
  • in oricare dintre situatiile precedente, putem aprinde/stinge lampa de la butonul on/off sau prin batai din palme daca aceasta nu este in modul pentru muzica

Rezultate Obţinute

Lampa inteligenta se aprinde/stinge singura in functie de un interval orar predefinit (poate fi setat din cod) si raspunde la batai din palme pentru a se atinge si stinge. Modul de muzica este foarte interesant, acesta poate fi activat din butonul de pe lampa. Per total, pentru un prim proiect sunt multumit.

Imagini cu rezultatul final:

Concluzii

todo

Download

todo

Jurnal

todo

Bibliografie

pm/prj2021/agrigore/lamp.1621699038.txt.gz · Last modified: 2021/05/22 18:57 by aghiculescu
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