■ CCS811 CO2・VOCセンサー を制御する ■

 CCS811は、VOC(揮発性有機化合物)を検出するMOX(金属酸化物)ガス・センサーで、測定したVOCの値からセンサー内部のマイコンが等価のCO2濃度(eCO2)を計算して出力します。
 
 CCS811 CO2・VOCセンサーを使用して、室内の空気品質を監視するために、CO2(二酸化炭素)とVOC(揮発性有機化合物)を検出する試みです。
 室内の空気の汚れ、例えば、燃焼を使う暖房や調理器具、家具や壁・床の接着剤や塗料からの臭気、プリンタやコピー機などからのオゾン、人やペットからの微粒子やタバコの煙などの測定が考えられます
 測定されるのはTVOC(総VOC)値なので、汚染物質の種類までは判別できないようですが、何らかの影響で室内の空気が汚れてきているのを検出できるセンサーです。



・主に屋内の空気品質の監視に使用可能。 
・ホストの介入なしで、eCO2濃度とTVOC値の表示を提供。
・標準のI2Cデジタル・インターフェイス。
 (I2Cアドレスは、ADDRピンにより2つから選択可能)
・最適化された低消費電力モード。
 (センサーのモード設定により、測定の間隔を選択して
    平均消費電力を削減)
・信頼性の高い設計。(5年以上の寿命)
・コンパクトな 2.7mm x 4.0mm x 1.1mm LGAパッケージ。


 AliExpressで入手したモジュール (CJMCU-811)


データシートを日本語訳しましたが、amsのデータシートの末尾に、このデータシートを複製・改変・翻訳して著作権所有者の書面による事前の同意なしに使用することはできないという残念な記載がありますので、使用方法の概略をオリジナルに書き起こしてあります。
図や挿絵なども原本の物をコピーできないので、詳しくは英文データシートを参照して下さい。
このページの記載も、メーカーからクレームが付いた場合は消去しますのでご了承下さい。


開発元のCCS(ケンブリッジCMOSセンサー)の資料

日本語訳 屋内の空気品質を測定監視するためにVOCセンサーを使用する
英文原本 CCS811_Doc_cWhitePaper-Monitoring-Air-Quality_WP000103_v1..pdf




ブロック図

ピンの割り当て
 
ピン番号 ピン名 説       明
1 I2C_ADDR I2Cのアドレスを選択できる、一つのアドレス選択ピン。
I2C_ADDRがローの時、7ビットのI2Cアドレスは16進数の5Aです。
I2C_ADDRがハイの時、7ビットのI2Cアドレスは16進数の5Bです。
2 nRESET nRESETはアクティブ・ロー入力で、内部でVDDにプルアップされています。
nRESETはオプションですが、誤ったノイズによるリセットを避けるために、
4.7kΩのプルアップまたはデカップリングが必要な場合があります。
このピンは、リセットの間に内部的にローになります。
3 nINT nINTはアクティブ・ローのオプション出力です。
測定の終了を示すため、または、設定されたしきい値を超えたことを示す
ために、CCS811によってローにされます。
4 PWM ヒーター・ドライバーのPWM出力。 (オプション)
ピン4とピン5は一緒に接続する必要があります。
5 ADC ヒーターの電流検出。 (オプション)
ピン4とピン5は一緒に接続する必要があります。
6 VDD 電源電圧。
7 nWAKE nWAKEはアクティブ・ローの入力で、I2C通信処理の前にホストによって有効
(ローレベル)にされ、通信の間はローレベルに保持される必要があります。
8 AUX 外付けのNTC抵抗で周囲温度を検出するために使用するオプションのピン。
使用しない場合は接続しないでください。
9 I2C_SDA SDAピンは、I2Cのデータ用に使用されます。
抵抗でVDDにプルアップする必要があります。
10 I2C_SCL SCLピンは、I2Cのクロックに使用されます。
抵抗でVDDにプルアップする必要があります。
EP GND 露出パッド。 グランドに接続します。


絶対最大定格
 
   絶対最大定格に記載されている値を超えるストレスは、デバイスに永久的な損傷を与える可能性があります。
   これらはストレス評価のみです。
   「電気的特性」の下に示されているそれらの条件を超えるデバイスの機能動作は意味を持ちません。
   長時間、絶対最大定格条件に曝されると、デバイスの信頼性に影響を与える可能性があります。

 
記号 パラメータ 最小 最大 単位 備    考
電気的パラメータ
VDD (1) 電源電圧 1.8 (2) 3.6 V  
IDD 平均消費電流   30 mA モード1において
IDDPeak  ピーク消費電流   54 mA モード2 および モード3において
P 消費電力   60 mW モード1において
静電気放電
ESDHBM 人体モデル ±2000 V  
ESDCDM 帯電されたデバイスモデル ±1000 V  
環境条件
TAMB (3) 動作周囲温度 -40 85  
TSTRG 保存温度 -40 125  
RHNC 相対湿度 (結露しないこと) 10 95  
LT (4) 製品寿命 > 5 モード1において
MSL 耐湿レベル 1   最大で無制限。室内放置寿命
 
    注.

     (1). 電源電圧VDDはブート中にサンプリングされるため、動作中は変化してはいけません。
     (2). 最小の電源電圧V
DDは1.8Vであり、信頼できる装置作動のために、この値を下回ってはいけません。
     (3). 屋内の空気品質性能がこの範囲でどのように変化しても、センサーはこの範囲で電気的に動作可能です。
     (4). モード2およびモード3では、CCS811の製品寿命が長くなります。



電気的特性
 
パラメータ 条    件 最小 標準 (6) 最大 単位
電源電圧(VDD(1) , (2)   1.8   3.3 V
電源電流(IDD(3) 1.8Vでの測定時   26   mA
1.8Vでのパルス周期の平均上 (4)   0.7   mA
1.8Vでのスリープモード   19   μA
消費電力 VDD = 1.8Vでの休止モード0   0.034   mW
VDD = 1.8Vでのモード1とモード4   46   mW
VDD = 1.8Vでのモード2   7   mW
VDD = 1.8Vでのモード3   1.2   mW
ロジック [ハイ] 入力 (5) nRESET , nWAKE , I2C_ADDR VDD - 0.6   VDD V
ロジック [ロー] 入力 (5) nRESET , nWAKE , I2C_ADDR 0   0.6 V
ロジック [ハイ] 出力 nINT VDD - 0.7     V
ロジック [ロー] 出力 nINT     0.6 V
アナログ入力 AUX 0   VDD V
 
   注.
    (1). 電源電圧VDDはブート中にサンプリングされるため、動作中は変化してはいけません。
    (2). パワーオン時の最大VDD傾斜時間は3msです。
    (3). 電源電圧(VDD)が1.8Vの標準値。
    (4). 60秒に1回のセンサー測定の平均電源電流(IDD)。
    (5). SDAおよびSCLタイミングについては、NXP I2Cバス仕様およびユーザマニュアルUM10204を
       参照してください。
    (6). 25℃で50%RHでの標準値。



タイミング特性
 
パラメータ 条    件 最小 標準 最大 単位
tAWAKE (1) nWAKEが有効にされた後、動作状態になるまでの時間 50     μs
tDWAKE nWAKEが無効にされなければならない最小の時間 20     μs
tRESET nRESETのローパルスの最小の時間 20     μs
tSTART (2) 電源投入後にアクティブになるまでの時間   18 20 ms
nRESET後にアクティブになるまでの時間   1 2 ms
fI2C I2Cバスのサポートされる周波数 10 100 400 kHz
 
    注.
     (1). nWAKEは、I2C通信処理の前、および、通信処理の間に有効にされる必要があります。
     (2). 新しいアプリケーションのダウンロード後、最初のリセットからは最大70ms。



CCS811の動作説明
 
動作モード
 
 CCS811には、以下の5つの動作モードがあります。
  •モード0 : 休止。低電流モード。
  •モード1 : 毎秒IAQを測定。定電力モード。
  •モード2 : 10秒ごとにIAQを測定。パルス加熱モード。
  •モード3 : 60秒ごとにIAQを測定。低電力パルス加熱モード。
  •モード4 : 250msごとにセンサーを測定。定電力モード。
 
 モード1、2、3では、すべての採取に対して等価のCO2濃度(ppm)とTVOC濃度(ppb)が計算されます。
  •モード1は、ガスの存在に最も速く反応しますが、より高い動作電流です。
  •モード3は、ガスの存在によりゆっくりと反応しますが、平均動作電流は最も低いです。
 
 センサーの動作モードをより低いサンプル・レート(例えば、モード1からモード3)に変更する場合、
 新しいモードを有効にする前に、少なくとも10分間はモード0(休止)にしなければなりません。
 
 センサーの動作モードをより高いサンプル・レート(例えば、モード3からモード1)に変更する場合、
 新しいモードを有効にする前に待つ必要はありません。
 
 モード4は、外部のホスト・システムが生(未加工)データを使用して演算を行うシステムに対して、
 250msごとに新しいサンプル・データが提供されます。
 
 注: モードのタイミングは、CCS811の内部クロック精度に準ずるため、標準で2%の許容値になります。

 
nWAKEピンの制御
 
 [nWAKE]を操作するには、2つの方法があります:
 
  1.ロー(GNDレベル)に接続して、常に動作状態にする。
  2.GPIOを使用して、動作状態と静止状態をホストから制御する。
 
 ・[nWAKE]信号がローにされると、CCS811の内蔵プロセッサが稼働し、I2Cインターフェイスで要求を
  処理します。
 ・このピンがハイの時には、CCS811はスリープ・モードに入り、すべてのI2C要求は無視されます。
 ・したがって、この信号をGPIOで制御する事により、CCS811の消費電力を効率的に制御できます。
 ・消費電力が重要になるアプリケーションでは、[nWAKE]を永続的にローへ引き下げることは
  推薦されません。

 
使用の初期 (バーン・イン / 通電ならし)
 
 CCS811の性能は、抵抗値と感度に関して、使用の初期の間に変移します。
 
 抵抗の変移は、作動の最初の48時間の間に、最も大きくなります。
 
 センサーの性能が安定していることを保証するために、選択された動作モードでCCS811を48時間
 稼働させることをお勧めします。
 (少なくとも24時間連続して動作することを推奨)

 
調整期間 (ラン・イン/ならし運転)
 
 初期期間(バーン・イン)が完了した後の調整期間とは、VOCを測定する前に良好なセンサーの
 安定性を得るために必要な時間です。
 
 もし、センサーが休止状態のまま8時間以上経過しているならば、最初に20分以上動作させてから
 VOCの測定を始めることを推奨します。
 
 センサーをモード1~4で設定するためにMEAS_MODEに書き込みを行った後に、CCS811を20分間
 動作させてから、正確な読み取り値が生成されます。
 (これは、サポートされているすべての動作モードにあてはまります)
 
 より短い調整期間でCCS811を使用することができますが、これはセンサーが暖められるまで、
 VOCの測定値が不正確になることになります。
 
 調整期間は、BASELINEレジスターに書き込む前に、観察する必要があります。

 
eCO2
 
 CCS811の等価CO2(eCO2)の出力範囲は、400ppm~8192ppmです。
 この範囲外の値は切り捨てられます。

TVOC
 
 CCS811の総揮発性有機化合物(TVOC)の出力範囲は、0ppb~1187ppbです。
 この範囲外の値は切り捨てられます。
 
 これは、屋内環境における標準的なTVOCの混合物に対して較正されます。
 環境中の化合物の比率が著しく異なる場合、いくらかのVOC化合物がセンサーに少なからず
 影響を及ぼして、TVOCの出力はその影響を受けます。


屋内の空気品質の悪化による影響
 
空気品質
の表示
VOC濃度 VOCの影響 屋外濃度以上の
CO2濃度
CO2の影響
悪 い 高 い 長期間身をさらす:
発ガン性、肺、肝臓、
腎臓および中枢神経系
の損傷。
眼、鼻、のど、皮膚刺激、
頭痛、吐き気、めまい
> 2500 ppm 健康への影響
(吐き気、頭痛、めまい)

成績・生産性と判断力
の著しい障害。
中程度 中 位 目、鼻、のど、皮膚刺激
頭痛、吐き気、めまい
1500~2500 ppm 判断力の低下、疲労、
集中力の低下。
良 い 低 い 影響なし < 1500 ppm 健康や判断力に影響を
与えない
 
 これらの値は、あなたの周囲環境における屋内空気の質の問題を示し、エンドユーザーに適切な
 措置を取るよう警告します。

 センサー使用の初期段階では、抵抗値と感度の点でCCS811の性能が変化するため、
 初期のIAQ表示は正確ではない可能性があります。
 使用の最初の24時間は、エンドユーザがIAQ表示を慎重に扱うか、無視することを推奨します。

 
温度と湿度の補正
 
 VOCを監視しながらCCS811によって生成されたTVOCおよびeCO2の値は、湿度および温度変化の
 影響を受けます。
 
 外部のセンサーが利用できる場合、この情報をCCS811に書き込むことで、温度や湿度の変化に
 よるガスの読み取り値を補正することができます。
 ENV_DATA(環境パラメータ)レジスター(0x05)を参照してください。

 
測定完了と、しきい値による割り込み
 
 各測定サイクル(250ms、1秒、10秒、60秒)の終わりにフラグがセットされ、オプションで割り込み
 ピン[nINT]が出力されます。
 MEAS_MODE(測定モード)レジスター(0x01)を参照してください。
 
 ユーザーは、eCO2の値がしきい値レジスターによって設定された範囲を超えた場合にのみ[nINT]を
 出力するように選択することができます。
 しきい値レジスター(0x10)を参照してください。

 
オプションのNTC(負の熱係数サーミスタ)回路(AUX)
 
 CCS811は、負の熱係数(NTC)サーミスタを接続するための外部インタフェースをサポートしている
 ため、費用効果と電力効率の良い周囲温度の計算手段を利用できます。
 
 このサーミスタにより、アプリケーションはCCS811が置かれている場所の周囲温度を測定することが
 できます。
 この温度は、CCS811のMOXガス・センサーの環境補償のために使用することができます。
 NTCの構成の詳細については、アプリケーション・ノートams AN000372を参照してください。
 
 外部の温度センサーが利用できない場合に、オプションのNTC回路を使用して周囲温度を測定し、
 この情報をCCS811に書き込むことができます。
 NTCレジスターは、ホストシステムが周囲温度を計算できるように、RNTCとRREFに応じた電圧(mV)を
 供給します。
 計算された温度は、温度変化によるガスの変化を補償するために、CCS811に書き込むことが
 できます。

 
自動ベースライン補正
 
 感応層の抵抗RSは、センサーの出力です。
 しかし、金属酸化物センサーは絶対的な読み取り値を与えません。
 抵抗RSは、センサーごとに(製造のばらつき)、また活用事例ごとに、そして時間とともに変化します。
 この問題を軽減するために、センサーの出力は正規化されます: RSはRAよって分けられます。
 RAの値は、ベースラインとして知られています。
 RAは1回の校正では決定できません; それはソフトウェアで実行中に維持されます。
 このプロセスをベースライン補正といいます。
 
 CCS811は、すべての動作モードで、TVOCおよびeCO2の濃度を計算するために使用される
 ベースラインを継続的に監視します。
 VOCの濃度レベルは一般的な屋内環境で変化するため、自動ベースライン補正が実施される
 推奨の最小時間は24時間です。
 CCS811は、自動的に最低レベルを24時間追跡します。
 
 補正は小規模であることが予想されますが、時折観測されることがあります。


手動のベースライン補正
 
 CCS811は、ガスの濃度の相対的な変化のみを検出します。
 これは、現在の周囲の空気がきれいな空気とみなすために、センサーがガスの濃度を最初に
 計算することを意味します。
 センサーがきれいな空気にさらされると自動的に変化します。
 空気の質が悪くなると、より正確なIAQの読みが得られます。
 長期間にわたり汚染された環境で稼働している時の、起動時の精度の問題を回避するために、
 CCS811はベース・ラインの保存と復元をサポートしています。

 調整期間後にきれいな空気に遭遇した場合には、この特別なセンサーのためのきれいな空気の
 ベース・ラインは、アプリケーションによって保存する必要があります。
 CCS811は、不揮発性メモリー(NVM)にベース・ライン値を保持する方法がないため、ホストの
 システムによって保存され、定期的にCCS811のレジスターに復元される必要があります。
 きれいな空気のベース・ラインは、センサー毎に一意的であると考えられ、一定ではないため、
 センサーの経年変化に伴って変化します。
 ベース・ラインは24時間ごとにアプリケーションによって定期的に保存することをお勧めします。
 これにより、次回のセンサーの電源投入時に、最も正確なベース・ラインをCCS811に書き込む
 ことができます。

 CCS811には、BASELINEレジスターを使用して、以前に保存したベースライン値を手動で保存
 および復元するメカニズムがあります。
 ベースラインを保存する正しい時間は、ユーザーの使用ケースとアプリケーションによって異なります。
 
 ○24時間以上電源が供給されているデバイスの場合:
  ・最初の500時間には、24~48時間ごとにベースラインを保存します。
  ・最初の500時間の後、5~7日ごとにベースラインを保存します。
 
 ○電源供給が24時間未満のデバイスの場合:
  ・デバイスが動作している場合は、電源を切る前にベースラインを保存します。
  ・複数の動作モードが使われるならば、それぞれに別々のベースラインを保存する必要があります。
  ・ベースラインは、抵抗が安定している場合(通常は20~30分)にのみ復元する必要があります。
  ・低電力モードから高電力モードに切り替える(アイドル状態で少なくとも10分を費やさずに)場合、
   ベースラインを復元する前にセンサーの抵抗を再調整する必要があります。
 
 注:
  1. センサーが安定する前にBASELINEレジスターに値が書き込まれると、TVOCとeCO2
    計算結果が予想より高くなることがあります。
  2. ベースラインは調整期間後に書かれなければなりません。
 
 CCS811の使用に関する追加情報については、アプリケーションノートams AN00036:
 CCS811 Programming and Interfacing Guide を参照してください。



 CCS811における、I2Cバス通信の解説
 
I2Cインターフェイス
 
 ・I2Cの通信処理は、以下の通信処理の種類で説明するように、レジスター・アドレスの選択(書き込み)
  に続くデータが必要です。
 ・各レジスターの場所(アドレス)は、1バイトまたは複数バイトに対応しています。
 ・1つの通信手順で、複数バイトの読み出し または 書き込みが、同じ場所へ または 同じ場所から
  行われます。 (アドレスは増加しません)
 ・したがって、データ・シートでは、レジスターをメール・ボックスと呼ぶことがあります。
 
 ・CCS811と通信するI2Cバスのデータ転送速度は、最大400KHzです。
 ・CCS811のI2Cスレーブ・アドレスは、[I2C_ADDR]ピンにより、2つのアドレスから選択することが
  できます。
 ・[I2C_ADDR]ピンがローの場合、I2Cアドレスは、7ビットで5Ah、8ビットでB4hです。
 ・[I2C_ADDR]ピンがハイの場合、I2Cアドレスは、7ビットで5Bh、8ビットでB6hです。
[I2C_ADDR] ピン MSB  LSB
b7 b6 b5 b4 b3 b2 b1 b0
ロー 1 0 1 1 0 1 0 R/W
ハイ 1 0 1 1 0 1 1 R/W
 
 ・最下位(LSB)のbit0は、マスターとスレーブのデータ方向を表します。
 ・[0]の場合はホストからCCS811にデータを書き込み、[1]の場合はホストがCCS811から
  データを読み出します。
 ・I2Cバス通信の基本的な説明は、別途専門書等を参照して下さい。

 
I2Cレジスターの書き込み
 
 ○「レジスター・アドレス」のみを書き込む場合。
    スタート・コンディション[START]の後に、スレーブアドレス+[書込]と、書き込むレジスターの
   アドレス(メール・ボックス)が続きます。
START スレーブ
アドレス+[W]
B4h or B6h
ACK レジスターの
アドレス
00h~FFh
ACK STOP

 ○レジスターに値(データ)を書き込む場合。
  スタート・コンディション[START]の後に、スレーブアドレス+[書込]と、書き込むレジスターの
   アドレス(メール・ボックス)と、書き込むデータが続きます。
START スレーブ
アドレス+[W]
B4h or B6h
ACK レジスターの
アドレス
00h~FFh
ACK 書き込むデータ
xxh
ACK STOP

 ○複数の値(データ)を書き込む場合。
  ストップ・コンディション[STOP]を発行するまで、指定したレジスター・アドレス(メール・ボックス)に
   対するデータの書き込みが続きます。
START スレーブ
アドレス+[W]
B4h or B6h
ACK レジスターの
アドレス
00h~FFh
ACK 書き込むデータ

xxh
ACK 書き込むデータ

xxh
ACK
 
書き込むデータ
・・・
xxh
ACK 書き込むデータ

xxh
ACK STOP





 ※注意
  ・レジスターアドレス(メール・ボックス)の番地は、自動的に増加(アドレス+1)されません。
  ・同一アドレス(メール・ボックス)内のレジスター列に、順番にデータが書き込まれて行きます。

  ・各メールボックスには規定のサイズがあり、その数を超えて書き込みを行ってはいけません。

 
I2Cレジスターの読み出し
 
 ○レジスターの選択と読み出し。
  ・スタート・コンディション[START]の後に、スレーブアドレス+[書込]と、読み出すレジスターの
   アドレス(メール・ボックス)を送ります。
  ・ストップ・コンディション[STOP]でバスをアイドル状態にしてから、新たにスタート・コンディション
   [START]の後に、スレーブアドレス+[読み出し]を送ると、CCS811の内部レジスターの値(データ)
   が送られてきます。

START スレーブ
アドレス+[W]
B4h or B6h
ACK レジスターの
アドレス
00h~FFh
ACK STOP

START スレーブ
アドレス+[R]
B5h or B7h
ACK レジスターの
データ
xxh
NACK STOP

 ○1つの通信処理でレジスターを選択して値(データ)を読み出す場合。
  スタート・コンディション[START]の後に、スレーブアドレス+[書込]と、読み出すレジスターの
  アドレス(メール・ボックス)が続き、リピート・スタート・コンディション[REPEAT・START]の後に、
  スレーブアドレス+[読み出し]を送ると、CCS811の内部レジスターの値(データ)が送られてきます。
 
START スレーブ
アドレス+[W]
B4h or B6h
ACK レジスターの
アドレス
00h~FFh
ACK REPEAT
START
スレーブ
アドレス+[R]
B5h or B7h
ACK
 
レジスターの
データ
xxh
NACK STOP





 ○複数の値(データ)を読み出す場合。
  ・スタート・コンディション[START]の後に、スレーブアドレス+[書込]と、読み出すレジスターの
   アドレス(メール・ボックス)が続き、リピート・スタート・コンディション[REPEAT・START]の後に、
   スレーブアドレス+[読み出し]を送ると、CCS811の内部レジスターの値(データ)が送られてきます。
  ・ホストがデータの読み出しを終了する場合は、最後のデータ・バイトの後に、[NACK]とストップ・
   コンディション[STOP]を発行します。
 
START スレーブ
アドレス+[W]
B4h or B6h
ACK レジスターの
アドレス
00h~FFh
ACK REPEAT
START
スレーブ
アドレス+[R]
B5h or B7h
ACK レジスター
データ
ACK
 
レジスター
データ
ACK レジスター
データ
・・・
ACK レジスター
データ
NACK STOP





 ※注意
  ・レジスターアドレス(メール・ボックス)の番地は、自動的に増加(アドレス+1)されません。
  ・同一アドレス(メール・ボックス)内のレジスター列に格納されているデータが、順番に読み出され
   て行きます。

  ・各メールボックスには規定のサイズがあり、その数を超えて読み出しを行ってはいけません。

 
レジスターの説明
 
 各レジスターの設定と動作の詳細は、下記のマニュアルを参照して下さい。









CCS811のCO2・VOC 測定テスト・プログラム (+BME280版)
 
回 路
 
 ・制御のテストは、当ページに掲載の
   AVR & BASCOM-AVR トレーニング・ボード
   「Amazon」と「AliExpress」で購入した、CJMCU-811と
   GY-BME280モジュールを接続しています。
 
 ・もちろん、各種のAVRやポートを選択することもできます。
 ・他店のモジュールを使用する場合は、ピン配置の違いに注意してください。
 ・BME280モジュールを搭載せずに、CCS811モジュールだけでも動作します。
  (温度と湿度によるCO2値の補正はできなくなります)
 
 ・モジュール基板上にSCLとSDAのプルアップ抵抗器の搭載がない場合は、ブレット・ボード上で
  それぞれを4.7KΩ~10KΩの抵抗器で3.3V電源にプルアップして下さい。

 ※注意
  SCLとSDAおよびnINTを接続したポートは、絶対にプログラムで出力の[H]レベル(+5V)に
  設定しないで下さい。 (デバッグ中の設定ミスに注意すること)
  AVR内蔵プルアップの設定も不可です。
  CCS811およびBME280が故障する可能性があります。


回 路 図  PDF版 ATB_CCS811_Cir.pdf
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

 
プログラム
 
 ・テストプログラムでは、CCS811モジュールの接続状態を確認した後、BME280モジュールの接続を
  確認します。
 ・BME280モジュールを接続していない場合は、「# BME280 Not found!」のメッセージが表示された後、
  3秒後にCCS811の測定のみが開始されます。
 ・BME280からの温度・湿度・気圧値は、1秒ごとに更新されます。
 ・CCS811からのCO2・VOC値は、下記のサンプリング間隔の設定により、1秒・10秒・60秒間隔で
  更新されます。
 ・CO2・VOCの値は、初めて電源を入れた時、および電源を再投入した時に、CCS811のマニュアルに
  記載の「ならし期間」が必要になります。
 ・サンプリング間隔を変更した場合も、同じサンプリング間隔で20分間動作させた後に、正確な
  測定値が得られます。

プログラム  テキスト形式 ソースファイル  AVRtraining_CCS811_002.TXT
 BASCOM-AVR用 ソースファイル
 (BASCOM-AVR(製品版)が必要です)
 AVRtraining_CCS811_002.bas
 HEXファイル  AVRtraining_CCS811_002.hex
  
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)

 
操作方法
 
 ・[SW1]で、LCDの下段右側の表示項目が変わります。
 
表示順 LCDの表示 下段右側の表示内容
TVOC(総VOC)値
気圧値
サンプリング間隔
(1秒・10秒・60秒)

 ・サンプリング間隔が表示されている画面で[SW2]を押すと、サンプリング間隔が変更できます。








CCS811のCO2・VOC 測定テスト・プログラム (+SHT31版)
 
回 路
 
 ・制御のテストは、当ページに掲載の
   AVR & BASCOM-AVR トレーニング・ボード
   「Amazon」と「AliExpress」で購入した、CJMCU-811と
   SHT31モジュールを接続しています。
 
 ・もちろん、各種のAVRやポートを選択することもできます。
 ・他店のモジュールを使用する場合は、ピン配置の違いに注意してください。
 ・SHT31モジュールを搭載せずに、CCS811モジュールだけでも動作します。
  (温度と湿度によるCO2値の補正はできなくなります)
 
 ・モジュール基板上にSCLとSDAのプルアップ抵抗器の搭載がない場合は、ブレット・ボード上で
  それぞれを4.7KΩ~10KΩの抵抗器で3.3V電源にプルアップして下さい。

 ※注意
  SCLとSDAおよびnINTを接続したポートは、絶対にプログラムで出力の[H]レベル(+5V)に
  設定しないで下さい。 (デバッグ中の設定ミスに注意すること)
  AVR内蔵プルアップの設定も不可です。
  CCS811およびSHT31が故障する可能性があります。


回 路 図  PDF版 ATB_CCS811_SHT31_Cir.pdf
 
   注意! この図面を使用した、いかなる損害にも責任を負いません。

 
プログラム
 
 ・テストプログラムでは、CCS811モジュールの接続状態を確認した後、SHT31モジュールの接続を
  確認します。
 ・SHT31モジュールを接続していない場合は、「# SHT31 Not found!」のメッセージが表示された後、
  3秒後にCCS811の測定のみが開始されます。
 ・SHT31からの温度・湿度値は、1秒ごとに更新されます。
 ・CCS811からのCO2・VOC値は、下記のサンプリング間隔の設定により、1秒・10秒・60秒間隔で
  更新されます。
 ・CO2・VOCの値は、初めて電源を入れた時、および電源を再投入した時に、CCS811のマニュアルに
  記載の「ならし期間」が必要になります。
 ・サンプリング間隔を変更した場合も、同じサンプリング間隔で20分間動作させた後に、正確な
  測定値が得られます。

プログラム  テキスト形式 ソースファイル  AVRtraining_CCS811_301.TXT
 BASCOM-AVR用 ソースファイル
 (BASCOM (DEMO版)でもコンパイルできます
 AVRtraining_CCS811_301.bas
 HEXファイル  AVRtraining_CCS811_301.hex
  
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。
       (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)

 
操作方法
 
 ・[SW1]で、LCDの下段右側の表示項目が変わります。
 
表示順 LCDの表示 下段右側の表示内容
TVOC(総VOC)値
サンプリング間隔
(1秒・10秒・60秒)

 ・サンプリング間隔が表示されている画面で[SW2]を押すと、サンプリング間隔が変更できます。





   電子工作の部屋 Top へ 前のページへ戻る