BME280を使用して電子百葉箱を作る
最近ATtiny85というI2Cインターフェースを持っているマイコンを紹介した事ですし、せっかくなので何か作ってみたいと思います。
何を作るのかというとタイトルにも書いていますが、電子百葉箱(温湿度気圧計)です!
という事で何回か記事を分けながら進めていこうと思っております。今回は構想編として、使用材料や機能を中心にまとめていきたいと思います。また、いきなりATtiny85に組み込むのではなく一旦はArduino上で形になったら組み込んでいきます。
■予定記事構成(おそらく4部構成になりそうです)
- 構想編
- Arduinoでの動作確認編
- 組み込み材料加工編
- 実装・動作確認編
では、構想編をどうぞ!
構想仕様
材料
名称 | 型番 | 個数 | 備考 | 購入用URL |
制御IC | ATtiny85 | 1 | I2C対応 | ATtiny85 |
センサ | BME280 | 1 | 温湿度気圧 | BME280 |
表示機 | AQM0802A-RN-GBW | 1 | 8文字2行 | http://akizukidenshi.com/catalog/g/gP-06669/ |
タクトスイッチ | a14110100ux0234 | 1 | 表示切替用 | タクトスイッチ |
スライドスイッチ | SS12D00G5 | 1 | メインスイッチ | スライドスイッチ |
コイン電池ケース | 不明URL参照 | 1 | CR2023用 | CR2032ケース |
0.1uFセラコン | RD15F104Z1HL2L | 2 | ノイズ除去用 | http://akizukidenshi.com/catalog/g/gP-04065/ |
1uFセラコン | RD15W103K1HL2L | 2 | LCD昇圧用 | http://akizukidenshi.com/catalog/g/gP-04063/ |
10kΩ抵抗 | RD25S 10K | 3 | プルアップ用 | http://akizukidenshi.com/catalog/g/gR-25103/ |
フリスクケース | フリスクペパーミント | 1 | 筐体 | https://amzn.to/2Thydyi |
レベル変換(予備) | ZRH7336967901234OB | 1 | 電圧変換用 | レベル変換器 |
材料は手持ちのI2Cセンサの関係上、BME280を使用します。筐体はフリスクケースを考えています。そして表示機はOLEDとLCDで迷いましたが、消費電力が少ないLCDを使用して進めていこうと思います。レベル変換器なのですが、今回は裸のLCDを使用するので必要になりそうと思い追加しました。
購入はAmazonで統一したかったのですが、ATtiny85の購入や8文字2行LCDなど秋月の方が安く購入できるところに関しては分けています。秋月は送料がかかるので他の部品もまとめて購入した方がコスパは良くなるかもしれないので、もし参考に作成する際はご検討をお願いします。
2020/1/18 : CR2032(3V)の昇圧用でDC-DCコンバータを追加
2020/1/18 : BME280の測定時に光るインジケータLED追加
機能
- 温度・湿度・気圧が測定できる
- 表示機に値を表示できる
- タクトスイッチで画面の切り替えが出来る(+チャタリング防止)
- 主電源のON/OFFが出来る
- 一定時間経過後スリープが出来る。
動作フロー(仮)
基本的はフローは上記の通りです。センサの読み取りはポーリングでの連続読み取りでは無くタイマー割り込みにより定期的にフラグを立てて単発読み取りを行おうと考えます(消費電力低減のため)。割り込み間隔は実装時調整します。
また、画面切り替えはタクトスイッチの押下毎にフラグをインクリメントさせていきメインループ内のスイッチで分岐しようと思います。フロー内にはありませんがチャタリング防止関数も入れます。
スリープ機能については画面切り替え毎にカウントリセット&スタートを行い一定カウント後Deepsleepに移行しようと思います。復帰は画面切り替えの割り込みスイッチが押されたらです。
ハード
小型化を第一に考えてフリスクケースを筐体に採用します。難しそうだったら秋月あたりに売っている樹脂ケースを使うかもしれません。
駆動電源はCR2023のコイン電池(3V)です。I2Cセンサ類の動作電圧が3.3Vのような気がしますが一旦これで進めます。難しい場合は小型の昇圧回路も検討しようかな、、、
おわりに
今回は構想編なのでこれくらいで終わりにしたいと思います。
フローチャートにもある様にシンプルで省電力がコンセプトの設計になります。
また、ATtiny85のROMは8kBなのでライブラリをマシマシのコードは難しいかもしれないので、ライブラリはWire.h(ATtiny85の場合はTinyWireM.h)のみの使用で作成していきたいと思います。
次はArduinoでの動作確認で会いましょう。
ではでは~
次回記事
コメント