#この記事について
人感センサーを使って検知したことをプログラムで出力しようと思います
#環境
・Raspberry Pi zero
・HC-SR501
#実装
###センサの配置
小型マイコンを動かすためにAC電源が一つ必要になるため,図のようにRaspberryPiはAC電源の付近に設置します.RaspberryPiにHC-SR501を接続し,モーション検知ができる状態にします.
###プログラム
sensor.py
from datetime import datetime
import time
import RPi.GPIO as GPIO
#インターバル
INTERVAL = 2
#スリープタイム
SLEEPTIME = 10
#使用するGPIO
GPIO_PIN = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PIN,GPIO.IN)
if __name__ == '__main__':
try:
print("処理キャンセル:CTRL+C")
cnt = 1
while True:
# センサー感知
if(GPIO.input(GPIO_PIN) == GPIO.HIGH):
print(datetime.now().strftime('%Y/%m/%d %H:%M:%S') +
" : " + str("{0:05d}".format(cnt)) + "回目の人感知")
cnt = cnt + 1
time.sleep(SLEEPTIME)
else:
print(GPIO.input(GPIO_PIN))
time.sleep(INTERVAL)
except KeyboardInterrupt:
print("終了処理中...")
finally:
GPIO.cleanup()
print("GPIO clean終了")
Pythonスクリプトを実行して、モーション検知すると、上の図のように出力されます.インターバルを2秒,スリープタイムを10秒に設定することで,一人に対しての検知が重複することを防いでいます.sensor.pyの実行により,人を検知した日時と何回目のカウントなのかを表示することができました.