Skrolli-artikkeli: Näin teet Arduino-mikrokontrollerista saunavahdin - Digitoday - Ilta-Sanomat

Skrolli-artikkeli: Näin saunan lämpötila siirtyy puhelimeen

Kuvituskuva
Julkaistu: 20.3.2013 17:01, Päivitetty 20.3.2013 21:32

Sauna on ajastettu, mutta kuinka lämmin se mahtaa olla? Digitodayn julkaisema Skrolli-tietotekniikkalehden artikkeli kertoo, kuinka tiedot saunan lämmöstä saa suoraan taskuun.

Ulkona on kylmää, hyistä ja pimeää, mutta sauna on onneksi lämpiämässä. Kohta pääsee löylyyn! Mutta onkohan kiuas jo lämmin?

Sen sijaan, että vaeltaisimme saunalle asti tarkastamaan tilanteen, ratkaisemme ongelman tekniikalla. Rakennamme laitteiston, joka kertoo saunan lämpötilan reaaliajassa suoraan puhelimeen.

Saunan lämpötilat näkyvät lcd-näytöllä.

Saunan lämpötilat näkyvät lcd-näytöllä.

Saunan lämpötilasta raportoiva mittarimme koostuu yleiskäyttöisistä osista, joilla voi tehdä kaikenlaista kukkien kastelujärjestelmistä ovisummereihin ja CNC-jyrsinten ohjaimiin. Siinä missä kaupasta ostettu lämpömittari pystyy ainoastaan mittaamaan lämpötiloja, tämä laite on muokattavissa vaikkapa soittamaan summeria, kun sauna on valmis tai kun lämpötila lähtee uhkaavaan laskuun.

Esimerkkilaitteistoa voi käyttää muidenkin lämpötilojen mittaukseen pelkän saunan seurannan sijaan. Kaikenlaista elektroniikkaa rakentaessa voi laitteiden mahdollisen ylikuumenemisen selvittää laittamalla lämpötilasensorit laatikon sisään ja katsomalla tulokset ruudulta. Sensorit voi laittaa myös esimerkiksi jääkaappiin, pakastimeen tai kellarikomeroon tarkkailemaan ruokien säilyvyyttä.

DS18B20 -sensori, stereojakaja, breakout-piuha ja lämpömittari koteloituna 3,5 mm liittimeen.

DS18B20 -sensori, stereojakaja, breakout-piuha ja lämpömittari koteloituna 3,5 mm liittimeen.

Komponentit

Itse lämpötilamittaus on toteutettu DS18B20-piirillä. Se kuuluu Dallas Semiconductorin kehittämään 1-Wire tuoteperheeseen, josta löytyy monenlaisia pieniä sensoripiirejä. Tyypillisimpiä ovat lämpötila- ja kosteussensorit, laskurit ja jännitemittarit.

DS18B20-lämpömittari on melko pieni.

DS18B20-lämpömittari on melko pieni.

Sensorit ovat digitaalisia ja kommunikoivat 1-Wire protokollan avulla. Rautasuunnittelua tämä helpottaa huomattavasti, sillä samoihin piuhoihin voi kytkeä useita sensoreita niiden häiritsemättä toisiaan. Niitä voi kytkeä kiinni lennosta, ja koska jokaisella on yksilöllinen sarjanumero, ne eivät sekoitu keskenään.

Digitaalinen kommunikaatio pienillä nopeuksilla antaa myös paljon valinnanvaraa kaapeloinnin suhteen. Tässä artikkelissa käytetään tavallista audiopiuhaa ja 3, 5 mm plugiliittimiä. Etuna tässä on se, että jatkojohtoja saa lähikaupasta.

Toinen hyvä asia on stereojakajien käyttömahdollisuus. Lisäsensorin kytkeminen vaatii normaalin audiojakajan lisäämisen, jonka jälkeen uuden sensorin voi kytkeä kiinni. 1-Wire tuotteiden kanssa käytetään tyypillisesti lankapuhelimista tuttua RJ11-liitintä, mutta sellaisen tekeminen vaatii puristuspihtejä, eikä jakopaloja enää nykyisin löydy kaupoista.

Mikään ei estä käyttämästä vaikka vanhaa verkkopiuhaa ja kolvaamasta liittimiä suoraan kiinni sensoriin. Paras ratkaisu riippuu käyttökohteesta. Valmistajasta riippuen 1-Wiren pitäisi toimia jopa satojen metrien kaapeleilla, mutta itse olen huomannut ongelmia jo kymmenen metrin matkalla.

Seuraava vaihe järjestelmässä on tiedon kerääminen sensoreilta. Se on hoidettu Arduino Ethernet -mikrokontrollerilla, joka kyselee jatkuvasti sensoreilta lämpötilatietoja ja lähettää ne eteenpäin.

Mittalaitteiston pääkomponentit: Arduino-mikrokontrolleri ja lcd-näyttö.

Mittalaitteiston pääkomponentit: Arduino-mikrokontrolleri ja lcd-näyttö.

Arduino-tuoteperhe on hyvin tuotteistettu aloittelijaystävällinen elektroniikan häkkäysalusta. Arduinoilla voi tehdä "ihan mitä tahansa", esimerkiksi tällaisen lämpötilamittarin tai vaikkapa ovisummerin, valo-ohjaimen tai puhuvan leivänpaahtimen. Tarvitaan vain kourallinen kivoja elektroniikan komponentteja, vähän koodaustaitoa ja intoa kokeilla asioita.

Käyttövirran koko järjestelmä saa verkkokaapelia pitkin Power over Ethernetillä. Tässä projektissa se helpottaa johdotusta, koska tarvitsee vetää vain yksi kaapeli Arduinolle. Toisessa päässä on PoE-injektori, joka kytketään normaaliin seinäsähköön ja verkkopiuhoihin. Tehoa saa välitettyä enintään 15W, joka riittää moneen projektiin aivan loistavasti. Kannattaa huomata, että on olemassa myös epästandardeja PoE-ratkaisuja, joita myydään melkein samalla nimellä.

Seurannan helpottamiseksi Arduinoon on lisätty myös lcd-näyttö, joka kertoo senhetkiset lämpötilat. Näyttö itsessään on vakiolaite ja liitetty Sparkfun SerLCD -sovittimen avulla, joka pudottaa vaadittavien ohjaussignaalien määrän viidestä yhteen. Ohjelmoinnin kannalta SerLCD:n käytöllä ei ole merkitystä, mutta se helpottaa johdotusta.

Valmis laitteisto.

Valmis laitteisto.

Lämpötilat koneelle

Kun sensorien data on saatu numeroiksi, se pitää vielä ottaa talteen ja saada näkyviin kännykkään. Kuten Ethernet-termistä saattoi arvata, Arduino lähettää mittaustulokset verkkoon, josta pc-kone (tai vaikka Raspberry Pi) poimii ne talteen.

Laiskana koodarina laitoin Arduinon lähettämään tiedot broadcastina koko verkkoon, jolloin ei ole väliä mitä ip-osoitteita käytetään. Vastaanottopuolelle koodasin muutaman rivin Perl-taian, joka kuuntelee verkkoa ja kirjoittaa tulokset ylös. Sama onnistuisi melkein millä tahansa ohjelmointikielellä.

Tietojen varastointiin ei tarvitse välttämättä koodata omaa softaa, vaan voi käyttää rrdtoolia. Sillä luodaan aluksi halutun kokoinen arkisto tarvittavista mittareista, esimerkiksi katto- ja istumatasojen lämmöt yhden vuorokauden ajalta. Tämän jälkeen tietoja päivitetään sitä mukaa kun niitä syntyy. Rrdtool huolehtii myös aikaleimojen keräämisestä, joten ei haittaa vaikka järjestelmä olisi välillä pois päältä.

Lopuksi koneen tai kännykän ruudulle saadaan piirrettyä lämpötilakäyrä rrdtoolia käyttäen. Kokemukseni mukaan on helpointa tehdä tämän www-palvelimen kautta muutaman rivin php-skriptillä. Tällöin samaa sivua voi käyttää omalta koneelta, läppäriltä, kännykältä tai vaikka kumminkaiman tabletilta. Kun projektin jälkeinen tylsyys yllättää, voi sivulle koodailla lisää animaatioita ja hienouksia.

Tämä artikkeli on osa Skrolli-lehden ja Digitodayn sisältöyhteistyötä. Tutustu Skrolliin osoitteessa skrolli.fi.

Esimerkki saunan lämpötiloista Assembly-tapahtumasta viikonlopun ajalta.

Esimerkki saunan lämpötiloista Assembly-tapahtumasta viikonlopun ajalta.

Laitteiston kytkentäkaavio.

Laitteiston kytkentäkaavio.

Tuoreimmat osastosta