人感センサを使ってみる1
使用部材
・ラズパイ本体
・ブレッドボード
・リード線
・焦電型赤外線センサーモジュール(人感センサモジュール)
akizukidenshi.com
ハード側
電子工作で良く使用される人感センサモジュールを使用しています。この人感センサの電源は5Vで、出力は3Vです。ラズパイのGPIOピンの入力は3Vですのでちょうど良いと思います。
ソフト側
# -*- coding: utf-8 -*- import RPi.GPIO as GPIO from time import sleep import datetime GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.cleanup() print("GPIO clean中...") print("GPIO clean完了") GPIO.setup(17, GPIO.IN) def main(): i = 1 while True: i=human_senser(17,i) ############################################### #関数:human_senser(x,y) #引数:x(入力GPIOピン),y(数値) #戻値:検出あり→y+1,検出なし→y #役割:人感センサ入力GPIOピンをxで指定して、 # 引数yで検出した回数を表示させる為の初期値 # を与えます。従って,yの数値は整数であれば問題 # ありません。 # 関数を使用時は,戻値がありますので、適当に変数 # に代入させてください。 #必要なimportモジュールは、 #import RPi.GPIO as GPIO #from time import sleep #import datetime def human_senser(x,y): sleep(0.5) if(GPIO.input(x) == GPIO.HIGH): print(datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S') + ":" + str("{0:05d}".format(y)) + "回目の人感知") y = y + 1 sleep(10) else: print(GPIO.input(x)) sleep(3) return y ############################################### if __name__ == '__main__': try: main() except KeyboardInterrupt: print("終了処理中...") pass finally: GPIO.cleanup() print("GPIO clean完了")