gpt4 book ai didi

python - 照明程序 - GPIO on/off on raspberry pi runtimewarning

转载 作者:行者123 更新时间:2023-11-28 19:14:50 31 4
gpt4 key购买 nike

你好,我已经尝试自己解决这个问题一个多星期了,但我认为是时候提出这个问题了。

这是我的第一个 python 程序,我打算用各种功能控制我的水族馆。

我编写的第一个函数是照明时间表(为这篇文章缩短了代码)

代码执行正常,但 GPIO 引脚 2 未正确打开和关闭。而且我还收到“运行时警告此 channel 已在使用中”

请给我一些指导,我确定它很简单而且菜鸟:)

这是我的代码

#Lighting Program 

import RPi.GPIO as GPIO
import datetime

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

#Declare Lighting On/Off Times
on_time_Monday = 600
off_time_Monday = 2330

剩下的日子在这里

#Find out what day of the week it is
day = datetime.datetime.now()
day_of_week = day.isoweekday()

#find out what time it is
Current_time = datetime.datetime.strftime(datetime.datetime.now(),'%H%M')

#convert the time to an int so it can be compared
Current_time_INT = int(Current_time)

#Schedule on / off
if (day_of_week == 1) and (Current_time_INT > on_time_Monday and Current_time_INT < off_time_Monday) :
Light_on_off = 'on'

对周二、周三等使用“elif”

else :
Light_on_off = 'off'

现在启用输出

#CALL OUTPUTS ON / OFF
GPIO.setup(2, GPIO.OUT)

if Light_on_off == 'on':
GPIO.output(2, GPIO.HIGH)
else:
GPIO.output(2, GPIO.LOW)

GPIO.cleanup()

最佳答案

根据我的经验,“runtimewarning this channel is already in use”出现在你之前设置了 GPIO 引脚,但还没有调用 GPIO.cleanup()。我在您的代码中看到了这一点,但我怀疑由于某种原因它实际上并未运行。

有时通过运行 python 解释器来测试终端中的 GPIO 引脚会很有帮助。测试您是否已正确连接电路特别有用。

>>>import RPi.GPIO as GPIO
>>>GPIO.setmode(GPIO.BCM)
>>>GPIO.setwarnings(False)
>>>GPIO.setup(2, GPIO.OUT)
>>>GPIO.output(2, GPIO.HIGH)
>>>GPIO.input(2)
True
>>>GPIO.output(2, GPIO.LOW)
>>>GPIO.input(2)
False
>>>GPIO.cleanup()

如果您的电路接线正确,您应该能够通过这种方式打开和关闭灯。当您调用 GPIO.input(2) 时,解释器会以引脚的当前状态进行响应。这使您能够确保引脚在没有工作的外部电路的情况下工作。一旦您知道它正在工作,您就可以从那里继续。

打开和关闭电灯开关的一种简单方法是使用 cron 作业。我过去曾成功地使用过这种方法。

您可以编写两个简短的脚本,一个打开灯,一个关闭灯。

示例:lightOn.py(将 lightOff.py 的“HIGH”替换为“LOW”)

#!/usr/bin/env python
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(2, GPIO.OUT)
GPIO.output(2, GPIO.HIGH)
GPIO.cleanup()

现在您可以 create a crontab在您想要的时间自动运行脚本。例如:

0 6 * * *  /home/pi/lightOn.py
0 18 * * * /home/pi/lightOff.py

每天早上 6 点开灯,下午 6 点关灯

关于python - 照明程序 - GPIO on/off on raspberry pi runtimewarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34946252/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com