Я работаю над raspberrypi, я хочу помещать этот код в crontab, который будет выполняться каждую минуту, он должен понизить gpio с 19:00 до 19: minute_max (и эта часть работает), затем он должен отправить мне электронное письмо когда это меняет состояние GPIO. Я могу отправить мне письмо, когда оно установлено на LOW. С этим кодом:
from time import localtime
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.OUT)
ore = 19
minuti_max=30
minuti = range(0,minuti_max)
if (localtime()[3]==ore) and (localtime()[4] in minuti):
if GPIO.input(26)==1:
GPIO.output(26, GPIO.LOW)
#send_mail_to_me("ON","yeye")
print("on")
else:
GPIO.output(26, GPIO.HIGH)
Если я добавлю функцию send_mail_to_me в оператор else, он будет отправлять ее каждую минуту. Но я хочу, чтобы он отправлялся только тогда, когда он впервые установил высокий уровень gpio.
Я попробовал следующее, но это не работает:
from time import localtime
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.OUT)
ore = 19
minuti_max=30
minuti = range(0,minuti_max)
if (localtime()[3]==ore) and (localtime()[4] in minuti):
if GPIO.input(26)==1:
GPIO.output(26, GPIO.LOW)
#send_mail_to_me("ON","yeye")
print("on")
flag=1
elif (localtime()[4] not in minuti) and flag==1:
GPIO.output(26, GPIO.HIGH)
#send_mail_to_me("OFF","yoyo")
print("off")
flag=0
else:
GPIO.output(26, GPIO.HIGH)