こんにちは! けい(Twitter)です。
今回は、ラズパイで雨センサーを使う方法についてまとめていきたいと思います。
目次
必要なもの
ラズパイ本体
今回はラズパイ4で動作させましたが、モデルは何でも大丈夫です。
雨センサー
こちらはHiLetgoの商品なので、信頼性が比較的高いと思います。
しかも、1つあたり200円を切っているので価格的にも安いのでおすすめです。
回路図
雨センサーの出力に、アナログ値(AO)とデジタル値(DO)があります。
今回は、簡単な方のデジタル値をラズパイで読み取っていきたいと思います。
雨を検知したかどうかを判断したいので、デジタル値で充分です。
プログラム
pythonでプログラムを作ります。「water_detect.py」という名前で保存します。
import pigpio
import time
GPIO_IN = 12
pi = pigpio.pi()
pi.set_mode(GPIO_IN, pigpio.INPUT)
pi.set_pull_up_down(GPIO_IN, pigpio.PUD_DOWN)
try:
while True:
DATA = pi.read(GPIO_IN)
print(DATA)
time.sleep(1)
except KeyboardInterrupt:
pi.stop()
pigpioを使うので、このプログラムを実行する前に、ターミナルで次のコマンドを実行します。
$ sudo pigpiod
これでpigpioをインポートできるようになったので、ターミナルから次のようにコマンドを実行し、pythonプログラムを実行できます。
$ python3 water_detect.py
プログラムの概要
上のプログラムは、雨センサーからの値を読み取って、画面に結果を出力するという簡単なものです。
雨が検知されたとき、”0″
雨が検知されていないとき、”1″
が出力されます。
動作結果
センサーに水を垂らして、動作確認をとります。同時に、半固定抵抗の調節も行います。
水がセンサーについていないとき
この状態で、先ほどのプログラムを実行します。
すると、このような結果が出力されます。
“1”が出力されています。
水がセンサーについているとき
この状態で、先ほどのプログラムを実行します。
すると、このような結果が出力されます。
“0”が出力されています。
補足:感度の調節
このセンサーには、雨を感知する感度を調整する機能がついています。
図の赤丸の部分の半固定抵抗を回すことで、感度調整ができます。
センサーに水を垂らしてみて、良い感じに雨を検知できるところに調節してみて下さい。
まとめ
今回は、雨センサーをラズパイで使う方法をまとめました。
アナログ値も使えるのですが、雨を検知したかどうかの情報で充分なので、今のところアナログ値の有効的な使い方が思いつきません。
今度は、雨センサーと連携してラインに雨が降ったことを伝えれくれるシステムを作りたいと思います。
では!