Svijetliš u noći
OŠ "Slava Raškaj" OzaljOvaj projekt omogućava korisniku da udaljenim putem kontrolira rasvjetu u bilo kojoj prostoriji i da pomoću kontrolnih LED dioda u svakom trenutku zna svijetli li rasvjeta ili ne iako se ne nalazi u kući. Za svako svijetlo možemo kontrolirati njegovu jačinu pomoću slidera čime štedimo energiju i novac. Dodali smo i senzor za osvjetljenje koji će sam ugasiti rasvjetu ako ostane svijetliti po danu. Pomoću grafikona možemo pratiti kada je radilo pojedino svijetlo u prostoriji i koliko je energije trošilo(ušteda).
Video snimka
Izrada projekta
Mobilna aplikacija
-pomoću gumba uključujemo/isključujemo rasvjetu u svakoj prostoriji
-pored gumba lijevo i desno su LED diode koje nam govore da li je svjetlo uključeno ili nije
-pomoću slidera možemo prigušiti rasvjetu
-grafikon pokazuje ukupnu potrošnju energije te potrošnju ako smo sami pokrenuli štedljivi način ili je MKR detektirao da je razina svjetlosti dovoljna pa je sam ugasio rasvjetu
Shema projekta
Shema sadrži osnovne elementa za spajanje na Arduino.
Shemu ovoga projekta možete preuzeti ovdje.
Arduino program
#define BLYNK_PRINT /* #define BLYNK_PRINT Serial #include #include #include #include int rgbR=2; int rgbG=3; int rgbB=4; int dht11=6; int rasvULAZ=10; int rasvDNEVNA=11; int rasvSPAVACA=12; int polozajULAZ=2; int polozajSPAVACA=2; int polozajDNEVNA=2; int zadaniFOTO=700; int stednja; int fotoS,prekidacDNEVNA,prekidacKUH,jacinaULAZ,prekidacULAZ,jacinaDNEVNA,jacinaSPAVACA,prekidacSPAVACA; // A1 foto senzor char auth[] = "8c1aaaff24764799be16e6c2e7d70488"; char ssid[] = "Iot"; char pass[] = "EDCDBBCBCD"; #define DHTTYPE DHT11 // DHT 11 DHT dht(dht11, DHTTYPE); void setup() { Serial.begin(9600); pinMode(rgbR, OUTPUT); //na pinu 2 je led pinMode(rgbG, OUTPUT); //na pinu 3 je led pinMode(rgbB, OUTPUT); //na pinu 4 je led pinMode(dht11, INPUT); //na pinu 6 je senzor vlage i temperature pinMode(rasvULAZ, OUTPUT); //na pinu 10 je rasvjeta ulaza pinMode(rasvDNEVNA, OUTPUT); //na pinu 11 je rasvjeta Dnevne sobe pinMode(rasvSPAVACA, OUTPUT); //na pinu 12 je rasvjeta Spavaće sobe pinMode(A6, OUTPUT); //na pinu 13 je rasvjeta kuhinje Blynk.begin(auth,ssid,pass, IPAddress(192,168,0,99)); //AKO JE SPOJ PREKO LOKALNOG SERVERA dht.begin(); } void loop() { Blynk.run(); fotoS=analogRead(A0); Blynk.virtualWrite(V9,fotoS); //očitavanje količine osvjetljenja izvan kuće (detektira noć i dan) ako je dan automatski gasi rasvjetu i štedi struju if (fotoS>zadaniFOTO) { stednja=1; } else { stednja=0; } float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit Blynk.virtualWrite(V7, h); Blynk.virtualWrite(V6, t); if ((prekidacULAZ==1 || jacinaULAZ>0) && stednja==0) { Blynk.virtualWrite(V41, 255); Blynk.virtualWrite(V42, 0); Blynk.virtualWrite(V43, 255); if (polozajULAZ==1) { analogWrite(rasvULAZ,jacinaULAZ); Blynk.virtualWrite(V44, jacinaULAZ); } if (polozajULAZ==2) { digitalWrite(rasvULAZ,1); Blynk.virtualWrite(V44, 255); } } else { digitalWrite(rasvULAZ,0); Blynk.virtualWrite(V41, 0); Blynk.virtualWrite(V42, 255); Blynk.virtualWrite(V43, 0); Blynk.virtualWrite(V44, 0); } if ((prekidacDNEVNA==1 || jacinaDNEVNA>0) && stednja==0) { Blynk.virtualWrite(V51, 255); Blynk.virtualWrite(V52, 0); Blynk.virtualWrite(V53, 255); if (polozajDNEVNA==1) { analogWrite(rasvDNEVNA,jacinaDNEVNA); Blynk.virtualWrite(V54, jacinaDNEVNA); } if (polozajDNEVNA==2) { digitalWrite(rasvDNEVNA,1); Blynk.virtualWrite(V54, 255); } } else { digitalWrite(rasvDNEVNA,0); Blynk.virtualWrite(V51, 0); Blynk.virtualWrite(V52, 255); Blynk.virtualWrite(V53, 0); Blynk.virtualWrite(V54, 0); } if ((prekidacSPAVACA==1 || jacinaSPAVACA>0) && stednja==0) { Blynk.virtualWrite(V61, 255); Blynk.virtualWrite(V52, 0); Blynk.virtualWrite(V53, 255); if (polozajSPAVACA==1) { analogWrite(rasvSPAVACA,jacinaSPAVACA); Blynk.virtualWrite(V54, jacinaSPAVACA); } if (polozajSPAVACA==2) { digitalWrite(rasvSPAVACA,1); Blynk.virtualWrite(V54, 255); } } else { digitalWrite(rasvSPAVACA,0); Blynk.virtualWrite(V51, 0); Blynk.virtualWrite(V52, 255); Blynk.virtualWrite(V53, 0); Blynk.virtualWrite(V54, 0); } } ///////////////////////////////////////////// prijenos varijabli između pametnog telefona i MKR1000 BLYNK_WRITE(V2) { int jacinaR = param.asInt(); // V2 prenosi vrijednost crvenog svijetla u RGB diodi analogWrite(rgbR,jacinaR); } BLYNK_WRITE(V3) { int jacinaG = param.asInt(); // V3 prenosi vrijednost zelenog svijetla u RGB diodi analogWrite(rgbG,jacinaG); } BLYNK_WRITE(V4) { int jacinaB = param.asInt(); // V4 prenosi vrijednost plavog svijetla u RGB diodi analogWrite(rgbB,jacinaB); } BLYNK_WRITE(V39) { jacinaULAZ = param.asInt(); // V39 prenosi vrijednost jačine osvjetljenja sa slidera mobitela polozajULAZ=polozajULAZ-1; //ako je na 3 onda nema uštede if (polozajULAZ<1) { polozajULAZ=1; } } BLYNK_WRITE(V40) { prekidacULAZ = param.asInt(); // V16 prenosi vrijednost prekidača ulaza polozajULAZ=polozajULAZ+1; //ako je na 3 onda nema uštede if (polozajULAZ>2) { polozajULAZ=2; } } BLYNK_WRITE(V49) { jacinaDNEVNA = param.asInt(); // V49 prenosi vrijednost jačine osvjetljenja sa slidera mobitela polozajDNEVNA=polozajDNEVNA-1; //ako je na 1 onda nema uštede if (polozajDNEVNA<1) { polozajDNEVNA=1; } } BLYNK_WRITE(V50) { prekidacDNEVNA = param.asInt(); // V50 prenosi vrijednost prekidača DNEVNE sobe polozajDNEVNA=polozajDNEVNA+1; //ako je na 3 onda nema uštede if (polozajDNEVNA>2) { polozajDNEVNA=2; } } BLYNK_WRITE(V59) { jacinaSPAVACA = param.asInt(); // V49 prenosi vrijednost jačine osvjetljenja sa slidera mobitela polozajSPAVACA=polozajSPAVACA-1; //ako je na 1 onda nema uštede if (polozajSPAVACA<1) { polozajSPAVACA=1; } } BLYNK_WRITE(V60) { prekidacSPAVACA = param.asInt(); // V60 prenosi vrijednost prekidača SPAVAĆE sobe polozajSPAVACA=polozajSPAVACA+1; //ako je na 3 onda nema uštede if (polozajSPAVACA>2) { polozajSPAVACA=2; } }
Arduino program ovoga projekta možete preuzeti ovdje.
Autori
Projekt su izradili David Ferko i Ian Palisak uz mentorstvo Predraga Matka iz OŠ “Slava Raškaj” Ozalj.
Projekt je prijavljen na temu: Internet of Things: Pametna rasvjeta.