Kategoriat
Yleinen

Datan keräys Raspberry Pi:n avulla

Viime blogissa kirjoitimme, kuinka saatiin käyttöömme oma SQL-database. Seuraavaksi tuli aika hyödyntää sitä opetuskäyttöön.

Projekti alkoi Raspberry Pi:n ja siihen kytkettävän sensorin tilaamisella. Pi:hin ladattiin oma Raspbian Os käyttöjärjestelmä ja varmistettiin, että sensori toimii ja kerää dataa. Tehtävänä oli mitata lämpötilaa, ilmankosteutta ja ilmanpainetta. Pi kuitenkin lämmitti sensoria, joten lämpötilan arvo vääristyi. Realistista arvoa varten tarvittiin johto, joka mahdollisti sensorin erille laittamisen Pi:stä. Tässä vaiheessa huomasimme, että tarvitsemme ulkopuolisia palveluja datan keräämistä varten.

NodeRed ja Azure IoT Central

Pi:lle ladattiin NodeRed lisäohjelma. Ohjelmassa spesifioitiin Pi:n IP osoite ja Pi yhdistettiin verkkoon. NodeRedin selaimessa määriteltiin kytkentäkaavio. Kaavion tarkoituksena oli aluksi käynnistää SenseHat ja sen jälkeen siirtää kerätty data Azuren IoT Centraliin.

Pian kuitenkin huomasimme, että Noden kerättyä dataa ei IoT Centralista pystynyt viemään SQL palvelimelle. Toiveena oli, että IoT Central päivittää siirretyt datat samaan tiedostoon. Siirretty data loi kuitenkin jokaisen siirron jälkeen uuden tiedoston, joten sen siirtäminen SQL palvelimelle ei ollut mahdollista.

Seurauksena NodeRed ja IoT Central hylättiin ja päätettiin siirtyä Azuren sisäisiin palveluihin.

Azuren palvelut datan keräämiseksi

Pi:lle vaadittavien ohjelmien asentamista varten tarvittiin Windows käyttöjärjestelmällä toimiva kone. Koneella oli tarkoitus kirjoittaa koodi, jolla saataisiin Pi yhdistämään Azuren IoT hubiin. Koodi myös siirtäisi sensorin avulla kerättyä dataa Azureen.

Ensimmäisenä ohjelmana asennettiin Visual Studio Code. Studioon asennettiin vaaadittavat lisäosat. Seuraavaksi asennettiin DotNet Core, Node.js, Azure Functions Core Tools, Azure Storage Explorer ja Putty.

Käyttöönotto alkoi koodaamisella. Visual Studioon kirjoitettiin C# koodi. Koodiissa määriteltiin sensorin asetukset. Asetukset koskivat esimerkiksi lämpötilan yksikköä ja kuinka usein sensori keräisi dataa. Myös kellonaika määriteltiin paikallisen kellonajan mukaiseksi. Jotta laite osaisi yhdistää Azure IoT hubiin, lisättiin sen avain.

Asetuksien määrittämisen jälkeen oli aika siirtää koodi Pi:lle. Siirtäminen tapahtui Node.js ohjelman avulla. Aluksi määriteltiin siirettävän tiedoston parametrit. Tiedosto puhdistettiin ja varmistettiin sen moitteeton toimivuus. Mikäli tiedostossa olisi virheitä, ohjelma ilmoittaisi siitä välittömästi.

Toimivuuden varmistuksen jälkeen aloitettiin tiedoston siirtäminen. Aluksi Pi:lle luotiin uusi kansio, johon tiedostot asennettaisiin. Kansion nimeksi annettiin SenseHATDotNetCore. Nodeen syötettiin koodi, joka yhdistäisi Pi:hin ja siirtäisi haluamamme tiedostot siihen.

Projektin loppusuora

Pi:llä käynnistettiin sen oma Terminal. Terminaalissa käynnistettiin juuri siirtämämme tiedosto. Tämä onnistui ensin navigoimalla juuri luotuun kansioon. Seuraavaksi ohjelma käynnistettiin./SenseHATDotNetCore komennolla.

Juuri käynnistetty koodi toimi! Dataa siirtyi vartin välein IoT hubiin. Nyt ainoana tavoitteena oli datan siirtäminen meidän SQL palvelimelle. Tämän suoritimme Stream Analytics jobin avulla. Datan sisätuloksi määritettiin IoT hub ja ulostuloksi SQL-database.

Pi saatiin toimimaan, joten se voidaan asentaa haluamamme luokkaan. Luokassa Pi mittaa vartin välein lämpötilan, ilmankosteuden ja ilmanpaineen.

Datan analysointi

Data oli siirretty onnistuneesti SQL palvelimelle. Voitiin siis aloittaa sen analysointi. PowerBi-ohjelma valikoitui analysoinnin työkaluksi. Sensorin data avattiin ohjelmassa. Seuraavana vuorossa oli datan puhdistaminen. Esimerkiksi, ilmankosteus muutettiin prosenteiksi, päivämäärä ja aika yhdistettiin. Datan käsittelyn jälkeen rakennettiin visualisoinnit, joista ilmenee mm. tämänhetkinen lämpötila, päivittäinen ilmankosteus ja ilmanpaine.

Mitä jatkossa?

Lähes kaikki tavoitteet saatiin suoritettua. Dataa kerääntyy ja sitä voidaan käyttää opetuksessa. Oppilaat voivat harjoitella esimerkiksi datan siivoamista ja analysointia. Myös koodaamisesta kiinnostuneet voivat Pi:llä testata osaamistaan.

Kategoriat
Yleinen

Azure avuksi opetukseen

Nykymaailma muuttuu valtavalla vauhdilla ja uusia opetusmenetelmiä tarvitaan jatkuvasti. Ennen riitti, että työntekijä osasi syöttää Exceliin numeroita ja painaa enteriä, mutta nykyään sillä ei pitkälle pääse. Teknologia kehittyy ja sen myötä tulee uusia ohjelmia, joita työntekijän on osattava käyttää ja hyödyntää. Meidän tapauksessamme tämä ohjelma oli Microsoft Azure. Azure on julkinen pilvipalvelu, jota voidaan käyttää virtuaalipalvelinten alustana. Lisäksi Azure voi toimia kehitysalustana. Azurella pystytään hallitsemaan mobiililaitteita, suojaamaan dokumentteja, analysoimaan suuria datamassoja ja luomaan esimerkiksi koneoppimista.

Mistä kaikki alkoi?

Kaikki alkoi data-analytiikan koulutuksen viidennellä lukukaudella toteutettavasta data-analytiikan tutkimus- ja kehitysprojektista. Saimme Xamkin DataLABilta tehtäväksi SQL-serverin luomisen ja käyttöoton Microsoft Azuressa. Projekti oli myös osa DataLABissa suoritettavaa syventävää harjoittelua. Tavoitteena oli saada aikaiseksi Azure-serveri, jota voidaan käyttää apuna opetuksessa sekä tehdä lyhyitä oppaita serverin luomisesta ja käytöstä.

Projektin eteneminen

Projekti alkoi hitaasti ja rauhallisesti, sillä jouduimme ensin odottelemaan, että saamme oikeudet Xamkin Azuren Resource groupiin. Loimme sinne aluksi oman SQL-serverin, johon myöhemmin avattiin SQL database. Databasen synnyttyä selvitimme, miten sinne saa ladattua dataa, ja kuinka database käytännössä toimii. Seuraavaksi haasteeksi osoittautui datan saaminen. Meillä ei ollut mitään ladattavaksi sopivaa dataa, joten pyysimme apua toiselta projektiryhmältä. Toiselta ryhmältä saimme ns. testidataa, jolla pystyimme varmistamaan serverin toimivuuden. Onnistuneen datan siirtämisen jälkeen serveri oli valmis seuraavaan projektiin.

Kaikki vaiheet dokumentoitiin ja niistä koottiin lyhyitä oppaita opiskelijoita varten. Oppaita löytyy esim. Azure-serverin luomisesta, siirtämisestä, tiedon tuomisesta ja datan avaamisesta.

Vaadittavat ohjelmat

Serverin oikeanlainen toimiminen vaatii sen, että käyttäjältä löytyy tiettyjä ohjelmia. Meidän tilanteessamme ei vaadita monia ohjelmia, mutta niiden käyttö on pakollista. Parhaaksi ohjelmaksi datan lataamiseen ja muokkaamiseen serverille osoittautui Microsoftin SQL Server Management Studio, eli SSMS. Kyseisen ohjelman avulla pystyy vaivattomasti tarkastelemaan databasen sisältöä ja muokkaamaan sitä. Lisäksi ohjelma mahdollistaa sisällön lataamisen omaan databaseen.

Jotta datan avaaminen ja tarkastelu onnistuu, on parasta käyttää joko Microsoft Excel tai PowerBI -ohjelmia. Näiden ohjelmien avulla käyttäjä pystyy avaamaan koneellensa serverillä olevat datat ja muokkaamaan niitä. Ohjelmien avulla datan analysointi on myös mielestämme helpointa ja monipuolisinta.

Mitä jatkossa?

Tällä hetkellä meillä on toimiva pilvipalvelu, eli SQL-database. Pilvipalvelua voidaan hyödyntää opetuksessa ja erilaisissa projekteissa. Jatkossa tavoitteenamme on ladata srverille jatkuvasti päivittyvää, eli ns. livedataa. Dataa kerätään Raspberry Pi:n avulla. Kerätty data analysoidaan ja visualisoidaan PowerBI ohjelmalla. Olemmekin jo onnistuneesti testanneet sitä Raspberry Pi -simulaattorin avulla.