Я делаю код для автоматической c системы полива для своих растений, используя pyFirmata на Arduino, но я всегда получаю эту ошибку, когда пытаюсь запустить ее
Traceback (most recent call last):
File "C:/Users/wenbi/PycharmProjects/Helen/Automated watefring.py", line 43, in <module>
if 0.5<=val<=0.7:
TypeError: '<=' not supported between instances of 'float' and 'NoneType'
Когда я получил два ввода значения "val" из показаний датчика влажности почвы, подключенного к A0 на моей Arduino, и "waterlvl" из датчика воды, подключенного к D2 для печати, в результате вместо значения будет выдано только «None».
Я не знаю, что не так с моим кодом, так как Pycharm не обнаруживает никаких проблем.
Вот мой код для справки:
import time
from pyfirmata import Arduino, util
board = Arduino('COM4')
iterator = util.Iterator(board)
iterator.start()
LED5 = board.get_pin('d:5:o')
LED6 = board.get_pin('d:6:o')
LED7 = board.get_pin('d:7:o')
buzz_pin = board.get_pin('d:10:o')
waterdetect = board.get_pin('d:2:i')
soildetect = board.get_pin('a:0:i')
waterpump = board.get_pin('d:8:s')
def blinkLED6():
for s in range(1):
LED6.write(1)
time.sleep(0.25)
LED6.write(0)
time.sleep(0.25)
def buzzalarm():
for f in range(1):
buzz_pin.write(1)
time.sleep(0.25)
buzz_pin.write(0)
time.sleep(0.25)
while True:
val = soildetect.read()
waterlvl = waterdetect.read()
if 0.5 <= val <= 0.7:
LED5.write(1)
if waterdetect == "True":
buzzalarm()
elif waterdetect == "False":
waterpump.write(1)
LED5.write(0)
blinkLED6()
if val <= 0.25:
waterpump.write(0)
LED7.write(1)
if val < 0.5:
continue
Итак, могу я спросить, как сделать Я решаю это?