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.



