====== Svrha projekta ====== Svrha projekta je povećati kvalitetu boravka u prostoriji, svim ljudima koji se u njoj nalaze. ====== Korisnici projekta ====== Svi stanari kuće, stana, ili korisnici nekog poslovnog prostora. ====== Ciljevi projekta ====== 1) Ostvariti sustav ambijentalnih senzora u svrhu poboljšanja ugode u prostoriji. * Praćenje vrijednosti temperature, vlažnosti zraka, buke, tlaka i osvjetljenja u prostoriji * Unos željenih vrijednosti preko prilagođenog korisničkog sučelja s povratnim informacijama * Regulacija stanja u prostoriji na temelju unesenih preferenci korisnika i vrijednosti senzora * Implementacija aktuatora za temperaturu, buku i svjetlost, simbolički predstavljene LED diodama * Mogućnost praćenja trenutnih iznosa mjerenih vrijednosti preko web preglednika 2) Ostvariti izračun PPD i PMV vrijednosti na temelju očitanih vrijednosti sa senzora te prikazati rezultat na korisničkom sučelju ====== Resursi ====== Sustav je ostvaren na Arduino platformi (Arduino Mega 2560). Za mjerenje fizikalnih veličina korištena su tri senzorska modula: * senzor za temperaturu, vlagu i tlak BME280 - korištena I2C komunikacija prema Arduinu * senzor za buku MAX4466 - uređaj se s Arduinom jednostavno spaja pomoću tri priključka: OUT, GND i VCC, OUT priključak se spaja na jedan od analognih priključaka Arduina * senzor za intenzitet svjetlosti - fotootpornik, spaja se na analogni priključak Arduina Korisničko sučelje izvedeno je pomoću LCD prikaznika i tipkovnice za Arduino. Dobivanje informacije o trenutnom vremenu ostvareno je preko RTC modula: * LCD-2004A - spoj LCD-a sa „Arduino Mega 2560“ ostvaren je koristeći međusklop „YwRobot LCM1602 V1“ namjenjenog jednostavnijem ostvarivanju I2C serijske veze * Matrična tipkovnica - spaja se na proizvoljne digitalne izvode Arduina * DS3231 RTC, međusklop ZS-042 - daje informaciju o stvarnom vremenu, spaja na napajanje od 3.3 V te koristi I2C sabirnicu Podsustav za spremanje podataka sadrži: * proizvoljnu microSD karticu * ​​Arduino SD modul za čitanje i pisanje - koristi SPI komunikaciju gdje se vanjski međusklop ponaša kao //slave//, dok Arduino predstavlja //master// ​​Spajanje i slanje podataka o trenutnom stanju senzora na web server realizirano je pomoću: * ESP8266 mikrokontroler, međusklop Wemos D1 Mini Pro - slanje podataka senzora s Arduina na ESP8266 ostavareno je preko UART-a, a sam modul ostvaruje internet vezu prema web serveru Za sve navedene module korištene su besplatne biblioteke i programska podrška za Arduino. Više o programskoj implementaciji može se naći u pdf verziji dokumentacije projekta. ====== Ograničenja ====== Nemogućnost ostvarivanja svih potrebnih mjerenja za izračun PPD i PMV. Na primjer, za detekciju odjeće koja se nalazi na osobama potreban je računalni vid, ali zbog nedostatka vremena i resursa takvo mjerenje se neće realizirati. Sve fizičke veličine osim sobne temperature, vlažnosti i tlaka zraka postavljene su u očekivane vrijednosti koje su dobivene iz [[http://ieeexplore.ieee.org/document/6427051/|referentne literature]]. \\ Nedostatak aktuatora koji bi mijenjali uvjete u prostoriji. Njihov utjecaj će biti zamijenjen LED-icama koje ih simboliziraju. Regulacije temperature realizirana je jednostavnom naredbom uključivanja/isključivanja "klime". Razina željene svijetlosti korisnika simbolizirana je svjetlinom druge LED diode. Detektor buke pali treću LED diodu ako je razina buke iznad prosječne vrijednosti definirane od strane korisnika. ====== Komunikacija s ostalim podsustavima ====== Središnji dio sustava je Arduino MEGA2560 na koji se spajaju periferni senzorski moduli s kojima se komunicira preko SPI-ja i I2C sabirnice. Temperaturni senzor i senzor buke svoje podatke šalju putem analognog ulaza. Zapisivanje na microSD karticu se vrši pomoću SPI sabirnice, dok se tipkovnica u sklopu korisničkog sučelja povezuje sa središnjim sustavom s 8 linija. Način komunikacije putem tih 8 linija je definiran u dokumentaciji KeyPada, ukratko pritiskom gumba se kratko spajaju dvije linije od 8 linija raspoređenih u 4x4 matricu. Tako se jednoznačno određuje koji je gumb pritisnut. ====== Komunikacija s vanjskim sustavima ====== Za komunikaciju s internetom je korišten modul “WeMos D1 pro” koji koristi ESP8266. Preko tog modula šalju se podaci sa senzora i trenutno stanje broja korisnika na zavodski server, putem predefiniranog formata. Zavodski server stoji iza domene echo.zesoi.fer.hr, kojem smo dali alias spvp.anteo.me. **Moja uloga na projektu** U sklopu projekta ostvario sam prikaz datuma, vremena te PMV i PPD vrijednosti na LCD ekran. U tu svrhu korišteni su model ekrana LCD-2004A prilagođen radu s računalnim sustavima „Arduino“. Spoj LCD-a sa „Arduino Mega 2560“ ostvaren je koristeći međusklop „YwRobot LCM1602 V1“ namjenjenog jednostavnijem ostvarivanju I2C serijske veze. Također, za informaciju točnog vremena i datuma implementirao sam rad RTC modula. Podaci sa senzora prilikom zapisivanja na SD karticu i web sučelje uz sebe imaju informaciju o datumu i vremenu uzimanja uzorka. Za pisanje programske podrške korištene su gotove Arduino biblioteke, te vlastito razvijene funkcije za brisanje reda na LCD ekranu. Nadalje, implementirao sam izračun PMV i PPD vrijednosti koje se zatim periodično ispisuju na LCD ekran. Predicted Percentage of Dissatisfied (PPD) i //Predicted Mean Vote// (PMV) su brojčane vrijednosti koje predstavljaju kvantificiranu razinu ambijentalne ugodnosti u nekom prostoru. PMV predstavlja razinu termalne ugodnosti koja se u vrijednostima kreće od -3 (hladno) do 3 (vruće). Prema referentnoj literaturi, formula za određivanje PMV vrijednosti dobivena je eksperimentalno iz velike količine podataka, te koristi brojne parametre kao što su temperatura, vlažnost, brzina strujanja zraka u prostoriji itd. PPD je postotni indeks koji predviđa udio nezadovoljnih korisnika u prostoriji. Određuje se izravnom empirijskom jednadžbom iz PMV-a. Više o PPD-u i PMV-u može se pronaći [[http://ieeexplore.ieee.org/document/6427051/|ovdje.]] Izračun na realiziranoj platformi ostvaren je preko već razvijenih algoritama iz priložene literature, implementiranih u C jeziku. Tijekom implementacije analizirano je ukupno vremensko izvršavanje algoritma jer sam postupak u sebi sadrži rekurzivno računanje srednje izračene temperature. Rezultat tog postupka dao je iznos u redu veličine milisekunde, iz čega se može zaključiti da tako realiziran algoritam može biti primjenjen na cijelokupnu aplikaciju. Iz objektivnih razloga kao ulazni mjereni parametri korišteni su temperatura, tlak i vlažnost zraka, tj. fizikalne veličine koje smo imali mogućnost mjeriti preko nabavljenih senzora. Ostali parametri potrebni za izračun postavljeni su u očekivane srednje vrijednosti koje su dostupne u priloženom izvoru. ==== Rezultati projekta ==== [[http://mojoblak.srce.hr/public.php?service=files&t=5a508475d98878c6ff57950b7c242954 | Video prezentacija projekta]]