obniz Parts Library

CCS811

GitHub
CCS811
Usable Devices :
obniz_board
Found at :
秋月電子通商
www.sparkfun.com

CCS811

総揮発性有機化合物 (TVOC)と、それから計算される二酸化炭素相当物(eCO2)を計測するセンサーです。

  • 総揮発性有機化合物 (TVOC): 0〜1,187 ppb
  • eCO2: 400〜8,192 ppm

また、このセンサーは利用前にエージングが必要となります。詳しくはメーカーのデータシートをご覧ください。

wired(obniz, { vcc, gnd, do, ao});

name type required default description
vcc number(obniz Board io) no   モジュールの場合はvcc, 単体の場合はHに接続します。別の電源につないでいる場合は指定する必要はありません。
gnd number(obniz Board io) no   モジュールの場合はgnd, 単体の場合はHに接続します。別の電源につないでいる場合は指定する必要はありません。
scl number(obniz Board io) no   I2Cのsclに接続したobnizのIOです
sda number(obniz Board io) no   I2Cのsdaに接続したobnizのIOです
nwak number(obniz Board io) no   センサーのnwak端子に接続したobnizのIOです
nwak number(obniz Board io) no   センサーのnwak端子に接続したobnizのIOです
nrst number(obniz Board io) no   センサーのnrst端子に接続したobnizのIOです
nrst number(obniz Board io) no   センサーのnrst端子に接続したobnizのIOです
nint number(obniz Board io) no   センサーのnint端子に接続したobnizのIOです
i2c number(obniz Board io) no   初期化されたobnizのi2cオブジェクトです。i2cが存在する場合scl,sdaよりも優先的に利用されます。
add number(obniz Board io) no   アドレス指定端子です。接続したobnizのIOを指定します。指定することでaddressが0x5aならfalseにそれ以外ならtrueとして出力されます。
address number(obniz Board io) no 0x5b アドレス指定です。0x5bか0x5aのどちらかでそれ以外ではエラーとなります。
// Javascript Example
var sensor = obniz.wired("CCS811", {vcc:0, gnd:1, scl:2, sda:3});
await sensor.configWait();
obniz.repeat(async()=>{
  if (await sensor.checkAvailableDataWait()) {
    var data = await sensor.readAlgorithmResultsWait();
    console.log(data.TCOC, data.eCO2);
  }
})

[await] configWait()

センサーに対して初期設定を行います。1秒ごとに計測するモードでスタートします。

// Javascript Example
var sensor = obniz.wired("CCS811", {vcc:0, gnd:1, scl:2, sda:3});
await sensor.configWait();
obniz.repeat(async()=>{
  if (await sensor.checkAvailableDataWait()) {
    var data = await sensor.readAlgorithmResultsWait();
    console.log(data.TCOC, data.eCO2);
  }
})

[await] setDriveModeWait(mode)

DRIVE_MODEを指定します。configWait()により標準で1が指定されています。

  • 0: Idle
  • 1: 1秒ごと
  • 2: 10秒ごと
  • 3: 60秒ごと
  • 4: raw mode
// Javascript Example
var sensor = obniz.wired("CCS811", {vcc:0, gnd:1, scl:2, sda:3});
await sensor.configWait();
obniz.repeat(async()=>{
  if (await sensor.checkAvailableDataWait()) {
    var data = await sensor.readAlgorithmResultsWait();
    console.log(data.TCOC, data.eCO2);
  }
})

[await] setEnvironmentalDataWait(humidity, temperature)

センサー校正用の温度と湿度を送ります。
近くに設置した温湿度センサーの値をセットすることでより高い精度で計測することができます。

// Javascript Example
var sensor = obniz.wired("CCS811", {vcc:0, gnd:1, scl:2, sda:3});
await sensor.configWait();
await sensor.setEnvironmentalDataWait(50.1, 25.5); // 50.1%, 25.5 degree
obniz.repeat(async()=>{
  if (await sensor.checkAvailableDataWait()) {
    var data = await sensor.readAlgorithmResultsWait();
    console.log(data.TCOC, data.eCO2);
  }
})

[await] checkAvailableDataWait()

計測値が利用できるかどうかを確認します。

// Javascript Example
var sensor = obniz.wired("CCS811", {vcc:0, gnd:1, scl:2, sda:3});
await sensor.configWait();
obniz.repeat(async()=>{
  if (await sensor.checkAvailableDataWait()) {
    var data = await sensor.readAlgorithmResultsWait();
    console.log(data.TCOC, data.eCO2);
  }
})

[await] readAlgorithmResultsWait()

TVOCとeCO2を取得します。

// Javascript Example
var sensor = obniz.wired("CCS811", {vcc:0, gnd:1, scl:2, sda:3});
await sensor.configWait();
obniz.repeat(async()=>{
  if (await sensor.checkAvailableDataWait()) {
    var data = await sensor.readAlgorithmResultsWait();
    console.log(data.TCOC, data.eCO2);
  }
})

wake()

nwakを利用しsleepから復帰させます。nwakがwiredで指定されている必要があります。

// Javascript Example
var sensor = obniz.wired("CCS811", {vcc:0, gnd:1, scl:2, sda:3});
sensor.sleep();
await obniz.wait(1000);
sensor.wake();

sleep()

nwakを利用しスリープさせます。nwakがwiredで指定されている必要があります。

// Javascript Example
var sensor = obniz.wired("CCS811", {vcc:0, gnd:1, scl:2, sda:3});
sensor.sleep();

[await] hwResetWait()

リセットピンを使いセンサーをリセットします。nrstがwiredで指定されている必要があります。

// Javascript Example
var sensor = obniz.wired("CCS811", {vcc:0, gnd:1, scl:2, sda:3});
await sensor.configWait();
var data = await sensor.readAlgorithmResultsWait();
console.log(data.TCOC, data.eCO2);
await sensor.hwResetWait();
await sensor.configWait();
data = await sensor.readAlgorithmResultsWait();
console.log(data.TCOC, data.eCO2);

Supported from: obniz.js 3.7.0