Korisnički alati

Site alati


2017:studenti:tkovacevic:projektni_zadatak

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 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. Struktura je ostvarena tako da svaki pojedini korisnik bude definiran s preferiranim vrijednostima svih mjerenih vrijednosti, korisničkim ID-em, te zastavicom prisutnosti u prostoriji.

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. Senzori su u matrici organizirani prema prethodno definiranoj enumeraciji. Svaki od senzora posjeduje svoj jedinstveni ID. Vrijednosti senzora osvježavaju se svakim prolazom kroz glavnu petlju programa, dok se njihov prosjek računa svakih nekoliko ciklusa (inicijalno u programu predodređeno 10, točnije - podaci sa senzora dostupni su i osvježeni svakih 10 sekundi).

U glavnom se programu još nalazi izračun PMV i PPD vrijednosti, na temelju prethodno izračunatih prosjeka vrijednosti svih senzora, dok je ažuriranje aktuatora, te slanje svih podataka na web server u stvarnom vremenu ostvareno preko Wemos D1 Mini Pro modula. Komunikaciju s modulom ostvarili su kolege. U prekidnom programu napravio sam parsiranje primljenih podataka s tipkovnice, tako da svaki uneseni znak ispisujem na LCD-u, te ga učitavam u glavnom programu, te nakon pritiska predodređene tipke, spremam unesenu vrijednost u potrebu varijablu.

Kreiranje novih korisnika, ažuriranje postojećih i brisanje korisnika ostvareno je pritiskom tipke na dijelu korisničkog sučelja koje se nalazi na tipkovnici.

Uz nabrojene konkretne zadataka nužne za funkcionalnost sustava, implementirao sam dodatne pomoćne funkcije koji služe za bolju čitljivost i organizaciju koda, kao što su: brisanje podataka iz svakog buffera, osvježavanje podataka na LCD-u, pozicioniranje na LCD-u, iteriranje kroz bazu korisnika itd.

2017/studenti/tkovacevic/projektni_zadatak.txt · Zadnja izmjena: 2017/06/28 19:54 od mmatijascic