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. Modul RTC
  3. Arduino: folosit pentru a seta intervalul orar si pentru a configura LED-ul si modulul pentru sunet
  4. 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:

Video cu prezentarea proiectului: https://www.youtube.com/watch?v=zJ9fyh92RpE

Concluzii

Proiectarea cu Microprocesoare este un domeniu atat pentru proiecte complexe cat si pentru proiecte micute, ce pot fi folosite in viata de zi cu zi, in principiu diverse automatizari pentru aparate relativ simpliste. Lampa inteligenta este un exemplu perfect de imbinare a acestei materii cu o utilitate rapida, dar interesanta si utila.

Download

Arhiva contine: codul sursa, doua imagini si schematicul.

Arhiva Ghiculescu Alexandru

Jurnal

  • 23 apr 2021 alegere tema
  • 26 apr 2021 cumparare componente (fara modul RTC)
  • 29 apr 2021 testare componente: am verificat cum merge modulul pentru sunet, reactiona la batai din palme perfect
  • 5 mai 2021 am realizat ca pentru partea de aprindere/stingere automata in functie de intervalul orar am nevoie de un ceas, asa ca am comandat acel modul RTC
  • 7 mai 2021 am adaugat functionalitatea de music mode, folosind modulul sonor
  • 10 mai 2021 am testat ceasul RTC, afisand data curenta
  • 11 mai 2021 am adaugat functionalitatea de aprindere/stingere in functie de ore, folosind modulul RTC
  • 22 mai 2021 am finalizat proiectul aranjand codul si componentele pe breadboard, facand pozele si un filmulet de prezentare

Bibliografie

pm/prj2021/agrigore/lamp.txt · Last modified: 2021/05/31 11:08 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