IoT pametna rasvjeta ovisno o vremenu dana
Udruga informatičara Požeško - slavonske županijeNaš IoT projekt (na bazi Arduino MKR1000) se zasniva na ideji da se svjetla uključuju i isključuju ovisno o vremenu dana(tj. o količini svjetla koje dopire izvana). Da bismo postigli to, postavili smo fotosenzor na vanjsku stranu zida kuće i spojili ga sa Arduino MKR1000-om. Ova postavka se može manualno uključiti i isključiti preko aplikacije Blynk. Kada je isključena (svjetlo postavljeno na manualnu kontrolu), svjetla se i dalje mogu kontrolirati preko Blynk aplikacije. Arduino je također spojen na motor koji kontrolira zastore na prozorima (u našem primjeru towerPro sg90 Servo motor) koji se dižu i spuštaju ovisno o količini svjetla izvana, maksimizirajući osvijetljenost sobe i minimalizirajući potrošnju struje. Ova opcija se također može isključiti u aplikaciji.
Izrada projekta
Mobilna aplikacija
Shema projekta
Shema sadrži 1 led diodu, 1 fotosenzor, 1 servo motor, 2 otpornika i 1 Arduino MKR1000.
Shemu ovoga projekta možete preuzeti ovdje.
Arduino program
#define BLYNK_PRINT /*
#define BLYNK_PRINT SerialUSB
#include
#include
#include
#include
unsigned long t=0;
unsigned long t2=0;
int var=0;
int varIn=0;
char auth[] = "2d3b62fd11da4b1e8b9d78690c6388be";
char ssid[] = "AndroidAP";
char pass[] = "evtw5768";
bool in;
int in2=0;
int in3;
int input;
short var2;
Servo s1;
BLYNK_WRITE(V1) { //očitavanje virtualnog porta V1
in = param.asInt();
}
BLYNK_WRITE(V2) { //očitavanje virtualnog porta V2
in2 = param.asInt();
}
BLYNK_WRITE(V3) { //očitavanje virtualnog porta V3
in3 = param.asInt();
}
void setup(){
SerialUSB.begin(9600); //počinje serijska komunikacija
pinMode(5,OUTPUT); //postavlja pin 5 kao izlazni pin
Blynk.begin(auth, ssid, pass); //spajanje na wifi mrežu
input=analogRead(A1); //očitavanje analognog porta
s1.attach(6); //pokretanje servo motora
}
void loop(){
Blynk.run(); //osvježava očitanja sa servera
if(in==1){ //ako je automatski mod uključen:
input=analogRead(A1); //osvježi analogni port
if(millis()>=300+t){ //svakih 0.3 sekunde
if(255-map(input,20,970,0,255)>var)var++; //ako je svjetljina izvana mala, počni pojačavati svjetla
else var--; //ako ne, prigušuj svjetla
t=millis(); //osvježi timer
}
if(millis()>=300+t2){ //svakih 0.3 sekunde:
if(180-map(input,20,970,0,180)>var2)var2++; //ako je svjetljina izvana mala, spusti rolete
else var2--; //ako ne, podigni ih
t2=millis(); //osvježi timer
}
}
else var=in2;var2=in3; //ako je ručni mod uključen, podesi svjetla i rolete ovisno o ulazima iz aplikacije
analogWrite(5,var); //osvježi svjetla
s1.write(var2); //osvježi rolete
}
Arduino program ovoga projekta možete preuzeti ovdje.
Autori
Projekt su izradili Filip Jamuljak i Luka Margetić uz mentorstvo Ljiljane Miletić iz Udruge informatičara Požeško – slavonske županije.
Projekt je prijavljen na temu: Internet of Things: Pametna rasvjeta.



