obniz Parts Library

LogttaCO2

GitHub
LogttaCO2
Usable Devices :
obniz_board
m5stickc
obnizble
esp32
esp32gateway
m5stackbasic
ak-030
obnizble_lte
obniz_plc

Logtta_CO2

ユニ電子製のCO2濃度センサー

公式製品紹介ページはこちら

対応モード

  • ビーコンモード
  • 接続可能モード

ビーコンデータ(getData())

  • battery: 電池残量(%)またはUSB電源駆動(254)
  • co2: CO2濃度(ppm)
  • interval: 送信間隔(秒)

接続時のデータ(getDataWait())

  • co2: CO2濃度(ppm)

使用例(ビーコンモード)

// Javascript
const Logtta_CO2 = Obniz.getPartsClass('Logtta_CO2');
await obniz.ble.initWait();
obniz.ble.scan.onfind = async (peripheral) => {
  // 動作モードを取得、Logtta_CO2でないときはnullに
  const mode = Logtta_CO2.getDeviceMode(peripheral);
  if (mode === 'Beacon') {
    // インスタンスを生成
    const device = new Logtta_CO2(peripheral, mode);
    // データを取得し、コンソールに出力
    console.log(device.getData());
  }
};
await obniz.ble.scan.startWait(null, { duplicate: true, duration: null });

使用例(接続可能モード)

接続して1回だけデータ取得&電池残量取得

batteryService.getBatteryLevelWait()を使用して電池残量を取得できます。

値が254の時はUSB電源駆動、それ以外は電池駆動で残量がパーセント単位で返ってきます。

// Javascript
const Logtta_CO2 = Obniz.getPartsClass('Logtta_CO2');
await obniz.ble.initWait();
obniz.ble.scan.onfind = async (peripheral) => {
  // 動作モードを取得、Logtta_CO2でないときはnullに
  const mode = Logtta_CO2.getDeviceMode(peripheral);
  if (mode === 'Connectable') {
    // インスタンスを生成
    const device = new Logtta_CO2(peripheral, mode);
    console.log(`Connecting to Logtta_CO2[${device.address}]`);

    // デバイスに接続
    await device.connectWait();
    console.log(`Connected to Logtta_CO2[${device.address}]`);

    // デバイスからデータ取得
    const data = await device.getDataWait();
    console.log(`Logtta_CO2[${device.address}]: ${data.co2}ppm`);

    if (device.batteryService) {
      // デバイスから電池残量を取得
      const batteryLevel = await device.batteryService.getBatteryLevelWait();
      // 254の時はUSB電源駆動と出力
      if (batteryLevel === 254)
        console.log(`Logtta_CO2[${device.address}]: USB power supply`);
      // 254以外の時は電池残量を出力
      else
        console.log(`Logtta_CO2[${device.address}]: BatteryLevel ${batteryLevel}%`);
    }

    // デバイスから切断
    await device.disconnectWait();
    console.log(`Disconnected from Logtta_CO2[${device.address}]`);
  }
};
await obniz.ble.scan.startWait();

接続して定期的にデータ取得

startNotifyWait()を使用してデバイスからのデータを常に待ち受けることができます。

// Javascript
const Logtta_CO2 = Obniz.getPartsClass('Logtta_CO2');
await obniz.ble.initWait();
obniz.ble.scan.onfind = async (peripheral) => {
  // 動作モードを取得、Logtta_CO2でないときはnullに
  const mode = Logtta_CO2.getDeviceMode(peripheral);
  if (mode === 'Connectable') {
    // インスタンスを生成
    const device = new Logtta_CO2(peripheral, mode);
    console.log(`Connecting to Logtta_CO2[${device.address}]`);

    // デバイスに接続
    await device.connectWait();
    console.log(`Connected Logtta_CO2[${device.address}]`);

    // デバイスからのデータの待ち受けを開始
    device.startNotifyWait((data) => {
      console.log(`Logtta_CO2[${device.address}]: ${data.co2}ppm`);
    });
  }
};
await obniz.ble.scan.startWait();

接続してビーコンモードを有効化

setBeaconModeWait()を使用して定期的にビーコンを発信するモードの有効無効を制御できます。

設定後に切断すると有効になります。

事前にauthPinCodeWait()を使用してデバイスと認証する必要があります。(デフォルト認証コード: 0000)

ビーコンモードを終了する場合、デバイスにあるボタンを2秒以上長押しする操作が必要になります。

// Javascript
const Logtta_CO2 = Obniz.getPartsClass('Logtta_CO2');
await obniz.ble.initWait();
obniz.ble.scan.onfind = async (peripheral) => {
  // 動作モードを取得、Logtta_CO2でないときはnullに
  const mode = Logtta_CO2.getDeviceMode(peripheral);
  if (mode === 'Connectable') {
    // インスタンスを生成
    const device = new Logtta_CO2(peripheral, mode);
    console.log(`Connecting to Logtta_CO2[${device.address}]`);

    // デバイスに接続
    await device.connectWait();
    console.log(`Connected to Logtta_CO2[${device.address}]`);

    // 認証コードを送信
    await device.authPinCodeWait(0000);
    console.log(`Logtta_CO2[${device.address}]: Sent auth pin code`);

    // ビーコンモードに有効化
    await device.setBeaconModeWait(true);
    console.log(`Logtta_CO2[${device.address}]: Enabled beacon mode`);

    // デバイスから切断
    await device.disconnectWait();
    console.log(`Disconnected from Logtta_CO2[${device.address}]`);
  }
};
await obniz.ble.scan.startWait();

Supported from: obniz.js 3.5.0