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.



