【发布时间】:2019-02-05 07:22:08
【问题描述】:
我正在尝试使用连接到 Arduino 的 HC12 来实现无线土壤湿度传感器,以发送信号(值:0-100%)然后激活连接到树莓派 3 的继电器,具体取决于具体情况百分比(例如:20% 开,90% 关)。我想出了如何发送值,我可以在 pi 上看到它们,但我无法激活继电器。请帮忙。
这是我正在使用的代码:
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, 1)
ser = serial.Serial ("/dev/ttyS0",9600) #Open port with baud rate
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, 0)
elif received_data >= '90':
GPIO.output(relay_pin, 1)
except KeyboardInterrupt:
pass
GPIO.cleanup()
【问题讨论】:
-
你能分享你试过的代码吗?
-
是的,我刚刚在我的问题上发布了它。
-
您如何区分
100与三个数字 1,0,0 或单个数字 100 或可能是 10 和 0?你如何确保你得到完整的数字,而不仅仅是第一个数字? -
我不知道如何区分诸如'100'%之类的数字,因为我对编码不太熟悉。因此,我不确定是否可以根据 Arduino 发送的模拟数据使继电器工作,是否有可能实现?
标签: python arduino raspberry-pi