2016-12-28 6 views
0

Ich baue eine Thermostat-GUI mit Arduino und Python 3 Tkinter. Ich habe mehrere ds18b20 Sensoren an eine Arduino-Karte angeschlossen. Ich kann alle Sensoren dazu bringen, in einem Etikett zu lesen, aber ich muss nur einen Sensor lesen und ihn auf ein Etikett legen, dann den zweiten lesen und in ein anderes Etikett einlegen usw. Ich kann nicht herausfinden, wie ich das hinkriege Lesen Sie jeden Sensor separat. Jede Hilfe wird sehr geschätzt.Pyserial mit Arduino und mehrere ds18b20

Antwort

0

Sie müssen eine serielle Hin-und-Her-Konversation durchführen, bei der der Python-Code "I will sensor {1}" sendet. Der Arduino-Code muss auf diesen Eingang wirken, indem er zuerst ermittelt, welcher Sensor gelesen werden soll, den entsprechenden Sensor liest, das Signal in degF oder degC umwandelt und dann das Ergebnis über die serielle Schnittstelle zurücksendet.

Diese Funktion kann dann im GUI-Code aufgerufen werden.

Python Pseudo-Code:

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 Pseudo-Code:

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