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.

Laitteen lisääminen
Lisätäänpä ensin vaikka Arduinomme kohdassa Device, klikataan siis Select device

Valitaan ARDUINO

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

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

Nimetään Arduinomme Saunasensoriksi ja klikataan NEXT
Nyt asennusvelho määrittelee erinäisiä asioita:

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

Ja nyt laite näkyi valittuna kuten kuuluu:

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:

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.


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

Klikataan CONTINUE
Ja taas törmäsimme ongelmiin:

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:


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

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




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:

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.

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

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ä:

Laittelimme tuohon kelvolliset asetukset ja klikkasimme SAVE
Näkymät
Nyt hallintapaneelissa näytti siis tältä:

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

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

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.

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

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

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

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

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ä:

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

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

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:

Ja nyt lopuksi laitellaan koodissa ensin input kohdalleen…
![]()
…ja loput loopin loppuun:

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:
![]()
![]()
![]()
Tämän jälkeen saatoimme ladata koodin Arduinoomme.

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