三浦製作所

興味のあるものをとりあえず動かしてみた、実装してみたシリーズをガンガン上げていきたいと思います。あくまでも自身の備忘録としてですが、誰かの助けになったらうれしいです。

【低価格マイコン】【実装】Arduino NanoでCO2センサ (CCS811)を動かす

f:id:bamboomush:20210207174339p:plain
 Arduino Nanoを用いてCO2センサを実装したので、そのやり方について紹介したいと思います。

この記事を読むことで、安価なマイコンであるArduino NanoでCO2センサが実装できるようになります。

CO2センサが使えると室内の二酸化炭素濃度を把握することができます。そのセンサ値を元に、喚起をしたり、空気清浄をしたりするようなIoTデバイスを作るなんてことができるようになるかと思います。

 

ESP32版はこちら

www.takeshi-1222.com

 

◆Arduino関係の実装記事◆ 
  • DCモータ実装

www.takeshi-1222.com

  •  サーボモータ実装

www.takeshi-1222.com

  • OLED実装

www.takeshi-1222.com

  • 超音波センサ実装

www.takeshi-1222.com

  • LCDディスプレイ実装

www.takeshi-1222.com

  • 温湿度センサ (低コスト)

www.takeshi-1222.com

  • 温湿度センサ (ハイスペック)

www.takeshi-1222.com

  • 温湿度センサ (複数)

www.takeshi-1222.com

  • ほこりセンサ

www.takeshi-1222.co

 

Arduino Nano, CCS811の簡単な説明

Arduino Nano

Arduino Nanoは超安価で購入ができるマイコンで、電気やプログラミングの深い知識を持っていない電子工作初心者でも扱いやすい、オープンソースマイコンです。

Arduinoと比較すると、性能は劣るものの、安価で広い用途で使用可能なので初心者に適しています。

ちなみに、上記が純正品ですが、互換品である以下も性能面では変わらないので強いこだわりがない限りは、互換品の方がおすすめです。

CO2センサ (CCS811)

CO2センサは二酸化炭素やその他空気中の有害物質の量を数値的に測ることができます。それ単体でなにかの指標になるかというと難しいかもしれませんが、まさにスマートホーム等には向いているセンサかと思います。

実験構成

 今回の実験に使用する部品は以下のものです。
  • Arduino Nano
  • CO2センサ (CCS811)
  • ジャンパ線多数

Arduino Nano、CO2センサは上記のものを使用しています。

 

ジャンパ線は何を使用してもいいですが、一応リンクを張っておきます。

実験

配線

まず配線は以下のようにします。

f:id:bamboomush:20210207180215p:plain

配線ができると以下のような画像のようになります。

f:id:bamboomush:20210207180303j:plain

実行コード

ここまで出来たら以下のコードを実行することで動作確認ができます。

/******************************************************************************
  Read basic CO2 and TVOCs
  Marshall Taylor @ SparkFun Electronics
  Nathan Seidle @ SparkFun Electronics
  April 4, 2017
  https://github.com/sparkfun/CCS811_Air_Quality_Breakout
  https://github.com/sparkfun/SparkFun_CCS811_Arduino_Library
  Read the TVOC and CO2 values from the SparkFun CSS811 breakout board
  A new sensor requires at 48-burn in. Once burned in a sensor requires
  20 minutes of run in before readings are considered good.
  Hardware Connections (Breakoutboard to Arduino):
  3.3V to 3.3V pin
  GND to GND pin
  SDA to A4
  SCL to A5
******************************************************************************/
#include <Wire.h>

#include "SparkFunCCS811.h" //Click here to get the library: http://librarymanager/All#SparkFun_CCS811

#define CCS811_ADDR 0x5B //Default I2C Address
//#define CCS811_ADDR 0x5A //Alternate I2C Address

CCS811 mySensor(CCS811_ADDR);

void setup()
{
  Serial.begin(115200);
  Serial.println("CCS811 Basic Example");

  Wire.begin(); //Inialize I2C Hardware

  if (mySensor.begin() == false)
  {
    Serial.print("CCS811 error. Please check wiring. Freezing...");
    while (1)
      ;
  }
}

void loop()
{
  //Check to see if data is ready with .dataAvailable()
  if (mySensor.dataAvailable())
  {
    //If so, have the sensor read and calculate the results.
    //Get them later
    mySensor.readAlgorithmResults();

    Serial.print("CO2[");
    //Returns calculated CO2 reading
    Serial.print(mySensor.getCO2());
    Serial.print("] tVOC[");
    //Returns calculated TVOC reading
    Serial.print(mySensor.getTVOC());
    Serial.print("] millis[");
    //Display the time since program start
    Serial.print(millis());
    Serial.print("]");
    Serial.println();
  }

  delay(10); //Don't spam the I2C bus
}

今回はCO2とその他有害物質量を表すtVOCをシリアルモニタで確認できるようにしています。

f:id:bamboomush:20210207180447j:plain
これらの値を使って、いろんなIoT機器を製作できるようになります。

まとめ

今回は、Arduino NanoでCO2センサを動かすために必要なものの紹介と、サンプルプログラムの紹介をしました。