Korisnički alati

Site alati


2017:studenti:aoreskovic:projektni_zadatak

Razlike

Slijede razlike između dviju inačica stranice

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
2017:studenti:aoreskovic:projektni_zadatak [2017/06/26 16:54]
aoreskovic [Komunikacija s ostalim podsustavima]
2017:studenti:aoreskovic:projektni_zadatak [2023/06/19 18: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 ​električne +  * Praćenje vrijednosti temperature,​ vlažnosti zraka, buke, tlaka i osvjetljenja ​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 ​nekoliko perifernih senzorskih modula\\ Koristit ​ć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 temperaturuvlagu i tlak BME280 - korištena I2C komunikacija prema Arduinu 
 +  * senzor za buku MAX4466 - uređaj se 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 ArduinoDobivanje 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+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 TxRx i RxTx
 + 
 +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), 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 ​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 ​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>​ 
 +POST /logs HTTP/1.1 
 +Host: spvp.anteo.me 
 +Content-Type:​ application/​json 
 +X-Auth-Token:​ --TAJNI-KLJUČ-- 
 +
 +  "​created_at":​ "​2017-06-05 03:​00:​55",​ 
 +  "​temperature":​ "​32",​ 
 +  "​moisture":​ "​88.62415",​ 
 +  "​pressure":​ "​991.99443",​ 
 +  "​brightness":​ "​5.22814",​ 
 +  "​noise":​ "​5.94466",​ 
 +  "​message":​ "​Poruka"​ 
 +}​​ 
 +</​code>​ 
 + 
 + 
 +====== 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.
  
  
2017/studenti/aoreskovic/projektni_zadatak.1498488894.txt.gz · Zadnja izmjena: 2023/06/19 18:10 (vanjsko uređivanje)