とりあえず数値は読み出せるようになったので、いろいろと改善を加えたくなるわけです。まずは見てくれですね。せっかくLovyanGFXを使っているのに、白字でぽつぽつと字が出ているだけでは面白くもないです。
まあ、とりあえず、ナントカゲリヲンに寄せてみましょうか。
見てくれの調整は今後もちょいちょい継続するとして、集合知によれば、このデバイスは、オンボードのAHT21がENS160の発熱の影響を受けて、温度高め==湿度低め==二酸化炭素濃度違う、という結果を生み出すらしいので、温湿度センサーを別のボードのものに置き換えるのもいいかもしれません。
幸いにも手元には AHT10を搭載したボードがあるのです。ただ、このボード、AHT21とI2Cアドレスが同じなんです。Wire1を使えばいいでしょうか?
どうやら、ESP32-C6はWire1が使えないようで、うんともすんとも言いません。
次に、AHT10ボード上のチップ抵抗を 0x38って書いてある側から0x39って書いてある側に移して、Wireで 0x39を読み出してみます......うん、やっぱり動きません。チャッピーに聞いたら、AHT10は0x38決め打ちで変えられないっていうじゃないですか!じゃあなんでこのボードには思わせぶりな端子とチップ抵抗が載っているんでしょうか?
AHT20/21などを搭載したときのためじゃないかというのがチャッピーの予想ですが、だったらチップ抵抗いらないんじゃないのかなあ?
何にしても、温湿度センサーを変えるなら、全然別のものにするか、I2Cマルチプレクサを使うかするしかなさそうです。
とはいえ、現状でも値は出てきています。それにENS160はNDIRセンサーではないので、もともと値はそれほど精確でもないということですから、換気の目安程度に使うにはこれでもいいのかもしれません。
コメント