miso が 2020年12月28日23時04分57秒 に編集
コメント無し
本文の変更
# はじめに 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); } ``` ## おわりに これで子供達も二酸化多酸素を何時でも確認できるようになりました!😋 ちょっとした生活の質が向上します。 **あると便利が実現できる電子工作**って素晴らしいですね!