CO2濃度計の改修計画 10【センサ校正】

CO2濃度計の改修計画 08【センサの追加調査】

はじめに

 ・投稿が長くなってきたため、過去の記事は抜粋します。過去の記事を参照願います

 

 ・CCS811の値は、今使っているSenseair製センサーの値より高くなっており、

 うまく扱えません。有望であるENS160を追加調査しましたが、使えないようでした。

 

 ・Senseair製センサーと同じ方式のSensirion製のSCD30を使って見た内容を記載します

  

ちょっとだけ廉価版

ハード

 ・すべてAliExpressで揃えました

  

 ・配線図

   

ソフト

 ・開発環境

   Arduino IDE 2.3.4

 ・ライブラリー

   OLEDディスプレイ Adafruit_SSD1306

   センサー      SparkFun_SCD30_Arduino_Library

 ・ソース

   GitHub - jshigu/CO2_XIAO_RP2040_SCD30

センサ調査

SCD30にします(3月29日)

 ・NDIR【Non Dispersive InfraRed(非分散型赤外)】方式のセンサーにしました

  I2C(SCL,SDL,VDD,GNG)で接続します

  下記図の右上には、RH/Tセンサーがあり、温湿度も測定できます

   

 ・CO2と温度の校正(4月7日:追記)

    •  
      if (airSensor.dataAvailable()) {
      // FRC 強制リキャリブレーション 
      //SCD30内の不揮発メモリに測定インターバル(sec)を保存します
      airSensor.setMeasurementInterval(5);
      //FRCでは現在のCO2値が分かっている場合、センサにCO2濃度を伝えることで、補正される
      airSensor.setForcedRecalibrationFactor(900);

      //不揮発メモリに温度補正値(deg)を保存します
      ////SCD30内の不揮発メモリから温度補正値(deg)を取得
      float SCD30_HoseiOld = airSensor.getTemperatureOffset();
      float SCD30_tempNow = airSensor.getTemperature(); //SCD30の表示温度
      float SCD30_HoseiNew = (SCD30_tempNow - 20.8) + SCD30_HoseiOld;
      airSensor.setTemperatureOffset(SCD30_HoseiNew );
      Serial.printf("SCD30_HoseiOld:%.3f tempNow:%.3f SCD30_HoseiNew:%.3f"
      ,SCD30_HoseiOld, tempNow, SCD30_HoseiNew);
      }

       

 ・量産するなら、C言語で下記の Interface_Description を参考に作ります

    • 昔は、測定器のデータをパソコンにキーボード入力として取り込むために、120円くらいのPICマイコンを使い、アセンブラで作っていました。(ちょっと自慢)
      sensirion.com

 

ENS160はCO2意外にも反応(3月15日)

 ・このCO2センサーは、寝室や浴室、キッチンやレストランでの調理臭など、

  不快な臭いやバイオエフルエントをも検知します

  

 ・あらためて、30時間記録した結果、自分の思うとおりの結果が出ないので不採用

  

 ・ここまでの結果は、めぼしいものがなかったので、新たにSCD40を購入して確かめます

   

廉価版CO2センサー調査(3月6日)

調査センサの選定

 ・まだ他にも候補があると思うので、良さそうなものが見つかったら調べます

 

 ・配線はI2C接続で1個づつ調べます

  マイコンバッテリ駆動やBLE通信をしたかったため、Seeed XIAO BLE Sense

  nRF52840を選びました

BMP280 温度、大気圧

 ・BMP280はBME280と同じプログラムで動作しますが、

  湿度データレジスタ(0xFD〜0xFE)のデータを取得できません

  シリアルプロッタで表示しやすいように、気圧は1,000引いています

  

 

BME280 温度、湿度、大気圧

 ・シリアルプロッタで表示しやすいように、気圧は1,000引いています

  

 

ENS160+AHT21 温度、湿度、CO2

 ・シリアルプロッタで表示しやすいように、CO2の値を1/10に縮小していま

  

 

CCS810 CO2

 ・上記配線間違いがあります。ADDをGRNは間違い。正しくはWAKをGRN

  

 

安価なCO2センサが無い

 ・今使っているSenseair製センサーの値より、CCS811の値が高く、

   ens160の値が低くなっています。

  

 廉価版CO2センサーの選定に迷っています。さらに調査を進め報告します。

  以上。中間結果の報告となります

 

 

基板に組み付け (2025-3-2追記)

 ・廉価版のCO2センサーが届くのに時間がかかるため、

  ブレッドボードで動作確認したものを基板に組み付けます

工作 RP2040

 ・基板を切断(2025-2-21追記)

   1年前なら会社の基板切断機で簡単にカットできましたが、定年退職したので、

  自宅でノコギリとヤスリを使い、ボチボチカットしました

   

 

回路図

   裏から配線するため、ミラーをかけてみました  

   

 

基板へ組み付(2025-2-27追記)

   スルーホール基板への裸電線配線のハンダ付けが汚いので、遠目で見てくださいね

   

 

経歴

1号機 ESP32 38Pin

  <回路図> 上記記事からの引用です。ともふみさん ありがとうございます

   

  <実機> ソフトは2号機と同じです。液晶(OLED)は新品に交換済みです

   

2号機 ESP32 30Pin

  <回路図> 30Pinしたのは安かったからです。技術的な理由はございません

   

  <実機> テストのみ実施しました

   

 

3号機 RP2040 14Pin

  <回路図> マイコンをXIAO RP2040にしました。アリエクで2個送料込みで2129円

  

  <実機> ブレットボードでのテスト写真

   

 

以上。これからもよろしくお願いします

プライバシーポリシー |ページトップへ

`