Suunnitelma

Suunnittelusta yleisesti

Nyt voisi oikeastaan heti kertoa, että harvemmin tulee tehtyä mitään suunnitelmaa.
Jollei sitten sitä voi sanoa suunnitteluksi, että ensin tulee idea. Sitten törmää ongelmiin, jotka on idean onnistumisen tiellä. Jonka jälkeen ongelmiin tulee etsittyä ja kokeiltua erilaisia ratkaisuja. Josta yleensä syntyy lopulta jotain toimivaa sovittelemalla ja hiomalla ratkaisuja yhteen. Ei siis välttämättä synny heti mitään loistavaa ratkaisua, mutta toimivaa. Loistava ratkaisusta tulisi sitten varmaan hiomalla ideaa lisää ja siihen löydettyjä ratkaisuja yksinkertaistamalla tai keksimällä niitä lisää.

Eli se on ollut tässäkin projektissa oikeastaan pääasiallinen toimintaperiaate niin kuin monissa muissakin projekteissani. Ja sen loistavan ratkaisun hakeminen jää usein miten vähemmälle huomiolle, kun on saanut jotain toimivaa aikaiseksi. Mutta jonka aika tulee yleensä silloin, kun ratkaistua ideaa alkaa soveltaa jonkun toisen idean ratkaisemiseen. Joten tällä periaatteella käyn nyt tämän idean suunnitelmat läpi.

Ensimmäinen pulma oli saada datasta käyrää

Ensimmäinen pulma olikin, miten piirtää käyrää mittausdatasta, jota kerätty antureilta. Ensin tulikin selattua mahdollisia valmiita ratkaisuja netistä. Mutta koska toimivat ja valmiit ratkaisut oli joko maksullisia tai hankalan oloisia käyttää. Niin lopulta löytyi ratkaisu PHP-kielen GD-kirjastosta. Jolla voi piirtää kuvaa. Ja jolla pienen harjoittelun jälkeen onnistuikin piirtämään jo jonkinlaisen kuvan mittaustuloksista. Tästä syntyikin sitten uusi ongelma, miten seurata käyrän arvoja koordinaatistossa, niin että ei tarvitse alkaa asettelemaan viivoitinta aina näytölle, jotta saisi tarkempaa tieto käyrän kuvaamasta arvosta. Joten seuraavaksi piti alkaa etsimään jotain sopivaa ratkaisua tähän ongelmaan.

Viivoittimen etsintä

Ja jälleen kerran muutaman tunnin etsintä ja erilaisten vaihtoehtojen kokeilu päättyi. Kun ratkaisuksi löytyi internetistä kissan kuvaan rakennettu selkeä ja yksinkertainen Javascripti esimerkki. Jota kuvassa muokattu, niin että se piirtää hiirenosoittimen mukana kulkevan ristin.

Josta sitten vielä muutaman tunnin kokeilemisella sai lopulta aikaiseksi mitä halusikin. Niin että Javascripti esimerkkiin sai sisältymään myös ristikon vieressä kulkevat koordinaattilukemat.

Viivoittimesta parametreihin

Ja lopultahan tämän hiirenosoittimen mukana liikkuva viivoitin liikkuvine koordinaatti tietoineen piti saada myös anturidatasta PHP-kielen ja GD-kirjaston avulla piirrettyyn kuvaan.

Ja kun se lopulta onnistui seurasi taas uusi idea/ongelma. Niin että ongelmaksi tuli seuraavaksi erilaisten parametrien muuttaminen. Kuten minkälaista asteikkoa käytetään millekin anturidatalle. Tai minkä kokoisia asteikkovälejä käytetään koordinaatiston X ja Y-akseleille.

Parametreille lomakkeen suunnittelu

Joten tästä seurasi, että nyt piti seuraavaksi rakentaa lomake, jossa kaikki onnistuisi. Näin ollen lomakkeeseen täytyi lisätä erilaisia valintoja. Kuten mitä anturitietoja millekin koordinaatiston X ja Y-akselille laitettaisi. Luonnollisesti X-akseli saisi aika-arvon. Ja Y-akseli yleensä sitten anturin mittaaman arvon. Oli se sitten lämpötila, UV-indeksi, ilmankosteus jne.

Myös asteikkomalli valinta tuli tässä mukaan. Koska esimerkiksi lämpötilan ja ilmankosteuden anturidata tarvitsee erilaiset asteikot. Tästä seurasi myös se, että asteikkokokoa eli vaikka miten suuri asteikko asetetaan lämpötilan mittaamiseen. Lämpötila kun voi vaihdella vaikka +40 ja -40 asteen välillä. Tai ilman kosteus voi olla 0-100% välillä. Tämä siis koskee Y-akselia. Sitten tulee tietysti X-akseli, jolle tulee aika-arvo miltä väliltä anturidata käyrässä esitellään.

Sitten tuli vielä X ja Y-akselien asteikkovälien määrittely. Jolloin mittausdataa voidaan venyttää tai puristaa koordinaatistoon haluttuun tilaan ja näin helpottaa käyrän lukemista. Tätä varten piti pikselimäärän lisäksi itse X-akselin asteikkoväliin sisällyttää myös tieto montako sekuntia asteikkoväli on. Kuvassa se on 3600 sekuntia. Josta tulee 1 tunti. Jolloin X-asteikkokoko kertaa 1 tunti kertoo kuinka pitkältä ajalta mittausdataa esitetään koordinaatistossa käyränä.

Jolloin voidaan ”<=mittaukset” ja ”mittaukset=>”-napeilla selata mittausdataa edestakaisin ja näin tarkastella anturidataa. ”Uusimmat mittaukset”-napilla taas saadaan käyrään näkymään viimeisimmät mittaudatat.

Siinä oli tuon kuvassa olevan lomakkeen parametrien laadinnan ehkä ”hieman” sekavahko selitys. Mutta asiaa pääsee kyllä testaamaan jokainen itse käytännössä linkistä. Jolloin lomakkeen parametrien ja toimintojen idea tulee paremmin selväksi.

Kuvaankin parametreja näkyviin

Ja lopulta kun parametrien muuttamiseen tehty lomake oli valmis. Niin kuvaan oli hyvä saada mukaan tietoja näistä parametreistä. Kuten miltä ajalta käyrä on. Monta mittaustulosta käyrä sisältää. Kuinka pitkästä ajasta on kyse jne. Ne helpottaa paljon mittausdata käyrän tulkintaa.

Ajan määrittämisen vaikeus käyrältä ja X-akselilta

Koska ajan hahmottaminen suoraan X-akselilta ja käyrältä on ristikon avullakin vaikeaa loppujen lopulta. Siinä joutuu laskemaan kertolaskuja jne. Niin seuraava idea olikin toteuttaa kertolaskut ja siitä laskettu aika näkymään itse ristikolla jo valmiiksi. Ja kuten kuvassa näkyy kuvaan nyt piirretyt keltaiset laatikot. Jotka sulkee sisäänsä koordinaatistoon X-akselin yhden välin aikamäärän. Ja niistä lasketut aika-arvot X-akselin arvon ja X-akselin yhden välin aikamäärän kertoman. Niin nyt X-akselin aika-arvoa voi seurata käyrältä tunteina ja vuorokausina helposti. Ja myös niin, että käyrän alusta X-akselin ja aikavälin kertoman mukaan tunnit ja vuorokaudet kasvaa ja toisessa taas vastaavasti käyrän lopusta. Niin silloin on helpompi nähdä kulunut aika suoraan käyrältä. Sen lisäksi, että Y-kohdasta näkee anturin arvon.

Copyright <> jyrki.k(at)innopultti.fi <> Päivitetty: 9.10.2016