原理实际上很简单,就是人体感应器触发raspberry pi播放声音。人体感应器本身会发出数字信号,不是模拟信号。所以raspberry pi也可以用。其次目标是播放一个声音文件(狗叫)。Arduino的话需要加外设。raspberry pi本身就有声音输出。简单起见,直接使用raspberry pi了。目标代码就是python。使用GPIO。
人体红外传感器,感觉精度一般。
import RPi.GPIO as GPIO
import os
from time import sleep
PIN_LED = 22
PIN_PIR = 23
last_status = GPIO.LOW
def loop():
global last_status
current_status = GPIO.input(PIN_PIR)
if current_status == GPIO.HIGH:
GPIO.output(PIN_LED, GPIO.HIGH)
if last_status == GPIO.LOW:
os.system('mpg321 Dog_Woof.mp3')
else:
GPIO.output(PIN_LED, GPIO.LOW)
last_status = current_status
sleep(0.1)
if __name__ == '__main__':
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN_LED, GPIO.OUT)
GPIO.setup(PIN_PIR, GPIO.IN)
try:
while True:
loop()
except KeyboardInterrupt:
GPIO.cleanup()

