原理实际上很简单,就是人体感应器触发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()