【ESP32】1台約6000円でCO2濃度測定＆クラウド化[IoT]

#概要
室内の温湿度およびCO2濃度を表示し,換気が必要な場合はLEDランプ点灯・点滅で知らせる末端を製作しました.
さらに，ネット上からリアルタイムで監視できる機能も搭載しています．
![IMG_1184.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/8594e904-8832-f8b8-5251-9479dfab505d.jpeg)
↓PC・スマホからいつでもどこでも確認できる
![スクリーンショット 2021-06-29 10.26.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/2a545d13-8842-b284-42c7-942a1b3e0451.png)
![スクリーンショット 2021-06-29 14.06.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/462ebd88-4542-29d5-9bf4-85b3a2888636.png)

<!--
#大学HPに掲載されました
所属する[北海道医療大学の公式HP](http://www.hoku-iryo-u.ac.jp/topics/information/349496/)に掲載していただきました．
こちらの機器の貸し出しなども検討しております．お気軽にお問い合わせください．
連絡先[北海道医療大学歯学部 - Qiita](https://qiita.com/organizations/hoku-iryo-u)のメールアドレス（生体材料工学分野　根津准教授）まで
![スクリーンショット 2021-07-19 21.47.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/a3b9d3e2-0e85-cd11-1aae-d105b30cb768.png)
-->
##感染対策をスマートに
コロナ禍で感染症対策が重視されている昨今において，室内の定期的な換気が求められるようになりました．しかし,そのタイミングを客観的に判断する基準が明確ではありません．また,冬場などの換気は室内の温度が低下して寒くなったり，夏場はエアコンの仕様などで，間隔をおいて窓を開ける場合は，温度管理と換気の実施を感覚的に実施するのは難しいでしょう.そのため,データに基づくスマートな感染対策が求められています.
##室内のCO2濃度を換気の目安にする
上記の対策として，室内のCO2濃度を換気の目安として，換気のタイミングを決めることにします．
室内環境の評価にCO2濃度の基準が定められています．
>二酸化炭素の含有率 1000ppm以下
>
>厚生労働省「建築物環境衛生管理基準の設定 根拠の検証について」
>https://www.mhlw.go.jp/seisakunitsuite/bunya/kenkou_iryou/kenkou/seikatsu-eisei/gijutukensyuukai/dl/h23_3.pdf (2021/4/29)

##温湿度センサーでWBGT値を計算する
CO2センサーとあわせて,室内の温度変化を把握する目的で温湿度センサーも搭載することにしました．これは室内での熱中症対策としてエアコン使用の基準となる値を測定するためで,「暑さ指数」を温湿度から計算して表示します.

暑さ指数とは以下のように説明されます．
簡単に言うと湿度を考慮した，体感温度のようなものだと思います．
>暑さ指数（WBGT（湿球黒球温度）：Wet Bulb Globe Temperature）は、熱中症を予防することを目的として1954年にアメリカで提案された指標です。 単位は気温と同じ摂氏度（℃）で示されますが、その値は気温とは異なります。暑さ指数（WBGT）は人体と外気との熱のやりとり（熱収支）に着目した指標で、人体の熱収支に与える影響の大きい ①湿度、 ②日射・輻射(ふくしゃ)など周辺の熱環境、 ③気温の３つを取り入れた指標です。
>
>環境省「環境省熱中症予防情報サイト 暑さ指数とは？」
>https://www.wbgt.env.go.jp/wbgt.php (2021年4月29日)

厳密には，暑さ指数は黒球温度計が必要ですが，簡易的な温湿度センサーAM2320を使って計算することにします．

#システム構築
以下のアルゴリズムに従って，Arduinoで記述していきます．
![スクリーンショット 2021-06-27 23.52.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/c2226c0e-49f8-16a1-8b0e-3de306260478.png)

##使用機材
ＥＳＰ３２－ＤｅｖＫｉｔＣ　ＥＳＰ－ＷＲＯＯＭ－３２開発ボードを使用して製作しました．
今回は[AliExpress.com](https://ja.aliexpress.com/)という中国のアリババ系の通販サイトを利用しました．
この通販サイトは発送方法によって納品まで約1ヶ月かかりますが，値段が国内の半額から1/3など，かなり安いです．
私は今まで商品が届かなかったなどの被害はありません．とても良いサイトだと思います．(梱包は少し雑ですが，不良品は返金など柔軟に対応してくれます)
AliExpressは何個購入しても送料が一定であることが多いので，ある程度まとまったた個数を製作すると考え，部品を発注することでコスト削減になりました．

以下のリンクは商品確認用にアマゾンなどにしています．

|品名  |AliExpress価格(参考)  | 国内販売価格(参考) | 備考  |
|---|---|---|---|
|ＥＳＰ３２－ＤｅｖＫｉｔＣ　ＥＳＰ－ＷＲＯＯＭ－３２開発ボード|約430円|1480円|[秋月電子](https://akizukidenshi.com/catalog/g/gM-11819/)|
|USB microBケーブル|---|約200円|ESP32に電源供給するため|
|USB電源アダプター|---|約600円|近くに常時起動するPCがあればそこに繋げば良い|
|CO2センサーMHZ19|---|2480円|[秋月電子](https://akizukidenshi.com/catalog/g/gM-16142/)|
|ちょっと高級なCO2センサーSenseair 006-0-0002|---|約6000円|入手方法がわかりません．商品はこちらです．生産終了品のようです．|
|温湿度センサーAM2320|約200円|600円|[秋月電子](https://akizukidenshi.com/catalog/g/gM-08663/)|
|ピンヘッダ|---|---|200円くらいでたくさん入っている,CO2センサーの足を基板につなぐため|
|ジャンパーピン(メスメス)|約300円|---|20本くらい入っている|
|LED 3mmφ|---|10個200円|３色あれば良い,[秋月電子](https://akizukidenshi.com/catalog/g/gI-04780/)|
|カーボン抵抗10kΩ|---|100本入り100円|[秋月電子](https://akizukidenshi.com/catalog/g/gR-25103/)|
|カーボン抵抗750Ω|---|100本入り100円|[秋月電子](https://akizukidenshi.com/catalog/g/gR-25751/)|
|LCD 1602 I2C基板付き|約300円|---|[AliExpress](https://ja.aliexpress.com/item/32413056677.html?spm=a2g0o.productlist.0.0.27e83758c8HlrL&algo_pvid=401172f0-83e7-4d94-9ca8-1871ea745079&algo_exp_id=401172f0-83e7-4d94-9ca8-1871ea745079-0)|
|気圧センサー|約80円|550円|[AliExpress](https://ja.aliexpress.com/item/32775855945.html?spm=a2g0o.productlist.0.0.462d5f2a3TkGLg&algo_pvid=9bb67a6d-e4cd-4a43-9681-f0dfb0a5a54a&algo_exp_id=9bb67a6d-e4cd-4a43-9681-f0dfb0a5a54a-6)|


オリジナルプリント基板　約200円
→配布予定はないですが，配布ご希望の方はご連絡ください．検討します．
(連絡先[北海道医療大学歯学部 - Qiita](https://qiita.com/organizations/hoku-iryo-u)のメールアドレス（生体材料工学分野　根津准教授）まで)

オリジナルケース(3Dプリンターで製作)　約500円
オリジナル天板・仕切り(レーザー彫刻機で製作) 約10円
→3Dデータと天板のSVGファイルを配布します．
下のGitHubのリンクからどうぞ
https://github.com/moburo/CO2SensorForESP32

上記を合計すると5000円前後だが，これにホットボンドやはんだなどの諸経費を足して，おおよそ6000円程度である．

##回路設計
![IMG_0952.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/de9c261e-dbe2-002c-753f-81e9ac82bac0.jpeg)
![スクリーンショット 2021-06-27 23.34.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/c537e2c4-c105-6c04-19cc-144093eaeeef.png)

##プログラム製作

<!--
製作したソースコードはGitHubに掲載しました．
https://github.com/moburo/CO2SensorForESP32
-->
以下のサイトを参考した．各ページを参考にArduino IDEにライブラリをインストールしてください．
(コンパイルしてエラーが出たものを随時検索して入れていけばいいと思います)

温湿度センサーAM2320の制御
https://asukiaaa.blogspot.com/2019/06/esp32.html
https://qiita.com/ihatomorio/items/238750be90cd3a100d5e
CO2センサーMHZ19の制御
https://scrapbox.io/kn1cht/MH-Z19_CO2%E3%82%BB%E3%83%B3%E3%82%B5_on_ESP32
CO2センサーSenseair 006-0-0002
https://note.com/tomo370/n/n0693e8f5bc22
Ambient（クラウド上でグラフ化してくれるサイト）にアクセスする
https://ameblo.jp/geotechlab-workshop/entry-12630729656.html
Wi-Fiをスマホ経由で設定できる機能
https://github.com/zhouhan0126/WIFIMANAGER-ESP32
https://pointofviewpoint.linclip.com/archives/2521
WPA2-enterpriseでインターネットに接続する方法
https://qiita.com/itinoe/items/fb59699661af1d7c3405
時刻取得
https://www.autumn-color.com/archives/839
WBGT値の計算式が記載されています．(ライブラリはないので参考にしてください)
https://bokunimo.net/blog/ichigojam/29/
https://tkrel.com/12370
LEDの明暗を制御する
https://wak-tech.com/archives/742

<!--
##ケースと天板の製作
![8FF8FFF7-F863-457E-B6D2-CD062094DE08.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/e41d13b4-fdb9-f9d9-d253-5285c2694e3b.jpeg)
![4CCCEF58-50CB-4A79-813F-E9C3AF2C4FC7.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/ad8b8e65-4848-d489-28c9-c86ef43d9da2.jpeg)

##プリント基板製作と発注
プリント基板は[PCBGOGO](https://www.pcbgogo.jp/)という中国の基板製作会社に注文しました．
注文から約1週間で届いて，価格も国内メーカーよりかなり安いため，おすすめです．
品質もとても良いと思います．
↓デザインのイメージ
![IMG_1062.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/881f37e9-9361-4c51-d142-a6eb2d58bd50.png)
↓届いた基板
![9882545F-79A4-4760-A8A0-ED820D7DA1BB.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/42667662-57d0-6d75-623c-c68498b12e54.jpeg)
-->

##ケース組み立て
LCDをはめ込みました．
![IMG_1176.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/61ca014c-568d-a700-583a-2290a84f2069.jpeg)
便利なホットボンドで止めました．
![IMG_1182.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/52021286-ebfa-fefa-2fe3-a82fa9a73443.jpeg)

##完成品
![IMG_1180.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/f50182bd-aaeb-a8d2-4339-b90942489f24.jpeg)
![IMG_1187.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/756ac8f2-82cb-0b82-3537-9260b66dfed3.jpeg)


#Ambientに送信する
ESP32から送信されたデータはAmbientを利用してグラフやタコメーターを表示することにした．
詳しい設定の仕方はこちらを御覧ください．
[【ESP32】MACアドレスを使ったAmbientのチャンネル取得](https://qiita.com/moburo/items/3c94acb3a591c68a6415)
↓タコメーター表示
![スクリーンショット 2021-06-28 2.21.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/0ecaa227-745a-eae3-ae79-16541bd37ae5.png)
↓管理者用の時系列で確認できる表示
![スクリーンショット 2021-06-28 2.22.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251987/dace05ad-6a65-46aa-192a-694c0c1f0bdc.png)

#おわりに
私達は昨年から新型コロナ感染症の影響で長期間に渡って行動自粛を行ってきました.
それが蔓延防止に貢献したことは言うまでもありません．
しかしながら，今後私達が生きていくためには単に行動を自粛だけでは成り立たないことも再認識しました.
今回の開発は，新型ウイルスとの長期的共存を計りながら、再び行動を起こすための感染症対策の新しい試みです．

感染症防止の面で安全性を確保する科学的な根拠をもって，人と人との交流を再開していく方法を模索していかなければならないと考えました．
この試みが私達の明日につながることを願っています．