Smart Light System

Alexandra Elena Matei, 336CB

Introducere

Proiectul reprezintă un sistem IoT ce monitorizează constant prezența persoanelor din încăperea în care se află montat chiar daca acestea nu se mișcă, controlând astfel intensitatea luminoasă și afișând date și statistici. Fie că vorbim de laboratoare, diferite clădiri de birouri sau scări de bloc, toate acestea sunt condiționate de necesitatea iluminării permanente, acest fapt provocând o utilizare abuzivă a resurselor energetice. Într-o lume în care energia devine un subiect din ce în ce mai important, este esențial să ne folosim de resursele tehnologice pentru a reduce consumul și a proiecta sisteme ce ne vin în ajutor în acest proces. Acest proiect își propune să mențină balanța dintre nivelul de confort și satisfacție al persoanelor și consumul de energie electrică destinat iluminatului, permițând folosirea curentului electric doar atunci când acesta este necesar și doar în cantitatea în care este nevoie, având capacitatea de a se adapta la luminozitatea mediului înconjurător și prezența persoanelor în cameră.

Descriere generală

Circuitul folosește un senzor de temperatură cu infraroșu matricial pentru a determina prezența și poziția unei persoane într-o încăpere. Acest senzor împarte camera într-o matrice 8×8 a temperaturilor. Prezența unei persoane se determină în momentul în care se citeste un spike al temperaturii care trece de un prag ales selectiv de noi. În momentul în care o persoană este detectată, cu ajutorul senzorului de intensitate luminoasă ambientală se verifică nivelul luminii în cameră și se controlează prin PWM led-ul îm funcție de câtă lumină mai este necesară. Prezența unei persoane se va afișa pe un ecran LCD ce va comunica cu Arduino cu ajutorul modulului I2C.

Hardware Design

  • Arduino UNO (ATMega328p)
  • Senzor GridEye AMG8833
  • Senzor ALS
  • Ecran LCD
  • Condensator
  • Fire de legătură mamă-tată și tată-tată
  • Breadboard
  • Potențiometru

Circuitul este controlat de Arduino UNO care este alimentat de la laptop. La pinii SCL și SDA am conectat atât senzorul termic AMG8833, cât și ecranul LCD pe care se afișează informațiile. La ecran am legat și un potențiometru pentru a putea reglat insensitatea sa luminoasă. La pinul A0 este conectat senzorul ALS pentru lumina ambientală. Controlul benzii LED se face prin intermediul PWM, cu ajutorul unui tranzistor conectat la pinul 10. Acesta funcționează ca un switch, întrerupând la nevoie tensiunea de 12V ce alimentează banda LED. Am folosit o sursă de tensiune externă, deoarece Arduino UNO nu poate oferi o tensiune mai mare de 5V și nici puterea necesară. Firele de culoare roșie și neagră sunt de alimentare.

Software Design

Am declarat global adresa I2C a ecranului LCD, threshold-ul temperaturii de la care se va detecta prezenta unei persoane(setat la 26 grade celsius, conform recomandărilor producătorului), senzorul de temperatura GridEye și matricea de temperaturi folosită de acesta.

În cadrul funcției setup() se initializeaza libraria Wire, iar apoi se permite comunicarea cu ecranul LCD prin interfața serială. Tot aici se initializeaza ecranul LCD si senzorul de temperatura matriceal impreuna cu stabilirea modului de utilizare a pinilor de input si output.

În funcția principală loop() se cauta prezenta si pozitia unei persoane in camera. Matricea de temperaturi citita de senzorul termic este suprapusa peste planul camerei. Pozitia unei persoane in camera este deteminata prin functia getPosition() care imparte matricea(tempPixelTable[8][8]) in 4 zone egale iar apoi initTemperatureMatrix() determina daca temperatura citita trece de tresholdul setat.

Realizare și încărcarea codului pe plăcuța Arduino s-a făcut cu ajutorul aplicației Arduino. Bibliotecile folosite au fost SparkFun_GridEYE_Arduino_Library.h(pentru senzorul AMG8833), Wire.h(pentru comunicarea cu dispozitivele I2C) și LiquidCrystal_I2C.h(pentru ecranul LCD cu modul I2C).

Rezultate Obţinute

Design-ul hardware și software se concluzionează într-un sistem inteligent de control al luminii, prin care putem salva o cantitate considerabilă de energie de-a lungul timpului, la un cost minim de implementare.

Demo YouTube

Concluzii

Proiectul a fost o adevărată provocare în cadrul căreia m-am lovit de multiple probleme pe care nu le-am prevăzut la început. Banda LED a avut nevoie de o tensiune de alimentare considerabil mai mare decât ceea ce putea oferi Arduino, motiv pentru care am adăugat un tranzistor la care am legat o nouă sursă de tensiune și banda LED, tranzistor pe care îl deschid atunci când banda trebuie aprinsă. De asemenea, atunci când am ales această bandă LED nu am luat în considerare că are componente RGB și lumina albă este practic formată din 3 led-uri colorate, nu dintr-un led alb, motiv pentru care atunci când o controlez prin PWM, lumina nu este perfect albă. Un alt impediment a fost că am conectat ecranul și nu reușeam să citesc nimic din ce afișam din cauza luminozității prea mici, astfel a trebuit să adaug un potențiometru prin care să o controlez. Tot legat de ecran, m-am lovit și de afișarea unor caractere random pe lângă cele dorite, iar după mult debugging, verificat fire și circuit și căutat pe internet am ajuns la concluzia că funcția de printare folosită era de vină.

Realizarea proiectului a fost o experință plăcută și distractivă și mă bucur că am avut ocazia să fac o temă practică, hands-on, ce a avut la bază un subiect ce mă pasionează.

Download

Jurnal

  • 29 aprilie 2023 - Am creat pagina de OCW
  • 7 mai 2023 - Am adăugat Introducerea, Descrierea generală, Schema bloc, Design-ul hardware
  • 21 mai 2023 - Am adăugat toate detaliile de implementare Hardware
  • 29 mai 2023 - Am adăugat toate detaliile de implementare Software și Rezultate și Concluzii

Bibliografie/Resurse

pm/prj2023/iotelea/smartlightsystem.txt · Last modified: 2023/05/30 13:37 by alexandra.matei2808
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