Avainsana-arkisto: Windows 10 IoT Core

Microsoft – Windows 10 IoT, sääasema

Aiemmin kirjoitin IoT -tietokoneille tarkoitetusta Microsoftin käyttöjärjestelmästä Windows 10 IoT Core ja tätä hyödyntävästä Adafruitin aloituspaketista Microsoft IoT Pack for Raspberry Pi 2, sekä suorittamastani lyhyestä harjoitustyöstä Hello Blinky.

Microsoft on koonnut näiden harjoitustöiden yksityiskohtaiset ohjeet sivulle Starter Pack for Windows 10 IoT Core on Raspberry Pi 2. Tämä kirjoitukseni kattaa kohdasta Lesson 2: Starter Projects harjoituksen Weather Station ja sieltä version, jossa käytetään anturia BMP280.

Raspberry Pi 2 - sääasema

Raspberry Pi 2 – sääasema

Kuvassa yllä on aloituspaketin harjoitussovelluksen sääasema kaikessa yksinkertaisuudessaan. Koekytkentälevylle on laitettu yksi BMP280 -anturi, joka on kytketty ohjeen mukaisesti Raspberry Pi 2 Model B -tietokoneeseen. Olen nyt suojannut Raspberryn tyylikkäällä kotelolla, joka myös kuuluu aloituspakettiin.

Alla vielä lähikuva Adafruit BMP280 Barometric Pressure & Altitude -anturista, josta saadaan tiedot lämpötilasta ja ilmanpaineesta, sekä ilmanpaineen perusteella myös korkeudesta suhteessa merenpintaan.

BMP280 -anturi koekytkentälevyllä

BMP280 -anturi koekytkentälevyllä

Jostakin syystä en tällä harjoituskerralla tarvinnut ollenkaan kiinteätä verkkoa, vaan langaton verkko toimi riittävän hyvin koko ajan. Sovellus ei kuitenkaan meinannut käynnistyä, joten yritin pariin otteeseen komentoja Rebuild ja Deploy. Nämä menivät lopulta läpi ja käynnistin sovelluksen komennolla Start Debugging.

Kuvassa alla varmistin, että IoT Dashboardissa näkyvä laitenimi on sama, jonka kirjoitin Visual Studiossa etäkoneen nimeksi projektin asetuksissa. Tässä asetetut valinnat ovat erityisen tärkeät ohjelman suorittamisen kannalta.

Visual Studio - asetusten tarkistelua

Visual Studio – asetusten tarkistelua

Täydennettävää koodia oli tässä harjoituksessa hieman aiempia enemmän, mutta ei paljon vieläkään. Kuten kuvasta alla näkyy, aiemmasta poiketen rohkenin kirjoittaa osan koodilistauksesta eri lailla kuin ohjeessa: suomensin joitakin muuttujien nimiä ja käyttäjälle näkyviä tekstejä.

Aiemmat suorittamani harjoitustyöt (Hello Blinky ja World Map of Makers) näyttivät sovelluksen onnistuneen suorituksen vilkuttamalla koekytkentälevylle laitettua ledivaloa. Tämä sääasema puolestaan kirjoittaa anturin tuottamaa säädataa Visual Studion Output -ikkunaan.

Visual Studio - sääasema käynnissä

Visual Studio – sääasema käynnissä

Sovelluksen mittaama lämpötila n. 25 astetta lienee melko tarkka lukema auringonpaisteiselta pöydältä. Ilmanpaine n. 99 500 Pa on koko lailla lähellä, mutta hieman alle Ilmatieteenlaitoksen ilmoittaman n. 1 000 hPa:n, eli n. 100 000 Pa:n paineen. Tästä erosta johtunee myös korkeusarvon melkoisen suuri ero todelliseen, vai olisiko vakiomuuttuja paineMerenPinnanTasalla pitänyt olla jotakin muuta kuin 1013.25F?

Jonkinlaisena kannustimena harjoitusten tekoon saa sovelluksen suorittaja oman merkkinsä Sääaseman maailmankartalle. Oma merkkini ilmaantui odotetusti IP-osoitteeni perusteella Mannerheimintielle. Mikäli et tiedä minne oma merkkisi ilmaantuu, voit tarkistaa asian internetin lukuisista what is my ip -palveluista.

Alla karttakuva ennen ja jälkeen harjoituksen. Luku 7 kertoo yksinkertaisesti sen, että suoritin sovelluksen 7 kertaa ja jokaisella kerralla se ajoi funktion MakePinWebAPICall(), joka ymmärrykseni mukaan lähettää sijaintitiedon Adafruitin Azure -palvelimelle.

Suomi maailmankartalle

Suomi maailmankartalle

No oliko tämä nyt sitä asioiden internettiä?

Asioiden internetissä (Esineiden ja asioiden internet, Teollinen internet ja Internet of Things, IoT) on hyvin pitkälti kyse siitä, että erilaisilla antureilla kerätään tietoa maailmasta ja tämä tieto lähetetään mieluiten langattomasti jonnekin tallennettavaksi, analysoitavaksi ja hyödynnettäväksi.

Tässä harjoituksessa aiemmista suorittamistani poiketen oli käytössä tyypillinen IoT -anturi BMP280. Harjoituksessa ei anturin tuottamaa dataa tallennettu tai lähetetty minnekään, eikä enemmälti myöskään analysoitu, se vain tulostettiin sovelluskehitysvälineen Output -ikkunaan.

Anturin ja Raspberryn näkökulmasta anturidataa lähti langattomasti maailmalle, vaikka se jäikin sovelluskehitysympäristön sisälle. Ulos maailmaan lähti oikeasti vain tieto sovelluksen suorittamisesta.

Sääasemaharjoituksessa on aidosti kyse asioiden internetistä, sen alkulähteestä, eli anturien tuottamasta datasta. Nämä säätiedot Raspberry Pi 2 keräsi BMP280 -anturilla ja onnistumisen merkiksi maailmalle lähti tieto, joka näkyy harjoituksen nettisivulla.

Kyllä. Tämä on nyt sitä asioiden internettiä. Ei puhtainta, eikä täydellistä, mutta hyvä alku.

Amorphis – You I Need

Teidän nöyrin,

P.Tärkeä

Microsoft – Windows 10 IoT Core (kokeiltu)

Raapustelin aiemmin otsikolla Microsoft – Windows 10 IoT Core kympin versiosta, joka on tarkoitettu nykymittapuun mukaan erittäin yksinkertaisille tietokoneille. Windows 10 on käytössä tavallisella pöytätietokoneellani ja kännykässäni. Olen kokeillut kymppiä myös taulutietokoneella. IoT -version hankin valmiiksi kootun paketin osana. Tätä aloituspakettia myy Adafruit nimellä Microsoft IoT Pack for Raspberry Pi 2.

Tässä paketissa on kaikki tarvittava alkuun pääsemiseksi. Ja mikä tärkeintä, Microsoft on sivulle Starter Pack for Windows 10 IoT Core on Raspberry Pi 2 kerännyt seikkaperäiset ohjeet laitteiston ja sovellusten käyttöä varten. Tämä kirjoitukseni kattaa kohdan Lesson 1: Introduction and Setup, eli virittelin laitteiston ja suoritin yhden hyvin yksinkertaisen sovelluksen Hello Blinky.

Starter Pack for Windows 10 IoT Core on Raspberry Pi 2

Starter Pack for Windows 10 IoT Core on Raspberry Pi 2

Tilasin paketin suoraan Adafruitilta, jolloin kokonaiskustannukset nousivat erikseen maksettavine veroineen hieman päälle 200 Yhdysvaltain dollariin. Tästä toimituskulut olivat peräti 75 $. Kokoonpano on (sinistä läpyskää ja mustaa pakettia ehkä lukuun ottamatta) ostettavissa myös erikseen ja luultavasti edullisemmin.

Päädyin tähän aloituspakettiin, jotta sain kerralla kaiken tarpeellisen ja vieläpä varmasti yhteensopivin komponentein. Windows 10 IoT Core tuli valmiiksi muistikortilla ja riitti että laitoin sen paikoilleen.

Raspberry Pi 2 Model B

Raspberry Pi 2 Model B

Raspberryn ja lisävarusteiden ihmettelyn jälkeen Microsoftin laatimalla listalla kolmantena kohtana on PC-tietokoneen laittaminen valmiiksi. Raspberryssä ei aloituspaketissa ole näyttöä eikä hallintalaitteita, joten sitä ohjataan, ja sille tarkoitettuja sovelluksia kehitetään tavallisella tietokoneella.

Kun Raspberryn käyttöjärjestelmänä on Windows 10 IoT Core, tarvitaan kehityskoneeksi tietokone, jossa siinäkin on käyttöjärjestelmänä Windows 10. Lisäksi vaaditaan Microsoft Visual Studio tarkoin määritellyillä lisukkeilla. Tämä vaihe ei ollut vaikea, mutta kesti toki jonkin aikaa, kun suurin osa tarpeellisista kehitystyökaluista puuttui.

Seuraava vaihe 4 olikin Raspberryn liittäminen maailmaan. Ohjeita seuraten laitoin paikoilleen MicroSD -muistikortin ja sen mukana käyttöjärjestelmän Windows 10 IoT Core. Pieni WiFi -mokkula ei meinannut mennä paikoilleen ja jouduin käyttämään hieman voimaa (vika oli nimenomaan mokkulassa).

Liitin koneen D-Link DGS-105 -kytkimen (ostettu erikseen) kautta verkkoon, jotta siihen pääsi käsiksi hallintapaneelista. Lopuksi vielä virtajohto kiinni, mutta tässäpä tuli mukana amerikkalainen pistoke, joka ei käy täkäläiseen pistorasiaan. Kannattaa siis varmistaa, että kotimainenkin versio löytyy jostakin.

Raspberry Pi 2 käyttökunnossa

Raspberry Pi 2 käyttökunnossa

Mikäli ymmärsin asian oikein, verkkopiuha tarvittiin vain sitä varten, että Raspberryyn pääsee Windows IoT Core Dashboard -hallintapaneelin kautta kiinni ja laittamaan päälle langattoman verkon. Huom! Kaikissa vaiheissa pyydetään muistamaan, että Raspberryn käynnistyminen saattaa kestää jopa 5 minuuttia.

Kun kaikki tähän saakka oli valmista, oli aika siirtyä itse asiaan, eli kytkentöjen tekoon ja sovellukseen. Viitoskohdassa on kerrottu mitä komponentteja tarvitaan ja kuinka ne liitetään. Kuten alimmasta kuvasta näkyy, kaikki sujuu helposti ilman työkaluja. Ledi, vastus ja johdot vain laitetaan oikeille paikoilleen koekytkentälevyyn ja johtojen toiset päät Raspberryn liittimiin.

Latasin sovelluksen tiedostot ohjeen mukaan ja avasin projektin (Blinky.sln) Visual Studioon, josta kuva alla (Start Debugging käynnistää sovelluksen ajon).

Blinky Visual Studiossa

Blinky Visual Studiossa

Viitoskohdan osassa Deploy your app tuli alakohdassa 3. hieman hutera olo, kun ei Remote Connections löytänyt mitään, enkä ollut varma mitä kyseisessä kohdassa piti kirjoittaa mihinkin. Kokeilin hallintapaneelissa näkynyttä IP-osoitetta ilman tulosta.

Lopulta laitoin kohtaan Address sen nimen, joka näkyi hallintapaneelin sarakkeessa Name (eli tässä tapauksessa minwinpc). Kun käynnistin Visual Studiossa Deploy -toiminnon, studio ryhtyi kääntämään koodia ajokuntoon ja havaittuaan erinäisiä osia vielä puuttuvan, etsi ja asenteli ne.

Kun Blinky lopulta kääntyi ja sovelluksen ajo käynnistyi, alkoi koekytkentälevylle laitettu ledivalo vilkkua. Muuta tämä testisovellus ei teekään, ellei siihen lisää toiminnallisuutta koodata.

Raspberry Pi 2 - Blink!

Raspberry Pi 2 – Blink!

Sain testisovelluksen toimimaan, eli olin yhdistänyt Raspberryn maailmaan oikein, ladannut ja asentanut kaikki tarvittavat sovellukset lisäosineen ja suorittanut Visual Studiossa muutaman toiminnon.

Entä paljonko tässä oikeasti oltiin tekemisissä IoT:n, eli asioiden internetin kanssa? Eipä juuri ollenkaan. Pystyin kuitenkin käyttämään Raspberryä Windows 10 IoT Coren kautta ja nyt tiedän kuinka tässä kehitysympäristössä on mahdollista kehittää myös oikeita IoT -sovelluksia.

Asioiden internetissä on paljolti kyse erilaisten anturien tuottaman tiedon käsittelystä. Microsoft IoT Pack for Raspberry Pi 2 riittää esimerkiksi yksinkertaisen sääaseman tekoon, onhan paketissa mukana myös sääanturi Adafruit BMP280 Temperature + Barometric Sensor.

Edistyneemmille kehittäjille Microsoft on koonnut ohjeita Windows IoT -sivulle, josta löytyvät mm. monipuolisen sääaseman ja robottisarjan ohjeet. Näissä kummassakin on runkona Raspberry Pi 2, mutta aloituspaketin sisällön lisäksi tarvitaan toki muitakin komponentteja.

Teidän nöyrin,

P.Tärkeä

Microsoft – Windows 10 IoT Core

Vajaa vuosi sitten kyselin itsekseni, mikä tai mitä mahtaa olla Microsoft Windows 10 IoT. Tuolloin Microsoft oli vahvasti tulossa mukaan asioiden internettiin (Esineiden ja asioiden internet, Teollinen internet ja Internet of Things, IoT). Kesäisen julkistuksen ja lisääntyneen informaation myötä vastaus on tarkentunut. Näin Mircosoft:

Windows 10 IoT Core is a version of Windows 10 that is optimized for smaller devices with or without a display, and that runs on the Raspberry Pi 2 and 3, Arrow DragonBoard 410c & MinnowBoard MAX. Windows 10 IoT Core utilizes the rich, extensible Universal Windows Platform (UWP) API for building great solutions.

Microsoft on yhdessä Adafruitin kanssa jo hieman aikaa sitten koonnut aloituspaketin, jonka avulla kuka tahansa pääsee verrattain helposti kokeilemaan yksinkertaisten asioiden internetin ratkaisujen tekemistä kun sovelluskehitysympäristönä on Microsoft Visual Studio.

IoT Starter Pack

IoT Starter Pack

Adafruit myy pakettia nimellä Microsoft IoT Pack for Raspberry Pi 2. Tässä paketissa on täydellinen starttikokoonpano: yhden piirilevyn tietokone Raspberry Pi 2, useita komponentteja, kolme anturia ja käyttöjärjestelmänä Windows 10 IoT Core muistikortille asennettuna.

Ja mikä parasta, Microsoft tarjoaa mainiot ohjeet otsikolla Starter Pack for Windows 10 IoT Core on Raspberry Pi 2. Kyseiseltä sivulta löytyvät mm. tiedot paketin sisällöstä, ohjeet kehitysympäristön pystyttämiseen ja useita esimerkkiprojekteja.

Yksityiskohtaisissa ohjeissa kerrotaan esimerkiksi kuinka käytetään paketissa mukana tulevaa lämpötila- ja ilmanpaineanturia yksinkertaisen sääaseman rakentamiseen. Ohjeesta löytyvät kuvat kytkentäkaavioista, valmiin esimerkkikoodin täydentämisestä ja odotetusta lopputuloksesta.

On merkillepantavaa, että useat keskeisimmät tässä tarvittavat asiat, kuten Microsoft Windows 10 IoT Core ja Microsoft Visual Studio Community 2015 ovat saatavilla ja käytettävissä ilmaiseksi.

Myynnissä on jo myös uudempi Raspberry Pi 3. Tälle ei kuitenkaan ainakaan toistaiseksi ole samanlaista aloituspakettia Windows 10:lle, enkä osaa sanoa onko uudemman RasPin käyttäminen mahdollista Microsoftin esimerkkiprojekteissa.

Erilaisia Raspberry Pi -kokoonpanoja, komponentteja ja antureita löytyy myös kotimaisista verkkokaupoista ja onkin oletettavaa, että Microsoft IoT Pack for Raspberry Pi 2 on myös osa kerrallaan koottavissa ainakin toiminnallisesti samanlaisena.

Teidän nöyrin,

P.Tärkeä