SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IoTをかじってみよう

IoTをかじってみよう(2)
~mbedから取得したセンサデータをWebアプリケーションで可視化する

IoTF Quickstartを利用する

 ページの上のほうにある[Quickstart]という白色の文字をクリックしましょう。

 Quickstartでは、ご自分のmbedのデバイスID(確認方法は後述)を登録することでアプリケーションボードのセンサなどの状態データをIoTFへ送信し、IoTFで送信されたデータを時系列のグラフで見ることができます。

 mbedからデータを送るには、既存のプログラムをコンパイルしてmbedへインストールします。

レシピを表示する

 mbedをIoTFへ接続するため、「物理デバイスをお持ちの場合」の下にある[レシピを表示]をクリックします(図11、※2)。

図11:Quickstart
図11:Quickstart

 さまざまなレシピが表示されますが、これから利用するレシピを検索するため、検索バーに"mbed start"を入力して検索してください(図12)。

図12:レシピの検索
図12:レシピの検索

 検索結果のうち、「ARM mbed IoT Starter Kit (Part 1)」を選択します。選択して開いたページ(レシピパレット)には、このレシピを実行するために必要なもの、事前準備、手順が記載されています(図13)。以降の手順を実施するために必要な情報のみを抜粋して紹介していきます。

図13:ARM mbed IoT Starter Kit(Part 1)
図13:ARM mbed IoT Starter Kit(Part 1)

※2

 mbedやアプリケーションボードが手元にない時は、Quickstartの「デバイスがない場合」のレシピを参考にしてシミュレータを使用すれば、すぐにQuickstartの動作を体験することができます。ご興味があれば、ぜひ試用してみてください。

必要な準備

 mbedとアプリケーションボード、それからインターネットに接続できる環境とLANケーブルがあれば準備はOKです。

 レシピには「Ethernet IoT Starter Kit」を利用することが記載されていますが、温度センサ(LM75B)、3軸加速度センサ(MMA7660)、ポテンショメータ、およびジョイスティックは、アプリケーションボードにも搭載されていますので問題ありません。

クライアント側の手順

 ここからは、IoTFへ登録するmbedのデバイスIDの確認と、アプリケーションボードに搭載されたセンサなどのデータをIoTFへ送信する準備を行います。

mbedへの「IBMIoTClientEthernetExample」のインストール

 ブラウザでARM mbed Developer Siteを開き、ログインします(図14)。

図14:ARM mbed Developer Siteへのログイン
図14:ARM mbed Developer Siteへのログイン

 ログインを済ませたらページ右隅の[Compiler]をクリックして、オンラインIDEを開きましょう。

 オンラインIDEのメニューの[インポート]からImport Wizardを実行します。キーワードに"IBMIoTClientEthernetExample"を入力し、[検索]ボタンをクリックしてください(図15)。

図15:インポートするプログラムの検索
図15:インポートするプログラムの検索

 検索結果から、mbed LPC1768用のプログラムを選び、[インポート!]をクリックします(図16)。

図16:IBMIoTClientEthernetExampleのインポート1
図16:IBMIoTClientEthernetExampleのインポート1

 Import Programダイアログボックスで[Import]をクリックします(図17)。

図17:IBMIoTClientEthernetExampleのインポート2
図17:IBMIoTClientEthernetExampleのインポート2

 インポート済みのプログラムを、[コンパイル]をクリックしてコンパイルします(図18)。

図18:IBMIoTClientEthernetExampleのコンパイル
図18:IBMIoTClientEthernetExampleのコンパイル

 成功すると、バイナリファイル「IBMIoTClientEthernetExample_LPC1768.bin」がダウンロードされます。mbedをPCのUSBポートへ接続し、OSからMBEDドライブが認識されたことを確認したうえで、MBEDドライブへバイナリファイルをコピーします(図19)。

図19:IBMIoTClientEthernetExample_LPC1768.binのmbedへのコピー
図19:IBMIoTClientEthernetExample_LPC1768.binのmbedへのコピー

 MBEDドライブをPCから取り出します。

 アプリケーションボードがmbedに接続されていない場合は、mbedとアプリケーションボードを接続してください(PCからmbedを取り外した後に接続しましょう)。

 mbed基板中央のリセット・ボタンを押すと、アプリケーションボードの液晶モニタに、以下の文字列が表示されます(図20)。

IBM IoT Cloud
Scroll with joystick
図20:プログラム実行結果1
図20:プログラム実行結果1

 液晶モニタの右脇にある「Joystick」と書かれた小さな白い突起を上下に傾けると、液晶モニタに表示される文字列が変わっていきます。

 ジョイスティックを2回、下に傾けると、「Device Identity:」という文字列とともに、12文字の数字とアルファベットが表示されます(図21)。これが皆さんのmbedを識別するデバイスIDになります。後ほどデバイスIDをIoTFへ登録しますので、控えておくか表示させておきましょう。

図21:プログラム実行結果2
図21:プログラム実行結果2

 IoTFとmbedがMQTTで通信するためには、mbedがインターネットにつながっている必要があります。

 アプリケーションボードのLANポートにLANケーブルを接続し、もう片方のコネクタをルーターに接続してください。mbedがインターネットへの接続に成功すると、アプリケーションボードのRGB LEDが緑色に光ります(途中段階では赤色や黄色に点滅しますが、正常に接続できたタイミングで緑色になります)。

 MQTTでデータを送るための準備ができたことは、ジョイスティックをスクロールしてMQTTのステータスが「Connected」になっていることで確認できます。もし「Disconnect」のまま状態が変わらない場合は、アプリケーションボードとルーターがLANケーブルで正しく接続されているかを確認してください。ジョイスティックでスクロールすると、IPアドレスの取得状態やデフォルト・ゲートウェイが正しい設定になっているかを確認することができますので、問題判別に役立ちます。

 以上でクライアント側の準備は終了です。

図22:プログラム実行結果3
図22:プログラム実行結果3

Quickstartでmbedが送信したデータを見る

 Quickstartに戻り、デバイスIDを入力してから[進む]をクリックします。

図23:IoTFへのデバイスID入力
図23:IoTFへのデバイスID入力

 しばらくすると、mbedから各種センサなどの状態を示すデータが時系列の折れ線グラフとして表示されます(図24)。

 初期表示では3軸加速度センサ(MMA7660)のAccelXの値が折れ線グラフで表示されますが、他の項目(例では温度)をクリックすると、Tempのグラフに切り替わります(図25)。

 グラフの下部には、statusイベントで送信されたJSONデータのデータ・ポイント(キー)と値、およびタイムスタンプがリアルタイムで表示されます。

 mbedおよびアプリケーションボードを傾けたり、ジョイスティックを上下左右に動かしたりして、値が変わることを確認しましょう。

 また、他のデータ・ポイントのグラフに切り替えて見てみましょう。

図24:Quickstartを体験する1
図24:Quickstartを体験する1
図25:Quickstartを体験する2
図25:Quickstartを体験する2

第2回のまとめ

 第2回では、アプリケーションボードでmbedを拡張し、JSON形式のセンサデータをIoTF QuickstartというMQTTブローカーに送信して、Quickstartからリアルタイムにデータを見るところまでを実践しました。また、MQTTやJSONという技術がどのような特徴を持ち、IoTのどこに用いられているのかを学びました。

 今回は1行もコードを書かずにIoTの世界を体験しましたが、次回以降はアプリケーション開発も行いながら、簡単なIoTサービスを試作する予定です。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
IoTをかじってみよう連載記事一覧

もっと読む

この記事の著者

山崎 まゆみ(日本アイ・ビー・エム株式会社)(ヤマザキ マユミ)

人・技術・本が好きなITエンジニア。公共・金融機関のアプリケーション開発/インフラ構築経験を持つ。プロジェクト現場で日々奮闘中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/9094 2015/12/07 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー