Slijede razlike između dviju inačica stranice
| Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
|
2017:studenti:aoreskovic:projektni_zadatak [2017/06/26 16:52] aoreskovic |
2017:studenti:aoreskovic:projektni_zadatak [2023/06/19 16:11] (trenutno) |
||
|---|---|---|---|
| Redak 11: | Redak 11: | ||
| 1) Ostvariti sustav ambijentalnih senzora u svrhu poboljšanja ugode u prostoriji. | 1) Ostvariti sustav ambijentalnih senzora u svrhu poboljšanja ugode u prostoriji. | ||
| - | * pretvaranje fizikalnih veličina u električne | + | * Praćenje vrijednosti temperature, vlažnosti zraka, buke, tlaka i osvjetljenja u prostoriji |
| - | * očitavanje električnih veličina sa Arduino modulima | + | * Unos željenih vrijednosti preko prilagođenog korisničkog sučelja s povratnim informacijama |
| - | * komunikacija Arduina sa senzorskim modulima | + | * Regulacija stanja u prostoriji na temelju unesenih preferenci korisnika i vrijednosti senzora |
| - | * obrada primljenih podataka | + | * Implementacija aktuatora za temperaturu, buku i svjetlost, simbolički predstavljene LED diodama |
| - | * izvršavanje potrebnih naredbi | + | * Mogućnost praćenja trenutnih iznosa mjerenih vrijednosti preko web preglednika |
| - | 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…) | + | 2) Ostvariti izračun PPD i PMV vrijednosti na temelju očitanih vrijednosti sa senzora te prikazati rezultat na korisničkom sučelju |
| ====== Resursi ====== | ====== Resursi ====== | ||
| - | Ostvarit će se na Arduino platformi, povezanom s nekoliko perifernih senzorskih modula. \\ Koristit će se besplatne biblioteke i programska podrška za Arduino periferne module. | + | 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 ====== | ====== Ograničenja ====== | ||
| - | Nemogućnost ostvarivanja svih potrebnih mjerenja za izračun PPD i PMV uslijed nedostatka vremena i resursa za potreban računalni vid (detekcija odjeće koja se nalazi na osobama). \\ Nedostatak aktuatora koji bi mijenjali uvjete u prostoriji. Njihov utjecaj će biti zamijenjen LED-icama koje ih simboliziraju. | + | 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 ====== | ====== Komunikacija s ostalim podsustavima ====== | ||
| Redak 31: | Redak 54: | ||
| Središnji dio sustava će biti Arduino MEGA2560 na koji će se spajati periferni senzorski moduli. Komunikacija će se odvijati koristeći postojeći dogovor za svaki od senzora - većinom serijska veza pomoću SPI ili I2C. | Središnji dio sustava će biti Arduino MEGA2560 na koji će se spajati periferni senzorski moduli. Komunikacija će se odvijati koristeći postojeći dogovor za svaki od senzora - većinom serijska veza pomoću SPI ili I2C. | ||
| - | Moj dio projekta u ovome dijelu je bio omogućiti komunikaciju s Wemos D1 sklopom baziranim na ESP8266 bežičnim kontrolera. Komunikacija između arduina i WeMosa je izvedena pomoću UART-a - asinkrone serijske komunikacije. Serial1 s arduina je spojen na Wemos Serial priključak i to Tx→Rx i Rx→Tx. Dogovoren je format “^&DATUM&TEMP&VLAGA&TLAK&SVJETLINA&BUKA&PORUKA&$”. | + | Moj dio projekta u ovome dijelu je bio omogućiti komunikaciju s Wemos D1 sklopom baziranim na ESP8266 bežičnim kontrolera. Komunikacija između arduina i WeMosa je izvedena pomoću UART-a - asinkrone serijske komunikacije. Serial1 s arduina je spojen na Wemos Serial priključak i to Tx→Rx i Rx→Tx. |
| Takvu poruku je jednostavno kreirati i jednostavno parsirati. | Takvu poruku je jednostavno kreirati i jednostavno parsirati. | ||
| - | Da bi se što veći teret s Arduina (koji je u ovom slučaju imao značajno manju procesorsku snagu → 8 bitni na 16 MHz, naspram WeMosa koji ima 32 bitni procesor na 80 ili 160 MHz) | + | Da bi se što veći teret s Arduina (koji je u ovom slučaju imao značajno manju procesorsku snagu → 8 bitni na 16 MHz, naspram WeMosa koji ima 32 bitni procesor na 80 ili 160 MHz), dogovoren je format “^&DATUM&TEMP&VLAGA&TLAK&SVJETLINA&BUKA&PORUKA&$”. Takav string se može jednostavno formatirati na arduinu, i time je sav ostatak procesiranja (spajanje na internet, komunikacija sa serverom, HTTP zahtjevi) migriran s arduina na WeMos. Takav string se također veoma jednostavno parsira. Serijski port sluša od pojavljivanja znaka '^' do pojavljivanja znaka '$'. Nakon toga se stringovi dijele po '&', na način da se kao prvi string (datum) uzima sav tekst između prvog pojavljivanja '&' do drugog pojavljivanja '&', idući string, temperature je teks od drugog do trećeg pojavljivanja znaka '&' itd. |
| ====== Komunikacija s vanjskim sustavima ====== | ====== Komunikacija s vanjskim sustavima ====== | ||
| - | Za komunikaciju s internetom je korišten modul “WeeMos 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. | + | {{ http://hobbycomponents.com/2267-thickbox_default/wemos-d1-mini-pro-esp8266-development-board.jpg?nolink&300x300}} |
| + | |||
| + | Za komunikaciju s internetom je korišten modul “WeeMos D1 pro” koji koristi ESP8266. Uređaj je programiran u Arduino IDE. WeeMos prima formatirani string preko UART komunikacije, kako je upisano u prošlom poglavlju. Taj string onda parsira i kreira JSON paket, koji izgleda kao što je prikazano ispod POST zahtjeva. | ||
| + | |||
| + | Taj paket se onda post upitom šalje na zavodski server koristeći POST zahtjev. Zahtjev osim standarnih rubrika sadrži i "X-Auth-Token!", 1024 bitni ključ koji osigurava da samo noi koji ga znaju mogu slati podatke na server. | ||
| + | |||
| + | Zavodski server stoji iza domene echo.zesoi.fer.hr, kojem smo dali alias spvp.anteo.me. Na njemu se vrti aplikacija pisana u okruženju “Ruby on rails”. Kada dobije zahtjev, obradi ga, ubaci vrijednosti u grafove, ispiše poruke i vrati HTTP 201 odgovor. | ||
| <code> | <code> | ||
| Redak 54: | Redak 83: | ||
| "noise": "5.94466", | "noise": "5.94466", | ||
| "message": "Poruka" | "message": "Poruka" | ||
| - | } | + | } |
| </code> | </code> | ||
| - | ====== ====== | ||
| - | |||
| - | Za komunikaciju s internetom je korišten modul “WeeMos D1 pro” koji koristi ESP8266. Uređaj je programiran u Arduino IDE. WeeMos prima formatirani string preko UART komunikacije. Taj string onda parsira i kreira JSON paket. Taj paket se onda post upitom šalje na zavodski server. | ||
| - | |||
| - | Zavodski server, koji inače stoji iza domene echo.zesoi.fer.hr, kojem smo dali alias spvp.anteo.me. Na njemu se vrti aplikacija pisana u okruženju “Ruby on rails”. Kada dobije zahtjev, obradi ga, ubaci vrijednosti u grafove, ispiše poruke i vrati HTTP 201 odgovor. | ||
| - | ====== ====== | + | ====== Moja uloga na projektu ====== |
| - | ====== Plan projekta ====== | + | Moja uloga na projektu detaljno je razjašnjena kroz poglavlja "Komunikacija s ostalim podsustavima" i "Komunikacija s vanjskim sustavima". Kao što je opisano svodilo se na komunikaciju Arduino → WeeMos → Web Server. |