ESP8266で温度の測定と保存を行う温度ロガーを作って見る事にしました。
開発環境
開発環境Arduino IDEはOSによりインストールの方法が違って来ます。今回はOSにUbuntuを使用しています。この環境でのインストールはArduinoのInstall(20.04LTS)を参照下さい。
次は書込の準備
ESP8266は開発用PCとシリアルで通信します。RXD,TXDピンはシリアル通信用です。素子へのプログラムに書き込み、またはプログラムの実行は、リセット時のGPIO0,GPIO2,GPIO15の3ピンの状態で決まります。下記は各モードの3ピンの設定条件です。
ESP8266周りの回路を下記の様に設定した。リセットはRSTピンです。ENピンはチップの有効設定(Highなら有効)です。
- プログラムの書き込み
- ResetとModeボタンを同時に押す
- Resetボタンを先に離し、次にModeボタンを離す
- プログラムの実行
- Resetボタンのみ押し、次に離す
- Modeボタンは使用しない
温度センサー
今回は、秋月電子の、”ADT7410使用 高精度・高分解能 I2C・16Bit 温度センサモジュール”を使います。使い方は、”ADT7410を使う”を参照下さい。
回路の設計
部品が揃ったので以下の様な回路を作成しました。下記の条件を満たす様に設計しています。
- 持ち運びを考慮してバッテリー(乾電池)駆動とする。
- 乾電池が1.5Vなので3.3Vを作る必要がある。
- 電池の消費を抑える設計にする。ー>ESP8266の機能 Deepsleepを使用する。
- 電池の消費量が分かる様にする。
- 測定したデータはSIPFFSを使用しESP8266内に保管する。
- ADT7410とのインタフェイス
- I2C。
- IO16
- Deep Sleepモード終了検出端子。RSTと接続
- Tout
- 0から1Vまでの電圧を10ビットでAD変換。電池の残量を測定。
- IO14 AP/Log用スイッチ
- Setupでこの端子を見て、Loggerのモードを判定する。
- IO13 LED
- Modeに合わせて点灯
- 左上(電源部)
- 乾電池と外部電源(3.3V)を3点スイッチで切り替えて使用。
- 開発中は外部電源。測定は乾電池を使用する。
実際の配線とケースへの実装
- 17 x 14 x 4cm の透明なプラスチックの容器です。
- 今は、ADT7410は1個ですが、通信がI2Cなので右側端に端子を追加しています。
- 蓋がついているので外で使用しても大丈夫と期待。
次回は
次回は各素子の使い方とプログラムの説明を行います。