三浦製作所

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

【Wifi , Bluetooth搭載マイコン】【実装】ESP32でCO2センサ (CCS811)を動かす

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

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

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

 

Arduino Nano版はこちら

www.takeshi-1222.com

 

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

www.takeshi-1222.com

  • サーボモータ実装

www.takeshi-1222.com

  • 無線書き込み実装

www.takeshi-1222.com

  • Webサーバー実装

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 

ESP32, CCS811の簡単な説明

ESP32

ESP32の大きな特徴はWifi, Bluetoothを搭載しているところです。そのうえでArduinoよりも安価に購入でき、ArduinoコードやC++などいくつかの言語の互換性があります。そのため、1つのマイコンでいろいろなことを試したい方には大変おすすめなマイコンです。

CO2センサ (CCS811)

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

実験構成

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

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

 

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

実験

配線

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

f:id:bamboomush:20210207182003p:plain

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

f:id:bamboomush:20210207182019j: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機器を製作できるようになります。

まとめ

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