Blogi

Joko kaljat on kylmässä?

Kesä alkaa olemaan pikkuhiljaa ohi, mutta kesän kuumin kysymys , "Onko kalja kylmää?", on ollut siitä huolimatta ilmassa. Me eri virvokkeita nauttivat ihmiset tiedämme, että virvokkeiden jäähtyminen jääkaapissa ottaa oman aikansa, eikä tilannetta auta se, jos kaapilla käydään vähän väliä tarkastamassa pakkauksen kyljen viileystasoa.

Ongelma muuttui lähes käsin kosketeltavaksi jo jalkapallon MM-kisojen aikaan, kun pidimme toimistolla kisakatsomoa. Firman oranssiin jääkaappiin oli hankittu sopiva määrä olutta ja muita kisavirvokkeita, ja matsin alkamisen ohella odotimme ennen kaikkea juomien viilentymistä.

Reaaliaikainen seuranta ilman jääkaapilla ramppaamista

Onneksi pöydälläni oli Raspberry Pi, jossa oli kiinni pari lämpöanturia. Näiden avulla saimme näppärästi selvitettyä tiedon siitä, koska kaljan voi käydä noutamassa, ilman ramppaamista jääkaapilla.

Ensimmäinen proto oli vain sisäverkossa pyörivä Golang kikkula josta React frontti kävi minuutin välein kyselemässä kaikkien huulilla olevaa kysymystä: "olisiko se kalja jo kylmää?". Apsi avattiin loungen 75" telkkariin ja odottelimme, milloin graafit muuttuvat punaisista vihreiksi. Voin kertoa, että odottavan aika on pitkä, mutta juuri sopivasti ennen pelin alkua kumpikin jääkaappiin työnnetty sensori ilmoitti lämpötilan olevan alle 10 astetta.

Kalja-graafin piti olla vaan tätä yhtä kertaa varten nopeasti kasaan lyöty purkkaviritelmä, tarvitsinhan Rasberry:n ja sensorit oikeastaan alunperin toiseen projektiin. Mutta miksei jääkaapilla tosiaan olisi voinut olla jatkuvasti pyörivä seuranta? Ylimääräisiä sensoreita löytyi kotoa lisää ja toimiston kaapin päällä lojui sopivasti toimeton Raspberry Pi. Seuraavien päivien aikana syntyi kalja.sysart.io, josta kaikki kiinnostuneet voivat seurata, miten kylmää juotavaa meiltä löytyy.

 

Näin rakennat oman jääkaappikytän

Uusi apsi koostuu kolmesta osasta. Raspilla pyörivä Golang sovellus lukee lämpösensorin dataa ja tallentaa minuutin välein lämpötilan ja aikaleiman Dynamoon. Datan hakeminen Dynamosta hoituu lambda funktiolla, joka on myös Go koodia. Palapelin viimeinen pala on React apsi. React apsi pollaa lambdaa minuutin välein ja piirtää graafia siitä miten jääkaapin lämpötila on muuttunut. Hyvin simppeli, mutta toimii.

Tässä on kuitenkin yksi suuri ongelma, apsi kertoo lämpötilan, mutta se ei ota mitään kantaa kaapin juomavarustuksen määrään. Ehkä voisimme lisätä painosensorit, jotta saisimme infon siitä, onko siellä kaljaa ollenkaan. Paljon muuta dataa saadaan ihan ilmaiseksi. Aina kun joku hakee kaapista juotavaa, näkyy graafissa pieni lämpöpiikki. Myös silloin, kun kaappiin tuodaan lisää juotavaa, nousee sen lämpötila huomattavasti. Jatkokehitysmahdollisuudet ovat lähes rajattomat!


Projektin koodit löytyy Githubista, https://github.com/sysart/is-beer-cold ja reaaliaikaiset statsit Sysartin kaljan lämpötilasta: kalja.sysart.io

Aiheet: Ohjelmistokehitys

Joonas Haaparanta
Joonas Haaparanta

Olen Joonas ja käyntikortissani lukee “Frontend Ninja”. Kahvimaidon ostamisen ohessa olen rakennellut käyttöliittymiä muun muassa Requesteen.