2016年8月11日木曜日

Johnny-Fiveでマイコン制御26 - マルチ(温度・湿度・気圧・高度)センサー

○Multiオブジェクトを作成する
 マルチ・ブレイクアウト・モジュール(温度や湿度、高度または圧力など、2つ以上の環境センサーを含むモジュール)の測定値を取得するには、Multiオブジェクトを使います。Multiオブジェクトは、物理的なボード上に接続されているマルチ・ブレイクアウト・モジュールを表すオブジェクトです。Multiオブジェクトを作成するには、Multiクラスのコンストラクタを使います。「controller」プロパティにマルチ・ブレイクアウト・モジュールのデバイス名を指定します。
new five.Multi ({
  controller: デバイス名
});

 Johnny-Fiveのサポートするブレイクアウト・モジュール(I2Cインターフェイス)は、次のとおりです。
BMP180(AdafruitSparkFunGrove)
BMP280(Adafruit)
BME280(AdafruitSparkfun)
MPL115A2(AdafruitSparkFun)
MPL3115A2 (AdafruitSparkFun)
MS5611
HTU21D(AdafruitSparkfun)
TH02(Grove)
SI7020(Tessel Climate)
DHT11 (I2Cバックパックを介して接続)

マルチ・ブレイクアウト・モジュールのデータを取得する
 マルチ・ブレイクアウト・モジュールのデータを取得するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。
on("イベント", ハンドラ)

 Multiオブジェクトで発生するイベントは、次のとおりです。
イベント
説明
change
温度センサーの入力データが変化したときに発生する
data
25ミリ秒間隔で発生する

データは、次のプロパティでオブジェクトを参照して、各オブジェクトのプロパティで参照することができます。
BMP180BMP280BME280MPL3115A2MS5611
プロパティ
説明
altimeter
Altimeterオブジェクト
barometer
Barometerオブジェクト
thermometer
Thermometerオブジェクト

MPL115A2
プロパティ
説明
barometer
Barometerオブジェクト
thermometer
Thermometerオブジェクト

HTU21DSI7020TH02DHT11
プロパティ
説明
hygrometer
Hygrometerオブジェクト
thermometer
Thermometerオブジェクト

 各オブジェクトのデータを参照するためのプロパティは、次のとおりです。

Thermometerオブジェクトのプロパティ
プロパティ
説明
celsiusC
摂氏温度
fahrenheitF
華氏温度
kelvinK
ケルビン温度

Hygrometerオブジェクトのプロパティ
プロパティ
説明
relativeHumidityRH
湿度()

Barometerオブジェクトのプロパティ
プロパティ
説明
pressure
気圧値

Altimeterオブジェクトのプロパティ
プロパティ
説明
feet
フィートでの高度値
meters
メートルでの高度値

 たとえば、BMP180の温度、気圧、高度を取得するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

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

  // データを取得
  multi.on("change", function() {
    console.log("thermometer");
    console.log("  celsius      : ", this.thermometer.celsius);
    console.log("  fahrenheit   : ", this.thermometer.fahrenheit);
    console.log("  kelvin       : ", this.thermometer.kelvin);
    console.log("--------------------------------------");

    console.log("barometer");
    console.log("  pressure     : ", this.barometer.pressure);
    console.log("--------------------------------------");

    console.log("altimeter");
    console.log("  feet         : ", this.altimeter.feet);
    console.log("  meters       : ", this.altimeter.meters);
    console.log("--------------------------------------");
  });
});


・配線図

0 件のコメント:

コメントを投稿