当我重新启动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)