ペルチェ素子による水耕栽培の冷却装置を自作しているが、温度監視にNTCサーミスタを使おうと試行錯誤中。

ユニバーサル基板に4つサーミスタを取り付け、ベランダ置き用に購入したESP8266に取り付けようとするが、ADCピンが1つしかなかった。

そこでCD74HC4067マルチプレクサというものを購入。なぜこれを買う選択をしたのかはあまり覚えていない。
かなり調べこの接続で合っているはずだと確信していたが、なぜか読み取ることが出来なかった。温度が常に一定になってしまう。しっかり4つ表示されているのに。全て同じ温度のまま。

そのためADCを複数使えるESP32 S2 miniを使用。これでうまく行くはずだったが何かが変だ。室温が500度とか出ている。原因はシンプルだった。ハンダ付けが甘かった。GNDがしっかり付いていなかった。そもそも、S2 miniは、両脇に2列づつピンヘッダーが付くのでハンダ付けが狭いし多いしで、ハンダが甘い部分が多々あった。そのせいで不具合が発生し時間をとられるぐらいなら、しっかり丁寧にやっておくべきだよねと改めて思う。
これで冷却装置の温度監視はどうにかなったのだが、ESP8266とマルチプレクサの組み合わせがうまくいかなかったので、原因を調べる。

まず、ESP8266とNTCサーミスタ1つでの動作確認。温度が一定のままになってしまう。検索するとESP8266のADCは1.0Vまでとのこと。固定抵抗を大きくすることで、ADCに入力される電圧を下げられるようだ。

通常は10kΩのサーミスタと10kΩの固定抵抗を使います。25℃の時10kΩとなり、このときのADCは、1.65Vと計算できる。固定抵抗を100kΩにすると、約0.3Vとなる。まだ勉強不足なので、はかれる最大最小がどう変わってしまうかわかっていませんが、なんとか使えるようになった。
というか、そもそもちゃんとログを見ていなかった。ログには1.0000Vと出ていたのだから。他の不具合の時も、ログには入力された電圧が表示されていたはずだか、計算後の温度しか見ていなかった。
あと、電圧分圧の公式で分ったのだが、3.3VとGNDの間にサーミスタと固定抵抗を入れ、サーミスタと固定抵抗の間からADCに接続する分圧回路において、サーミスタと固定抵抗の位置はどちらでも良いという記述を見たが、今回のように固定抵抗を大きくする場合、電圧は大きく変わってしまう。
もう一度、ESP32にサーミスタを取り付け、抵抗の位置の違いで、ログに違いが出るのか検証してみたい。また、マルチプレクサの再実験もしてみたいし、追加で購入してしまったADS1115 ADC I2C モジュールも実験してみたい。本来はArduinoで楽しむものだろうけど、私はHome Assistantで楽しんでいる。