Oma sääasema RuuviTagilla ja Grafanalla

Mikä ihmeen RuuviTag?

RuuviTagi on kotelonsa kanssa kooltaan 5.2 cm valkoinen kiekko. Kokonsa ja vesitiiviin IP67-suojauksensa takia sen voi sijoittaa sisätilojen lisäksi ulos, saunaan, jääkaappiin, autoon, tietokonekoteloon, sikarihumidoriin… käytännössä ihan mihin tahansa paitsi vedellä täytettyyn akvaarioon, josta 2.4GHz radioaallot eivät liikoja liikahda.

RuuviTag koteloituna ja ilman — Kuvat https://tag.ruuvi.com/

Sääasemalla liikkeelle

RuuviTagin käyttöönotto sääasemana on helppoa. Tageissa on valmiiksi asennettuna Weather Station laiteohjelmisto, joka mittaa ja näyttää kursailematta tämänhetkisen lämpötilan, suhteellisen ilmankosteuden ja ilmanpaineen.

Pakasta vedetyn RuuviTagin Weather Station.

Ei hankalaa Bluetooth-paritusta

Toisin kuin perinteisen Bluetooth-yhteyden kanssa, RuuviTagin kanssa ei tarvitse muodostaa pariliitosta puhelimen ja tagin välille. Tagiin ei myöskään oteta suoraan yhteyttä Bluetoothilla. Sen sijaan RuuviTag toimii ikään kuin majakkana (beacon) lähettäen jatkuvasti mittauksiaan. Puhelimesi poimii juuri kulloisella ajanhetkellä radioaalloilla kulkevan datan.

Mittausdata URLiin koodattuna

RuuviTagin Weather Station lähettää mittauksensa Eddystone-protokollaa käyttäen. Homman juju piilee Eddystonen URL-kentässä, jossa tagit lähettävät mittausdatansa koodattuna. Nämä URL-osoitteet ovat muotoa https://ruu.vi/#BEwUAMks-

https://ruu.vi/#BEwUAMks- Chromen Developer Toolseilla kurkistellen.

Säätiedot puhelimen näytölle

Android

Android-käyttäjänä RuuviTagin säätietojen katseluun riittää, että napsautat puhelimestasi Bluetoothin päälle ja kurkkaat Nearby-sovellukseen. RuuviTag näkyy sovelluksessa ja klikatessasi sitä saat tuoreimmat mittaustulokset esille. Jos annat Nearby-sovellukselle luvan lähettää ilmoituksia, näet jatkossa tagisi suoraan puhelimesi ilmoituskeskuksesta.

Androidissa RuuviTag näkyy heti, kun laitat Bluetoothin päälle.

iPhone

iPhone-käyttäjä on hieman huonommassa asemassa, sillä iOS ei tue suoraan Weather Stationiin käyttämää Eddystone-protokollaa. Sen sijaan Applen laitteet käyttävät kilpailevaa iBeacon-protokollaa viestintäänsä. RuuviTag itsessään tukee iBeaconia, mutta Weather Station laiteohjelmistosta tuki puuttuu.

RuuviTag näkyy iOS:n nRF Connect ja Physical Web -sovelluksilla.

Virallinen sovellus on tulossa… piakkoin?

Tällä hetkellä kehitteillä on virallinen RuuviTag-sovellus, jonka pitäisi tulla ulos molemmille alustoille lähitulevaisuudessa. Sovelluksen on tarkoitus helpottaa käyttöä varsinkin silloin, kun tageja on enemmän kuin yksi. Sovellus myös näyttäisi tukevan hälytysrajojen asetuksia ja muutenkin näyttää visuaalisesti upealta. Toivottavasti se saadaan molemmille alustoille ulos pian!

@ruuvicom twiittasi RuuviTag mobiilisovelluksesta lokakuussa 2017.

Tarkemmat tiedot talteen ja läppärin näytölle

Niin mukavaa kuin säätietojen katselu puhelimen ruudulta onkin, on yksinkertaisimmassa mallissa myös rajoituksensa.

Raakadataa! Enemmän, paremmin, nopeammin!

RuuviTagin Weather Stationissa on perustilan lisäksi raakadataa lähettävä tila, johon pääsee painamalla tagissa olevaa pientä B-nappia. Takaisin perustilaan pääsee neppaamalla samaa nappia uudelleen.

B-nappia painamalla RuuviTagin Weather Stationin saa raakadatatilaan.

Datan kerääminen talteen

RuuviTagin lähettämän tarkemman datan keräämiseen tarvitset Bluetooth LE:ä tukevan laitteen. Itse olen käyttänyt onnistuneesti Raspberry Pi 3:a ja sen pikkuveljeä Raspberry Pi Zero W:tä.

RuuviCollector

Lisäksi tarvitset sovelluksen, joka osaa kerätä RuuviTagien dataa. Tähän tarkoitukseen soveltuu mainiosti RuuviCollector.

RuuviCollectorin asentaminen

Lataa RuuviCollector projektin GitHub-sivun Releases-välilehdeltä: ruuvi-collector-0.2.jar. Lisäksi tarvitset kopion asetustiedostosta ruuvi-collector.properties.example, joka löytyy projektin repositoryn juuresta. Poista asetustiedoston nimestä .example tallentaessasi sitä itsellesi.

$ sudo apt-get update
$ sudo apt-get install oracle-java8-jdk
# InfluxDB connection
influxUrl=http://localhost:8086
influxDatabase=ruuvi
influxMeasurement=ruuvi_measurements
influxUser=admin
influxPassword=password
$ sudo setcap 'cap_net_raw,cap_net_admin+eip' `which hcitool`
$ sudo setcap 'cap_net_raw,cap_net_admin+eip' `which hcidump`

Yksi, kaksi, aja!

RuuviCollectorin pitäisi nyt olla valmiina palvelukseen. Kokeile käynnistää se komennolla:

$ java -jar ruuvi-collector-0.2.jar
[Unit]
Description=Ruuvi Collector service
[Service]
User=pi
WorkingDirectory=/home/pi/ruuvi/
ExecStart=/usr/bin/java -jar ruuvi-collector-0.2.jar
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
$ sudo systemctl start ruuvi-collector.service
$ sudo systemctl enable ruuvi-collector.service

Näytä sitä käppyrää, Grafana!

Viimeinkin kaiken pitäisi olla valmista datan kurkisteluun.

Lisää data sourceksi InfluxDB tarvittavilla ruuvitiedoilla.

Havaintoja

On ollut mielenkiintoista seurata pienten asioiden vaikutuksia mittauksiin.

https://graphs.2kgwf.fi/dashboard/db/ruuvi?refresh=1m&orgId=1

Mitä seuraavaksi?

  • Viritä pikavilkaisuystävällinen dashboard tuoreimmille säätiedoille
  • Laita järjestelmäsi hälyttämään, kun saunan lämpötila nousee yli 65°C
  • Kokeile muita RuuviTagin projekteja ja firmwareja

Saman sarjan juttuja:

Aiheesta lisää muualla:

--

--

Hybrid worker | Hybridityöläinen

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store