Python Online | Home   . |
DU LERNST HIER... |
mit dem Temperatur-, Feuchtigkeit- und Luftdrucksensor die Umweltbedingungen erfassen und einfache Regelungssysteme programmieren. Interessant sind Umweltsensoren insbesondere im Zusammenhang mit den IoT-Anwendungen, wie du im Kapitel Internet of Things sehen kannst. |
HOCHPRÄZISE UMWELTSENSOREN |
Da Lego EV3 das I2C-Protokoll für die Kommunikation mit den Sensoren unterstützt, können nicht nur die Lego-Sensoren, sondern auch andere hochpräzise Sensoren an die EV3-Sensorports angeschlossen werden. Die TigerJython-Robotik-Bibliothek unterstützt
|
MUSTERBEISPIELE |
Programm: from grobot import * repeat: temp, humi = sht1.getValues() print(temp) delay(500) Wenn sich der EV3 nicht in der Nähe deines Computers befindet, kannst du die Sensorwerte auf seinem LCD-Display anzeigen. Dazu verwendest du den Befehl Beispiel 2: Temperatur und Feuchtigkeit mit formatierter Ausgabe
Programm: from grobot import * while not button_escape.was_pressed(): temp, humi = sht1.getValues() print("Temp: %6.2f, Humi: %6.2f" % (temp, humi)) delay(500) exit() Beispiel 3: Wetterstation mit BME280 Sensor
Programm: from grobot import * while not button_escape.was_pressed(): v = bme1.getValues() print("t: %6.2f, h: %6.2f, p: %6.2f" % (v[0], v[1], v[2])) delay(500) exit()
Gleich wie beim Sensirion-Sensor, kannst du auch hier nur die einzelnen Sensorwerte anzeigen. Programm: from grobot import * repeat: temp,humi,p = bme1.getValues() print(temp) drawString("Temp: " + str(temp), 2, 2) delay(500)
Beispiel 4: Temperatur-Regelung
Programm: from grobot import * ts = 30 #sollWert repeat: temp, humi = sht1.getValues() print(temp) if temp < ts - 1: setLED(1) elif temp > ts - 1 and temp < ts + 1: setLED(3) elif temp > ts + 1: setLED(0) delay(300) Auf dem gleichen Prinzip werden viele Regelsysteme aufgebaut. Anstelle der LEDs kann z.B. eine Heizung ein- und ausgeschaltet werden. |
MERKE DIR... |
Ist der SHT31 Sensor am Port 1 angeschlossen, liefert der Befehl sht1.getValues() ein Tupel mit zwei Werten (Temperatur in ° C und Luftfeuchtigkeit in %). Der BME280 Sensor liefert mit bme1.getValues() Temperatur, Feuchtigkeit und Luftdruck. Die Sensorwerte können mit dem Befehl print() im Terminalfenster oder mit dem Befehl drawString() auf dem EV3 Display angezeigt werden. Für die Anzeige wird oft eine formatierte Ausgabe verwendet. |
ZUM SELBST LÖSEN |
|
![]() |
![]() |
![]() |