使い方や活用事例などを紹介します。
IoTデータ可視化サービス「Ambient」
IoTシステムでやりたいことは、部屋やオフィスの温度、湿度を調べて部屋を快適に制御する、河川の水位を調べて異常があれば通知する、工場設備の稼働状態を調べて稼働率を改善するなど、多岐にわたりますが、基本になるのはセンサを使ってモノの状態を調べ、そのデータをクラウドに送信して蓄積し、可視化する「モノの状態の見える化」です。
ラズベリーパイやM5Stackといったボードコンピュータやマイコン端末の登場により、IoT端末は安価に簡単に作れるようになりました。IoT用のクラウドサービスは、多岐にわたるニーズに応えられるように、非常に豊富なサービス群を提供する「リッチ系」のサービスと、IoTデータの受信、蓄積、可視化に特化した「シンプル系」のサービスがあります。リッチ系のサービスはサービスが豊富なだけに、全体構造や使い方を理解するのに少し時間がかかります。一方、シンプル系のサービスはサービスが単純で、すぐに使い始められるのが特徴です。
Ambientはシンプル系のIoTクラウドサービスの一つで、非常に簡単なステップでデータを送信し、可視化できます。では、具体的な使い方を見ていきましょう。
Ambientの使い方
ユーザー登録
Ambientを使うには、まずユーザー登録をします。Ambientサイト( https://ambidata.io )にいき、右上の「ユーザー登録」をクリックして、ユーザー登録ページにメールアドレスとAmbientにログインするときのパスワードを入力します。登録したアドレスに確認メールが送られてくるので、メール中のURLをクリックすると登録が完了します。
チャネルを作る
Ambientはデータを「チャネル」という単位で管理しています。データを送るときは「チャネル」を指定して送ります。Ambientにログインするとチャネル一覧ページが表示されますが、ユーザー登録直後は自分のチャネルがないので、「チャネルを作る」というボタンだけが表示されています。「チャネルを作る」ボタンをクリックすると、チャネルが作られ、「チャネルID」「リードキー」「ライトキー」などが表示されます。この「チャネルID」と「ライトキー」がデータを送るときのIDとパスワードに相当します。Ambient側でデータを受け取る準備はこれだけです。
Ambientにデータを送る
では早速Ambientにセンサデータを送ってみましょう。ラズベリーパイやArduinoでプログラム開発できるM5Stackなどのマイコン端末からAmbientにデータが送れます。ここではM5StickCを使い、温度、湿度、気圧データを送る例を紹介します。
IoT端末としてはM5StickCと温度、湿度、気圧センサが搭載された環境センサユニットを使います。
環境センサユニットはGroveという規格のケーブルでM5StickCと接続します。
Arduinoプログラムは次のようになります。
13、14行目のssidとpasswordをお使いのWi-Fiルータのssidとpasswordに書き換え、16、17行目のchannelIdとwriteKeyを先程Ambientサイトで作ったチャネルのものに書き換えて、プログラムをコンパイルし、M5StickCにアップロードして動かすと、60秒ごとに温度、湿度、気圧を測定し、その値をAmbientに送信します。
Ambientにデータを送るためのライブラリが用意されています。初期設定部分ではbeginというライブラリ関数を使い、setup関数の中でチャネルIDとライトキーを指定してAmbientの管理データを初期設定します。
ambient.begin(channelId, writeKey, &client); // channeIdとwriteKeyを指定してAmbientを初期設定する
データを送るためには、setという関数でデータをセットし、sendという関数で送信をおこないます。
ambient.set(1, tmp); // データ1に気温データをセット ambient.set(2, hum); // データ2に湿度データをセット ambient.set(3, pressure); // データ3に気圧データをセット ambient.send(); // データをAmbientに送信
送ったデータをAmbientで見る
IoT端末から送ったデータをAmbientで確認してみます。チャネル一覧ページのチャネル名の部分をクリックすると、次のように温度、湿度、気圧データが折れ線グラフで表示されるのが確認できます。
Ambient側はチャネルを作っただけで、あとはIoT端末からチャネルを指定してデータを送れば、図のように送ったデータがグラフ化されて表示されます。データが到着するとグラフは自動的に更新されます。
Ambientに送ったデータはクラウド上に蓄積されるので、インターネットに接続できる場所であれば、どこからでもデータを見ることができます。また、スマートフォンのブラウザからもデータが見られます。
Ambientは、このように初期設定をしなくてもデータをグラフ化して表示してくれますが、さらに表示のカスタマイズをすることで、データやグラフに名前をつけたり、複数のデータを一つのグラフに表示したり、グラフの大きさやレイアウトを変えたりして表示できます。
Ambientライブラリ
Arduinoプログラムの例ではAmbientにデータを送るためのライブラリが用意されていました。AmbientではArduinoの他にmbed、Python / Micro Python、node.js、Node-REDからデータを送るライブラリが提供されていて、さまざまなIoT端末から簡単にデータを送れるようになっています。
また、Pythonとnode.jsでデータを読み出すライブラリが提供されていて、Ambientに送って蓄積したデータをPythonやnode.jsプログラムで読み出して分析処理ができるようになっています。
Ambientの活用事例
Ambientは大学や高専での演習などの教育分野や、製造業、農業など広い分野で活用されています。ここでは製造業で鋼材の焼き入れを専門におこなっている田神工作所様の事例を紹介します。
田神工作所様では、鋼材に高周波焼き入れという金属処理をおこなっています。その際の炉内の温度と製品の温度を自作されたIoT端末で測定し、測定データをAmbientに送信して管理しています。従来は記録紙に温度を印字していましたが、紙やインクの補充が必要だったり、紙詰まりが起きたりと、不便でした。温度の記録作業をIoT化したことで、紙などのメンテ作業がなくなり、効率化できたそうです。今ではこの時系列の温度データを製品の品質データとして使っているとのことでした。
Ambientのこれから
AmbientはIoTデータの受信、蓄積、可視化という基本的な機能に特化し、簡単に使い始められるサービスを提供しています。今後もこの特徴を失わないよう、基本部分はシンプルさを維持する予定です。実際にモノの状態を取得して、見える化をおこなうと、さまざまな現場の課題が見えてきます。この中から共通的な課題を解決するような機能、例えば異常データを検知して通知するような機能を付加していきたいと計画しています。
Ambientサイトでは、M5Stackやラズベリーパイとさまざまなセンサを使った簡単なIoTシステムのサンプルを回路図やプログラムのソースコードもつけて情報提供しています。今後もこのサンプル提供は強化していきたいと考えています。
Ambientは簡単に使い始められるサービスです。ぜひM5StackやラズベリーパイなどでIoT端末を作り、現場の課題解決を始めてみてはいかがでしょうか?
(下島健彦、アンビエントデーター株式会社)
(編集部より)ツクレルのIoT教材「IoTプレミアムコース」でもAmbientの使い方について触れています。そちらの教材も是非ご覧ください。
著者:下島健彦さん
NECで組込みシステム向けリアルタイムOSの開発、米スタンフォード大学コンピュータサイエンス学科への留学を経て、インターネットプロバイダ事業BIGLOBEの立ち上げからメディア事業を担当。2015年ごろから個人でIoTデーター可視化サービス「Ambient」を開発、運営。現在は、アンビエントデーター株式会社代表取締役。日本のM5Stackユーザーグループ主催。趣味は茶の湯とパスタ料理。
著書「IoT開発スタートブック」「みんなのM5Stack入門」