Toimintojen teko ja hyödyntäminen pilvipalvelussa

 

 

Arduinon pilvipalveluun pääsee osoitteesta:

https://create.arduino.cc/iot/things

Alla pilviseikkailumme selostus. Pilviosuutta emme lopullisessa toteutuksessa hyödyntäneet lainkaan, joten siksi siirsimme tämän osuuden täksi erilliseksi osaksi.

 

image11e.png

 

Laitteen lisääminen

Lisätäänpä ensin vaikka Arduinomme kohdassa Deviceklikataan siis Select device

 

image11f.png

Valitaan ARDUINO

image120.png

 

Nyt jos laite ei olisi kiinni tietokoneessa, niin se pitäisi lisätä. Mutta meillä se oli jo, joten hetken päästä tuli ilmoitus:

 

image121.png

 

Huomatkaa, nyt porttinumero onkin nyt viisi (COM5). Klikataan 

 

image121.png

 

Nimetään Arduinomme Saunasensoriksi ja klikataan NEXT 

Nyt asennusvelho määrittelee erinäisiä asioita:

 

 image123.png

 

Ja tähän se sitten tökkäsi ja pahasti. Emme saaneet Arduinoamme asennettua pilveen, emme sitten millään.

Ja emme olleet ongelmamme kanssa yksin. Tässä yksi esimerkki keskusteluketjusta, jossa käsitellään samaa ongelma kuin meillä.

https://forum.arduino.cc/index.php?topic=699677.0

Onneksi IT-alalla on oppinut kärsivälliseksi ja lukuisten yritysten jälkeen laite lopulta suostui asentumaan. Tässä oli jotain tekemistä sillä, että kun yritti aina heti perään uudelleen, niin asennus sattui lopulta jäämään sopivasti johonkin välitilaan, joka hyväksyi jatkamisen ja läpimenon. Tämä arvaus tulee siitä, että tietokoneen kaiuttimista kuuli koko ajan merkkiääniä kuinka eri asennusyritysten ja vaiheiden aikana USB-laitetta irtikytkettiin ja kytkettiin toistuvasti, sekä se että laite näkyi aina hetken aikaa oikein pilvihallinnassa Devices-kohdan alla.

Niin tai näin, lopultakin Arduinomme oli pilvihallittavissa. Tai siis se piti ensiksi valita testiimme pilvihallinnassa. Nimi sattui sillä onnistuneella yrityksellä olemaan Saunasensorin sijasta PasinArduino, mutta tätä ei voi muuttaa kuin poistamalla laite ja asentamalla se uudelleen ja siihen lottoon emme enää halunneet uudestaan. Klikkasimme siis ASSOCIATE 

 

image124.png

 

Ja nyt laite näkyi valittuna kuten kuuluu:

 

image125.png

 

Nyt kun tarkemmin katsotaan, niin huomataan ettei se meidän asennus tainnut sittenkään onnistua. Statuksena lukee Offline. Tässä sitten taas jumpattiin tovi ja yhden kerran hetkellisesti laite kävi linjalla. Lopulta kuitenkaan ei auttanut muu kuin koettaa asentaa Arduino uudelleen huolimatta siitä, että tuo aiempi saattaisi kadota.

Nyt asennus meni onneksi heti läpi ja laite pysyi linjalla. Määrittelimme nimenkin tässä välissä halutusti eli Saunasensorista taas puhutaan:

 

image126.png

 

Laiteohjelmiston päivittäminen

Tätä ennen päätimme päivittää Arduinomme laiteohjelmiston pilvipalvelun avulla. Tämä onnistuu Devices-kohdan alta laitettamme klikkaamalla ja valitsemalla Update.

 

image127.png

 

image128.png

 

Tämän jälkeen tulee joko kehotus kytkeä laite tai sitten laite löydetään ja ilmoitetaan siitä:

 

image129.png

 

Klikataan CONTINUE 

Ja taas törmäsimme ongelmiin:

image12a.png

 

Vaikuttaa kovasti samalta kuin se aiempi kytkemisongelma. No päivitetään laiteohjelmisto sitten eri kautta, eli IDE:n avulla.

https://learn.mansteri.com/workshops/iout/mkr1000-firmware-update-and-adding-ssl-certificates/

Mennään ohjeen mukaan ja tarkistetaan ensin, että viimeisin WiFi101 on asennettuna. Löytyy kirjastojen ylläpidosta: 

 

image12b.png

 

image12c.png

 

Asensimme siis ensin WiFi101:n ja sitten menimme Esimerkkien alta löytyvään WiFi101:een ja sieltä valitsimme FirmwareUpdaterin ja latasimme sen laitteeseen.

 

image12d.png

 

Sitten tarkistimme että oikea laite ja portti oli valittuna ja otimme TyökaluistaWiFi101 / WiFiNinaFirmwareUpdaterin käyttöön ja päivitimme sillä laiteohjelmiston, sekä sertifikaatit.

 

 image12e.png

 

image12f.png

 

 

 image130.png

 

 

image131.png

 

Toimintojen rakentaminen

Tässä palvelussa seuraava toimenpide oli luoda Thing. Näitä ilmaislisenssissä saa olla vain yksi, mutta sen alle voi tehdä sitten lukuisia toimintoja.

Seuraavassa selostuksessa hyödynsimme nyt sitten näitä ohjeita:

https://create.arduino.cc/projecthub/133030/iot-cloud-getting-started-c93255

Ohjeet olivat sikäli hieman puutteelliset, että ne oli tehty vanhemmalle pilviversiolle, joka sivulla kyllä kerrotaankin. Mutta koska sivun ohjeet olivat muuten hyvät ja selkeät, niin päätimme mennä niiden mukaan ja improvisoida missä tulisi tarvetta.

 

Ledin kytkeminen

Kytkimme ledin ohjeen mukaan:

 

 image132.png

 

Eli tässä piti vetää kytkentäalustalle Arduinolta maakaapeli, virtakaapeli ja digitaalisesta pinni 2:sta kaapeli. Lisäksi piti laittaa oikean kokoinen vastus ja itse led. Tässä vaiheessa virtakaapelia ei vielä hyödynnetä, koska led saa virtansa pin 2:n kautta. Myöhemmin lisättävät komponentit tarvitsevat tuota kytkentäalustan jakamaa virtaa.

 

Thingin luominen

Loimme ohjatusti uuden thingin ja nimesimme sen Saunasensoriksi

Toimintojen lisääminen

Sitten lähdimme lisäämään sinne ensimmäistä toimintoa ADD(lisää) -toiminnolla.

 

image133.png

 

Annoimme sille ohjeen mukaisesti nimen light. Tällöin meidän ei tarvitse muuttaa sitä esimerkkikoodissamme.

Valitsimme kuvan mukaisesti tyypiksi Light

 

image134.png

 

Tällöin valituksi tuli Cloudlight. Laitoimme sen luku- ja kirjoitustilaan, koska meidän on tarkoitus muuttaa arvoa pilvestä (päälle/pois). Jos pelkästään lukisimme arvoja laitteesta, niin silloin riittäisivät lukuoikeudet. Laitoimme vielä, että Arduino laittaa meille tiedon pilveen aina kun ledin tila muuttuu. Vaihtoehto olisi laittaa se tekemään ilmoitus halutuin väliajoin.

Lopuksi tallensimme toiminnon ADD VARIABLE-painikkeella.

Nyt meillä oli ensimmäinen toiminto tehtynä. Kytkimme sen (associate) vielä koskemaan tuota Saunasensori-laitettamme.

Verkkoasetusten syöttäminen

Nyt kannattaa huomata, että verkkoasetusten hallinta tuli tässä kohdin aktiiviseksi. Asetimme siis seuraavaksi verkkoasetukset kohdalleen, jotta saimme Arduinomme langattomasti lähiverkkoon ja sitä kautta internetiin ja pilvipalveluun ilman tietokoneen apua.

Verkkoasetusten hallintaikkuna näytti (klikkasimme Configure) tältä:

 

image135.png

 

Laittelimme tuohon kelvolliset asetukset ja klikkasimme SAVE

 

Näkymät

Nyt hallintapaneelissa näytti siis tältä:

 

image136.png

 

Ja kun menimme Dashboards -välilehdelle niin näimme Saunasensoripaneelimme

 

image137.png

Ja kun klikkasimme sen auki, niin näimme uuden hienon On/Off -säätimemme.

 

image138.png

 

Koodin muokkaaminen Web-editorissa 

Homma ei ollut kuitenkaan vielä selvä ledinkään osalta. Meidän piti seuraavaksi hieman lisäillä koodia, koska automaattisesti generoidussa ei ollut määriteltynä kaikkea tarvitsemaamme.

Otimme web-editoriin auki Saunasensori_jan20a.ino-tiedostoon ja teimme seuraavat lisäykset.

Määrittelimme että ledimme on kiinni Arduinon pinnissä numero 2.

 image139.png

 

Määrittelimme että se pinni on ulostuloa varten.

 

 image13a.png

 

Ja lopuksi määrittelimme, että mitä tehdään kun led laitetaan päälle ja pois (tila muuttuu).

 

image13b.png

 

Sketsin lähettäminen Arduinoon 

Nyt kun koodi oli valmis, niin lähetimme sen web-editorilla Arduinoomme klikkaamalla nuolipainiketta.

 

image13c.png

 

Saunasensori-koodi lähetettiin Arduinoomme ja vieläpä onnistuneesti:

 

image13d.png

 

Testaaminen

Otimme Arduinon irti tietokoneesta ja kytkimme sen virtalähteeseen USB-kaapelilla. Nyt kaikki tiedonsiirto siihen menisi lähiverkon kautta. Otimme pilvipalvelussa dashboardin auki ja vaihtelimme kytkimen asentoa.

Totesimme ohjauksen toimivan, kuten oheinen video todistaa:

 

 

Painikkeen lisääminen

Seuraavaksi lisäsimme painikkeen. Esimerkkisivulla olevaa potentiometriä emme kokeilleet, koska tässä harjoitustyössä sitä ei tarvittu.

Kokoonpanomme näytti nyt tältä:

 

image10.jpg

 

Seuraavaksi menimme thingsiin ja ADD -valinnalla lähdimme lisäämään Saunasensorille painike-toimintoa. Asettelimme ominaisuudet siihen näin:

 

image13e.png

 

Klikkasimme ADD VARIABLE ja nyt näytti tältä:

 

image13f.png

 

 

Seuraavaksi menimme taas web-editoriin ja lähdimme lisäämään koodia. Ensimmäiseksi kolme uutta riviä määrittelemään painikkeen pinninumero Arduinossa ja asettamaan painikkeen tila, jotta tila ilmoitetaan vain painettaessa, ei vapautettaessa:

 

 image140.png

 

Ja nyt lopuksi laitellaan koodissa ensin input kohdalleen…

 

image141.png

…ja loput loopin loppuun:

 

image142.png

 

Ja taas homma meni seis. Tällä kertaa virheilmoitus ilmoitteli tallennettaessa, ettei tuota meidän toggleaoltu määritelty. Ja tottahan se oli. Kun katsoimme thingProperties.h tiedostoa, niin siellä ei ollut jälkeäkään togglesta, vaikka se oli pilvessä joka paikassa kyllä määritelty Saunasensoriin. Automaattinen toiminto ei ollut toiminut, kuten ledin kohdalla.

Joten ei auttanut kuin lisätä tiedot tiedostoon käsin kolmeen eri kohtaan:

 

 image143.png

 image144.png

 

image145.png

 

Tämän jälkeen saatoimme ladata koodin Arduinoomme.

 

image146.png

Testasimme ja molemmat, sekä ledin ohjaus, että nappi toimivat kuten videolta käy ilmi.