|
Beispiel 1: Temperatur mit SHT31-Sensor
Im ersten einfachen Beispiel wird die Umgebungstemperatur im Terminalfenster angezeigt. Ist der Sensirion SHT31 - Sensor am I2C-Port 1 angeschlossen, liefert der Befehl temp, hume = sht_mini.getValues()
ein Tupel mit Temperatur (Grad C) und Luftfeuchtigkeit (%). Mit print(temp) wird die aktuelle Temperatur, mit print(humi) die Feuchtigkeit und mit print(temp, humi) werden die beiden Werte im Terminalfenster angezeigt. sleep(500) legt die Messperiode von 500 ms fest. Der Sensor reagiert schnell auf die Umgebungsänderungen. Sobald du z. B. den Sensor mit den Fingern berührst, werden höhere Temperatur und Feuchtigkeitswerde angezeigt. Die Programmausführung wird mit Ctrl+C im Terminalfensters beendet.
|
|
|
|
from calliope_mini import *
import sht_mini
while True:
temp, humi = sht_mini.getValues()
print(temp)
sleep(500)
► In Zwischenablage kopieren
Beispiel 2: Temperatur und Feuchtigkeit mit formatierter Ausgabe
Die Sensorwerte sind Dezimalzahlen (float) mit mehreren nachkommastellen. Es ist deshalb vorteilhaft, eine formatierte Ausgabe zu verwenden.
|
|
Der Formatstring enthält Platzhalter, welche für die Ausgabewerte die gesamte Anzahl Zeichen und die Anzahl Dezimalstellen angeben. Werte mit mehreren Dezimalstellen werden automatisch gerundet. Willst du nur die Temperatur mit einer Dezimalstelle anzeigen, schreibst du:
print("Temperatur: %6.2f" % temp).
|
Im nächsten Programm werden die Sensorwerte formatiert mit zwei Dezimalstellen angezeigt.
|
|
|
from calliope_mini import *
import sht_mini
while True:
temp, humi = sht_mini.getValues()
print("Temp: %6.2f, Humi: %6.2f" % (temp, humi))
sleep(200)
► In Zwischenablage kopieren
Beispiel 3: Temperatur-Regelung
Wie funktioniert ein Regelungssysteme? Ein Temperatursensor misst die aktuelle Temperatur (Istwert) und liefert ihn an den Regler. Dieser vergleicht ihn mit dem gewünschten Wert (Sollwert). Ist der aktuelle Wert kleiner als Sollwert, wird die Wärmequelle eingeschaltet, ist er höher als der Sollwert, wird sie ausgeschaltet. In der Regel wird als Sollwert nicht ein einziger Wert, sondern ein Werte-Bereich festgelegt.
In deinem Beispiel programmierst du eine Temperatur-Regelung. Der EV3 ist mit einem Temperatursensor ausgerüstet. Ausserdem brauchst du eine Wärmequelle (Lampe, Föhn, Heizung...), oder kannst du den Sensor vorsichtig mit deinen Fingern berühren. So lange die aktuelle Temperatur tiefer als der Sollwert° ist, werden die roten LEDs eingeschaltet. Liegt der Temperaturwert beim Sollwert (zwischen 26 und 28°), sind die orangen LEDs eingeschaltet. Ist die Temperatur höher als der Sollwert, werden die LEDs ausgeschaltet.
|
from calliope_mini import *
import sht_mini
ts = 27 #sollWert
while True:
temp, humi = sht_mini.getValues()
print(temp)
if temp < ts - 1:
display.show(Image.SAD)
elif temp > ts - 1 and temp < ts + 1:
display.show(Image.HAPPY)
elif temp > ts + 1:
display.show(Image.NO)
sleep(300)
► In Zwischenablage kopieren
Auf dem gleichen Prinzip werden viele Regelsysteme aufgebaut. Anstelle der LEDs kann z.B. eine Heizung ein- und ausgeschaltet werden.
|