当我重新启动Raspberry并运行您的代码时,它运行完美。 仅在终止进程或CTRL-C键盘中断并再次运行它之后,才会出现问题/错误。 我认为这与以下事实有关:您没有正确清理就退出程序...如果您用CTRL-C退出正在运行的程序,并且包含以下GPIO.cleanup( )但是...不幸的是,这并不能解决您只是杀死正在运行的程序的情况...在那种情况下,您仍然需要重新启动。 因此,还有改进的空间。 请再次重新插入您自己的文件管理命令。
import RPi.GPIO as GPIO
import sys,os
import time
import datetime
channel = 21
led_output = 18
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(channel, GPIO.IN)
GPIO.setup(led_output, GPIO.OUT)
def callback(channel):
if GPIO.input(channel) == 1:
print ("Water Detected!")
GPIO.output(led_output, GPIO.LOW)
else:
print ("Water Not Detected!")
GPIO.output(led_output, GPIO.HIGH)
GPIO.add_event_detect(channel, GPIO.BOTH, bouncetime=300)
GPIO.add_event_callback(channel, callback)