CCS811・BME280・BH1750を使ったデータロガーの製作(1) 回路図作成・リセット回路の実験
◯やりたいこと
最近やたら値段が上がっているマメタンアンカ、
中国の大キャンプブームのせいかと思っていたらウクライナの越冬向けにも寄付を募っているニュースが出たりして世界的に需要が高まっているよう。我が家にも現役アンカがあるのですが、今年もぬくぬくに備えそろそろ準備を始める事にしました。
そこで必要になるのが酸欠防止用のCO2センサー。あちこちで暖房に活躍してもらうため普段使い用にCO2センサー(CCS811)+温湿度・気圧センサー(BME280)+照度センサー(BH1750)を組みあわせた携帯型データロガーを作ってみる事にしました。
主な機能は以下の通り。
1. 一定間隔でデータをWiFi転送するロガー機能
2.リセットスイッチによる手動起動機能を持たせその際はOLEDにデータを表示
3. CO2濃度によるブザー警報機能
4. 電池動作
◯やったこと
・回路設計
各センサーはESP-WROOM-02のI2C通信を利用して制御し各々の省電力モードに期待して常時通電を基本にします。特にCCS811は常時通電しておかないと正確な値が出ないようです 。ただOLEDは常時点灯が不要ですので起動時にリセットスイッチをセンスしオンであれば電源を入れるようにします。
リセットパルスはSW入力を微分してワンショットパルスを作成しマイナス側の電圧をカットするためFETで受けてWROOMに入力しています。リセットパルスの幅は必要最低限にしてWROOMを素早く起動させ、スイッチが離される前にその状態を読み込んで手動起動かを確認するという作戦です。これに関してはうまくいくかどうか後ほど実験してみます。
以上の点を検討して作成した回路図は以下の通りです。
・リセット回路
まずはリセット回路が予想通りに動作するか実験してみます。
この間作った電源がさっそく活躍してくれています。
回路図ではコンデンサが1μFですが写真は0.1μF(時定数10ms)で行っている時の様子です。この時の微分回路出力とFET出力をハンディオシロで確認してみると
(水色:微分回路出力 黄色:FET出力)
SWを相当早く押してみましたがリセット起動後SWがOFFになるまで50ms以上ありましたので普通に押してる分には問題なく手動起動を検知してくれると思います。リセットパルスの幅の実測値は 9msほど。まあまあいい感じです。
この回路で起動後 delay()5秒、deepSleep()10秒を繰り返すスケッチを組み
タイマー起動時はLED消灯、リセットスイッチによる起動はLEDを点灯させてみると
バッチリ。
予定通りうまく動作してくれています。
この時の電流計のログ。
1番右の山がdeepSleep()中にリセットスイッチで起動した部分。定期起動部分に比べ LEDが点灯した分電流値が増えています。
◯やってみて
起動方法が確定したので次回実際にセンサーをつないで動作試験を行なってみます。