2016-12-28 10 views
0

Я строю графический интерфейс термостата, используя Arduino и Python 3 Tkinter. У меня есть несколько датчиков ds18b20, подключенных к карте Arduino. Я могу заставить все датчики читать на одной метке 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) { ...