当涉及到Python和Raspberry Pi单元时,我是一个完整的菜鸟,但我正在弄清楚它。
我正在编写一个脚本来监控我正在建造的温室的温度。当温度达到28C时,我想让它启动我的继电器,它会打开风扇。在摄氏26度时,继电器应关闭。
构建信息: Raspberry Pi 3 dht11温度- GPIO引脚20单中继板- GPIO引脚21
import RPi.GPIO as GPIO
import dht11
import time
import datetime
from time import sleep
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
# Set relay pins as output
GPIO.setup(21, GPIO.OUT)
# read data using pin 20
instance = dht11.DHT11(pin=20)
while True:
result = instance.read()
tempHI = 28
tempLOW = 26
if result >= tempHI
GPIO.output(21, GPIO.HIGH) #turn GPIO pin 21 on
ifels result < tempLOW
GPIO.output(21, GPIO.LOW) #Turn GPIO pin 21 off
time.sleep(1)我现在遇到的错误是:
python ghouse.py
File "ghouse.py", line 19
result = instance.read()
^
IndentationError: expected an indented block发布于 2016-07-16 22:18:44
对于当前所面临的错误,请记住Python在缩进上严重依赖于。这与使用大括号排列语句的其他语言(如C++和Java )不同。
若要修复代码中的缩进,请参见以下内容:
import RPi.GPIO as GPIO
import dht11
import time
import datetime
from time import sleep
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
# Set relay pins as output
GPIO.setup(21, GPIO.OUT)
# read data using pin 20
instance = dht11.DHT11(pin=20)
while True:
result = instance.read()
tempHI = 28
tempLOW = 26
if result >= tempHI:
GPIO.output(21, GPIO.HIGH) #turn GPIO pin 21 on
ifels result < tempLOW:
GPIO.output(21, GPIO.LOW) #Turn GPIO pin 21 off
time.sleep(1)在任何if、else、elif、for或while语句中,您想要执行的代码必须缩进语句中才能运行,否则将得到当前正在看到的错误。
您的代码中还有一些错误,但我将让您解决其余的错误!欢迎使用Python编程并使用Raspberry Pi。
https://stackoverflow.com/questions/38416049
复制相似问题