2016-12-28 94 views
0

我正在使用Arduino和Python 3 Tkinter構建一個恆溫器GUI。我有多個掛鉤到Arduino卡的ds18b20傳感器。我可以讓所有的傳感器在一個tkinter標籤中讀取,但是,我需要只讀一個傳感器並將其放置在標籤中,然後讀取第二個傳感器並將其放置在不同的標籤中。我無法弄清楚如何分別讀取每個傳感器。任何幫助是極大的讚賞。Pyserial與Arduino和多個ds18b20

回答

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) { ...