Last active
February 21, 2018 00:13
-
-
Save TakehikoShimojima/342b7e068a358e811cf3d7265fd00020 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void readCCS811() | |
{ | |
ccs811_wake(); // CCS811をI2C通信可能にする。 | |
CO2 = 0; | |
while (CO2 <= 400 || CO2 > 8192) { // CCS811 Datasheet よりCO2の値は400〜8192ppmとのことで、 | |
// それ以外の範囲の値を読み飛ばす | |
long t = millis(); | |
while (!ccs811.dataAvailable()) { // CCS811のデータが読み出し可能かチェックする。 | |
delay(100); | |
long e = millis() - t; | |
if ((e) > 3000) { | |
// 3秒以上データーが読み出し可能にならなければCCS811をリセットして再起動する | |
Serial.println(e); | |
t = millis(); | |
Serial.println("data unavailable for too long."); | |
ccs811_hw_reset(); | |
CCS811Core::status returnCode = ccs811.begin(); // CCS811を初期化 | |
if (returnCode != CCS811Core::SENSOR_SUCCESS) { // 初期化に失敗したら | |
Serial.print(".begin() returned with an error: "); | |
Serial.println(returnCode, HEX); | |
while (1) { | |
delay(0); // プログラムを停止する | |
} | |
} | |
} | |
} | |
ccs811.readAlgorithmResults(); // CO2とTVOCの値をCSS811から読み出す。 | |
CO2 = ccs811.getCO2(); // CO2の値を取得する。 | |
TVOC = ccs811.getTVOC(); // TVOCの値を取得する。 | |
} | |
ccs811_sleep(); // CCS811のI2C通信を停止する。 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment