Pametni stan
Elektrostrojarska školaAplikacija pametne rasvjete u ovom radu namijenjena je za manje stanove i za samce. Pokriva dnevnu, spavaću i radnu sobu, a radi na način opisan u nastavku. Ulaskom u stan prvo se aktivira reed senzor S1 a nakon njega optička prepreka S2 (izvedena pomoću lasera i fotoosjetljivog otpornika) što dovodi do uključenja rasvjete u dnevnoj sobi (RGB dioda H1). U dnevnoj sobi se rasvjeta može uključiti ili isključiti tipkalom S3. Izlaskom iz stana prvo se aktivira optička prepreka S2 a zatim i reed senzor S1 što dovodi do isključenja rasvjete H1 u dnevnoj sobi. U spavaćoj sobi se glavna lampa (LED H2) može uključiti ili isključiti pljeskom pomoću senzora S4 koji se aktivira na zvuk, a noćna lampica (LED H3) pritiskom na senzor dodira S5. Ulaskom u radnu sobu aktivira se senzor za prepreke S6 koji uključuje glavnu lampu (LED H4) i lampicu na radnom stolu (LED H5) ali samo ako je razina osvijetljenosti preniska. Razina osvijetljenosti detektira se fotoosjetljivim otpornikom S7. Svim svjetlima može se upravljati i preko interneta pomoću Blynk aplikacije na mobitelu.
Izrada projekta
Mobilna aplikacija
Shema projekta
Arduino program
#define BLYNK_PRINT /* #include #include #include // definicija pinova senzora i LED dioda #define S1_REED 0 #define S4_MIC 1 #define S3_BTN 2 #define R_H1 3 #define G_H1 4 #define B_H1 5 #define H2 6 #define H3 7 #define H4 8 #define H5 9 #define S6_AVOID 10 #define S5_TOUCH 11 #define S2_LASER 12 #define S2_LDR A5 #define S7_LDR A6 // token za autentifikaciju s Blynk aplikacijom char auth[] = "1bb0f92a8a0a4268baedcfda23338d1e"; // naziv i lozinka WIFI mreže char ssid[] = "AUT"; char pass[] = "AUT0205977"; int S3_stanje = 0, S4_stanje = 0, S5_stanje = 0, S6_stanje = 0, S7_val; // varijable stanja senzora int cnt = 0; // uključivanje/isključivanje lampe H2 preko Blynk aplikacije BLYNK_WRITE(V1) { int pinValue = param.asInt(); // pridruživanje vrijednosti pina V1 varijabli if (pinValue == HIGH) S4_stanje = 1; else S4_stanje = 0; } // uključivanje/isključivanje lampice H3 preko Blynk aplikacije BLYNK_WRITE(V2) { int pinValue = param.asInt(); // pridruživanje vrijednosti pina V2 varijabli if (pinValue == HIGH) S5_stanje = 1; else S5_stanje = 0; } // uključivanje/isključivanje lampica H4 i H5 preko Blynk aplikacije BLYNK_WRITE(V3) { int pinValue = param.asInt(); // pridruživanje vrijednosti pina V2 varijabli if (pinValue == HIGH) S6_stanje = 1; else S6_stanje = 0; } void setup() { // Debug konzola SerialUSB.begin(9600); // inicijalizacija ulaznih i izlaznih pinova pinMode(S1_REED,INPUT); pinMode(S4_MIC,INPUT); pinMode(S3_BTN,INPUT); pinMode(S6_AVOID,INPUT); pinMode(S5_TOUCH,INPUT); pinMode(R_H1,OUTPUT); pinMode(G_H1,OUTPUT); pinMode(B_H1,OUTPUT); pinMode(H2,OUTPUT); pinMode(H3,OUTPUT); pinMode(H4,OUTPUT); pinMode(H5,OUTPUT); pinMode(S2_LASER,OUTPUT); // povezivanje s Blynk aplikacijom Blynk.begin(auth, ssid, pass); } void loop() { // pokretanje Blynk-a Blynk.run(); // dnevna soba // uključenje/isključenje glavne lampe H1 if (digitalRead(S3_BTN) == HIGH){ // ako je detektiran pritisak if(S3_stanje == 0){ // i ako je stanje senzora 0 S3_stanje = 1; // stanje senzora postavi na 1 } else { // inače S3_stanje = 0; // je stanje senzora 0 } delay(100); // pauza od 100ms } if (S3_stanje == 0){ digitalWrite(R_H1, 0); // postavi LED diodu digitalWrite(G_H1, 0); // postavi LED diodu digitalWrite(B_H1, 0); // postavi LED diodu } else { digitalWrite(R_H1, 100); // postavi LED diodu digitalWrite(G_H1, 100); // postavi LED diodu digitalWrite(B_H1, 100); // postavi LED diodu } // spavaća soba // uključenje/isključenje glavne lampe H2 if (digitalRead(S4_MIC) == HIGH){ // ako je detektiran zvuk if(S4_stanje == 0){ // i ako je stanje senzora 0 S4_stanje = 1; // stanje senzora postavi na 1 } else { // inače S4_stanje = 0; // je stanje senzora 0 } delay(100); // pauza od 100ms } digitalWrite(H2, S4_stanje); // postavi LED diodu na stanje senzora // uključenje/isključenje noćne lampice H3 if (digitalRead(S5_TOUCH) == HIGH){ // ako je detektiran dodir if(S5_stanje == 0){ // i ako je stanje senzora 0 S5_stanje = 1; // stanje senzora postavi na 1 } else { // inače S5_stanje = 0; // je stanje senzora 0 } delay(200); // pauza od 200ms } digitalWrite(H3, S5_stanje); // postavi LED diodu na stanje senzora // radna soba S7_val = analogRead(S7_LDR); // čitanje vrijednosti senzora // uključenje/isključenje lampica H4 i H5 // provjera prolaska cnt = 0; for(int i=0; i<10; i++){ if (digitalRead(S6_AVOID) == LOW) cnt++; else cnt--; delay(10); } if (digitalRead(S6_AVOID) == LOW && cnt >=5){ // ako je detektiran ulazak if(S6_stanje == 0){ // i ako je stanje senzora 0 S6_stanje = 1; // stanje senzora postavi na 1 } else { // inače S6_stanje = 0; // je stanje senzora 0 } delay(100); // pauza od 200ms } if(S7_val < 750) { // ako je vrijednost senzora manja od 750 digitalWrite(H4, S6_stanje); // postavi LED diodu na stanje senzora digitalWrite(H5, S6_stanje); // postavi LED diodu na stanje senzora } else { // inače digitalWrite(H4, LOW); // isključi LED diodu digitalWrite(H5, LOW); // isključi LED diodu } }
Arduino program ovoga projekta možete preuzeti ovdje.
Autori
Projekt su izradili Leo Žugec i Karlo Žuti uz mentorstvo Krunoslava Grudičeka iz Elektrostrojarske škole.
Projekt je prijavljen na temu: Internet of Things: Pametna rasvjeta.