У меня все еще проблемы с кодом, и как только я изменил код на: если int (receive_data) <= 20, появляется сообщение об ошибке.Это модифицированный код: </p>
import RPi.GPIO as GPIO
import smtplib
import time
from time import sleep
import serial
GPIO.setmode(GPIO.BCM) # Set our GPIO numbering to BCM
relay_pin = 16
GPIO.setup(relay_pin, GPIO.OUT)
GPIO.output(relay_pin, GPIO.HIGH)
ser = serial.Serial ("/dev/ttyS0",9600)
try:
while True:
received_data = ser.read() #read serial port
data_left = ser.inWaiting()
received_data += ser.read(data_left)
print (received_data) #print received data
ser.write(received_data) #transmit data serially
if int(received_data) <= 20:
GPIO.output(relay_pin, GPIO.HIGH)
elif int(received_data) >= 90:
GPIO.output(relay_pin, GPIO.LOW)
else:
GPIO.output(relay_pin, GPIO.LOW)
except KeyboardInterrupt:
pass
GPIO.cleanup()
Однако, когда я удаляю "if int (receive_data) <= 20" и оставляю код как: </p>
import RPi.GPIO as GPIO
import smtplib
import time
from time import sleep
import serial
GPIO.setmode(GPIO.BCM) # Set our GPIO numbering to BCM
relay_pin = 16
GPIO.setup(relay_pin, GPIO.OUT)
GPIO.output(relay_pin, GPIO.HIGH)
ser = serial.Serial ("/dev/ttyS0",9600)
try:
while True:
received_data = ser.read() #read serial port
data_left = ser.inWaiting()
received_data += ser.read(data_left)
print (received_data) #print received data
ser.write(received_data) #transmit data serially
if received_data <= 20:
GPIO.output(relay_pin, GPIO.HIGH)
elif received_data >= 90:
GPIO.output(relay_pin, GPIO.LOW)
else:
GPIO.output(relay_pin, GPIO.LOW)
except KeyboardInterrupt:
pass
GPIO.cleanup()
Реле поворачиваетсявключен, но не реагирует на последовательные данные, полученные от Arduino и датчика влажности почвы.Я подумал, может быть, определить последовательные данные от Arduino, чтобы сказать: включите реле при 20% влажности и выключите, когда влажность почвы составляет 90%, и, следовательно, определите значение 20% как «1» или какGPIO.HIGH, чтобы включить реле, или наоборот, но я не знаю, как этого добиться.Любой совет?