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.







