
■ CCS811 CO2・VOCセンサー 空気品質モニターの製作 ■ |
CCS811、VOC(揮発性有機化合物)を検出するMOX(金属酸化物)ガス・センサーで測定したVOCの値から等価のCO2濃度(eCO2)を計算して、測定値の表示と空気品質に対する警報を発生する装置です。
室内の空気の汚れ、例えば、燃焼を使う暖房や調理器具、家具や壁・床の接着剤や塗料からの臭気、プリンタやコピー機などからのオゾン、人やペットからの微粒子やタバコの煙などの測定が考えられます
測定されるのはTVOC(総VOC)値なので、汚染物質の種類までは判別できないようですが、何らかの影響で室内の空気が汚れてきているのを検出できるモニターです。
○VOC(揮発性有機化合物)を検出して、等価のCO2濃度(eCO2)値をLCDに表示。
○8時間+16時間(合計24時間)に渡るCO2濃度の推移を簡易グラフでLCDに表示。
○上位と下位の2段階のアラーム・レベル(しきい値)を設定し、LEDの点灯とブザーによる
警報を発生。
○高精度の温度・湿度センサー(SHT31)により、温度と湿度値をLCDに表示。
○バッテリーの電圧表示と、電圧低下をLEDとブザー音で通知。
回路の解説 |
1.電源回路
・乾電池を3本使用した4.5V、または充電池を4本使用した4.8Vで動作します。
・CCS811は、起動時から電源電圧を変動させてはいけない仕様なので、C-MOSの
三端子レギュレータにより3.3Vの定電圧で動作させています。
・I2C通信の電圧レベルを合わせるため、温度・湿度センサー(SHT31)とLCD表示器も、
同じく3.3Vで動作させます。
・バッテリー電圧を10分間隔で測定し、電圧が3.9V未満になった場合にLCDへの
低電圧表示とLEDの点灯およびブザー音を発生させます。
・電圧測定用の基準電圧はAVR内蔵の2.56Vを使用するため、バッテリー電圧を抵抗器で
1/2に分圧します。
・分圧による無駄な消費電流を抑えるため、A/D変換の動作時のみマイコンのポートにより
GND側を[L]レベルに落とします。
注.充電池の場合は電圧低下と共に出力電流が急激に低下して、CCS811の測定やLEDの
点灯により極端な電圧低下が起き、AVRマイコンのリセットが作動する場合があります。
この場合は、装置が再起動を繰り返す状態になります。
2.AVRとクロック
・AVRマイコンはATtiny861A-PUを使用し、クロックは内蔵RC発振器の1MHzで動作します。
・電源投入後、初期設定を行った後はAVRがスリープ状態になり消費電力を抑えます。
・CCS811は動作モードの設定により測定間隔を1秒、10秒、60秒から選択が可能で、
測定完了と共に[nINT]ピンから通知の信号を発生することができます。
・この信号の割り込みによりAVRマイコンをスリープ状態から起動して、VOC値と等価CO2
濃度を表示します。
・AVRマイコン内蔵のウォッチドッグ・タイマーで8.192秒間隔の割り込みを発生させ、
温度・湿度値、並びにバッテリー電圧の測定と表示を行い、併せてグラフ用のデータ収集と
アラームの発生制御を行います。
・これにより、単3アルカリ乾電池3本で約2ヶ月間動作する計算です。 (現在、経過観察中)
(アラームが多発してLEDの点灯やブザーの発音が多い場合は、電池寿命が短くなります)
3.スイッチ
・表示等の機能的な操作には、押しボタン式のスイッチを2個使用します。
・スイッチを押すとAVRマイコンのピン変化割り込みが発生して、スリープ状態から起動後に
各スイッチの処理を行います。
4.温度・湿度センサー
・SensirionのSHT31センサー(中国通販(AliExpress)のモジュール)を使用します。
・温度と湿度の計測値をデジタル・データで取得でき、ノイズの影響を抑えた精度の良い測定が
可能です。
・多少高価ですが、老舗Sensirionの信頼性のある高精度のセンサーです。
・I2Cバス(SCL・SDA)で通信し、8.192秒間隔で測定を行います。 (8bitアドレス[88h])
・有機溶剤や揮発性の化学物質はセンサーに悪い影響を与えますから、ハンダ付け時の
フラックス飛散や基板洗浄には注意して下さい。
・センサーの詳細は、「デジタル温度&湿度センサーSHT31を制御」を参照して下さい。
※SHT31を未搭載でも、CCS811は動作します。
5.CO2・VOCセンサー
・ams(CCS(ケンブリッジCMOSセンサー))のCCS811センサー(中国通販(AliExpress)の
CJMCU-811モジュール)を使用します。
・I2Cバス(SCL・SDA)で通信し、動作モードの設定により1秒、10秒、60秒間隔で測定を
行います。 (8bitアドレス[B4h])
・AVRとCCS811の動作電圧が違うため、センサーの[WAK]信号に対して抵抗器と
ダイオードによる簡易の電圧レベル変換を付加してあります。
・有機溶剤や揮発性の化学物質はセンサーに悪い影響を与えますから、ハンダ付け時の
フラックス飛散や基板洗浄には注意して下さい。
・センサーの詳細は、「CCS811 CO2・VOCセンサー を制御」を参照して下さい。
6.LCD表示器
・AQM1602XA-RN-GBW(I2C接続小型キャラクタLCDモジュール)と、ピッチ変換キット
(AE-AQM1602A)を使用します。
・I2Cバス(SCL・SDA)で通信します。 (8bitアドレス[7Ch])
※ ピッチ変換基板上にあるプルアップ抵抗器のハンダ・ジャンパーは接続しないで下さい。
7.LED(発光ダイオード)
・バックライトの無いLCD表示器を使用するため、暗室でも警報を視認できるように、
赤色の高輝度LEDを付加します。
8.スピーカー
・圧電スピーカー(圧電サウンダー)を使用します。
・装置を落下させたり圧電スピーカーに衝撃を与えた場合に、圧電スピーカーから逆起電圧が
発生してAVRマイコンに高電圧が加わる恐れがあるので、1KΩの抵抗器で保護します。
9.ISP端子 (In-System Program)
・AVRマイコンのプログラムを書き込む際に、書込機を接続するために使用します。
・プログラム書き込み済のAVRを使用する場合は、このピンヘッダは不要です。
|
注意! この図面を使用した、いかなる損害にも責任を負いません。
|
● 試用版
・CO2濃度の簡易グラフ表示は動作しません。
・機能設定モードで、eCO2アラームの上位と下位、アラームのブザー音の間隔は変更できません。
(プログラム内のEEPROMの初期値データで変更は可能です)
・この製作ではAVRのヒューズ ビットを工場出荷状態のまま使用しますので、変更の必要はありません。
・HEXファイルを使用する場合は、ファイルをそのままAVRに書き込んで下さい。
● 完全版
・下記の操作説明にあるすべての機能を搭載しています。
プログラム |
BASCOM-AVR用 ソースファイル
書込器用 HEXファイル |
CCS811_IAQ_Moni_101.bas
CCS811_IAQ_Moni_101.hex |
頒布室にて頒布いたします。 |
注意! 著作権は放棄しておりませんので、販売や配布目的での使用は絶対にしないで下さい。 (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、展示、リンクもご自由に。)
|
 |
タクト・スイッチ
SKHHPNA010
3Φのアクリル丸棒
を10mmでカット。
4Φの収縮チューブ
で固定。 |
|
 |
電源コネクターの圧着
XHハウジング 2P
JST XHP-2
コンタクト
JST SXH-001T-P0.6
芯線二つ折りで1.7L |
|
製作について |
・部品表は、部品の背が低い順に記載してありますので、この順番に取り付けて行きます。
・ジャンパー線[JP]は、すずメッキ線や被覆電線を使用して下さい。 ・ISP端子を使用してAVRのプログラムを書き込む場合は、ワイヤー(0.3mm程度の被覆電線)で
[RST] - [RST] 間を接続します。
(書き込み済みのAVRを使用する場合は、ワイヤー配線は不要です)
・1/6W抵抗器は、3目 (2.54X3 = 7.62mm) ピッチで両端を折り曲げて取り付けます。
・ダイオード1N4148は、3目 (2.54X3 = 7.62mm) ピッチで両端を折り曲げて取り付けます。
・ICソケットは、必要に応じて取り付けます。(AVRマイコンを直接ハンダ付けすることも可能です) ・積層セラミックコンデンサは、5.08mmピッチの物が取り付け可能です。 ・電解コンデンサは背が高いため、横に寝かせて取り付けます。 (極性に注意して下さい)
・三端子レギュレーターは、C-MOS低損失の3.3V 100mA 以上の同等品を選択してください。
・電源コネクターは任意で取り付けます。 電池ボックスのワイヤーを直接ハンダ付けも可能です。
秋月電子の「電池ボックス XHコネクタ付」とは、[赤+]と[黒-]の配置が逆になりますので、
そのまま接続しないで下さい。
ハウジングからコンタクトのツメを押してピンを抜き、[赤+]と[黒-]を逆に差し込んで下さい。 ・圧電スピーカーは、向きを問いません。
・押しボタンスイッチは、汎用のタクトスイッチを基板上に取り付けできます。
ケースの高さに合わせてケタ上げして下さい。
(当製作では、タクトスイッチSKHHPNA010 9.5mm高に10mmのアクリル丸棒で延長してあります) ・ISP端子用ピンヘッダ(6ピン オス)は、ISP端子を使用してAVRのプログラムを書き込む場合に
取り付けて下さい。 (書き込み済みのAVRを使用する場合は不要です) ・LCD AQM1602XA-RN-GBW (AE-AQM1602A)は、変換基板側に付属の細ピンヘッダをハンダ付け
して、4ピンの細ピン用ソケットで基板に取り付けます。
(プルアップ抵抗器のハンダジャンパーは接続不要です)
・LCDは単体で固定用の穴がありませんので、端子部分を細ピン用ソケットに刺し、ガラス部分を
12mmの六角スペーサー2個で支えます。
・SHT31とCCS811モジュールは、付属のピンヘッダで基板に取り付けます。
・LED(発光ダイオード)は、取り付ける向きが決まっています。 足の長い方が[A]です。
(基板から4mm浮かして取り付けます)
(イラックスチューブ0.7mm等を4mmに切って足に通すと、高さ調整がしやすくなります)
・収納するケースや電池ホルダーは、任意で選択して下さい。
|
操作方法 |
1.電源投入
・乾電池を入れると、初期設定を行った後はAVRがスリープ状態になり、消費電力を抑えます。
・CCS811の動作モード設定により、1秒、10秒、60秒の選択間隔で測定完了の信号が[nINT]ピン
から発生します。
・この信号の割り込みによりAVRマイコンをスリープ状態から起動して、VOC値と等価CO2
濃度を表示します。
・AVRマイコン内蔵のウォッチドッグ・タイマーで8.192秒間隔の割り込みを発生させ、
温度・湿度値、並びにバッテリー電圧の測定と表示を行い、グラフ用のデータ収集と
アラームの発生制御を行います。
・これにより、単3アルカリ乾電池3本で約2ヶ月間動作する計算です。 (現在、経過観察中)
(アラームが多発してLEDの点灯やブザーの発音が多い場合は、電池寿命が短くなります)
※電源投入後は、少なくとも24時間以上連続して動作させることを推奨します。
(24時間経過後に測定値が安定します)
・バッテリー電圧を10分間隔で測定し、電圧が3.9V以下になった場合にLCDへの
低電圧表示とLEDの点灯およびブザー音(200Hzで100mS)を発生させます。
(アラームの設定で、ブザーがOFFになっている場合はブザー音は鳴りません)
(LEDは8秒間隔で50mS点灯します)
注.充電池の場合は電圧低下と共に出力電流が急激に低下して、CCS811の測定やLEDの
点灯により極端な電圧低下が起き、AVRマイコンのリセットが作動する場合があります。
この場合は、装置が再起動を繰り返す状態になります。
・[SW1] を押しながら電源を投入すると、現在のプログラム・バージョンが表示されます。
スイッチを離すと通常動作に入ります。
 |
装置のタイトルと
プログラム・バージョン |
● CCS811に対する温度と湿度データの書き込み選択。
・外部で測定した温度・湿度データをCCS811内に書き込むことにより、温度・湿度の変化による
VOC値と等価CO2の補正を行うことができます。
・ただし、半年間の実測で、温度・湿度値が急激に変化した場合にCCS811のベースライン
データが異常値となり、約24時間の間で測定値も異常な値を示すことがあります。
・この異常動作の詳細や対応策がマニュアルにも記載されていないので、温度・湿度データを
利用するかしないかの選択をできるようにしてあります。
・[SW2] を押しながら電源を投入すると、温度・湿度データを書き込むか使用しないかの選択を
行えます。
・操作毎に表示が切り替わり、動作を選択できます。
 |
温度・湿度データを書き込む。
(SHT31の温度・湿度データでCO2を補正する) |
 |
温度・湿度データを使用しない。
(温度・湿度の補正値はCCS811の初期値で固定) |
|
2.LCD表示の操作
・温度値は、-40.0 ℃ ~ 125.0 ℃ の範囲で表示します。
・湿度値は、0.0 % ~ 100.0 % (相対湿度) の範囲で表示します。
・等価CO2(eCO2)は、400ppm ~ 8192ppm の範囲で表示します。
・総揮発性有機化合物(TVOC)は、0ppb ~ 1187ppb の範囲で表示します。
○ [SW1] 表示選択
・[SW1]を押すと、LCD画面の右下の表示が、「TVOC値」、「CO2濃度の簡易グラフ」、
「バッテリー電圧」に切り替わります。
順序 |
画 面 |
表示内容 |
1 |
 |
温度値 等価CO2値(eCO2)
湿度値 総揮発性有機化合物値(TVOC) |
2 |
 |
温度値 等価CO2値(eCO2)
湿度値 CO2濃度の簡易グラフ |
3 |
 |
温度値 等価CO2値(eCO2)
湿度値 バッテリー電圧 |
○ [SW2] アラーム選択 (グラフ選択)
・[SW1]で選択した表示画面により、下記のような動作を行います。
(TVOC)の表示画面 |
アラーム・ブザー音の選択 |
1 |
 |
[×] ブザー音をOFFにする。 |
 |
[<] 上位のしきい値を超えた場合のみ発音する。 |
 |
[<<] 上位と下位のしきい値を超えた場合に発音する。 |
CO2の簡易グラフ表示画面 |
グラフの表示時間域の選択 (完全版のみ) |
2 |
 |
温度値 等価CO2値(eCO2)
湿度値 CO2濃度 (7時間前 ~ 現時間) |
 |
CO2濃度の24時間最大値 等価CO2値(eCO2)
CO2濃度 (23時間前 ~ 8時間前) |
・グラフは、縦8ドットのバーグラフに対して下記の値を示します。
数字の7 |
eCO2が7000~7999ppm |
バーグラフは500ppm毎に1ドット上昇。
4000ppm以上は数値にて表示されます。
グラフ値は、測定1時間内の最大値です。
グラフの右端に、1dot目の位置を示す
基準の下線が常時表示されます。 |
数字の6 |
eCO2が6000~6999ppm |
数字の5 |
eCO2が5000~5999ppm |
数字の4 |
eCO2が4000~4999ppm |
8dot目 |
eCO2が3500~3999ppm |
7dot目 |
eCO2が3000~3499ppm |
6dot目 |
eCO2が2500~2999ppm |
5dot目 |
eCO2が2000~2499ppm |
4dot目 |
eCO2が1500~1999ppm |
3dot目 |
eCO2が1000~1499ppm |
2dot目 |
eCO2が 500~999ppm |
1dot目 |
eCO2が 400~499ppm |
スペース |
eCO2が0の場合 |
|
バッテリー電圧 |
CCS811への温度・湿度データの書き込み状態 |
3 |
 |
温度値 等価CO2値(eCO2)
湿度値 バッテリー電圧 |

 |
温度値 等価CO2値(eCO2)
湿度値 温度・湿度データの書き込み状態
[Non] : 温度・湿度データを書き込みしない。
[Wrt] : 温度・湿度データを書き込む。 |
・バッテリー電圧は10分毎に測定し更新されます。
・バッテリー電圧が3.9V未満になると、[Low]の表示に変わります。
・CCS811への温度・湿度データの書き込み状態は、電源投入時にのみ変更ができます。
・この画面では、現在、温度・湿度データの書き込みを行っているかどうかの状態を
確認表示するだけです。
|
|
3.アラームの動作
・等価CO2(eCO2)の測定値が上位と下位の2つのしきい値を超えた場合に、アラームを
発生させることができます。
・屋内の空気品質の悪化による影響
空気品質
の表示 |
VOC濃度 |
VOCの影響 |
屋外濃度以上の
CO2濃度 |
CO2の影響 |
悪 い |
高 い |
長期間身をさらす:
発ガン性、肺、肝臓、
腎臓および中枢神経系
の損傷。
眼、鼻、のど、皮膚刺激、
頭痛、吐き気、めまい |
> 2500 ppm |
健康への影響
(吐き気、頭痛、めまい)
成績・生産性と判断力
の著しい障害。 |
中程度 |
中 位 |
目、鼻、のど、皮膚刺激
頭痛、吐き気、めまい |
1500~2500 ppm |
判断力の低下、疲労、
集中力の低下。 |
良 い |
低 い |
影響なし |
< 1500 ppm |
健康や判断力に影響を
与えない |
・等価CO2(eCO2)の測定値が上位のしきい値を超えた場合。
4,000Hzの音が50mSで2度鳴り、LEDも2度点灯します。
・等価CO2(eCO2)の測定値が下位のしきい値を超えた場合。
4,000Hzの音が50mSで1度鳴り、LEDも1度点灯します。
・ブザー音は、上記の「アラーム・ブザー音の選択」で指定した動作で鳴ります。
・上位と下位のしきい値は、機能設定で選択できます。 (完全版のみ)
・しきい値付近での連続発音を避けるため、機能設定で指定した間隔(インターバル)で
再発音します。 (完全版のみ)
・LEDはアラーム発生中に8秒間隔で点灯します。
※ 注意
●この装置の警報は、CCS811センサーのマニュアルに記載された値に従って、センサーから
得られた情報のみで簡易的に出されるもので、空気品質による悪影響を防止できる装置
ではありません。
●また、センサーの誤差や測定環境、装置の製作状態や設置場所により、装置の動作を保証
するものではありません。
●出される警報は、空気品質の目安としてご利用下さい。
●この作品を使用した、いかなる損傷や損害にも責任を負いません。
|
4.機能設定
・[SW1] と [SW2] を同時に押すと、各種の機能や動作を設定できます。
・この設定は内蔵EEPROMに記憶されますので、電池が切れた後も残されています。
・[SW2]で設定値を変更します。 ・[SW1]を押すと、次の項目へ移動します。
順序 |
画 面 |
設定内容 |
初期値 |
1 |
 |
等価CO2値(eCO2)アラーム上位のしきい値
(2500 , 3000 , 3500 , 4000) |
2500 |
等価CO2値(eCO2)アラーム下位のしきい値
(1000 , 1500 , 2000) |
1500 |
2 |
 |
等価CO2値(eCO2)アラーム上位の発音間隔
(1分 , 3分 , 5分 , 10分 , 15分) |
5分 |
等価CO2値(eCO2)アラーム下位の発音間隔
(1分 , 3分 , 5分 , 10分 , 15分) |
10分 |
3 |
 |
CCS811の測定間隔 ※
(1秒 , 10秒 , 60秒) |
10秒 |
LCDのコントラスト設定。
(20 ~ 50) |
32 |
※CCS811の測定間隔を変更した場合は、センサーのヒーター温度が安定するまでの20分間は
測定値が不正確となります。
※測定間隔をより長い時間(60秒)に設定すると、電池の寿命は伸びます。
※測定間隔をより短い時間(1秒)に設定すると、センサー自体の寿命が短くなります。
|
|