Svjetlosni komunikator

Tehnička škola,Rijeka, u suradnji sa Centrom tehničke kulture Rijeka

Projekt koji pomaže ljudima koji su nagluhi.

Video snimka

Izrada projekta

Projekt se sastoji od glavnog dijela i niza senzora koji javljaju korisniku uvjete iz okoline kao niz svjetlosnih signala.

Mobilna aplikacija

Stanje kiše i prozora javlja na LCD-u mobitela.

Tipkom refresh dobivamo informacije temperature i vlažnosti zraka na LCD-u u mobitelu.

Shema projekta

Opis je u shemi.

Shemu ovoga projekta možete preuzeti ovdje.

Arduino program

#define BLYNK_PRINT /*

void kisa(){                                                                        //Funkcija "kisa()" koja ce se poslije moci pozvati u glavni program.
  String currentTime = String(hour()) + ":" + minute() + ":" + second()+" ";        //Odredivanje vremena (sat,minuta,sekunda).
  String currentDate = String (day()) + "." + month() + "." + year()+" ";           //Odredivanje datuma (dan,mjesec,godina).
 for (int i=0; i<60;i=i+20){
          if( second()==i){                                             //Ako je uvjet "second()" jednako kao varijabla "i" onda izvrsi sljedece radnje.
                  lcd.setCursor(0,0);                                   //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print("   Kisa  pada   ");                        //Na LCD-u ispisuje "   Kisa pada   ".
                  lcd.setCursor(0,1);                                   //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print("________________");                        //Na LCD-u ispisuje "________________".
                  delay(1000);                                          //Zaustavljaju se radnje na 1000 milisekundi.
                   lcd2.clear();                                        //Cisti sve sto je napisano na LCD-u na mobitelu.  
                   lcd2.print(0,0,"   Kisa  pada   ");                  //Na LCD-u na mobitelu ispisuje   Kisa pada  " na kordinati 0,0.
                   lcd2.print(0,1,"");                                  //Na LCD-u na mobitelu ispisuje "" na kordinati 0,1.  
          }                                           //Naredba "if( second()==i)" zavrsava.
          }                                           //Naredba "for(int i=0; i<60;i=i+20)" zavrsava.
  }                                                   //Funkcija "kisa()" zavrsava.
 void kisa_led(){                                                                   //Funkcija "kisa_led()" koja ce se poslije moci pozvati u glavni program.
  String currentTime = String(hour()) + ":" + minute() + ":" + second()+" ";        //Odredivanje vremena (sat,minuta,sekunda).
  String currentDate = String (day()) + "." + month() + "." + year()+" ";           //Odredivanje datuma (dan,mjesec,godina).
 for (int i=2; i<60;i=i+20){                                          //Kada su minute 
          if( minute()==i){                                           //Ako je uvjet "minute()" jednako kao varijabla "i" onda izvrsi sljedece radnje.
            for(int j=2; j<60;j=j+20){                                //
            if( second()==j){                                         //Ako je uvjet "second()" jednako kao varijabla "j" onda izvrsi sljedece radnje.
              digitalWrite(pled,HIGH);                                //Digitalni izlaz "pled" postavi visoko.
              delay(500);                                             //Zaustavljaju se radnje na 500 milisekundi.
              digitalWrite(pled,LOW);                                 //Digitalni izlaz "pled" postavi nisko.
              delay(500);                                             //Zaustavljaju se radnje na 500 milisekundi.
              digitalWrite(pled,HIGH);                                //Digitalni izlaz "pled" postavi visoko.
              delay(500);                                             //Zaustavljaju se radnje na 500 milisekundi.
              digitalWrite(pled,LOW);                                 //Digitalni izlaz "pled" postavi nisko.
              delay(500);                                             //Zaustavljaju se radnje na 500 milisekundi.
            }                                               //Naredba "if( second()==j)" zavrsava.
          }                                                 //Naredba "for(int j=2; j<60;j=j+20)" zavrsava.
  }                                                         //Naredba "if( minute()==i)" zavrsava.
  }                                                         //Naredba "for(int i=2; i<60;i=i+20)" zavrsava.
 }                                                          //Funkcija "kisa_led()" zavrsava.

 void clock_Display(){                                                           //Funkcija "clock_Display()" koja ce se poslije moci pozvati u glavni program.
  String currentTime = String(hour()) + ":" + minute() + ":" + second()+" ";    //Odredivanje vremena (sat,minuta,sekunda).
  String currentDate = String (day()) + "." + month() + "." + year()+" ";       //Odredivanje datuma (dan,mjesec,godina).
 for (int i=0; i<60;i=i+5){                                 //
          if( second()==i){                                 //Ako je uvjet "second()" jednako kao varijabla "i" onda izvrsi sljedece radnje.
                  
                  lcd.setCursor(0,0);                       //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print("   ");                         //Na LCD-u ispisuje "    ".
                  lcd.setCursor(3,0);                       //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print(currentDate);                   //Na LCD-u ispisuje varijablu "currentDate".
                  lcd.setCursor(13,0);                      //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print("   ");                         //Na LCD-u ispisuje "    ".
                  lcd.setCursor(0,1);                       //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print("    ");                        //Na LCD-u ispisuje "    ".
                  lcd.setCursor(4,1);                       //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print(currentTime);                   //Na LCD-u ispisuje varijablu "currentTime".
                  lcd.setCursor(12,1);                      //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print("    ");                        //Na LCD-u ispisuje "    ".
          }                                             //Naredba "if( second()==i)" zavrsava.
          }                                             //Naredba "(int i=0; i<60;i=i+5)" zavrsava.
}                                                       //Funkcija "clock_Display()" zavrsava.


Arduino program ovoga projekta možete preuzeti ovdje.

#define BLYNK_PRINT /*

 int ocitanje_kisa=A2;                                  //Analogni pin A2 se sprema u varijablu "ocitanje_kisa".
 int prozor_1=3;                                        //Pin 3 se sprema u varijablu "prozor_1".
 int prozor_2=4;                                        //Pin 4 se sprema u varijablu "prozor_2".
 int VRATA=5;                                           //Pin 5 se sprema u varijablu "VRATA".
const byte interruptPin = 7;
 
//---------------------------------------------------------------------
#include  // ovaj library radi ako je instaliran adafruit Universal Sensor library!!!         //U program se dodaje library "DHT.h".
#include                                                                                    //U program se dodaje library "DHT_U.h".
#define DHTPIN 1                                                                                     //Pin 1 se definira kao "DHTPIN".
#define DHTTYPE DHT11                                                                                //Senzor DHT11 se definira kao "DHTTYPE".
DHT dht(DHTPIN,DHTTYPE);                                                                             //inicijalizacija senzora
//---------------------------------------------------------------------//
                                                                                                  //Ovdje se postavljaju naredbe za mobilnu aplikciju Blynk.
#define BLYNK_PRINT Serial                                                                           //"BLYNK_PRINT" se definira kao Serial.
#define BLYNK_READ(V1)//U primjerima fali #define                                                    //Virtualni pin V1 se definira.
#define BLYNK_READ(V2)//omogućuje čitanje virtualnog pina kojeg koristimo u aplikaciji               //Virtualni pin V2 se definira.
#define BLYNK_READ(V3)                                                                               //Virtualni pin V3 se definira.
#include                                                                              //U program se dodaje library "SPI.h".
#include                                                                          //U program se dodaje library "WiFi101.h".
#include                                                               //U program se dodaje library "BlynkSimpleMKR1000.h".
WidgetLCD lcd2(V3);                                                                          //Virtualni pin V3 se odnosi za mobilnu aplikaciju Blynk i njezin display.
//--------------------------------------------------------------------------------------//
                                              //Ovdje se dodaje library za brojac koji ce sluziti mobilnoj aplikaciji Blynk i za LCD zaslon.
#include                                //U program se dodaje library "Time.h".
#include                             //U program se dodaje library "TimeLib.h".
#include                           //U program se dodaje library "WidgetRTC.h".
WidgetRTC rtc;                                  //Inicijalizacija "rtc-a".
BlynkTimer timer;                               //Inicijalizacija "timer-a".
//----------------------------------------------------------------------------------------
#include                                //U program se dodaje library "Wire.h".
#include                   //U program se dodaje library "LiquidCrystal_I2C.h".
 LiquidCrystal_I2C lcd(0x27,16,2);              //Inicijalizacija "lcd(0x27,16,2)".
                                                     //Ovaj dio se odnosi na postavke mreže
char auth[] = "c59aa3cc257f40afae777705601bb6eb";      //Dobiveni token od aplikacije blynk
char ssid[] =   "HUAWEI";                              //Naziv mreze na koju se Arduino spaja.
char pass[] =   "1bfec1704636";                        //Zaporka od mreze na koju se Arduino spaja.
//------------------------------------------------------------------------------------------
volatile int cled=8;                                  //Digitalni pin 8 se sprema u varijablu "cled" koja je odredena kao volatile int zato sto se mora koristiti u integeru.
volatile int zled=6;                                  //Digitalni pin 6 se sprema u varijablu "zled" koja je odredena kao volatile int zato sto se mora koristiti u integeru.
volatile int pled=10;                                 //Digitalni pin 10 se sprema u varijablu "pled" koja je odredena kao volatile int zato sto se mora koristiti u integeru.
int LedState=LOW;                                     //Varijabla "LedState" mora biti nisko.
//--------------------------------------------------------------------------------------
BLYNK_CONNECTED() {                                   //Konekcija aplikacije Bkynk na mobilnom uredaju.
  rtc.begin();                                        //Sinkronizacija tajmerasa aplikacijom Blynk.
}                                                     //--
//-----------------------------------------------------------------------------------
void setup()                       //Funkcija koja se izvrsi jedanput.
                                                  //INPUT_PULLUP je ulaz koji koristi odredeni pullup otpornik.
{ pinMode (ocitanje_kisa,INPUT_PULLUP);           //Varijabla "ocitanje_kisa" se odreduje kao ulazni pullup.
  pinMode(cled,OUTPUT);                           //Varijabla "cled" se odreduje kao izlaz.
  pinMode(pled,OUTPUT);                           //Varijabla "pled" se odreduje kao izlaz.
  pinMode(zled,OUTPUT);                           //Varijabla "zled" se odreduje kao izlaz.
  pinMode(prozor_1,INPUT_PULLUP);                 //Varijabla "prozor_1" se odreduje kao ulazni pullup.
  pinMode(prozor_2,INPUT_PULLUP);                 //Varijabla "prozor_2" se odreduje kao ulazni pullup.
  pinMode(VRATA,INPUT_PULLUP);                    //Varijabla "VRATA" se odreduje kao ulazni pullup.
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), kuckuc,CHANGE);
  Serial.begin(9600);                             //Pocetak komunikacije sa serial monitorom.
  Blynk.begin(auth, ssid, pass);                  //Pokretanje library-a "Blynk".
  dht.begin();                                    //Pokretanje library-a "dht".
  setSyncInterval(10 * 60);                       //Odredivanje intervala.
  timer.setInterval(10000L, clock_Display);       //Odredivanje intervala.
//-----------------------------------------------------------------------------------//
  //attachInterrupt(digitalPinToInterrupt(prekid), vrata,HIGH);
  lcd.init();                     //Ispisuje poruku na LCD.
  lcd.backlight();                //Odreduje pozadinu zaslona.
  lcd.setCursor(1,0);             //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
  lcd.print("Tehnicka skola");    //Na LCD-u ispisuje "Tehnicka skola".
  lcd.setCursor(5,1);             //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
  lcd.print("RIJEKA");            //Na LCD-u ispisuje "RIJEKA".
  delay(5000);                    //Zaustavljaju se radnje na 5 sekundi.
  lcd.clear();                    //Cisti sve sto je napisano na LCD zaslonu.
}                   //Funkcija"void setup()" zavrsava.
void loop()                       //Funkcija koja izvrsi svoju radnju i onda je ponavlja.
{
if(digitalRead(prozor_1)==HIGH){             //Ako je uvjet: "prozor_1" visoko ;onda izvrsi sljedecu radnje.
  prozor_p1();                               //Radnja "prozor_p1" se izvrsava.
}else{}                                      //Ako uvjet nije tocan onda uradi sljedecu radnju(nema sljedece radnje).
  if(digitalRead(prozor_2)==HIGH){           //Ako je uvjet: "prozor_2" visoko ;onda izvrsi sljedecu radnje.
  prozor_p2();                               //Radnja "prozor_p2" se izvrsava.
}else{}                                      //Ako uvjet nije tocan onda uradi sljedecu radnju(nema sljedece radnje).
  ocitanje_kisa=analogRead(A2);                           //Ocitanje sa alalognog pina A2 se sprema u varijablu "ocitanje_kisa".
  if(ocitanje_kisa>400){                                  //Ako je uvjet: "ocitanje_kisa" manje od 400 ;onda izvrsi sljedece radnje.
                                                          //--    
    kisa();                                               //Radnja "kisa()" se izvrsava.
    kisa_led();                                           //Radnja "kisa_led" se izvrsava.
    }                                                     //Naredba "if(ocitanje_kisa>400)" zavrsava.
    if(ocitanje_kisa>400&&digitalRead(prozor_1)==HIGH){       //Ako je uvjet: "if(ocitanje_kisa>400&&digitalRead(prozor_1)==HIGH)";onda izvrsi sljedecu radnje.
      digitalWrite(pled, HIGH);                               //Digitalni izlat "pled" postavi visoko.
      delay(500);                                             //Zaustavljaju se radnje na 500 milisekundi.
      digitalWrite(pled,LOW);                                 //Digitalni izlat "pled" postavi nisko.
      delay(500);                                             //Zaustavljaju se radnje na 500 milisekundi.
      lcd2.clear();                                           //Cisti sve sto je napisano na LCD-u na mobitelu.
      lcd2.print(0,0,"   Kisa  pada   ");                     //Na LCD-u na mobitelu ispisuje   Kisa pada  " na kordinati 0,0.
      lcd2.print(0,1," Prozor otvoren ");                     //Na LCD-u na mobitelu ispisuje " Prozor otvoren " na kordinati 0,1.  
      }                                                       //Naredba "if(ocitanje_kisa>400&&digitalRead(prozor_1)==HIGH)" zavrsava.
    if(ocitanje_kisa>400&&digitalRead(prozor_2)==HIGH){     //Ako je uvjet: "if(ocitanje_kisa>400&&digitalRead(prozor_2)==HIGH)";onda izvrsi sljedecu radnje.
      digitalWrite(pled, HIGH);                             //Digitalni izlat "pled" postavi visoko.
      delay(500);                                           //Zaustavljaju se radnje na 500 milisekundi.
      digitalWrite(pled,LOW);                               //Digitalni izlat "pled" postavi nisko.
      delay(500);                                           //Zaustavljaju se radnje na 500 milisekundi.
      lcd2.clear();                                         //Cisti sve sto je napisano na LCD-u na mobitelu.
      lcd2.print(0,0,"   Kisa  pada   ");                   //Na LCD-u na mobitelu ispisuje   Kisa pada  " na kordinati 0,0.
      lcd2.print(0,1," Prozor otvoren ");                   //Na LCD-u na mobitelu ispisuje " Prozor otvoren " na kordinati 0,1.  
      }                                                     //Naredba "if(ocitanje_kisa>400&&digitalRead(prozor_2)==HIGH)" zavrsava.
                                                       //Naredba "if(ocitanje_kisa>400)" zavrsava.
      float temp = dht.readTemperature();             //Ocitanje sa senzora za temperaturu se sprema u "temp".
      int val=temp;                                   //Iznos od varijable "temp" se sprema u varijablu "val".       
    if(temp>27)                                       //Ako je uvjet: "temp" veci od 27 ;onda izvrsi sljedece radnje.
    {                                                 //--
           blinkanje();                               //Izvrsi radnju "blinkanje()".
     }else {                                          //Ako uvjet nije tocan onda izvrsi sljedece radnje.
            LedState = LOW;                           //Varijabla "LedState" mora biti nisko.
            digitalWrite(cled, LedState);             //Na digitalni izlaz "cled" izvrsi varijablu "LedState".
            }                                         //Naredba else zavrsava.
            
  int V=digitalRead(VRATA);                             //Ocitanje sa digitalnog pina "VRATA" se sprema u varijablu V.
                  
    if(V==HIGH)                                         //Ako je uvjet: varijabla "V" visoko;onda izvrsi sljedece radnje.
    {                                                   //--
       vrata();                                         //Radnja "vrata()" se izvrsava.
       delay(200);                                      //Zaustavljaju se radnje na 200 milisekundi.
    } else if(V==LOW){                                  //Ako uvjet nije tocan;i ako je uvjet: varijabla "V" negativna(LOW) onda izvrsi sljedece radnje.
                     digitalWrite(cled,LOW);            //Digitalni izlaz "cled" postavi nisko.
                     digitalWrite(zled,LOW);            //Digitalni izlaz "zled" postavi nisko.
                     digitalWrite(pled,LOW);            //Digitalni izlaz "pled" postavi nisko.
                      }                                 //Naredba "else if(V==LOW)" zavrsava.
    
    int tipka=digitalRead(9);                         //Ocitanje sa digitalnog pina 9 se sprema u varijablu "tipka".
                                                      
      if(tipka==HIGH)                                 //Ako je uvjet: variabla "tipka" visoko; onda izvrsi sljedece radnje.
      {                                               //--
        vandt();                                      //Radnja "vant()" se izvrsava.
          
       }else if(tipka==LOW)                           //Ako uvjet nije tocan onda;i ako je uvjet: varijabla "tipka" nisko onda izvrsi sljedece radnje.
                {                                     //--
                  clock_Display();                    //Radnja "clock_Display()" se izvrsava.
                 }                                    //Naredba "else if(tipka==LOW)" zavrsava.
  
  timer.run();                               //Pokreni komandu "timer".
  Blynk.run();                               //Pokreni komandu "Blynk".
}

void kuckuc() {
       digitalWrite(cled,HIGH);   
  }

Arduino program ovoga projekta možete preuzeti ovdje.

#define BLYNK_PRINT /*

 void vrata(){                                              //Funkcija "vrata()" koja ce se poslije moci pozvati u glavni program.
          lcd.clear();                                      //Cisti sve sto je napisano na LCD zaslonu.
          lcd.setCursor(3,0);                               //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
          lcd.print("Dobar dan");                           //Na LCD-u ispisuje "Dobar dan".
          digitalWrite(zled,HIGH);                          //Digitalni izlat "zled" postavi visoko.
           digitalWrite(pled,HIGH);
            digitalWrite(cled,HIGH);
            delay(1000);
          }                                                 //Funkcija "vrata()" zavrsava.
 void prozor_p1(){                                                              //Funkcija "prozor_p1()" koja ce se poslije moci pozvati u glavni program.
  
  String currentTime = String(hour()) + ":" + minute() + ":" + second()+" ";    //Odredivanje vremena (sat,minuta,sekunda).
  String currentDate = String (day()) + "." + month() + "." + year()+" ";       //Odredivanje datuma (dan,mjesec,godina).
 
 for (int i=1; i<60;i=i+5){
          if( second()==i){                                   //Ako je uvjet "second()" jednako kao varijabla "i" onda izvrsi sljedece radnje.
                  
                  lcd.setCursor(0,0);                         //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print("Prozor u kuhinji");              //Na LCD-u ispisuje "Prozor u kuhinji".
                  lcd.setCursor(0,1);                         //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print("   je otvoren!  ");              //Na LCD-u ispisuje "   je otvoren!   ".
  
  }                                                           //Naredba "if( second()==i)" zavrsava.    
  }                                                           //Naredba "for (int i=1; i<60;i=i+5)" zavrsava.
 }                                                            //Funkcija "prozor_p1()" zavrsava.
void prozor_p2(){                                        //Funkcija "prozor_p2()" koja ce se poslije moci pozvati u glavni program.

  String currentTime = String(hour()) + ":" + minute() + ":" + second()+" ";   //Odredivanje vremena (sat,minuta,sekunda).
  String currentDate = String (day()) + "." + month() + "." + year()+" ";      //Odredivanje datuma (dan,mjesec,godina).
 
 for (int i=3; i<60;i=i+5){                                      //
          if( second()==i){                                      //Ako je uvjet "second()" jednako kao varijabla "i" onda izvrsi sljedece radnje.
                  
                  lcd.setCursor(0,0);                            //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print(" Prozor u sobi  ");                 //Na LCD-u ispisuje "Prozor u sobi".
                  lcd.setCursor(0,1);                            //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka.
                  lcd.print("   je otvoren!  ");                 //Na LCD-u ispisuje "   je otvoren!   ".
  
 }                                        //Naredba "if( second()==i)" zavrsava.
 }                                        //Naredba "for (int i=3; i<60;i=i+5)" zavrsava. } //Funkcija "prozor_p2()" zavrsava. void vandt(){ //Funkcija "vandt()" koja ce se poslije moci pozvati u glavni program. float vlaga=dht.readHumidity(); float temp= dht.readTemperature(); Serial.print("Vlaznost zraka je: "); //Na serial monitoru ispisuje "Vlaznost zraka je: ". Serial.print(vlaga); //Na serial monitoru ispisuje varijablu "vlaga". Serial.print("%\t "); //Na serial monitoru ispisuje "%\t ". Serial.print("Temperatura je: "); //Na serial monitoru ispisuje "Temperatura je: ". Serial.print(temp); //Na serial monitoru ispisuje varijablu "temp". Serial.println("°C\t"); //Na serial monitoru ispisuje "°C\t". //Uzme vrijednost cijelog broja da ne piše suvišne nule na mobitelu int val=temp; //Iznos od varijable "temp" se sprema u varijablu "val". int hval=vlaga; //Iznos od varijable "vlaga" se sprema u varijablu "hval". Blynk.virtualWrite(V1,val); //Na mobitelu ispisuje vrijednost varijable "val" kao virtualni pin V1. Blynk.virtualWrite(V2,hval); //Na mobitelu ispisuje vrijednost varijable "hval" kao virtualni pin V2. lcd2.clear(); //Cisti sve sto je napisano na LCD-u na mobitelu. lcd2.print(3,0,"Temp. "); //Na LCD-u na mobitelu ispisuje "Temp. " na kordinati 3,0. lcd2.print(9,0,val); //Na LCD-u na mobitelu ispisuje "val " na kordinati 9,0. lcd2.print(11,0,"°C"); //Na LCD-u na mobitelu ispisuje "°C" na kordinati 11,0. lcd2.print(7,1,"bok"); //Na LCD-u na mobitelu ispisuje "bok" na kordinati 7,1. //-------------------------------------- lcd.clear(); //Cisti sve sto je napisano na LCD-u na mobitelu. lcd.setCursor(3,0); //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka. lcd.print("Temp. "); //Na LCD-u ispisuje "Temp. ". lcd.setCursor(9,0); //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka. lcd.print(val); //Na LCD-u ispisuje "val". lcd.setCursor(11,0); //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka. lcd.print(" C"); //Na LCD-u ispisuje " C". lcd.setCursor(3,1); //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka. lcd.print("Vlaga "); //Na LCD-u ispisuje "Vlaga ". lcd.setCursor(9,1); //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka. lcd.print(hval); //Na LCD-u ispisuje varijablu "hval". lcd.setCursor(11,1); //Oznacava poziciju na LCD zaslonu gdje ce se ispisat poruka. lcd.print(" %"); //Na LCD-u ispisuje " %". } //Funkcija "vandt()" zavrsava. void blinkanje(){ //Funkcija "blinkanje()" koja ce se poslije moci pozvati u glavni program. unsigned long preMillis=0; unsigned long sadMillis = millis(); unsigned long interval=10000; if (sadMillis - preMillis >= interval) {       //Ako je uvjet "(sadMillis - preMillis >= interval)" onda izvrsi sljedece radnje.
            LedState = !LedState;                        //Negira stanje varijable "Ledstate".
            digitalWrite(8,LedState);                    //Na digitalni izlaz 8 izvrsi varijablu "LedState".
                preMillis = sadMillis;                   //Iznos od varijable "sadMillis" se sprema u varijablu "preMillis".
          }                                              //Naredba if "(sadMillis - preMillis >= interval) zavrsava".
}                                                        //Funkcija "blinkanje()" zavrsava.

Arduino program ovoga projekta možete preuzeti ovdje.

Autori

Projekt su izradili LFrane Linić i Adrian Zubčević uz mentorstvo Sanjina Gotića iz Tehničke škole, Rijeka, u suradnji s Centrom tehničke kulture Rijeka.

Projekt je prijavljen na temu: Internet of Things: Pametna rasvjeta.

Drugi projekti

Pametna rasvjeta – Zastora pomoću mobitela

Pametna rasvjeta – Zastora pomoću mobitela

Sustav pametne rasvjete baziran na prisutnosti korisnika

Sustav pametne rasvjete baziran na prisutnosti korisnika

Vanjska pametna rasvjeta – sensor

Vanjska pametna rasvjeta – sensor

Zvučna rasvjeta

Zvučna rasvjeta

Pametna rasvjeta za stan

Pametna rasvjeta za stan

Ambijetalno svjetlo

Ambijetalno svjetlo

Pametna rasvjeta

Pametna rasvjeta

Solarna energija

Solarna energija

Svjetlo u tami

Svjetlo u tami

Pametna rasvjeta (detektor zvuka)

Pametna rasvjeta (detektor zvuka)

Policijska sirena i oznaka Starta

Policijska sirena i oznaka Starta

Pali – gasi

Pali – gasi

Daljinsko upravljanje rasvjetom

Daljinsko upravljanje rasvjetom

Pametna rasvjeta – Music reacting circuit

Pametna rasvjeta – Music reacting circuit

Anti-theft

Anti-theft

Connect IT Pametni hodnik

Connect IT Pametni hodnik

Protuprovalni sustav

Protuprovalni sustav

Pametni stan

Pametni stan

Pametni tanjurić za šalicu

Pametni tanjurić za šalicu

Pametna kuća s Arduinom

Pametna kuća s Arduinom

Pametna kuća

Pametna kuća

Protuprovalno svjetlo u ormaru

Protuprovalno svjetlo u ormaru

Pametna rasvjeta

Pametna rasvjeta

Pametne osvijetljene stube

Pametne osvijetljene stube

Svijetliš u noći

Svijetliš u noći

Careduino

Careduino

Rainclock

Rainclock

Pljeskalica

Pljeskalica

Zebra

Zebra

Pametna rasvjeta informatika

Pametna rasvjeta informatika

Pametna rasvjeta

Pametna rasvjeta

Signalizacija

Signalizacija

Pametna rasvjeta

Pametna rasvjeta

Svjetlo za ugođaj

Svjetlo za ugođaj

Pametna rasvjeta

Pametna rasvjeta

Snimanje filma s mobitelom uz pomoć pametne rasvjete

Snimanje filma s mobitelom uz pomoć pametne rasvjete

Pametna ulična rasvjeta

Pametna ulična rasvjeta

Neka bude svjetlo

Neka bude svjetlo

Emotion light

Emotion light

Gasi letriku!

Gasi letriku!

Svjetlosni komunikator

Svjetlosni komunikator

iHouse

iHouse

Pametna rasvjeta s Arduinom

Pametna rasvjeta s Arduinom

Pametna rasvjeta kuće

Pametna rasvjeta kuće

Model kuće s pametnom rasvjetom

Model kuće s pametnom rasvjetom

Pametna rasvjeta – Zaštita kuće od provalnika

Pametna rasvjeta – Zaštita kuće od provalnika

Pametna rasvjeta na pljeskalački pogon

Pametna rasvjeta na pljeskalački pogon

Pametna rasvjeta

Pametna rasvjeta

Uređaj za mjerenje količine svjetlosti, vlage i temperature

Uređaj za mjerenje količine svjetlosti, vlage i temperature

Pametna budilica

Pametna budilica

Ambijentalna rasvjeta

Ambijentalna rasvjeta

Pametna garaža

Pametna garaža

Laserski brojač ljudi

Laserski brojač ljudi

Pametna vanjska rasvjeta

Pametna vanjska rasvjeta

Pametna rasvjeta

Pametna rasvjeta

Blynk pametna rasvjeta sa ESP8266

Blynk pametna rasvjeta sa ESP8266

Rasvjeta u igraonici

Rasvjeta u igraonici

Svjetionik

Svjetionik

IoT pametna rasvjeta ovisno o vremenu dana

IoT pametna rasvjeta ovisno o vremenu dana

Arduino smart light switch

Arduino smart light switch

Slabo pokretne osobe

Slabo pokretne osobe

RGB mixer

RGB mixer

Pametna rasvjeta

Pametna rasvjeta

Zujalica i svjetlo na senzor

Zujalica i svjetlo na senzor

Žuta i zelena soba

Žuta i zelena soba

Pametna rasvjeta

Pametna rasvjeta

Ako upališ, ugasi!

Ako upališ, ugasi!

Upozorenje na upaljena svjetla

Upozorenje na upaljena svjetla

GPS rasvjeta

GPS rasvjeta

RGB svjetlo

RGB svjetlo

Pametan parking

Pametan parking

Priprema, pozor, sad

Priprema, pozor, sad

Disco light

Disco light

Aurora Borealis

Aurora Borealis

Pametni hladnjak

Pametni hladnjak

Pametna rasvjeta

Pametna rasvjeta

Pametna rasvjeta u kući

Pametna rasvjeta u kući

Noćna rasvjeta

Noćna rasvjeta

Noćni prozor

Noćni prozor

Otvori me, zatvori me

Otvori me, zatvori me

House and garden lights

House and garden lights

IOT_Rasvjeta_4

IOT_Rasvjeta_4

Smart rasvjeta

Smart rasvjeta

IOT-Stubišni automat

IOT-Stubišni automat

Lego Arduino pametna rasvjeta

Lego Arduino pametna rasvjeta

IOT_Rasvjeta_2

IOT_Rasvjeta_2

IOT_Rasvjeta_1

IOT_Rasvjeta_1

Svjetlo za bicikl

Svjetlo za bicikl