miso が 2020年12月28日23時17分33秒 に編集
コメント無し
本文の変更
# はじめに M5Atomで二酸化炭素濃度モニタリングシステムを作ったのでご紹介。 elchikaへの投稿も今回で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); } ``` ## おわりに これで子供達も二酸化多酸素を何時でも確認できるようになりました!😋 ちょっとした生活の質が向上します。 **あると便利が実現できる電子工作**って素晴らしいですね!