Proiectul constă în realizarea unei lămpi inteligente controlate prin gesturi și sunete. Scopul său este de a oferi o interacțiune modernă și intuitivă cu o sursă de lumină, ideală pentru mediul de acasă.
Lampa răspunde la mișcări ale mâinii: un gest de trecere laterală pornește sau oprește lumina, iar o mișcare verticală (sus/jos) reglează intensitatea acesteia. De asemenea, o bătaie din palme determină schimbarea automată a culorii sau a animației de culoare. Pentru un plus de funcționalitate, un ecran LCD afișează în timp real ora și temperatura ambientală, oferind un feedback vizual constant.
Proiectul este construit pe baza unui Arduino Nano și integrează mai mulți senzori – de gesturi, sunet și temperatură – pentru a transforma o lampă obișnuită într-un dispozitiv inteligent și adaptabil, potrivit pentru orice locuință modernă.
Lampa se controlează fără butoane, doar prin:
Gesturi: Trecerea mâinii → pornește/oprește lumina | Menținerea mâinii → reglează intensitatea
Clapuri (sunet): 3 bătăi → mod schimbare culoare | Alte bătăi → schimbă culoarea
LCD: Afișează ora și luminozitatea lampei
Aprindere automată pe bază de lumină: Lampa se aprinde automat când fotorezistorul detectează întuneric.
Aici se regăsesc toate elementele ce țin de proiectarea hardware: lista de componente, scheme electrice, diagrame de semnal și rezultate ale simulării.
- HC-SR04 – Senzor ultrasonic (detectează gesturile mâinii)
- Microfon KY-038 – Senzor de sunet (detectează clapuri)
- Senzor de temperatură (LM35D ) – Măsurare temperatura
- DS1302 Real Time Clock with battery (CR2032 3V) – RTC ceas
- Banda de LED-uri WS2812 RGB – Afișează lumină colorată controlată digital
- Display LCD (opțional) – Afișează ora și temperatura
- Arduino Nano – Controlează toți senzorii și LED-urile
- Rezistență 330Ω – Protecție pentru semnalul de date al benzii de LED-uri
- Sursă de alimentare 5V 2A/3A – Alimentare stabilă pentru toate componentele
- Breadboard – Pentru conexiuni temporare și testare
- Fire Mama-Mama, Tata-Tata, Mama-Tata – Pentru conectarea componentelor
- Fotorezistor – Lampa se aprinde automat cand e intuneric
Pin Arduino | Conectat la | Rol |
D3 | HC-SR04 (Trig) | Declanșare ultrasonic |
D2 | HC-SR04 (Echo) | Recepție ultrasonică |
D7 | DS1302 (CLK) | Ceas RTC |
D8 | DS1302 (DAT) | Comunicare date RTC |
D9 | DS1302 (RST) | Reset RTC |
D6 | WS2812B LED Strip | Semnal de control LED-uri |
D5 | KY-038 | Semnal sunet |
A1 | Fotorezistor | Analiza sursa lumina |
A4 (SDA) | LCD I2C | Comunicare date LCD |
A5 (SCL) | LCD I2C | Comunicare ceas LCD |
5V, GND | Toate modulele | Alimentare |
Calculul estimativ al consumului de energie pentru proiect:
⚠️ Observație: Banda LED este alimentată direct din sursa externă de 5V, nu prin regulatorul Arduino, deoarece acesta nu suportă curenți >500 mA.
Implementarea componentelor hardware este funcțională, iar imaginea de mai sus reflectă configurația testată. Următoarele funcționalități au fost testate și validate cu succes:
▸ Banda WS2812 consumă aproximativ 1.6A la luminozitate maximă
Librărie | Rol | De ce? |
FastLED | Control WS2812 | performantă, suportă calibrare gamma & efecte simple |
VirtualButton | Gestionează click/hold pe distanță | logică de “single-click / hold” fără debounce manual |
LiquidCrystal_I2C | LCD 1602 | API prietenos, reduce pini față de 8-bit parallel |
DS1302RTC | Acces RTC | wrapper ușor, conversie automată BCD ↔ dec |
Wire | I²C core | standard Arduino |
Temă laborator | Cum apare în proiect |
---|---|
Timere hardware (Lab 3) | Timer1 în CTC ⇒ timeout color-mode (+ PWM fade) |
Întreruperi externe | PCINT2 pe microfon ⇒ detectare front sunet |
ADC + senzori analogici | FOtorezistor pe A1 |
I²C | LCD pe bus comun, adresare multi-device |
GPIO (digital I/O) | HC-SR04, KY-038, WS2812B, DS1302 |
Senzor | Metodă calibrare | Precizie obținută / Observații |
---|---|---|
HC-SR04 | • Ignor semnalele > 40 cm ⇒ domeniu de lucru 5–40 cm stabil. | ±0.5 cm între 5 cm și 40 cm |
KY-038 | • Prag hardware reglat cu şurubelniţa pe trimerul modulului până la ≈3× nivel zgomot ambiental. | false-positive ≈ 0 în cameră liniștită; clapuri detectate de la ~1 m |
// În loop(): int d = getDistance(); // 1️⃣ citire brută d = filterMedian(d); // 2️⃣ spike-killer (mediană pe 3 probe) d = filterSkip(d); // 3️⃣ ignoră salturi >40 cm / ecouri ratate d = expFilter(d); // 4️⃣ low-pass α = 0.25
// ---- filterMedian ---- (buffer circular + formulă mediană) buf[idx] = v; // salvez noua citire idx = (idx + 1) % 3; // rotim indexul (0-1-2) return (max(b[0],b[1]) == max(b[1],b[2])) ? max(b[0],b[2]) : max(b[1], min(b[0],b[2])); // mediana
// ---- filterSkip ---- (respinge salturi mari / 0 nevalid) if (abs(prev - v) > 40 || v == 0) { // >40 cm ori 0 ⇒ suspect if (++skip > 6) { prev = v; skip = 0; } // accept după 6 confirmări else { v = prev; } // altfel păstrez valoarea veche } else skip = 0;
// ---- expFilter ---- lamp.filt = (v>0) ? lamp.filt + ((v*16L - lamp.filt) >> 2) // += α·(nou-vechi) : 0; // semnal „0” ⇒ reset return lamp.filt >> 4; // /16, back to int
* Filtrare în 3 paşi (median → skip-noise → exponential) pe distanţa ultrasonică ⇒ jitter ↓ ~70 %.
* Timer hardware pentru inactivitate în loc de `millis()` ⇒ încărcare CPU redusă.
* SmoothSetBrightness() – tranziţie în paşi mici, fără flicker vizibil.
Proiect dezvoltat în Visual Studio Code + PlatformIO; tot codul sursă se află în directorul `src`.
└── src ├── main.cpp # punct de intrare ├── DS1302.cpp # implementare driver RTC ├── DS1302.h # interfață DS1302 └── VirtualButton.h # click / hold pe distanță
Proiectul dat a demonstrat o interacțiune intuitivă și modernă cu un sistem de iluminare folosind doar gesturi și sunet, fără butoane fizice. Prin integrarea mai multor senzori și utilizarea optimă a resurselor disponibile pe Arduino Nano, lampa poate fi controlată complet hands-free și oferă feedback vizual adaptiv (culoare, luminozitate, animații).
✔️ Controlul gesturilor este fiabil în intervalul 5–40 cm
✔️ Sistemul de detectare a clapurilor este stabil și configurabil (cu debounce și timeout hardware)
✔️ Luminozitatea este reglabilă fin, cu tranziții fluide (PWM)
✔️ Informațiile afișate (ora și temperatura) oferă utilitate în plus față de iluminat
Funcțiile implementate acoperă toate cerințele milestone-urilor hardware & software, iar proiectul este scalabil: poate fi extins cu Bluetooth, control WiFi sau integrare Home Assistant.
Dată | Activitate | Status |
29 apr | Alegere temă + test componente de bază | ✅ |
05 mai | Detectare gesturi cu HC-SR04 + filtrare | ✅ |
12 mai | Detectare clapuri + timer hardware | ✅ |
12 mai | Integrare FastLED + reglare luminozitate | ✅ |
16 mai | Afișaj LCD + RTC (ora + temperatură) | ✅ |
29 mai | Adaugare fotorezistor | ✅ |