在安全警报模式和铃声模式之间切换

问题描述

我正在尝试创建一个脚本,以便在 RaspBerry pi 3 型号 b+ 上的商店中运行。它应该在 08:00 和 00:00(午夜)之间处于响铃模式,只有在检测到运动时才会播放声音。从 00:00 到 08:00,它应该处于警报模式,当检测到移动时会通过电报向我发送消息。我对 python 和编码很陌生,在这个领域没有背景。我尝试使用 schedule 命令和 pycron,但在这两种情况下它都不会在提示音模式和闹钟模式之间自动切换。

import time
import telepot
from telepot.loop import MessageLoop
import schedule
import sys
import pycron
import multiprocessing
import pygame
pygame.mixer.init()
pygame.mixer.music.load("/home/pi/Desktop/Motion Sensor/ding dong.wav")

import datetime
from gpiozero import MotionSensor
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(5,GPIO.OUT)
pir = MotionSensor(4)
GPIO.output(5,True)

bot = telepot.Bot('***')
chat_id = '***'




def alarm_mode():

    while True:
    
        pir.wait_for_motion()
        print('Motion Detected111')
        GPIO.output(5,False)
        pygame.mixer.music.play()
        bot.sendMessage(chat_id,'Alarm')
        bot.sendMessage(chat_id,str(datetime.datetime.Now))

        pir.wait_for_no_motion()
        GPIO.output(5,True)
        print('Motion Stoped111')







def chime_mode():

    while True:
        
        pir.wait_for_motion()
        print('Motion Detected')
        GPIO.output(5,False)
        pygame.mixer.music.play()

        pir.wait_for_no_motion()
        GPIO.output(5,True)
        print('Motion Stoped')

我尝试这样做,但它没有帮助,因为脚本继续运行

if pycron.is_Now('51 2 * * *'):
    alarm_mode() == True
if pycron.is_Now('52 2 * * *'):
    alarm_mode() == False

提前感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)