■ 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を使用する場合は、このピンヘッダは不要です。



回 路 図  PDF版 CCS811_IAQ_Moni_Cir.pdf (210KB)
部品配置図  GIF版 CCS811_IAQ_Moni_Pcb.gif (151KB) 部品表
 
   
注意! この図面を使用した、いかなる損害にも責任を負いません。

試用版 
 ・CO2濃度の簡易グラフ表示は動作しません。
 ・機能設定モードで、eCO2アラームの上位と下位、アラームのブザー音の間隔は変更できません。
  (プログラム内のEEPROMの初期値データで変更は可能です)

プログラム  テキスト形式 ソースファイル  CCS811_IAQ_Moni_001.TXT
 BASCOM-AVR用 ソースファイル
 (BASCOM-AVR(製品版)が必要です)
 CCS811_IAQ_Moni_001.bas
 書込器用 HEXファイル  CCS811_IAQ_Moni_001.hex

 ・この製作では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濃度の簡易グラフ」、
  「バッテリー電圧」に切り替わります。
順序 画   面  表示内容
 温度値  等価CO2値(eCO2
 湿度値  総揮発性有機化合物値(TVOC)
 温度値  等価CO2値(eCO2
 湿度値  CO2濃度の簡易グラフ
 温度値  等価CO2値(eCO2
 湿度値  バッテリー電圧



 ○ [SW2] アラーム選択 (グラフ選択)
 
 ・[SW1]で選択した表示画面により、下記のような動作を行います。
 
 (TVOC)の表示画面 アラーム・ブザー音の選択
 [×] ブザー音をOFFにする。
 [] 上位のしきい値を超えた場合のみ発音する。
 [<<] 上位と下位のしきい値を超えた場合に発音する。


 CO2の簡易グラフ表示画面 グラフの表示時間域の選択 (完全版のみ)
 温度値  等価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への温度・湿度データの書き込み状態
 温度値  等価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]を押すと、次の項目へ移動します。

順序 画   面 設定内容 初期値
   等価CO2値(eCO2)アラーム上位のしきい値
 (2500 , 3000 , 3500 , 4000)
2500
 等価CO2値(eCO2)アラーム下位のしきい値
 (1000 , 1500 , 2000)
1500 
   等価CO2値(eCO2)アラーム上位の発音間隔
 (1分 , 3分 , 5分 , 10分 , 15分)
5分
 等価CO2値(eCO2)アラーム下位の発音間隔
 (1分 , 3分 , 5分 , 10分 , 15分)
10分
   CCS811の測定間隔  
 (1秒 , 10秒 , 60秒)
10秒
 LCDのコントラスト設定。
 (20 ~ 50)
32

 ※CCS811の測定間隔を変更した場合は、センサーのヒーター温度が安定するまでの20分間は
   測定値が不正確となります。
 
 ※測定間隔をより長い時間(60秒)に設定すると、電池の寿命は伸びます。
 ※測定間隔をより短い時間(1秒)に設定すると、センサー自体の寿命が短くなります。



 
◎ このプリント基板と書き込み済みAVRを、実費頒布しております。
 
  基板・部品の頒布室



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