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.