Pametna rasvjeta
Elektrostrojarska školaJedna od ideja ove pametne kuće bila je informacija. Drugim riječima da znamo ako nam se zapali nešto u kuhinji, a mi smo u dnevnom boravku i onda se upali LED dioda koje je u dnevnom boravku i tako brže poduzmemo mjere da spriječimo daljnji požar. RGB dioda i gumb ZABAVA služe tome da kad se pritisne gumb i senzor zvuka koji se nalazi u dnevnom boravku detektira zvuk i uključi RGB LED diodu. U sobi palimo i gasimo svjetlo pomoću gumba ili s pljeskom. U hodniku svjetlo palimo pomoću senzora za dodir ili na aplikaciji Blynk. Kada se vani pojavi magla vani se uključi LED dioda za maglu ili na aplikaciji Blynk. Kada padne mrak vani se uključi LED dioda i još možemo pomoću tipkala uključivat/isključivat LED diodu. Sve LED diode koje se nalaze u prostorijama a da nisu za informacije možemo uključivat/isključivat u aplikaciji Blynk.
Izrada projekta
Mobilna aplikacija
KUHINJA Pritiskom na tipku on/off uključujemo ili isključujemo rasvjetu u kuhinji. Drugi mali kvadratić “KUHINJA” povezan je sa senzorom požara pa ako dođe do požara u kvadratiću dobivamo informaciju da se nešto zapalilo u kuhinji. DNEVNA SOBA Pritiskom na tipku on/off uključujemo ili isključujemo rasvjetu u dnevnoj sobi .U dnevnoj sobi nalazi se zvučni senzor kojeg uključujemo pritiskom tipke ON ispod “ZABAVA” .Nakon što uključimo taj senzor on počinje detektirati zvukove i glazbu te uključuje šarenu RGB diodu. HODNIK Pritiskom na tipku on/off uključujemo ili isključujemo rasvjetu u hodniku.
ZEBRA Zebra, odnosno RGB dioda nalazi se u sobi. Pomicanje velikog kružića po zebri dioda poprima različite spektre boja. SOBA Pritiskom na tipku on/off uključujemo ili isključujemo rasvjetu u sobi. TEMPERATURA I VLAGA ZRAKA Izvan kuće nalazi se senzor temperature i vlage zraka pa nam on u aplikaciji pokazuje temperaturu te količinu vlage u zraku. Kada je vlaga u zraku visoka, npr. Tijekom magle vani se uključuje svjetlo, a mi u malom kvadratiću “VLAGA” dobivamo informaciju da je vani magla odnosno visok postotak vlažnosti zraka.
Shema projekta
Mali senzor zvuka => A0 Senzor vatre => A1 Senzor dodira => A2 Tipkalo => A3 Fotootpornik => A4 DHT11 => A5 RGB LED dioda koja se nalazi u dnevnoj sobi => D0, D1, D2 RGB LED dioda koja se nalazi u sobi => D3, D4, D5 LED dioda za detekciju požara => D6 LED dioda u kuhinji => D7 LED dioda u dnevnoj sobi => D8 LED dioda u hodniku => D9 LED dioda u sobi => D10 LED dioda za detekciju magle => D11 LED dioda vani => D12 LED dioda vani za fotootpornik => D13
Arduino program
#define BLYNK_PRINT /* #define BLYNK_PRINT Serial #include #include #include #include "DHT.h" #define virtualni_Pin V1 #define DHTPIN A6 #define DHTTYPE DHT11 int pinData = 0; float h,t; DHT dht(DHTPIN, DHTTYPE); BlynkTimer timer; void myTimerEvent() { h = dht.readHumidity(); t = dht.readTemperature(); Blynk.virtualWrite(V2, t); Blynk.virtualWrite(V3, h); } char auth[] = "e1a41cd8ce19476eba3e5af1667569ab"; const int sensorvatreMin = 0; const int sensorvatreMax = 1024; int crvenapin = 2; // odabiremo pin na arduino za crvenu ledicu int zelenapin = 1; // odabiremo pin na arduino za zelenu ledicu int plavapin = 0; // odabiremo pin na arduino za plavu ledicu int mjenjajboje; int senzorzvukaveliki = A5; int vrijednostSZV = 0; int val; int vrijednost; int hodnik = 9; // ledica u hodniku int senzordodira = A2; // ulaz senzora dodira int vrijednostSD = 0; // vrijednost senzora dodira int svjetlost_vani = A4; // fotootpornik spojen je na analogni ulaz 4 int vrijednost_svijetlosti_vani = 0; // vrijednost postavljamo na 0 int led_vani = 13; // ledica koja se nalazi vani int dnevna = 0; int tipkalo = A3; int vanjska_ledica = 12; int stanje = HIGH; int citaj; int prije = LOW; int senzorZvukaMali = A0; // senzor je spojen na analogni ulaz 0 int ledicaUsobi = 10; // ledica se nalazi u sobi int stanje1 = HIGH; //potrebna varijabla za uključivanje/isključivanje ledice u sobi int citaj1; //potrebna varijabla za uključivanje/isključivanje ledice u sobi int prije1 = LOW; //potrebna varijabla za uključivanje/isključivanje ledice u sobi long time = 0; long vrijeme = 200; long vrijeme1 = 200; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "Buducnost"; char pass[] = "25C98F16R"; BLYNK_WRITE(V1){ if (param.asInt()){ dnevna = 1; } else { dnevna = 0; } } void setup() { // Debug console Serial.begin(9600); pinMode(6, OUTPUT); // Ledica za detekviju požara pinMode (crvenapin, OUTPUT); pinMode (plavapin, OUTPUT); pinMode (zelenapin, OUTPUT); pinMode (senzorzvukaveliki, INPUT); pinMode (hodnik, OUTPUT); pinMode(senzordodira, INPUT); pinMode(led_vani, OUTPUT); pinMode(tipkalo, INPUT); pinMode(vanjska_ledica, OUTPUT); pinMode(senzorZvukaMali, INPUT); pinMode(ledicaUsobi, OUTPUT); pinMode(11, OUTPUT); Blynk.begin(auth, ssid, pass); timer.setInterval(1000L, myTimerEvent); dht.begin(); } void loop() { Blynk.run(); timer.run(); int sensorReading = analogRead(A1); // senzor je spojen na analogni ulaz 1 int range = map(sensorReading, sensorvatreMin, sensorvatreMax, 0, 3); switch (range) { case 0: // vatra u blizini od 50 cm Serial.println("** Close Fire **"); digitalWrite(6, HIGH); Blynk.virtualWrite(V0, HIGH); //Ledica da se može na mobitelu vidjet ako dođe do vatre break; case 1: // vatra u blizini od 50-80 Serial.println("** Distant Fire **"); digitalWrite(6, LOW); Blynk.virtualWrite(V0, LOW); break; case 2: // nema vatre Serial.println("No Fire"); digitalWrite(6, LOW); Blynk.virtualWrite(V0, LOW); break; } delay(1); vrijednostSZV = digitalRead(senzorzvukaveliki); if(vrijednostSZV == HIGH && dnevna == HIGH) { Serial.println(vrijednostSZV); Serial.println(virtualni_Pin); for (vrijednost = 255; vrijednost> 0; vrijednost --) { analogWrite (2, vrijednost); analogWrite (1, 255-vrijednost); analogWrite (0, 128-vrijednost); delay (10); } for (vrijednost = 0; vrijednost <255; vrijednost ++) { analogWrite (2, vrijednost); analogWrite (1, 255-vrijednost); analogWrite (0, 128-vrijednost); delay (10); } } else { analogWrite (2, 0); analogWrite (1, 0); analogWrite (0, 0); delay (10); } vrijednostSD = digitalRead (senzordodira); if (vrijednostSD == HIGH) { digitalWrite(hodnik, HIGH); } else { digitalWrite(hodnik, LOW); } vrijednost_svijetlosti_vani = analogRead(A4); Serial.println(svjetlost_vani); if(svjetlost_vani <= 600) { digitalWrite(led_vani, HIGH); } else { digitalWrite(led_vani, LOW); } citaj = digitalRead(tipkalo); if (citaj == HIGH && prije == LOW && millis() - time > vrijeme){ if (stanje == HIGH) stanje = LOW; else stanje = HIGH; time = millis(); } digitalWrite(vanjska_ledica, stanje); prije = citaj; citaj1 = digitalRead(senzorZvukaMali); if (citaj1 == HIGH && prije1 == LOW && millis() - time > vrijeme1){ if (stanje1 == HIGH) stanje1 = LOW; else stanje1 = HIGH; time = millis(); } digitalWrite(ledicaUsobi, stanje1); prije1 = citaj1; if (h >= 80){ digitalWrite(11, HIGH); Blynk.virtualWrite(V4, HIGH); } else{ digitalWrite(11, LOW); Blynk.virtualWrite(V4, LOW); } }
Arduino program ovoga projekta možete preuzeti ovdje.
Autori
Projekt su izradili Rudolf-Leon Filip i Luka Sakač uz mentorstvo Krunoslav Grudiček iz Elektrostrojarska škola.
Projekt je prijavljen na temu: Internet of Things: Pametna rasvjeta.