arrow-right hamburger logo-mark social-facebook social-github social-twitter
2017.03.21

Nefryで取得したセンサーデータをAmbientで簡単にグラフ化しよう!

わみ

Nefry

こんにちは、外部ライターのわみ(@wamisnet)です。愛知県でネットワークの勉強をしている学生です。2014年ごろから電子工作を始め、今回紹介するFRISKサイズのIoT向けデバイス「Nefry(ねふりー)」を自作しました。

IoTといえば、データを取ることはもちろんですが、データの蓄積や分析が大切です。

今回は、簡単にデータを蓄積・グラフ化してくれる「Ambient」 というサービスを使って、Nefryで取得したセンサーのデータをグラフ化する方法を紹介します。

Nefryとは

「Nefry(ねふりー)」は手軽にIoTに挑戦できるFRISKサイズのデバイスです。

公式サイトから、詳細なドキュメントや制作例を確認できます。

Wi-Fiを初期搭載

Nefryは、Wi-Fiモジュールの ESP-WROOM-02を初期搭載 しています。簡単にインターネットに接続できるので、接続に時間をとられることなくあなたのアイデア実現に集中できます。

スタンドアロンで動かせる

スマートフォンで使うようなモバイルバッテリー(5V)から給電できます。モバイルバッテリー+Nefryの2つで動作する ので、場所を選ばずに使うことができる優れものです!

外部サービス連携が簡単

NefryはGroveセンサの規格に対応しています。専用のソケットを使い、はんだづけ不要で楽しめます。また、リアルタイム通信を簡単に実現できる「Milkcocoa」や、様々なWebサービス同士を連携できる「IFTTT」などとも組み合わせることもできます。

実際に使ってみた例は以下をご覧ください。

Webサービス同士を連携できる「IFTTT」と自作IoTデバイスを繋いで生活を便利にしてみた

【大島薫×IoT】浮気男に社会的制裁を加えるマシーンを作ってみた

Nefryの購入はこちら!

Ambientとは

Ambient(アンビエント)は、センサーデータを蓄積・グラフ化してくれるIoTに特化したクラウドサービス です。

Ambientから発行される「チャネルID」「ライトキー」の たった2つの情報をプログラムに書き込むだけ で、いとも簡単にセンサーデータをグラフ化することができます!

このようなグラフを公開したり、簡単にカスタマイズしたりすることができるので、オススメのサービスです。

Ambient公式サイト

つくってみよう!

Nefryで取得したデータをグラフ化するために、今回は以下の4ステップを試します。

筆者の開発環境は以下です。

事前準備

開発を始める前に、NefryとAmbientのセットアップをします。

NefryのWi-Fi接続とAmbientのユーザ登録が完了している方は、Ambientにチャネルを作成から開始してください。

Nefryのセットアップ

PCやスマートフォンから、Wi-FiのSSIDが Nefry-XXXX(変更した場合はその名前)になっているものを探し、接続します。

接続できるとこのようなページが表示されます。表示されない場合は http://192.168.4.1 に接続してみてください。

このトップページでNefryに関するいろいろな設定ができます。まずは「Setup WiFi」をクリックして、Wi-Fiの設定をします。

Setup WiFiのページはこのようになっています。 接続したいWi-Fiを選び、パスワードがある場合は入力をします。入力が完了したら「Save」をクリックしてください。設定が保存され、Nefryが再起動します。

おまけですが、Nefry library 2.3.0 以降であると5つまでのWi-Fiを記憶することができ、自動的に最も強いWi-Fiに自動接続する機能を搭載しています。Nefryを持っていて ライブラリが古い場合は、更新することをオススメします

その他のセットアップや使い方の詳細は以下の記事をご覧ください。

自作したオリジナルIoTデバイス「Nefry」とインターネットを繋いでみた

Ambientの登録

グラフ化に必要な情報を取得するために、まずAmbientに登録します。

Ambient公式サイト の「ユーザー登録」から登録を進めます。

メールアドレス認証が必要なので、各自アカウントを用意してください。

Ambientにチャネルを作成

Ambientでは チャネルという単位で送信するデーターを管理・グラフ化する ため、まずはチャネルを作成します。「チャネルを作る」ボタンから作成します。

チャネルが無事に作成されると、先ほどのページに情報が追加されています。「チャネルID」と「ライトキー」をあとで使うので控えておきましょう。

プログラムの書き込み

今回はNefryについている アナログ入力 を使ってみます。アナログ入力を扱えるセンサであればどのようなセンサでも大丈夫ですが、この記事ではGroveの明るさセンサを扱います。

全体のプログラムはこちら。

<script src="https://gist-it.appspot.com/github/Nefry-Community/ProgramMaster/blob/gh-pages/Nefry/Ambient/Analog/Analog.ino"></script>

Nefryにプログラムを書き込む方法は2つあります。

Arduino IDEを使う

プログラムを編集したい場合などは、Arduino IDEに上のプログラムを貼り、編集します。

Arduino IDEでコンパイルしたプログラムはNefryトップページの「Upload Sketch」からアップロードすることができます。

Arduino IDEにNefryの設定を追加する方法は、以下の記事を確認してください。

さくっと生活を便利にする!FRISKサイズのIoT向けデバイス「Nefry」を使ってみよう【環境構築編】

プログラムをダウンロードして使う

もっと簡単に試したい場合、トップページから「Web Sketch Download」のページに移動し以下を入力してください。

Nefry Platformというサイトでは他にも様々なプログラムを公開していますので、ぜひご覧ください。

NefryとAmbientの連携

プログラムが書き込めたら、Ambientの情報をNefryに登録します。

トップページから「Setup Module」をクリックしページを移動します。 設定項目の中から「WriteKey」と「ChannelID」となっている欄を見つけ、そこにAmbientで取得したライトキーとチャネルIDをそれぞれ入力します。

Saveをクリックすると、Nefryが再起動してAmbientにデータを送るようになります。

これで準備は完了です!

Ambientでグラフを見てみよう

Nefryに接続した明るさセンサーの値のグラフです!

右側がAmbientのグラフ、左側がNefryの取得したアナログ値をWebConsoleで表示しています。 Ambient×Nefry.git Nefryにライトを当てたり遠ざけたりすると、わりと リアルタイムにどんどんグラフが生成されていく のが分かります。こちらのページでで今回撮影したグラフをみることができます。

Ambientでは グラフの自動スケールやグラフの公開機能、画像の添付 など、今回紹介しきれないほど様々な機能が作成されています。

詳しくはAmbientの公式サイトやドキュメントを確認してください。

まとめ

今回は、なんとハードウエアもWeb側も コードを一切書かずにグラフ化する ことができました。

紹介したのは折れ線グラフですが、棒グラフや散布図などもお手軽にグラフを作れるAmbientWebへの接続が簡単なNefry でぜひぜひ遊んでみてください。

Ambientを運営されている下島さん、記事にさせていただく許可を頂きありがとうございました。