Table of Contents

Smart lights

Introducere

Smart lights reprezinta un sistem distribuit implementat cu scopul de a schimba luminile ambientale pentru a reflecta temperatura din spatiul in care se afla senzorul.

Functionalitate: detectarea miscarii pentru aprinderea luminilor, masurarea temperaturii din incapere, afisarea valorii acesteia si modificarea intensitatii si culorii luminilor in functie de temperatura, precum si inchiderea acestora la un interval de timp atunci cand nu se mai detecteaza miscare.

Descriere generală

Sistemul distribuit este bazat pe 3 module independente fizic care comunica intre ele: modulul 1 trimite date catre modulul 2, iar modulul 3 trimite date catre modulul 2.

Modulul 1 reprezinta un Arduino Uno conectat la un senzor de miscare si un modul nRF. Acesta detecteaza miscarea prin senzorul infrarosu pasiv si transmite informatia prin unde radio catre modulul 2.

Modulul 3 reprezinta o alta placuta Arduino Uno conectata la un senzor de temperatura, un display lcd si un modul bluetooth. Acesta are rolul de a masura temperatura (si umiditatea) din incapere si de a transmite valorile masurate prin bluetooth catre modulul 2. Totodata, afiseaza pe display-ul lcd rezultatele masuratorii. Display-ul lcd are un modul I2C prin intermediul caruia se conecteaza la placuta Arduino.

Modulul 2 reprezinta tot o placuta Arduino conectata la un led, un modul nRF si un modul bluetooth. Rolul sau este de a aprinde led-ul cand primeste informatia corespunzatoare de la modulul 1 si de a seta culoarea si intensitatea luminii in functie de informatia primita de la modulul 3. Placa este conectata la modulele bluetooth si nRf pentru a fi receptor pentru modulul 3, respectiv modulul 1.

Printre obiectivele urmarite se numara:

  • Crearea unui sistem distribuit pentru a permite amplasarea senzorilor, a display-ului si a led-urilor in locuri diferite.
  • Minimizarea consumului de putere.

Hardware Design

Lista piese:

Scheme electrice:

Modul Schema
Modulul 1
Modulul 2
Modulul 3

Software Design

Fiecare modul al sistemului distribuit are propriul sau cod sursa.

Aspecte comune in fisierele sursa:

     for(int i = 0; i < calibrationTime; i++) 
         delay(1000);

Modulul 1:

     myRadio.begin();  
     myRadio.setChannel(115); 
     myRadio.openWritingPipe(pipe);
     LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);

Modulul 2:

     if (myRadio.available()) {
         myRadio.read(&data, sizeof(data));
     }
  
     if(Serial.available() > 0) {
         value = Serial.read();
     }
    void setColor(int R, int G, int B) {
        analogWrite(red, R);
        analogWrite(green, G);
        analogWrite(blue, B);
    }

Modulul 3:

    int chk = DHT11.read(DHT11PIN);
    lcd.clear();
    lcd.setCursor(0,0);// set the cursor on the first row and column
    lcd.print("Humidity: ");
    lcd.print(DHT11.humidity); // print the humidity
    lcd.print("%");
    lcd.setCursor(0,1); // set the cursor on the second row and first column
    lcd.print("Temperature: ");
    lcd.print(DHT11.temperature); // print the temperature
    lcd.print((char)223); // degree symbol

Rezultate Obţinute

https://youtu.be/Mroa0k1NPPg

Concluzii si sugestii imbunatatire

Sistemul distribuit permite amplasarea modulelor in diferite pozitii ale camerei, la distante ce depind de specificatiile hardware ale modulelor nRF si bluetooth.

Consumul de putere a fost minimizat prin utilizarea bibliotecii Arduino mentionate in descrierea implementarii.

Functionalitatea proiectului poate fi imbunatatita prin adaugarea unui senzor de intesitate luminoasa si reglarea luminii led-ului in functie de acesta.

Pentru a obtine luminozitate mai buna, pot fi adaugate mai multe led-uri sau alte tipuri de led.

Download

smart-lights.zip

Bibliografie/Resurse

https://www.circuitmagic.com/arduino/pir-motion-sensor-with-arduino/
https://www.electronicwings.com/sensors-modules/pir-sensor
https://www.circuitmagic.com/arduino/pir-motion-sensor-with-arduino/

https://projecthub.arduino.cc/arcaegecengiz/12f621d5-055f-41fe-965d-a596fcc594f6
https://www.instructables.com/Arduino-Temp-and-Humidity-DHT11-LCD-1602A-KY-015-S/
https://github.com/johnrickman/LiquidCrystal_I2C

https://www.electronics-lab.com/project/communication-between-two-arduinos-using-nrf24l01/ https://github.com/nRF24/RF24

https://www.hackster.io/embeddedlab786/how-to-configure-and-pair-two-hc-05-bluetooth-modules-fa8ce2
https://howtomechatronics.com/tutorials/arduino/how-to-configure-pair-two-hc-05-bluetooth-module-master-slave-commands/
https://www.youtube.com/watch?v=I2qFXSe0W3w&ab_channel=AcedInventor

https://www.circuitstoday.com/interface-common-anode-and-common-cathode-rgb-leds-with-arduino

https://learn.sparkfun.com/tutorials/reducing-arduino-power-consumption
https://www.gammon.com.au/forum/?id=11497

Export to PDF