Pyserial与Arduino和多个ds18b20

时间:2016-12-28 21:48:38

标签: python arduino pyserial

我正在使用Arduino和Python 3 Tkinter构建一个恒温器GUI。我有多个ds18b20传感器连接到Arduino卡。我可以在一个tkinter标签中读取所有传感器,但是,我需要读取一个传感器并将其放在标签中,然后读取第二个并将其放在不同的标签中等我无法弄清楚如何分别读取每个传感器。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你需要做一个来回的串行对话,其中python代码发送“我想要传感器{1}”。 Arduino代码必须首先确定需要哪个传感器读数,读取相关传感器,将信号转换为degF或degC等等,然后通过串行发回结果,从而对此输入起作用。

然后可以在GUI代码中调用此函数。

Python伪代码:

set up serial connection

def get_val(sensor):
    serial send sensor
    serial get value
    return value

sensors = [1,2,3]

for each in sensors:
    temp = get_val(each)

Arduino伪代码:

SENSOR1_PIN = A4;
SENSOR2_PIN = A3;

setup {
    serial
    pins
}

main {
    get serial char
    if (char==1) {
        value = analog read SENSOR1_PIN
        - do some maths -
        serial send temp
    }
    if (char==2) { ...