miso が 2020年12月28日22時25分49秒 に編集
初版
タイトルの変更
M5Atomで新型コロナ対策 二酸化炭素濃度モニタリングシステム
タグの変更
秋葉原2021
ESP32
M5Atom
CJMCU-8118
メイン画像の変更
本文の変更
# はじめに M5Atomで二酸化炭素濃度モニタリングシステムを作ったのでご紹介。 elchikaへの投稿も今回2回目です。 ### なんで作ったの? 子供達2人が冬休み、一日中家に居る状態なので人が増えたのか空気が悪いです💧 空気品質を調べ換気する、そのために二酸化炭素を可視化したいと思います。 # 概要 - 二酸化炭素を表示する - 折角なら温度と湿度も - 子供でも確認できるように液晶で表示 # 材料 - M5Atom Matrix - CJMCU-8118 (HDC1080温湿度センサーとCCS811ガスセンサー) - SSD1306 (OLED液晶) CCS811とHDC1080のライブラリは[bfaliszek/CJMCU-8118_InfluxDB](https://github.com/bfaliszek/CJMCU-8118_InfluxDB)を使用しています。 SSD1306はAdafruitの奴を使います。 接続はI2Cです。 その他にCCS811のWAKをGPIO21と接続しています。 #### GNU Lesser General Public License v2.1 ```c #include <M5Atom.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include "ClosedCube_HDC1080.h" #include "ccs811.h" Adafruit_SSD1306 display(128,64,&Wire,4); CCS811 ccs811(21); ClosedCube_HDC1080 hdc1080; void setup() { M5.begin(false, false, true); Serial.begin(115200); Wire.begin(26,32); while(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c)){ Serial.println("Error: SSD1306"); for(int i=0;i<=24;i++) M5.dis.drawpix(i,0x00aa00); delay(1000); } hdc1080.begin(0x40); ccs811.begin(); while(!ccs811.begin()){ Serial.println("Error: ccs811"); for(int i=0;i<=24;i++) M5.dis.drawpix(i,0x00aa00); delay(1000); } ccs811.start(CCS811_MODE_1SEC); for(int i=0;i<=24;i++) M5.dis.drawpix(i,0x5000aa); } void loop() { uint16_t eco2, etvoc, errstat, raw; ccs811.set_envdata210((float)hdc1080.readTemperature(), (float)hdc1080.readHumidity()); ccs811.read(&eco2, &etvoc, &errstat, &raw); display.clearDisplay(); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0,0); display.printf("TEMP: %d C\n", (int)hdc1080.readTemperature()); display.printf("HUMI: %d P\n", (int)hdc1080.readHumidity()); display.printf("eCO2: %d\n", (int)eco2); display.printf("TVOC: %d\n", (int)etvoc); display.display(); delay(1000); } ``` ## おわりに これで子供達も二酸化多酸素を何時でも確認できるようになりました!😋 ちょっとした生活の質が向上します。 **あると便利が実現できる電子工作**って素晴らしいですね!