Table of Contents

Lampa 3 in 1

  • Popescu Maria-Teodora,
  • 332CC

Introducere

Ce face?
Proiectul constă în implementarea unei lămpi de birou care să afișeze nu numai data și ora, dar și temperatura și umiditatea dintr-o încăpere.

Care este scopul lui?
La o scurtă privire, s-ar putea părea că dezvoltarea unei lămpi de birou este o idee simplă. În ciuda acestui fapt, este un amalgam de funcționalități care nu sunt folosite doar pentru a ilumina o încăpere, ci și un reper pentru a ajusta confortul personal. Acest „obiect” merge pe vechea idee că o lampă simplă de birou poate fi pusă la un alt nivel de funcționare, nu numai pe funcția primară de bază cu care este asociată.

Care a fost ideea de la care am pornit?
Ideea ce a stat la baza acestui „obiect” a fost nevoia de a aduce o îmbunătățire în sfera utilității cotidiene a unei lămpi simple de birou, dat fiind faptul că odată cu avansul în tehnologie, lucrurile uzuale, simple, au evoluat dincolo de simpla lor utilitate de bază.
Așadar, esența acestui sistem modest constă în faptul că nu poate face doar iluminare, ci și oferă informații esențiale despre mediul în care este amplasat. Temperatura și umiditatea camerei sunt factori determinanți pentru confortul și eficiența numeroaselor activități zilnice.

De ce crezi că este util și pentru alții, dar și pentru tine?
După părerea mea, acest dispozitiv nu este doar un lucru obișnuit, ci însoțitorul meu permanent. Prin urmare, urmăresc cea mai înaltă performanță posibilă și bunăstare zi de zi. În ceea ce privește relevanța sa pentru diferiți oameni, de obicei, lămpile de birou sunt dispuse unde se pune accent pe lucru manual și cognitiv, nu numai în cazul elevilor și studenților, ci și al tuturor persoanelor care au nevoie de lumină. Acest sistem, însă, oferă o gamă variată de beneficii tangibile, cum ar fi data și ora și temperatura și umiditatea, promovând confortul spațiului de lucru și acasă.

Descriere generală

Proiectul este compus din două părți: hardware și software.
Partea de software este reprezentată de întreg procesul de comunicare ar perifericelor cu microcontroller-ul, dar și partea de achiziții de date de la senzori și afișarea măsurilor pe ecran.
Partea de hardware, în schimb, constă în piesele interconectate între ele.

Astfel, o schemă de principiu ar fi următoarea:

Schema bloc

Ecranul are 2 stări de afișare, cea de dată și oră, și cea de temperatură și umiditate.

Prima stare:
Data și ora sunt afișate pe rânduri separate, pe primul rând fiind data, în format DD/MM/YYYY, iar pe al doilea - ora, în format HH:MM, 24h.

A doua stare:
Temperatura și umiditatea sunt detectate prin intermediul senzorului și al termistorului. Semnalul generat de termistor va fi direcționat către convertorul analog-digital al plăcuței(ADC). Display-ul LCD de 16×2 caractere cu I2C încorporat, va afișa în timp real rezultatul pe două rânduri: pe primul - temperatura în grade Celsius de la senzor si de la termistor (pentru comparație), iar pe al doilea - umiditatea în procente.

Butoanele:

Hardware Design

Listă piese:

Scheme electrice:
Tinkercad Schema electrica in Eagle

Proiectul fizic
 Fizic

Software Design

Biblioteci folosite:

Pentru început, am conectat led bar-ul cu rezistențe de 220 la pinii 13, 12, 11 și cele cinci butoane la plăcuță, folosind rezistențe de pull-up de 1K. Inițial, am programat numai butonul de pe pinul 10 (inițial pe acest pin, căci în final l-am pus pe pinul 2 pentru a face cu întreruperi), cel care aprinde și stinge led bar-ul. Așa am testat aprinderea și stingerea unui led, folosirea unui buton.
Apoi am conectat ecranul și am testat să văd dacă funcționează să afișez ceva, motiv pentru care a mai trebuit să modific intensitatea curentului din potențiometrul său propriu. Desigur că am testat și biblioteca de I2C a ecranului.
Cum deja funcșiona un buton, led bar-ul și ecranul și mai aveam de testat 4 butoane, m-am gândit să implementez logica din spatele acestota.
Butonul de pe pinul 9 schimbă modul de afișare al ecranului, care inițial afișa sugestiv DD/MM/YYYY cu HH:MM sau T: cu H: pentru măsuratorile următoare.
Butonul de pe pinul 8 - modul de modificare al datei și al orei - de aceea se va face MODULO 5, fiind 5 posibilități:

Butoanele de pe pinii 7 și 6 se folosesc pentru a incrementa, respectiv a decrementa, valorile conform mode-ului butonului de pe pinul 8. Aici am avut grijă ca incrementarea și decrementarea să se realizeze conform ordinii firești a naturii/calendarului, astfel:

Pentru a înțelege mai bine logica, a se vedea videoclipul de pe youtube din link-ul de mai jos, din secțiunea Rezultate obținute
În plus, cum este ceas, la fiecare 60 secunde, se incrementează minutele - timpul trece/se măsoară trecerea timpului
Desigur că, orice modificare în trecerea timpului și în setarea datei și a orei, acestea (data și ora) sunt păstrate/actualizate în memoria EEPROM și luate/încărcate de acolo la setup().
Pe urmă, am adăugat senzorul DHT-11 și am afișat inițial măsurile în Serial, apoi și pe ecran, conform stării butonului de pe pinul 9.
Pentru că aveam nevoie de 3 laboratoare, am încercat să găsesc încă o metodă de a calcula măsura temperaturii, cu ajutorul unui termistor ntc la care am folosit ADC și câteva calcule matematice. Astfel, afișez în paralel temperatura din senzor cu temperatura din termistor (mai întâi, în partea stângă este temperatura din DHT, urmată lângă/în dreapta de cea din termistor).
La definitivarea codului, am treccut la implementarea întreruperilor, și am făcut aceasta pentru butonul care aprinde și stinge led bar-ul. Pentru a reuși, a trebuit să schimb pinul său (inițial 10) pe pinul 2 și am folosit ISR și funcție handler de întrerupere.

Rezultate Obţinute

  • Pentru întreruperi, funcționează numai pinii INT, nu și pinii PCINT.
  • Se pare că la întreruperi nu este necesar ca niciun buton apăsat să nu facă nimic, întreruperile să fie independente/să nu interfereze una cu cealaltă (+ dacă nu sunt și alți pini de întrerupere folosiți).
  • Valoarea de la termistor se schimbă repede și brusc, dată fiind sensibilitatea sporită a acestui dispozitiv.

Folosesc 3 tehnologii/protocoale/laboratoare:

  • Nu este user-friendly
  • Se văd firele
  • Nu are carcasă
  • Nu este aesthetic
  • Nu are lucru cu regitre / nu este full C
  • lumina de la ledu-ri nu este puternica sa fie folosita chiar ca o lampa
  • ESTE FUNCȚIONAL

Demo youtube
https://youtu.be/1dynAAyy78c?si=CJgWNPrbNHvFxq0D

Concluzii

Înainte de acest proiect, am avut 0 contact cu arduino și programare pe C embedded, iar în urma realizării acestuia, am învățat multe prin hand-on experience și am realizat că nu este atat de complicat pe cât credeam + ușor de realizat, repede de făcut/implementat. Utilitatea practică a proiectului a făcut lucrurile și mai interesante și plăcute, iar conceptul de a programa de la zero piese conectate între ele, m-a făcut să mă simt ca un copil mic ce învață prin joacă =).

Download

Numai cod, imaginile sunt la secțiunea de Hardware, la data-sheet-uri sunt link-uri mai jos, mai sus este demo pe YouTube + jos este jurnal cu fiecare pas realizat

Tot proiectul in cod

Jurnal

Bibliografie/Resurse


Export to PDF