悩み
前回の記事で試行錯誤をまとめたのですが、2025年2月末時点では液面との距離を直接計測するアプローチから離れることにしました。理由としては下記です。
- 凝った方法でセンサーを動かしてもやはり邪魔であること
- 得られる結果の精度が悪いこと
- 防水性の確保が難しいこと
光センサーで間接的に液量を観測する
次のアプローチは、透明のコップの側面片側から光を当て、その光を逆側の光センサーを用いて拾うことで水面の場所を探るものです。浅い角度で液体へ入った光は屈折または減衰します。液体が入っている箇所は液体が入っていない箇所よりも暗くなるという仕組みです。光センサーをコップの側面へ縦に7つ並べ、その明るさ暗さを評価することで液体の容量を8段階(7種類に加えて、全て暗いというパターンがある)で判別します。上記の図で言えば右側の楕円が光センサーです。上部3つのセンサーには光が届いており明るいと判定されていますのでこの場所には液体がありません。それに対して下部2つのセンサーは暗いと判定されているため液体が存在します。
実際に動かしている様子を動画に撮りました
https://www.youtube.com/watch?v=b04xl3EJ-n8
具体的な実装を説明すると、使用する光センサーはCdSセルです。センサーと言いつつ、電子部品としては抵抗扱いでもあるようなものです。秋月のサイトでももちろん販売されています。
IoTお猪口の内容のマイコンは最初から Seeed Studio XIAO ESP32S3 なのですが、今回の実装でその特徴が活きました。CdSセルを接続するGPIOはアナログ入力を要求します。XIAO ESP32S3 は小型でありながら7本のアナログピンを備えています。それに対して、小型で使い勝手の良い定番のRaspberry Pi Pico W はユーザーが自由に使用できるアナログ入力ピンが3本、未発売のRaspberry Pi Pico2 W も詳細不明ながら4本と少ないのです。
コップの側面から光を当てるのですが、なるべく点でなく面で光って欲しいためフレキシブルLEDを用いています。
受光するCdSセルは環境光の影響を少なくするため、やや奥まった場所に設置しています。この構造にしてもやはり環境光の影響は避け難いため屋外では正しい計測ができないと予想されます。
これからの課題
電気回路として複雑になり、また別件でデータの送信方法も変えたため電池で稼働しなくなりました。ひとまず電池で稼働するように改修し、このデバイス「IoTお猪口」を日々使用できるレベルまで完成度を上げることが目標です。
続報をお楽しみに!

