2016年8月11日木曜日

Johnny-Fiveでマイコン制御25 - 湿度・気圧・高度センサー

○Hygrometerオブジェクトを作成する
 湿度センサーの測定値を取得するには、Hygrometerオブジェクトを使います。Hygrometerオブジェクトは、物理的なボード上に接続されている湿度センサーを表すオブジェクトです。Hygrometerオブジェクトを作成するには、Hygrometerクラスのコンストラクタを使います。「controller」プロパティにI2Cインターフェイスの湿度センサーのデバイス名を指定します。
new five.Hygrometer({
  controller: デバイス名
});

 Johnny-Fiveのサポートする湿度センサー(I2Cインターフェイス)は、次のとおりです。

BME280(AdafruitSparkfun)
HTU21D(AdafruitSparkfun)
TH02(Grove)
SI7020(Tessel Climate)
SHT31D(Adafruit)
DHT11 (I2Cバックパックを介して接続)

湿度センサーのデータを取得する
 湿度センサーのデータを取得するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。
on("イベント", ハンドラ)

 Hygrometerオブジェクトで発生するイベントは、次のとおりです。
イベント
説明
change
温度センサーの入力データが変化したときに発生する
data
25ミリ秒(freq」プロパティで変更可)間隔で発生する

取得データ(湿度())は「relativeHumidity(または「RH)プロパティで参照することができます。
たとえば、HTU21Dの湿度データを「data」イベントで取得し、湿度()を表示するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  //HTU21Dを使用するためのHygrometerオブジェクトを作成
  var hygrometer = new five.Hygrometer({
                       controller: "HTU21D"
                     });
  // データを取得
  hygrometer.on("data", function() {
    // 湿度を表示
    console.log(this.relativeHumidity + " %");
  });
});

・配線図

湿度センサー・データの読み取り間隔を設定する
 湿度センサーのデータの読み取り間隔(data」イベントの間隔)を設定するには、オプションの「freq」プロパティを使います。値にはミリ秒単位の時間を指定します。たとえば、1000ミリ秒間隔でデータを読み取るには、次のように書きます。
  // データの取得間隔を1000ミリ秒に設定
  var hygrometer = new five.Hygrometer({
                     controller: "HTU21D",
                     freq: 1000
                   });

○Barometerオブジェクトを作成する
 気圧センサーの測定値を取得するには、Barometerオブジェクトを使います。Barometerオブジェクトは、物理的なボード上に接続されている気圧センサーを表すオブジェクトです。Barometerオブジェクトを作成するには、Barometerクラスのコンストラクタを使います。「controller」プロパティにI2Cインターフェイスの気圧センサーのデバイス名を指定します。
new five.Barometer ({
  controller: デバイス名
});

 Johnny-Fiveのサポートする気圧センサー(I2Cインターフェイス)は、次のとおりです。

BMP180(AdafruitSparkFunGrove)
BMP280(Adafruit)
BME280(AdafruitSparkfun)
MPL115A2(AdafruitSparkFun)
MPL3115A2 (AdafruitSparkFun)
MS5611

 なお、I2Cデバイスのアドレスは、「address」プロパティで指定することができます。
new five.Barometer ({
  controller: デバイス名,
  address:I2Cアドレス
});

 また、BMP180は「mode」プロパティでオーバーサンプリングレート(サンプルの量)を指定できます。
new five.Barometer({
  controller: "BMP180"
  mode: 2
  });

mode」プロパティの設定値は、次のとおりです。
mode
説明
0
超低消費電力の設定、1サンプル、4.5ミリ秒3uA
1
標準電源設定、2サンプル、7.5ミリ秒5uA
2
高解像度、4サンプル、13.5ミリ秒7uA
3(規定値)
超高分解能、12サンプル、25.5ミリ秒12uA

気圧センサーのデータを取得する
 気圧センサーのデータを取得するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。
on("イベント", ハンドラ)

 Barometerオブジェクトで発生するイベントは、次のとおりです。
イベント
説明
change
温度センサーの入力データが変化したときに発生する
data
25ミリ秒(freq」プロパティで変更可)間隔で発生する

取得データ(気圧)は、「pressure」プロパティで参照することができます。たとえば、BMP180の気圧データを「data」イベントで取得して表示するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // BMP180を使用するためのBarometerオブジェクトを作成
  var barometer = new five.Barometer({
                    controller: "BMP180"
                  });
  // データ取得
  barometer.on("data", function() {
    console.log("barometer");
    console.log("  pressure     : ", this.pressure);
    console.log("--------------------------------------");
  });
});

・配線図

気圧センサー・データの読み取り間隔を設定する
 気圧センサーのデータの読み取り間隔(data」イベントの間隔)を設定するには、オプションの「freq」プロパティを使います。値にはミリ秒単位の時間を指定します。たとえば、1000ミリ秒間隔でデータを読み取るには、次のように書きます。
  var barometer = new five.Barometer({
                    controller: "BMP180",
                    freq: 1000
                  });


○Altimeterオブジェクトを作成する
 高度センサーの測定値を取得するには、Altimeterオブジェクトを使います。Altimeterオブジェクトは、物理的なボード上に接続されている高度センサーを表すオブジェクトです。Altimeterオブジェクトを作成するには、Altimeterクラスのコンストラクタを使います。「controller」プロパティにI2Cインターフェイスの高度センサーのデバイス名を指定します。
new five.Altimeter ({
  controller: デバイス名
});

 Johnny-Fiveのサポートする高度センサー(I2Cインターフェイス)は、次のとおりです。
BMP180(AdafruitSparkFunGrove)
BMP280(Adafruit)
BME280(AdafruitSparkfun)
MPL3115A2 (AdafruitSparkFun)
MS5611

 なお、I2Cデバイスのアドレスは、「address」プロパティで指定することができます。
new five.Altimeter ({
  controller: デバイス名,
  address:I2Cアドレス
});

高度センサーのデータを取得する
 高度センサーのデータを取得するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。
on("イベント", ハンドラ)

 Altimeterオブジェクトで発生するイベントは、次のとおりです。
イベント
説明
change
温度センサーの入力データが変化したときに発生する
data
25ミリ秒(freq」プロパティで変更可)間隔で発生する

取得データは、次のプロパティで参照することができます。

プロパティ
説明
feet
フィートでの高度値
meters
メートルでの高度値

たとえば、BM180の高度値(現在の標高を基準にした高度)を取得し、フィートとメートルで表示するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // BMP180を使用するためのAltimeterオブジェクトを作成
  var alt = new five.Altimeter({
              controller: "BMP180"
           });

  // データ取得
  alt.on("change", function() {
    console.log("altimeter");
    console.log("  feet         : ", this.feet);
    console.log("  meters       : ", this.meters);
    console.log("--------------------------------------");
  });
});

・配線図

基準の標高を設定する
基準の標高を設定するには、「elevation」プロパティを使います。値に基準となる標高(メートル)を指定します。
  // 基準標高を12メートルに設定
  var alt = new five.Altimeter({
              controller: "BMP180"
              elevation: 12
            });
elevation」プロパティを省略した場合(規定)、現在の標高を基準にした高度を取得します。

高度センサー・データの読み取り間隔を設定する
 高度センサーのデータの読み取り間隔(data」イベントの間隔)を設定するには、オプションの「freq」プロパティを使います。値にはミリ秒単位の時間を指定します。たとえば、1000ミリ秒間隔でデータを読み取るには、次のように書きます。
  var alt = new five.Altimeter({
              controller: "BMP180",
              freq: 1000
            });


0 件のコメント:

コメントを投稿