Sustav pametne rasvjete baziran na prisutnosti korisnika

Udruga Mladi informatičari Strahoninca

Sustav pametne rasvjete baziran na prisutnosti korisnika osmišljen je kao autonomni sustav koji nadzire prisutnost osoba ili objekata i prema potrebi pali i gasi svijetlo. Prototip koji smo izradili pomoću dva ultrazvučna senzora broji koliko je osoba u sobi i na temelju toga se pali ili gasi svijetlo. Broj osoba prikazuje se i na mobilnom uređaju pomoću alata Blynk, kako bi mogli pratiti stanje s udaljene lokacije.

Sustav se može koristiti u bilo kojoj prostoriji kuće ili neke ustanove kao što je prikazano u prototipu. Jednako tako sustav je primjenjiv i u drugim područjima, kao što je javna rasvjeta ili pametno grijanje.

Video snimka
Izrada projekta

Glavni dio projekta uz “mozak” kojeg predstavlja Arduino MKR1000 su 2
ultrazvučna senzora i led dioda koja predstavlja rasvjetu. Najveći izazov bilo je
programiranje, usklađivanje i istovremena obrada podataka iz dva izvora.

Slika prikazuje gotov projekt u scenariju gdje se 2 osobe nalaze u prostoriji.
Blynk aplikacija prikazuje broj osoba u realnom vremenu.

Mobilna aplikacija

Blynk aplikacija se sastoji od jednog widgeta. Koristili smo brojač na kojem se
prikazuje trenutni broj ljudi u prostoriji.

Shema projekta

Kako smo u projektu koristili hc-sr04 ultrazvučne senzore dobro je napomenuti kako se oni spajaju i kako rade. Senzor se sastoji od 4 pina – 2 služe za napajanje, zatim echo i trig pinovi koji služe za slanje ultrazvučnog signala i bilježenja trenutka u kojem se signal vratio. Senzor emitira ultrazvučne valove (kao šišmiš i radar) i ako val pogodi objekt on se vraća te se na temelju bryine zvuka i vremena koliko je signal putovao računa udaljenost ili u našem slučaju prolaz kroz vrata.

Arduino program

#include
#include
#include
#include

#define BLYNK_PRINT SerialUSB
#define PIN_SVJETLO 7 // Pin na koji je spojena led dioda
#define PRAG 11
#define DEBUG false // provjera za senzore
#define SONAR_NUM 2 // broj senzora
#define MAX_DISTANCE 50 // Maximalna duljina (cm)

char auth[] = “authtoken iz blynk aplikacije”;
char ssid[] = “wifi ap naziv”;
char pass[] = “wifi lozinka”;
byte broj_ljudi; // broj ljudi u sobi

byte tablica_stanja[7][4] = { // tablica svih mogucih stanja
{0, 1, 4, 0},
{0, 1, 2, 1},
{3, 1, 2, 1},
{0, 0, 0, 0},
{0, 5, 4, 4},
{6, 5, 4, 4},
{0, 0, 0, 0}
};

byte trenutno_stanje = 0; // trenutno stanje stanja
NewPing sonar[SONAR_NUM] = {
NewPing(0, 1, MAX_DISTANCE), // trigger, echo pin, maximalna duljina
NewPing(2, 3, MAX_DISTANCE) // trigger, echo pin, maximalna duljina
};

void upaliSvijetlo() {
//palimo svijetlo na pinu PIN_SVIJETLO
digitalWrite(PIN_SVJETLO, HIGH);
}

void ugasiSvijetlo() {
//gasimo svijetlo na pinu PIN_SVIJETLO
digitalWrite(PIN_SVJETLO, LOW);
}

byte ocitajSenzore() {
//vraca stanje senzora; 0 = nista, 1 = prvi, 2 = drugi, 3 = oba
byte senzori = 0;
int u1, u2;
u1 = sonar[0].ping_cm(); // ocita senzor
if (u1 < PRAG) {
senzori += 1;
}
delay(50); // ceka 50 milisekundi
u2 = sonar[1].ping_cm(); // ocita senzor

if (u2 < PRAG) { senzori += 2; } delay(50); // ceka 50 milisekundi if (DEBUG) { // ispis za provjeru stanja Serial.print(u1); Serial.print(“, “); Serial.print(u2); Serial.print(“, “); Serial.print(senzori); Serial.print(“, “); Serial.print(broj_ljudi); Serial.print(“, “); Serial.println(trenutno_stanje); } return senzori; } void osvjeziStanje() { byte ocitano = ocitajSenzore(); // ocitamo senzore trenutno_stanje = tablica_stanja[trenutno_stanje][ocitano]; // uzimamo podatke iz tablice stanja } void osvjeziLampu() { // pali ili gasi ledicu if (broj_ljudi > 0) {
upaliSvijetlo();
} else {
ugasiSvijetlo();
}
}

void setup() {
Serial.begin(115200); // ukljucuje serial
SerialUSB.begin(9600);
Blynk.begin(auth, ssid, pass);
}

void loop() { // broji ljudi u sobi
osvjeziStanje();
if(trenutno_stanje == 3) {
broj_ljudi++;
}
if(trenutno_stanje == 6 && broj_ljudi > 0) {
broj_ljudi–;
}
Blynk.virtualWrite(V5, broj_ljudi);
osvjeziLampu();
Blynk.run();
}

Arduino program ovoga projekta možete preuzeti ovdje.

Autori

Projekt su izradili Šimun Bilas i Fran Železnjak uz mentorstvo Viktora Lazara iz Udruge Mladi informatičari Strahoninca.

 

Projekt je prijavljen na temu: Internet of Things: Pametna rasvjeta.