こんにちは、少し問題があります。Raspberry Pi で小さなプロジェクトを作成しました。
プロジェクトについて : ドアに接続されたスイッチがあり、ドアが開いているときにスイッチが押され、Raspberry Pi が日付と時刻をファイルに書き込みますが、ドアがまだ開いている場合は 2 秒ごとに書き込みます。その時間を変更する方法を見つけましたが、スリープ時間を長くすると、ドアが閉じていてもスリープ時間が経過していない場合、ドアを再び開くことができ、ファイルに書き込まれません。これが私のコードです。ドアの開閉を確認するために、2 つの LED が接続されています。
#!/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()
基本的に、コードは回路が閉じているかどうかを毎秒チェックします。そうでない場合は、日付と時刻を含む新しいテキストファイルを毎秒書き込み、そうでない場合はチェックを続けます。必要なのは、ドアが開いた日時をファイルに書き込み、ドアが閉まるのを待つことです。