sakura.io体験ハンズオン@岡山に参加してきた

2017年9月2日、岡山のKLabさんで開催されたsakura.io体験ハンズオンに参加してきました。 f:id:tech-kazuhisa:20170903093912j:plain ▲利用したキット一式

ハードウェアシロートの私は今回のハンズオンに参加する前にIoTについて次のように考えていました。

  • IoTというからにはあらゆるものがInternetに繋がるはず
  • 電源が確保できない場合はバッテリーで動作させる必要がある
    • と、なると消費電力の点からRaspberryPiよりArduinoがよいかな?
  • ネットワーク接続はワイヤレスLANかLTE
    • でもArduinoで使うC言語でネットワークの制御までできるのかな?

参加してみて感じたのはsakura.ioは一番面倒なネットワークの制御をいい感じに面倒見てくれるソリューションだという事です。

f:id:tech-kazuhisa:20170903094526j:plain ▲温度センサーを接続

右の緑色のカタマリは3層構造になっています。一番下はArduino、一番上はLTE通信モジュール、真ん中はその2つを接続するための「シールド」という基盤です。

ArduinoArduino IDEも初体験だったのですが、Arduino IDEがとても良くできていて、ネットワーク経由から必要なライブラリを簡単にダウンロードすることができます。おまけにライブラリに付属するサンプルコードを実行するだけで、ある程度動くものができてしまいます。ライブラリの仕事はセンサーを制御することなので、できることが非常に限られているわけです。 今回も温度センサーとsakura.ioのライブラリをダウンロードして付属するサンプルコードを実行するだけで、センサーが取得した値をsakura.ioまで届けることができました。

f:id:tech-kazuhisa:20170903095337j:plain ▲sakura.ioのWeb画面でセンサーが取得した値をJSONで表示しているところ

ここからがsakura.ioの面白いところで取得したデータをどのように利用するか、あらゆる手順が用意されています。今回は特定の企業のWebサービスではなく汎用的に利用できるWebsocketを利用して、現在の温度をツイートするところまで作成しました。

Arduino + さくらLTE
↓
(LTE)
↓
sakura.io(Webサービス)
↓
(Websocket)
↓
さくらクラウドに立てたNode-RED
↓
Twitterでツイート

Node-REDを利用することでWebsocketで受け取ったJSONを加工してTwitterでつぶやくところまでをほぼノンコーディングで実現することができました。

質疑応答で感じたWeb系とモノづくり系の違い

最後の質疑応答で活発な意見が交わされました。 特にシビアなコンディションで利用された場合の課金、時刻の誤差、通信のリトライ等、Webに関わっている人間からすると、正直細かすぎるのでは?という内容が多かったです。 しかし、どんなサービスでも長期間利用していると想定外の事態が発生するものです。ハードウェアは容易にアップデート出来ないため、事前に様々な事態を想定して利用する必要があるのだと感じました。

まとめ

個人的な印象ですがarduino側ではセンサーから取得した値を投げることに徹して、sakura.ioから先で様々な集計・分析を行うのがうまい使い方かなと感じました。極端なシビアコンディションでの利用を考えなければWeb系エンジニアだけでも一気通貫でIoTを実現できる世界がやってきた!と実感できました。