我正在构建一个带有树莓派https://www.raspberrypi.org/learning/parent-detector/worksheet/的运动检测安全摄像头。
代码工作正常,但我希望设备在启动时运行我的python代码,我希望它在我按某个键时关闭程序。截至目前,程序运行但不会离开循环,所以我无法进入树莓派桌面(我的解决方法是关闭设备,手动取下相机,重新打开设备,到得到一个错误,因为没有检测到相机将代码退出桌面......我知道效率非常低!)
本质上,这段代码是为了从连接到显示器,键盘等的pi运行程序而编写的。我想把它插在某个地方并让它装备相机。然后在我回到家里(工作,休假等)之后,我想插入一个键盘,按一个键退出程序,关闭安全,并能够在我将它连接到监视器时查看任何安全事件。 / p>
脚本代码:
from gpiozero import MotionSensor
from picamera import PiCamera
from datetime import datetime
camera = PiCamera()
pir = MotionSensor(4)
while True:
pir.wait_for_motion()
filename = datetime.now().strftime("%Y-%m-%d_%H.%M.%S.h264")
camera.start_recording(filename)
pir.wait_for_no_motion()
camera.stop_recording()
答案 0 :(得分:0)
您可以在运行脚本的命令行窗口中使用Ctrl + C停止程序执行。
如果您还想进行一些处理,请将while
循环包装在try
块中:
try:
while True:
pir.wait_for_motion()
filename = datetime.now().strftime("%Y-%m-%d_%H.%M.%S.h264")
camera.start_recording(filename)
pir.wait_for_no_motion()
camera.stop_recording()
except KeyboardInterrupt:
pass
# Continue your code here
如果您想选择停止程序的键(Ctrl + C除外)和/或当您从操作系统的任何位置按键时停止,那么我建议使用{{3库。