注釈
こんにちは、SunFounder Raspberry Pi & Arduino & ESP32愛好者コミュニティへようこそ! Raspberry Pi、Arduino、ESP32について、他の愛好者と一緒に深く学びましょう。
なぜ参加するべきか?
専門家サポート: 購入後の問題や技術的な課題をコミュニティやチームのサポートで解決できます。
学びと共有: ヒントやチュートリアルを交換し、スキルを向上させましょう。
限定プレビュー: 新製品の発表や先行情報をいち早くチェックできます。
特別割引: 最新製品の限定割引をお楽しみいただけます。
お得なプロモーションやプレゼント: プレゼント企画やホリデープロモーションに参加しましょう。
👉 一緒に探求し、創造を始めませんか? [ここ] をクリックして、今すぐ参加しましょう!
2.14 水位の測定
このレッスンでは、 水位センサー を使って、Raspberry Pi Pico 2 Wで水の存在を検出したり、水位を測定する方法を学びます。このセンサーは、降雨検出、水位監視、液体漏れアラートなどのプロジェクトでよく使用されます。
水位センサーの仕組み
水位センサーには、露出した平行の配線がいくつかあり、水滴を検出したり、水の量を測定したりします。水がこれらの配線に接触すると、センサーはアナログ信号を出力します。水が多く接触するほど、出力値が高くなり、この値はRaspberry Pi Pico 2 Wのアナログ-デジタル変換器(ADC)で読み取ることができます。
センサーを水に完全に沈めないでください。露出した配線部分だけが水に接触するようにしてください。
センサーを湿った環境で電源を入れたまま使用すると、プローブが早く腐食する可能性があるため、読み取り時のみセンサーに電源を供給することをお勧めします。
必要な部品
このプロジェクトでは、以下の部品が必要です。
キットを購入するのが便利です。こちらから購入できます:
名前 |
このキットに含まれるアイテム |
リンク |
|---|---|---|
Pico 2 W スターターキット |
450以上 |
また、以下のリンクから部品を個別に購入することもできます。
SN |
部品 |
数量 |
リンク |
|---|---|---|---|
1 |
1 |
||
2 |
マイクロUSBケーブル |
1 |
|
3 |
1 |
||
4 |
数本 |
||
5 |
1 |
回路図

配線

コードの記述
水位センサーからアナログ値を読み取ってコンソールに表示する簡単なMicroPythonプログラムを作成しましょう。水位センサーが水に沈むにつれて、GP28で読み取られる値が増加します。
注釈
2.14_feel_the_water_level.pyをpico-2w-kit-main/micropythonフォルダから開くか、コードをThonnyにコピーして「実行」ボタンをクリックするか、F5キーを押してください。正しいインタプリタ(MicroPython(Raspberry Pi Pico).COMxx)が選択されていることを確認してください。
import machine
import utime
# GP28でADCを初期化
sensor = machine.ADC(28)
while True:
# センサーからアナログ値を読み取る
value = sensor.read_u16()
print("Water level reading:", value)
utime.sleep(0.2) # コンソールにデータが溢れないように遅延を追加
コードを実行すると、水位センサーをゆっくり水に沈めながら、コンソールに表示される値を確認できます。センサーが多くの水を検出するほど、表示される値は増加します。
さらに学ぶ: 漏水検出にセンサーを使う
水位センサーをデジタルセンサーのように扱い、液体の漏れを検出することもできます。方法は以下の通りです:
基準値を測定する:
最初に、水位センサーを完全に乾燥した環境で読み取ります。この値を基準として記録します。
センサーの読み取り値が基準値を超えると、センサーが水に接触しているとみなされ、漏水の可能性を示唆します。
漏水検出コード:
以下の例では、センサーの読み取り値が基準値を超えるかどうかをチェックします(基準値は環境に応じて設定する必要があります)。
import machine import utime # GP28でADCを初期化 sensor = machine.ADC(28) # 乾燥した状態での基準値を設定(必要に応じて調整) threshold = 30000 while True: # センサーからアナログ値を読み取る value = sensor.read_u16() # 値が基準値を超えた場合、水に接触していると判断 if value > threshold: print("Liquid leakage detected!") utime.sleep(0.2) # 可読性を高めるために遅延を追加
プログラムは、センサーの値が事前に設定した閾値を超えるかどうかを確認します。値が高ければ、水や液体の漏れが発生していることを示すメッセージが表示されます。
実用的な応用
漏水検出: センサーを水道管の近くに設置し、漏れが発生するとアラートを送信します。
水位監視: タンクや容器にセンサーを設置して水位を監視し、アラートやアクションをトリガーします。
降雨検出: センサーを屋外に設置(適切な保護を施して)して、降雨を検出します。
結論
水位センサーは、水位の測定や液体漏れの検出に使用できるシンプルで強力なツールです。Raspberry Pi Pico 2 Wと組み合わせることで、さまざまなアプリケーションに対応するレスポンシブで有用な水検出システムを作成できます。
