fumiLab

fumimakerが作ったもの、やったことについて書いていきます。

ESP32でCO2濃度・環境測定計を作る-Part1

コロナがとんでもない事になっていますが,ご機嫌お過ごしでしょうか.本稿では2部にわけてCO2濃度,大気圧,温度,湿度を測定し表示できるシステムを設計し,基板化します.

n番煎じネタで新規性がまったくないですがやっていきます

IMG_2140_00

2話(実装編)できました

fumimaker.net

機能

  • CO2濃度測定
  • 温度・湿度・大気圧測定
  • LCDで表示
  • データを無線ネットワーク経由でアップロード

背景

私事ですが,ハードウェアを作ったり開発したりする都合上,やっぱり研究室には行く必要があり換気がしっかりできているか知りたいと思うことは多いです.CO2は換気ができるかを知るために指標の一つとして使うことができ,飲食店でも設置されているようすが見られます.1000ppm以下を保つことが一つの指標となっています.

例えば島根大学では講義室が定員の状態で空調換気扇を動作させても二酸化炭素濃度が1000ppmを超え換気が不十分であるという報告があります[1].人間の密度によりCO2濃度が上昇することが示されています[2].

出来合いのものを買うこともできますが,精度が不十分であるという報告もあります[3].というのは言い訳で,やはりここは自作して自由にいじれるものがほしいと思ったのがきっかけです.

プロトタイプの実装

…というを1年前くらいに思い,ブレッドボードに組んで放置しています.問題なく動いており,現在も研究室で動いています.ブレッドボードを落としてしまったり電源抜けたりして流石に良くないなと思ったので重い腰を上げて基板化しようと決意しました.

というかこれコロナ前の2018年にはすでに言っていてどんだけ引き伸ばしてるんだっていう・・・(この頃は授業中眠いのをCO2のせいにしようとしていた)

システムの設計

システムの要件としてこれらを定めました.

  • CO2濃度測定
  • 温度測定
  • 湿度測定
  • LCDなどでその場で数値を確認できること
  • データをネットワーク経由でアップロードできること

CPU

ネットワーク通信をする必要があることから,RaspiかESP32マイコンなどが選択肢になりますがワンボードにしたかったのでESP32を採用することにしました.ESP32はDevkit-Cなどの評価ボードもありますがせっかくなので評価ボードの機能(USB書き込み)も実装することにします.自動書き込み機構を載せてワンボタンで書き込めるように設計します.

参考: https://blog.goediy.com/?p=897

CO2センサ

目玉のCO2センサは秋月電子通商で入手可能な,MH-Z19Cを利用します.Amazon等で激安CO2センサ計が売ってますが,精度に適当なものもあり安心できません[3].ここでは秋月電子通商仕入れてるなら大丈夫だろう・・・と信用することにしています.

温湿度センサ

温度,湿度などは副次的なものですがせっかくなので測定します.BME280やBME680は温湿度,大気圧,ガスなども測れてお得なのでこれを使うことにしました.(今回はBME680を使いますが両方載せられるように設計しています)

電源周り

ESP32でWiFi使うときは電源回路を気をつけた方がよいとされています.早い話,適当なLDOではなく応答性がよく,ちゃんとたくさん吸えてたくさん吐けるコンデンサと一緒に使おうねということです.XBEE WiFiもそうでしたがRF乗ってるマイコンは足元しっかりしないとやばいですね・・・(甦る記憶)

http://nemuisan.blog.bai.ne.jp/?eid=220875

https://www.mgo-tec.com/blog-entry-esp-wroom-32-power-switch.html/4

ここではADP3338を使っていますが,LT1963Aもおすすめです.これは逆流防止入ってますしソフトスタートも入っていて高機能です.(ただし高い).ピン配置は全く違うので注意しましょう.ADP3338もピン配置が7805とは違うので注意です

その他

その他の部品は秋月電子通商で入手可能なものを選定しています.(チップ抵抗など一部は秋月に GitなかったのでAmazonなどから購入しています)

チップ抵抗はAmazonなどでSMD 抵抗本などで調べると全部入った便利なのがたくさん出てきます.ちょっと必要なくらいであれば1000円以下で色々入ってるのもあります.

いつも部品には1608を使っているのですが,小さすぎて手動マウントがつらすぎるので少し大きい2012を使ってみることにしました.しかし,LCDやCO2センサなど表面に乗る部品が多すぎてつらすぎたのでやっぱり1608のほうが良かったです(結論)

補足

余談ですが,今回USB電源とバッテリー電源を切り替える機構を試してみたく無理やりつけてみました.ただ,よく考えてみるとMH-Z19は動作電圧が5Vが必要であり,バッテリー駆動時(1S)は最大で4.2Vなので動きません.1Sを昇圧したり2Sバッテリー入力にして5Vレギュレータ載せれは動きますが,…今回はほぼUSBでしか動かさない予定なので妥協しました.このバッテリ電源切替の動作検証が上手く行って,しばらく使ってみてバッテリー駆動が必要そうなら改良して再度発注したいと思います.(適当で申し訳ない)

よってUSB駆動時はCO2センサ・温度湿度大気圧が動作,バッテリー駆動時は温度湿度大気圧のみの測定となります.

表面実装について

今回は表面実装部品で構成してみました.近年では基板が格安で作れるようになったこともありホビー用途でも急速に表面実装をやる機会が増えています.やったことない人はお試ししてみてはどうでしょう.その昔,感光基板を自宅で塩化第二鉄エッチングをしたり,OHPシートで転写したり,過酸化水素水でエッチングしてみたりしましたが,本当に簡単に高密度な基板が作れるようになり感動です.

基板CADを用いた基板設計

回路

設計した回路はこちらです.特に難しいことはありません.ただESP32+シリアル通信+電源+センサという感じです.

image-20220827011334087

https://github.com/fumimaker/ESP32_Environment_Surveillance/blob/main/schematic/co2_v47.pdf

BOM(部品表)

部品一覧を載せておきます.個数は・・・適当です.1つ変えばだいたい10個位入ってるので大丈夫です.もっと安いものでもできるやろ!という感じですがそのへんは適宜ということで・・・.とくに電源レギュレーターなんかは良いものを使っているので安いものに変更しても良いかもしれません.(なお安定性は不明です)

名前 個数 リンク
AO3401 1 https://akizukidenshi.com/catalog/g/gI-14654/
PHコネクタ 1 https://akizukidenshi.com/catalog/g/gC-12633/
1N4148W 10 https://akizukidenshi.com/catalog/g/gI-07084/
ADP3338 1 https://akizukidenshi.com/catalog/g/gI-12635/
MH-Z19C 1 https://akizukidenshi.com/catalog/g/gM-16142/
USB-Cコネクタ 1 https://akizukidenshi.com/catalog/g/gC-14356/
ESP32-WROOM-32E 1 https://akizukidenshi.com/catalog/g/gM-15675/
10uF 2012 10 https://akizukidenshi.com/catalog/g/gP-13388/
1uF 2012 10 https://akizukidenshi.com/catalog/g/gP-15331/
0.1uF 2012 10 https://akizukidenshi.com/catalog/g/gP-14573/
ピンソケット5P 1 https://akizukidenshi.com/catalog/g/gC-02762/
ピンソケット4P 1 https://akizukidenshi.com/catalog/g/gC-10099/
NPN 小信号Tr 2 https://akizukidenshi.com/catalog/g/gI-00761/
表面実装スイッチ 2 https://akizukidenshi.com/catalog/g/gP-06184/
FT231XS 1 https://akizukidenshi.com/catalog/g/gI-06713/
BME680 1 https://akizukidenshi.com/catalog/g/gK-14469/
BME280(こっちでもOK) 1 https://akizukidenshi.com/catalog/g/gK-09421/
抵抗 2012 5,1k 2 https://amzn.to/3b2pf3p
抵抗 2012 10k 10 https://amzn.to/3b2pf3p
抵抗 2012 1k 10 https://amzn.to/3b2pf3p
led 1608 赤 10 https://akizukidenshi.com/catalog/g/gI-11879/
led 1608 青 10 https://akizukidenshi.com/catalog/g/gI-03982/
led 1608 緑 10 https://akizukidenshi.com/catalog/g/gI-06417/
AQM1602 https://akizukidenshi.com/catalog/g/gP-11916/
AQM0802 こっちでも可

github.com

3D View

3D viewでみるとこんな感じ.一部埋まったりしていますが問題はなさそうです.スタンドアロンのEagleではなくFusion360にインテグレートされたものをお試して使ってみましたが,慣れれば悪くないですね.ただ相変わらずのEagle節はあるので使いづらいところもあります.3DモデルとかはFusionの機能で作ってそのまま統合とかはできるのでそこら編が便利になりました.LCDやCO2センサ.BME280などはモデリングしました.

image-20220725222033524

設計したらERCをかけて電気的に問題がないか確認します.

アートワーク

ESP32のアンテナ周りは周辺を覆ってはいけないとありましたのでベタをしないようにしています.ただ,ESP32 Hardware Design Guidelines v3.2によると周り15mmを覆ってはいけない,できれば空中に出したほうが良いとされています.これはガイドライン違反の設計ですので真似しないでください.違反の状態でどのようなRF性能になるのかなという気持ちで実験的に見てみます.全くダメだったら設計変更が必要ですね.

image-20220725224423701

発注

今回はJLCPCBに発注してみます.基板名刺を以前ここで作ったのですがシルクがきれいなイメージだったのでここに再度発注します.以前うまくいかずサポートにチャットで問い合わせましたが22時にも関わらずすぐに返信くれて丁寧に対応していただきました.

jlcpcb.com

Design Rule Checkする

DRCを回してエラーを解決していく.JLCPCBではここにルールが乗ってるほか,ファイルでも公開されている.

image-20220725200047334

CAMを回す

ここにCAMファイルがあるのでこれを読み込む

image-20220725201837308

ZIPとして出力するにチェック.この状態でジョブを処理をクリックする.

image-20220725201806373

1日寝かせる

回路図やパターン図を原寸大で紙に印刷して部品が乗るか確認したり,1日寝てからもう一度見てみましょう.意外と致命的なミスが見つかります.基板は発注してしまうと基本キャンセルできないので慎重に進めるのをおすすめします.

それでも問題がなかったら注文しちゃいましょう.

発注

JLCPCBに行ってCAMから出力されたZIPをAddGerberというところにD&Dすると勝手に展開してデータを表示してくれます.便利だね.

image-20220725202317047

image-20220725202308711

あとは基板の枚数,色や厚さ,メッキ処理や面付など自分でやりたいように設定してオーダーします.自分の場合は表面実装部品用のステンシルも注文しました.一緒にやれば同じデータから作ってくれます.

追記

発注して2日でもうすでにShipping表記になった.早すぎる.自分は安い送料のにしたので結構時間がかかってしまう.

次回できました

fumimaker.net

参考文献

[1] 落合のり子, et al. "講義室利用時の二酸化炭素濃度と空気環境改善対策." 島根県立大学短期大学部出雲キャンパス研究紀要 4 (2010): 39-45.

[2]山本 百合子, 伊藤 博澄, CO2モニターを使った換気の評価方法, 人間工学, 2021, 57 巻, Supplement 号, p. 2D2-4, 公開日 2021/05/22, Online ISSN 1884-2844, Print ISSN 0549-4974, https://doi.org/10.5100/jje.57.2D2-4, https://www.jstage.jst.go.jp/article/jje/57/Supplement/57_2D2-4/_article/-char/ja

[3] Ishigaki, Yo, Koji Enoki, and Shinji Yokogawa. "Accuracy verification of low-cost CO2 concentration measuring devices for general use as a countermeasure against COVID-19." medRxiv (2021).