Slijede razlike između dviju inačica stranice
2017:studenti:tkovacevic:projektni_zadatak [2017/06/28 19:41] mmatijascic [Moja uloga na projektu] |
2017:studenti:tkovacevic:projektni_zadatak [2023/06/19 18:11] |
||
---|---|---|---|
Redak 1: | Redak 1: | ||
- | ====== 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. Dodatno, sustav je primjenjiv na industrijske pogone i tvornice gdje je moguće pratiti trenutno stanje u prostorijama. | ||
- | |||
- | ====== Ciljevi projekta ====== | ||
- | |||
- | 1) Ostvariti sustav ambijentalnih senzora u svrhu poboljšanja ugode u prostoriji. | ||
- | |||
- | * pretvaranje fizikalnih veličina u električne | ||
- | * očitavanje električnih veličina sa Arduino modulima | ||
- | * komunikacija Arduina sa senzorskim modulima | ||
- | * obrada primljenih podataka | ||
- | * izvršavanje potrebnih naredbi | ||
- | |||
- | 2) Kreirati algoritam izračuna PPD i PMV vrijednosti na temelju očitanih vrijednosti sa senzora \\ 3) U skladu sa željama korisnika koji se trenutno nalaze u prostoriji aktivirati potrebne aktuatore (klima, grijanje, svjetlo…) | ||
- | |||
- | ====== 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 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 4×4 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. | ||
- | |||
- | |||
- | |||
- | **Uloga na projektu** | ||
- | |||
- | U sklopu projekta ostvario sam organizaciju i implementaciju glavnog i prekidnog programa. U glavnom programu organizirao sam korisnike, kao i njihove strukture i preferirane parametre koji ih karakteriziraju. Osim toga, sintetizirao sam čitanje sa svih senzora koje su kolege inicijalizirali, njihov matrični zapis te računanje srednje vrijednosti za svakog od njih u predodređenim ciklusima. U glavnom se programu još nalazi izračun PMV i PPD vrijednosti, ažuriranje aktuatora, te slanje svih podataka na web server u stvarnom vremenu. U prekidnom programu napravio sam parsiranje primljenih podataka s tipkovnice, kao i njihov ispis na LCD-u, te kreiranje novih korisnika, ažuriranje postojećih i brisanje korisnika. Uz nabrojene konkretne zadataka nužne za funkcionalnost sustava, implementirao sam dodatne pomoćne funkcije koji služe za bolju čitljivost i organizaciju koda. | ||
- | |||