複数のセンサを搭載したsensorTAGを使おう (1) 準備

Bluetoothで通信するセンサ

 テキサス・インスツルメンツ社のローパワーCC2650(Cortex M3) ワイヤレス・マイコンを利用し、10種類のセンサを搭載したデモ・モジュールSensorTagは、TI storeから29ドルで入手できます。Bluetoothは技適をとっているので、日本国内で利用できます。

 搭載しているコイン電池はCR2032です。紹介のWebページでは数年稼働すると書かれています。通信しなくなると数秒で電源をOFFにする設計なので、実験中も電池がなくなってしまう心配はありません。

  iOS / Android アプリが用意されていますが、ここではnode-REDを利用します。

搭載しているセンサ

 SensorTAGは、光、ディジタル・マイク、磁気センサ、湿度、圧力、加速度計、ジャイロスコープ、磁力計、物体の温度、周囲温度が測れるセンサを搭載しています。

  • 赤外線および周囲温度センサ;TMP007
  • 周辺光センサ;OPT3001
  • 湿度センサ;HDC1000
  • 大気圧センサ;BMP280
  • 9 軸モーション・トラッキング・デバイス – 加速度計、ジャイロスコープ、コンパス;MPU-9250
  • 磁気センサ;MK24

電源スイッチ

 sensorTAG本体の横に電源スイッチがあります。3秒押すとON/OFFができます。

node-REDで利用

 sensorTAGは、Bluetoothの通信でセンサの値をJSON形式で送信します。Bluetoothが利用できてJSONデータ形式を扱うには、Raspberry Pi 3のnode-REDを利用するのが手軽です。

 node-REDとは、ノードと呼ばれるプログラム・モジュールを線で結んで処理を記述します。いわゆるプログラム・コードをまったく記述せずにプログラムを完成することも可能です。ノード間は、メッセージが流れるので、必要ならば、そのメッセージに新しいメッセージを追加したり、演算式を追加してデータを加工できます。ここではJavascriptが使えます。メッセージはJSONというテキストで書かれたデータ・フォーマットです。XMLより単純な記述で、プログラムで読み書きするのに適しています。

 2017年5月現在、Raspberry PiのOSであるRASPBIAN JESSIE WITH PIXELは2017-04-10版が最新です。このバージョンのnode-REDは0.15.3と古いので、node-REDユーザ・グループのWebサイトにあるスクリプトを実行して0.16.2へアップグレードします。

 ターミナルから、次のスクリプトを実行します。

  update-nodejs-and-nodered

 node-REDは、メイン・メニューのプログラミングから選ぶだけで動きはじめます。

 プログラミングは、別のPCのWebブラウザから行います。URLに「http://Raspberry PiのIPアドレス:1880/」と入力します。Raspberry PiのIPアドレスは、画面右上の矢印のアイコンの上にマウスを持っていくと表示されます。

sensorTAGのノードを追加する

 Raspberry Piのデフォルトでは、sensorTAGを利用するためのノードというアイコンは登録されていません。画面右上にある三本線のアイコンが設定メニューです。これをマウスでクリックして出てくる(1)プルダウン・メニューの中から、「(2)処理ノードの追加削除」を選びます。

 画面左に処理ノードの追加削除の区画ができます。ここの「現在の処理ノード」のタブにはインストールされているノードが表示されています。もう一つのタブ「処理ノードを追加」を選びます。

 検索欄に「sensorTAG」と入れると複数のノードが出てきます。「node-red-node-sensortag」の右下にあるinstallボタンの「処理ノードを追加」をクリックします。インストールは数分かかります。終了したら「完了」をクリックします。

 左にあるノード一覧には、sensorTagノードがその他の項目に追加されています。

グラフでセンサの値をビジュアルに表示したいのでdashboardノードを追加する

 センサの値は数値だけを表示しても実感がわきません。グラフにするノードdashboardが用意されているので、インストールします。

 sensorTAGノードの追加と同じ手順で作業します。追加するのは、node-red-dashboardです。インストールが完了すると、画面左のノード・パレットには、dashboardという分類にたくさんのビジュアルな入出力ノードが追加されています。

 次回から、これらを利用して、温度や湿度を測定、表示します。