Loppuraportti Sisäilmastonmittausjärjestelmä, syksy 2010 Pekka Huhtinen, Heikki Laurila
2 Sisällysluettelo 1. Tausta... 3 2. Päämäärä ja tavoitteet... 3 3. Riskienhallinta... 3 4. Työmäärä ja työnjako... 4 5. Toteutetut hankinnat ja hankintojen perusteet... 4 6. Järjestelmän rakenne... 5 7. Ohjelmisto... 6 7.1. Tiedon esittäminen... 7 8. Testaus... 8 9. Kehityskohteita... 8 Liite a Ajankäytön seuranta... 10 Liite b Mittausaseman johdotus... 11
3 1. Tausta Projektissa kehitettiin edelleen kevään ja kesän 2010 kursseilla tehtyä sisäilmastonmittausjärjestelmää. Mittausasema koostuu verkkovirralla toimivasta keskusyksiköstä, joka mittaa ilman lämpötilaa, kosteutta, valaistusvoimakkuutta sekä hiilidioksidin määrää. Lisäksi järjestelmään kuuluu tällä hetkellä kaksi paristokäyttöistä anturia, jotka mittaavat lämpötilaa ja kosteutta. Lisäksi järjestelmään kuuluu palvelin, joka kerää tiedon langattoman ZigBee- verkon kautta. Tätä loppuraporttia lukevalle on suositeltavaa ensin tutustua kevään 2010 kurssin materiaaliin, sillä työ pohjautuu täysin ko. projektiin. Kyseinen materiaali on saatavilla ainakin AS- laitoksen BSCW- palvelimelta Panu Harmon kautta. 2. Päämäärä ja tavoitteet Päämääränä oli parantaa edellisinä lukuvuosina kurssilla rakennettua sisäilmaston mittausasemaa. Tavoitteena oli monipuolistaa järjestelmän anturointia lisäämällä siihen sisäilman partikkelien sekä tilan äänen mittaamisen mahdollistavat laitteet. Lisäksi tavoitteena oli lisätä järjestelmän käytettävyyttä kehittämällä sen käyttöliittymää. Käyttöliittymän kehittäminen oli aloitettu LabView- ohjelmistolla edellisen ryhmän toimesta. Tavoitteena oli saada käyttöliittymä ensin toimintakuntoon ja sitten resurssien puitteissa kehittää sitä eteenpäin. Projektin tavoitteet saavutettiin kohtuullisen hyvin. Saimme lisättyä järjestelmään halutut sisäilman partikkelien sekä äänen mittaukset. Käyttöliittymän toteutimme lopulta HTML- pohjaisena. Käyttöliittymä mahdollistaa mittaustiedon esittämisen graafisesti. 3. Riskienhallinta Projektin toteuttamisessa esiintyviksi riskeiksi arvioimme vähäisen kokemuksemme ZigBee- verkoista ja mikrokontrolleriohjelmoinnista. Lisäriskin aiheutti myös ryhmän jäsenistä toisen asuminen Kotkassa. Suunnittelimme maksimoivamme etätyöskentelyn määrän, kuitenkin niin, että lähityöskentelyä on mahdollista tehdä aina tarpeen vaatiessa sopivalla varoitusajalla. Projektin edetessä kävi ilmi, ettei projekti vaadikaan oletettua määrää ZigBee- tietoutta. Lisäksi riskiksi laskettu mikrokontrolleriohjelmointi sujui vaadituissa määrissä melko ongelmattomasti. Yhteisen työskentelyajan löytäminen tuotti hieman vaikeuksia, mutta tästä ei kuitenkaan syntynyt mainittavia ongelmia. Projektin aikana ilmaantui muutamia ennakoimattomiakin riskejä. Komponenttien tilaaminen viivästyi joiltakin osin hieman suunnitellusta aikataulusta tilausten hävittyä matkalle. Lisäksi järjestelmän parhaiten tuntenut työn toinen ohjaaja Johannes Aalto oli ylityöllistettynä paikalla vain parina päivänä viikossa. Projektin loppuvaiheilla hän lisäksi
4 lopetti tehtävässään. Tästä syystä jouduimme odottamaan tukea sekä lupailtua ohjelmakoodia pitkään emmekä lopulta saaneetkaan kaikkea sovittua koodia. Muutama viikko ennen projektin loppumista ilmeni ettei ThereGate - palvelinta saada toimimaan järjestelmän kanssa. Tässä vaiheessa siirryimme käyttämään PC- pohjaista palvelinta. Tämä riski oli meille täysin ennakoimaton, sillä emme tunteneet järjestelmää ennalta. Samat ongelmat pakottivat meidät luopumaan LabVIEW- pohjaisesta käyttöliittymästä ja toteuttamaan sen HTML- pohjaisena. 4. Työmäärä ja työnjako Mitoitimme projektin työmäärän vastaamaan neljää opintopistettä. Tämä tarkoittaa noin 108 tunnin työpanosta kummallekin ryhmän jäsenelle. Tästä tuntimäärästä vähensimme projektipalaverit sekä projektin esittelytilaisuudet, jolloin jäljelle jää noin 80 tuntia. Suunnitteluvaiheessa mitoitimme työmäärän 10 tuntia yläkanttiin eli 90 tuntiin. Projektiin käytimme yhteensä noin 106 työtuntia (ja lisäksi projektipalavereihin ja luentoihin käytetyn ajan). Tuntimäärän ylittyminen liittyy osittain ilmenneisiin ongelmiin sekä paikanpäällä tapahtuneeseen työnohjauksen odottamiseen. Pääsääntöisesti työskentelimme yhdessä kaikissa vaiheissa. Päiväkohtainen ajankäyttö on esitetty liitteenä a olevassa taulukossa. 5. Toteutetut hankinnat ja hankintojen perusteet Projektin aluksi kartoitimme internetin avulla tarpeisiimme soveltuvia antureita. Lisäksi tutustuimme aiempien ryhmien tekemään taustatyöhön sekä heidän parannusehdotuksissa esittelemiin antureihin. Lopulta löysimme hinnoiltaan ja ominaisuuksiltaan tarkoitukseen soveltuvat anturit jotka esittelimme projektin ohjaaja Panu Harmolle. Alla on listattu toteutuneet hankinnat. Lisäksi projektissa käytettiin AS- laitokselta valmiiksi löytyneita komponentteja, johtoja, liittimiä ja ruuveja. Sharp GP2Y1010AU0F - hiukkasanturi KING 30DB- 130DB - äänitasomittari Kuva 1. Sharp GP2Y1010AU0F - hiukkasanturi Sharp GP2Y1010AU0F - hiukkasanturin toiminta perustuu infrapunavalon heijastumiseen hiukkasista. Koska laitteen energiankulutus on vähäistä, anturista voitaisiin tehdä myös langaton yksikkö, joka saisi virtansa paristosta. Tässä vaiheessa anturi kuitenkin liitettiin verkkovirtaa käyttävään mittauskeskukseen. Anturissa on analoginen jänniteulostulo.
5 Valitsimme kyseisen hiukkasanturin lähinnä sen edullisuuden sekä pienen kokonsa takia. Tässä tapauksessa edullisuus toi osaltaan mukanaan lisätyötä, sillä anturin dokumentointi oli hieman puutteellinen ja se vaatii tarkasti oikeanlaista pulssitusta toimiakseen. Tällaiseen rakenteluprojektiin kyseinen anturi sopii kuitenkin ominaisuuksiensa puolesta hyvin. Lisäominaisuutena anturi mahdollistaa pölyn ja savun erottamisen toisistaan ulostulon perusteella, tämä voisi olla yksi tulevaisuudessa lisättävä ominaisuus. Kuva 2. KING 30DB- 130DB - äänitasomittari KING 30DB- 130DB - äänitasomittarin valitsimme sen hyvän saatavuuden sekä edullisen hinnan takia. Kyseistä mittaria myytiin yleisesti usealla eri tuotemerkillä. Mittari tarjosi riittävän mittausalueen sekä analogisen ulostulon. Lisäksi siitä löytyi usein vain kalliimmista mittareista löytyvä automaattinen valinta mittausalueelle, jolloin koko mittausalue on aina käytössä ilman erillisiä toimia. 6. Järjestelmän rakenne Tässä luvussa kuvataan järjestelmän rakenne pääpiirteissään. Järjestelmän rakenne on kuvattu myös kevään 2010 kurssin dokumentaatiossa. Järjestelmä koostuu eräistä peruskomponenteista. Järjestelmään kuuluu mittalaitteita, joiden määrä ei ole ennalta määrätty. Lisäksi järjestelmän komponentteja ovat käytetyt langattomat ja langalliset tiedonsiirtokanavat sekä erilaiset ohjelmistot. Järjestelmän langattomuus mahdollistaa mittalaitteiden sijoittamisen sisäilmaluokituksen ohjeistuksen mukaisiin sijainteihin. Langattomuuden takia järjestelmään on pyritty valitsemaan vähän tehoa kuluttavat anturit. Lisäksi käytettävät mikrokontrollerit ja radiot ovat melko vähän tehoa käyttäviä. Kaikille mittauksille ei kuitenkaan ole määritelty tarkkoja mittaussijainteja sisäilmaluokituksessa. Näin ollen osa mittauksista on sijoitettu yhteen keskusmittausasemaan, joka toimii verkkovirralla. Keskusmittausasema sisältää 24V ja 12V virtalähteet sekä 7V regulaattorin antureiden jännitteensyöttöä varten. Keskusmittausasemaan on liitetty lämpötila-, kosteus-, hiilidioksidi- ja valaistusvoimakkuusanturit sekä uusimpina liitetyt äänenvoimakkuus- sekä hiukkasanturit. Tiedonsiirtoon antureiden ja palvelimen välillä luonnollinen valinta oli langaton vaihtoehto. Langattomaksi tekniikaksi on valittu Zigbee. Myös keskusmittausasema on liitetty samalla langattomalla tekniikalla, sillä tiedontallennus- ja tiedonkäsittelypalvelin sijaitsee erillään tästä keskuksesta.
6 Mittaustietojen käsittely ja tallennus oli tarkoitus toteuttaa kaupallisella ThereGate- palvelimella. Erinäisten vakaus- ja tiedonsiirto- ongelmien takia projektin edetessä ThereGate- palvelimesta oli kuitenkin luovuttava. Palvelimena päädyttiin käyttämään Linux- pohjaista PC- palvelinta. Palvelinohjelmisto on ohjelmoitu C- kielellä, joten sitä on tarvittaessa mahdollista suorittaa myös eri alustoilla. Kuva 3. Mittausasema 7. Ohjelmisto Tässä kappaleessa kerrotaan lyhyesti mittaustiedon käsittelystä anturitiedosta käyttäjälle näkyvään graafiseen muotoon. Ensimmäinen vaihe tässä ketjussa on mikrokontrollerin suorittama mittaustiedon lukeminen. Tämä arvo lähetetään ZigBee- radion avulla Linux- pohjaiseen PC- palvelimeen liitettyyn vastaanottimeen.
7 Kuva 4. ZigBee- vastaanotin Palvelimella ZigBee- viestistä tunnistetaan sen lähettäjä ja luetaan mittausdata. Tämän jälkeen mittausdata skaalataan ja tallennetaan aikaleiman kanssa lähettäjän perusteella määritettyyn tekstitiedostoon. HTML- pohjainen käyttöliittymä lukee mittausdatan määritellyistä tekstitiedostoista ja piirtää tätä dataa vastaavat kuvaajat erityisen Javascript- kirjaston avulla. Kuvaajia on mahdollista zoomata, jolloin saadaan yksityiskohtia havainnollisemmin esille. Tiedon esittäminen on esitetty tarkemmin seuraavassa alaluvussa. 7.1. Tiedon esittäminen Mittaustieto esitetään graafisesti HTML- pohjaisella sivulla. Sivusta on kaksi versiota: toisessa esitetään viimeisimpien tuntien mittaukset automaattisesti päivittyvillä kuvaajilla, toisessa käyttäjä voi itse valita tarkasteltavan ajanjakson (Kuva 5). Näistä vaihtoehdoista valitaan käytettävä versio sivun oikeassa laidassa sijaitsevilla linkeillä. Lisäksi sivulla voidaan esittää varoituksia esimerkiksi liian korkeasta hiilidioksidipitoisuudesta. Tällä hetkellä ohjelmisto ei kuitenkaan tuota varoituksia. Varsinaiseen kuvaajien piirtämiseen käytetään flot- nimistä Javascript- kirjastoa. Flot tarjoaa hyvän ja helppokäyttöisen työkalun erilaisten kuvaajien esittämiseen. Toisaalta se määrittelee tarkasti missä muodossa esitettävä tieto on tekstitiedostoihin tallennettava. Lisätietoa flot- projektista löytyy osoitteesta http://code.google.com/p/flot/.
8 Kuva 5. Käyttöliittymäsivu 8. Testaus Järjestelmän toimintaa testattiin yleisellä tasolla kehitystyön yhteydessä, mutta koska järjestelmän rakennetta jouduttiin muuttamaan vielä hyvin myöhäisessä vaiheessa, erillistä testausvaihetta ei ehditty toteuttaa. Äänitasomittauksen luotettavuutta tarkasteltiin vertaamalla mittarin näytöllä ollutta lukemaa analogisesta ulostulosta laskettuun ja järjestelmälle välittyneeseen lukemaan. Testauksen perusteella äänitasomittaus välittyy luotettavasti järjestelmälle. Jos mittauksessa on virheitä, tämän testauksen perusteella ne johtuvat itse mittalaitteesta. Hiukkasmittaria ei päästy testaamaan varsinaisella pölyllä tai savulla, joten sen toiminta jäi epäselväksi. Yleinen tuntuma on, että mittari ei toimi luotettavasti, mikä johtuu mahdollisesti mikrokontrollerille ohjelmoidusta mittalaitetta ohjaavasta ohjelmasta. 9. Kehityskohteita Yksi projektin tavoitteista oli toteuttaa helposti laajennettava ja mittauslaitteiston muutoksiin mukautuva käyttöliittymä. Käyttöliittymä oli tarkoitus toteuttaa LabView- ohjelmistolla. Koska ThereGate- palvelimesta jouduttiin luopumaan, myös käyttöliittymän toteutustapa muuttui. Kun ThereGate- palvelimen ohjelmistosta saadaan riittävän vakaa versio, myös käyttöliittymä kannattanee toteuttaa LabView- pohjaisena. LabView- pohjaista käyttöliittymää varten on jo toteutettu perustason tiedonsiirton ja datankäsittelyn sisältävä LabView- ohjelma. Tämä ohjelma löytyy projektin BSCW- palvelimelta kesän 2010 kurssikansiosta. Kesän 2010 projektissa kehitysideana esitetty VOC- anturin lisääminen on edelleen yksi mahdollisuus, jolla järjestelmää voitaisiin laajentaa.
9 Hiukkasanturin mittauksen suorittava ohjelmiston osa saatiin toteutettua viime tingassa, ja luotettavien tulosten saamiseksi sitä on syytä yhä kehittää. Hiukkasanturi liitettiin tässä projektissa suoraan keskusyksikköön. Koska anturi on edullinen ja sen virrankulutus on vähäistä, se voitaisiin lisätä myös langattomiin mittausyksiköihin. Suurempana kehityskohteena on laitteiden viestiliikenteen jonotuskäytännön kehittäminen. Parempi jonotusrutiini estäisi viestien häviämisen, jota nykyisellä järjestelmällä tapahtuu aika- ajoin. Tämä tuntui olevan ongelma erityisesti hiukkasanturille, joka vaatii melko tarkasti ennalta määrätynlaisen mittaussyklin. Assistentin valistunut arvaus oli, että jumiutuva viestiliikenne saattoi osaltaan sotkea myös mittaussykliä aiheuttaen nollatuloksia tai sitten viestistä katosi matkalla osa jolloin perille saapui vääristynyt mittaustulos. Tämä ongelma on kuitenkin sen verran laaja, että ymmärtääksemme se jää kurssihenkilökunnan ratkaistavaksi. Ohjelmiston ZigBee- viestintää hoitavan osan rajoitteista johtuen keskusyksikköön lisättiin projektin loppuvaiheessa toinen mikrokontrolleri ja ZigBee- lähetin, jotta kaikki mitattavat suureet saatiin lähetettyä palvelinohjelmistolle. Käsittääksemme yksikin mikrokontrolleri pystyisi hallitsemaan koko mittausaseman antureita, jos sen viestiliikennettä hallittaisiin paremmin.
10 Liite a Ajankäytön seuranta Vkon pvä Pvm Mitä Kesto tiistai 7.9.2010 Aloitusluento keskiviikko 8.9.2010 Aiheeseen tutustuminen 2 tiistai 14.9.2010 Aiheeseen tutustuminen 2 lauantai 18.9.2010 Aiheeseen tutustuminen 2 tiistai 21.9.2010 Aiheeseen tutustuminen 2 torstai 23.9.2010 Antureiden Googlailua 2 lauantai 25.9.2010 Suunnitelman kirjoittaminen 2 sunnuntai 26.9.2010 Suunnitelman kirjoittaminen 2 maanantai 27.9.2010 Suunnitelman esityksen tekeminen 2 tiistai 28.9.2010 Suunnitelmien esitykset tiistai 5.10.2010 Suunnittelua, tutustumista 2 tiistai 12.10.2010 Suunnittelua, tutustumista 2 keskiviikko 13.10.2010 Antureiden Googlailua 2 tiistai 19.10.2010 Suunnittelua, tutustumista 2 tiistai 26.10.2010 Antureiden valitseminen 2 sunnuntai 31.10.2010 Väliraportointi 2 maanantai 1.11.2010 Väliraportointi 2 tiistai 2.11.2010 Regulaattorin juottaminen, pölysensorin liittimet 6 maanantai 8.11.2010 Työajanseuranta, käyttöliittymän suunnittelu 4 tiistai 9.11.2010 Antureiden liittäminen 8 tiistai 16.11.2010 Antureiden liittäminen, Käyttöliittymän koodausta 8 maanantai 22.11.2010 Käyttöliittymän koodaus 5 tiistai 23.11.2010 Käyttöliittymän koodaus 8 maanantai 29.11.2010 Käyttöliittymän koodaus, anturointikoodin viimeistelyä 5 tiistai 30.11.2010 Käyttöliittymän koodaus, anturointikoodin viimeistelyä 8 torstai 2.12.2010 Uusien mittausten koodin debugausta 4 perjantai 3.12.2010 Uusien mittausten koodin debugausta 2 lauantai 4.12.2010 Loppudemon kalvot, loppuraportointia 2 sunnuntai 5.12.2010 Loppuraportointi 2 maanantai 6.12.2010 Loppuraportointi 2 tiistai 7.12.2010 Järjestelmän hiomista, loppudemoon valmistumista, raportointia... 6 perjantai 7.1.2011 raportointi 2 lauantai 8.1.2011 raportointi 2 sunnuntai 9.1.2011 raportointi 2 106 h + 18 h luennot 12 h tapaamiset SUMMA 136 h 5,04 op
11 Liite b Mittausaseman johdotus Kohde Käyttö Johdin Liitin X01 (ala) Kohde MC1(GND) N 1 12VDC N T/H(N) N Sin 3 24 VDC N CO2(GND) N Must 5 X01(1,3) 7V REGU(IN- ) N Must 5 X01(1,3) CO2(N) N Or 7 X01(1,3) 7V REGU(OUT- ) N Must 7 X01(1,3) X01(37) N 9 X01(1,3) LUX(2) N Must 11 X01(1,3) LUX(nolla) N Must 13 X01(1,3) db(gnd) N Must 15 X01(1,3) db(nolla) N Must 17 MC1(PA0) PÖLY(GND) N 19 MC1(PA1) T/H(T) Lämpötila 1 Must 21 MC1(PA2) T/H(H) Kosteus 1 Valk 23 MC1(PA3) CO2(V) CO2 1 Or 25 MC1(PA4) LUX(Mittaus) Valaistusvoimakkuus Or 27 MC1(PA5) db(mittaus) Äänenvoimakkuus Must 29 MC1(PA6) PÖLY Hiukkaset 31 MC1(PA7) (Mittaus) 33 MC1(PA8(GND)) PÖLY CNTRL Hiukkaset ohjaus Ora 35 X01(9) N 37 39 Kohde Käyttö Liitin X02 (ylä) Kohde MC1(+) 12 V Syöttö 2 12 VDC + T/H(+) 12 V Syöttö Rusk 4 12 VDC + CO2(+) 12 V Syöttö Pun 6 12 VDC + 7V REGU(+) 12 V Syöttö Pun 8 7 VDC + REGU 12 V Syöttö 10 12 VDC + LUX(1) 24 v Syöttö Pun 14 24 VDC + 24 v Syöttö 16 24 VDC + 24 v Syöttö 18 24 VDC + db(+) 7 V Syöttö Pun 22 7 VDC + Rusk + PÖLY(+) 7 V Syöttö Sin 24 7 VDC + 7 V Syöttö 26 7 VDC + 12 20 28 30 32 34 36 38 40