Здравствуйте, у меня есть небольшая проблема. Сделал небольшой проект с малиной Pi.
О проекте: Существует переключатель, подключенный к дверям, когда двери открыты, переключатель нажат, а малина Pi записывает дату и время в файл, но он делает это каждые 2 секунды, если двери все еще открыты. Я понял, как изменить это время, но если я поставлю больше времени на спящий режим, тогда, если двери закрыты, но время сна не прошло, двери могут быть снова открыты, и это не будет записано в файл. Вот мой код для этого. У меня есть два светодиода, чтобы видеть, когда двери закрыты и открыты.Python time.sleep script
#!/usr/bin/env python
import time
import RPi.GPIO as GPIO
def main():
GPIO.setmode(GPIO.BCM)
GPIO.setup(23,GPIO.IN)
GPIO.setup(24,GPIO.OUT)
GPIO.setup(25,GPIO.OUT)
GPIO.output(25,True)
while True:
if GPIO.input(23):
GPIO.output(24,True)
GPIO.output(25,False)
f = open('register','a')
t = time.strftime("%Y.%m.%d. - %H:%M:%S")
f.write('Doors opened ')
f.write(t)
f.write('\n')
f.close()
else:
GPIO.output(24,False)
GPIO.output(25,True)
print "button false"
time.sleep(0.1)
GPIO.cleanup()
if __name__=="__main__":
main()
В принципе, код проверяется каждую секунду, если цепь закрыта или нет. Если он не записывает каждый второй новый текстовый файл с датой и временем, если он не продолжает проверку. Мне нужно написать в файл дату и время открытия дверей, а затем ждать закрытия двери.
Независимо от вашей проблемы, я бы рекомендовал не открывать и закрывать файл войти время цикла. Просто откройте файл журнала перед входом в цикл while и закройте его после цикла while. – tssch
Не работал, теперь он ничего не писал в файле во время выполнения этой программы, а когда я нажал Ctrl + c, он написал все результаты в файле, но снова с интервалом в 2 секунды. – jjanko3
@ jjanko3 Причина, по которой все было написано, когда вы уходите программа связана с тем, что буферы Python записываются по умолчанию. О том, как это сделать, см. Здесь: http://docs.python.org/2/library/functions.html#open Извините, я не могу помочь с реальной проблемой! Было бы очень полезно, если бы вы отредактировали вопрос, чтобы объяснить, что представляют собой все цифры '23-25'. – darthbith