我通过 1uF 电容器将光敏电阻连接到我的 Raspberry PI,并运行简单的程序来检查值。它主要是我拥有的其他程序的合并脚本,所以它可能是错误的。我是这方面的新手。我设置了2个变量。如果光敏电阻的值低于 1000 则为 True,否则为 False。我不想控制我的 LED 的槽 JSON 命令到 Openhab 服务器。当光敏电阻为 True 时,它向 Openhab 发送命令“ON”,否则它发送命令“OFF”。一切都很好,除了一件事。使用每个测量光敏电阻值的脚本向 Openhab 发送命令。我希望它仅在检测到低于 1000 的值(真)时才第一次发送命令“ON”,然后留在那里,当光敏电阻输出高于 1000(假)时,不向 Openhab 发送命令,以此类推。这里的主要目标是在主照明打开时更改 LED 的颜色,并在主照明关闭时将其更改回来。我希望我解释得很好。请帮忙。
我目前的程序:
#!/usr/local/bin/python
import RPi.GPIO as GPIO, time
import urllib
import urllib2
import requests
GPIO.setmode(GPIO.BCM)
def RCtime (PiPin):
measurement = 0
# Discharge capacitor
GPIO.setup(PiPin, GPIO.OUT)
GPIO.output(PiPin, GPIO.LOW)
time.sleep(0.1)
GPIO.setup(PiPin, GPIO.IN)
# Count loops until voltage across
# capacitor reads high on GPIO
while (GPIO.input(PiPin) == GPIO.LOW):
measurement += 1
return measurement
def LIGHTcheck():
if RCtime(27)<1000:
LIGHT = True
print LIGHT
return LIGHT
if RCtime(27)>1000:
LIGHT = False
print LIGHT
return LIGHT
def LightON():
url = 'http://openhab-server:8080/CMD?switch2=ON'
postdata = {"ON"}
print(postdata)
resp = requests.get(url=url)
def LightOFF():
url = 'http://openhab-server:8080/CMD?switch2=OFF'
postdata = {"OFF"}
print(postdata)
resp = requests.get(url=url)
while True:
if LIGHTcheck() == True:
LightON()
elif LIGHTcheck() == False:
LightOFF()