前提・実現したいこと
モーションセンサーを用いて、動作を検知したらターミナルにその旨を出力したい。
使用しているもの
・Raspberry Pi ZERO WH
・モーションセンサーHC-SR501
今回の質問では、タイトルの通りプログラム中の
Python
1wait_for_motion() 2wait_for_no_motion()
の動作や使い方をご教授いただきたいです。
試みている内容は参考程度になれば幸いです。
発生している問題・エラーメッセージ
プログラムを実行し、待機状態となります。
センサーの前で手を動かすと、ターミナルに検知したことが出力されます。
ここまでは正しくできているような気がしますが、そのあとセンサーの前で何も動かさない状態でも一定間隔で検知したことが出力され続けます。
(配線等は適切にできているものと思われます。またセンサーは複数個で試し、全て同じ結果です)
→プログラム中のどこかに間違いがあるのでは、と考えました。
該当のソースコード
Python
1from gpiozero import LED 2from gpiozero import MotionSensor 3 4green_led = LED(17) 5pir = MotionSensor(4) 6toggle_pin = 22 7green_led.off() 8counter = 0 9 10def main_loop(): 11 global counter 12 while True: 13 pir.wait_for_motion() 14 print("Motion Detected") 15 green_led.on() 16 counter = counter + 1 17 print(counter) 18 pir.wait_for_no_motion() 19 green_led.off() 20 print("Motion Stopped") 21 22if __name__ == '__main__': 23 main_loop()
試したこと
死ぬほどググりましたが、検索する力と英語力が及ばず目当ての情報にたどり着けませんでした。(リファレンスなど)
補足情報(FW/ツールのバージョンなど)
こちらの動画を参考に(完全再現)しています
version:Python 2.7.16
回答1件
あなたの回答
tips
プレビュー