[Archive] HTS221 Temperature and Humidity Sensor
このライブラリはアーカイブされており、サポートされなくなりました。HTS221 温湿度センサーライブラリの最新バージョンは、こちらから入手できます。
HTS221は、周囲の温度と湿度を検出するために使用させるセンサーです。HTS221は、NEQTO Bridgeにすぐに接続できるよに設計されており、主にNEQTO BridgeのI2Cポートを介して通信します。 HTS221は、ハードウェア、ソフトウェア両方の面で操作が非常に簡単です。
neqto.jsライブラリをインポートする方法については、このドキュメントを参照してください。
セットアップ
ハードウェア
NEQTO HTS221モジュールには、NEQTO BridgeのI2Cポートに接続するための5つのピンがあります。正しく差し込むと、モジュールの底部でにある2つのネジ穴が露出し、恒久的に取り付けられます。 それ以外の場合、NEQTO HTS221モジュールは、センサーコネクタを使用して任意のI2Cに接続できます。
ソフトウェア
HTS221センサーと入出力するためには、センサーオブジェクトを作成し、init関数を呼び出してセンサーを初期化する必要があります。 初期化後、getResult関数を使用してセンサーデータを読み取ることができます。
使い方
オブジェクト作成
全てのNEQTO I2Cライブラリは、同じ形式で作成されます。HTS221は、次のパラメータをとります。
i2c
: このセンサーが接続するボード上のI2Cノードを表すI2Cインスタンス。今回はユーザーはノード1から作成されたI2Cインスタンスを渡す必要があります。
init
HTS221は、データを読み取る前に初期化する必要があります。HTS221センサーオブジェクトでinit()
を呼び出すと、読み取りを行う準備が整います。これは一度だけ必要な作業です
返り値: {boolean}
初期化できない場合、init()
関数は false
を返します。 初期化に成功した場合は何も返しません。
getResult
返り値: {object}
センサーデータを含むJavaScriptオブジェクトを次の形式で返します。
{
temp: temperature (Number), // UNIT: Celsius (C), -40 to +120, RESO: 0.1
humi: humidity (Number) // UNIT: Percent (%), 0 to 100, RESO: 0.1
}
サンプルスクリプト
次のスクリプトは、HTS221センサーライブラリをインポートした後のユーザースクリプトの例です。 NEQTO Bridgeのインターフェースをオンにし、HTS221センサーとインターフェースする新しいI2Cデバイスオブジェクトを作成します。 HTS221から1秒間隔で取得し、10回分の測定値の平均値をシリアルコンソールに出力します。
// IMPORTED LIBRARIES
// - HTS221
// Logging setup
log.setLevel(2); //-1:NONE 0:ERROR 1:WARNING 2:DEBUG 3:TRACE
log.printLevel(2); //0:DISABLE 1:LOG 2:CONSOLE 3:BOTH
log.clear();
//Use standard interface of NEQTO IO board
nqEx.enI2CS(true);
nqEx.enI2CL(true);
//I2C Config
var baudrate = 400000;
var i2c = new I2C(1);
i2c.open(baudrate);
var hts = new HTS221(i2c);
var ready = hts.init();
var iteration = 1;
var sums = [0, 0];
var MAX_NUM_ITERATIONS = 10;
var ITERATION_INTERVAL = 1000; // in milliseconds
if (!ready) {
print("UNABLE TO CONNECT TO HTS221");
print("EXITING...");
} else {
var loop = setInterval(function () {
var results = hts.getResult();
sums[0] += results.temp;
sums[1] += results.humi;
if (iteration++ == MAX_NUM_ITERATIONS) {
print("PRINTING AVERAGE TEMPERATURES...");
print((sums[0] / 10).toFixed(2));
print("PRINTING AVERAGE HUMIDITIES...");
print((sums[1] / 10).toFixed(2));
sums = [0, 0];
iteration = 1;
}
}, ITERATION_INTERVAL)
}