TigerJython4Kids | ||
HomeTurtlegrafikRobotikDatenbanken |
DU LERNST HIER... |
wie du mit kombinierten Sensoren die Umwelt erfassen kannst. Im Vordergrund stehen dabei die Umgebungstemperatur, der Luftdruck, die Luftfeuchtigkeit und die Qualität der Luft. Solche Sensoren werden heutzutage in einem weiten Bereich industriell und wissenschaftlich eingesetzt, beispielsweise zur Klima- und Wettererfassung, Höhenmessung, Detektion von Schadstoffen in der Luft, u.a. |
ENVIRONMENT SENSOR BME680 (BOSCH) |
Als erstes verwendest du den Sensor BME680, der auf einem Breakout-Board von Adafruit (und anderen) verbaut ist. Er misst Temperatur, Luftfeuchtigkeit, Luftdruck und hat sogar einen VOC (Volatile Organic Compounds) Gassensor.
Dein Testprogramm zeigt Temperatur, Luftfeuchtigkeit und Luftdruck auf dem LED-Display. In der Konsole wird zudem die Höhe über Meer ausgeschrieben, falls du den aktuellen Luftdruck auf Meereshöhe angibst. Es wird das Treibermodul bme680 mit der Klasse BME680 verwendet.
Programm: from oxocard import * from bme680 import BME680 from time import sleep def show(): display(int(temp + 0.5)) sleep(3) display(int(humidity + 0.5)) sleep(3) p = int(pressure + 0.5) display(p // 10) sleep(2) display(p % 10) sleep(3) display("::") sleep(2) bme = BME680() bme.setSeaLevelPressure(1000) while True: temp = bme.getTemperature() pressure = bme.getPressure() humidity = bme.getHumidity() altitude = bme.getAltitude() gas = bme.getGas() print("temperature: %5.2f degC" %temp) print("pressure: %5.2f hPa" %pressure) print("humitidy: %5.2f %%" %humidity) print("altitude: %5.2f m" %altitude) print("gas: %5.0f " %gas) print("---------------------------") show() |
ALTIMETER MPL3114A2 (NXP) |
Das Programm verwendet das Treibermodul mpl13115a2 mit der Klasse MPL3115A2, das mit der Methode getValues(pSeaLevel) den Luftdruck (in kPa), die Höhe über Meer (in m) und die Temperatur (in oC) als Tupel zurückgibt. Man muss als Parameter den aktuellen Luftdruck auf Meereshöhe (in Pascal) übergeben, damit der Chip die Höhe über Meer berechnen kann. Programm: from oxocard import * from mpl3115a2 import MPL3115A2 from time import sleep def show(): alt = int(altitude + 0.5) display(alt // 100) sleep(2) display("%02d" % (alt % 100)) sleep(2) display("::") sleep(2) pSeaLevel = 98300 # pascal, 100000 pa = 1 b = 1000 mbar mpl = MPL3115A2() while True: pressure, altitude, temp = mpl.getValues(pSeaLevel) print("pressure: %5.2f kPa - altitude: %5.2f m \ - temperature: %5.2f degC" %(pressure, altitude, temp)) show() |
LUFTDRUCKSENSOR BMP280 (BOSCH) |
Das Programm verwendet das Treibermodul bmx280 mit den Klassen BME280 und BMP280 und zeigt die Temperatur und den Luftdruck auf dem LED-Display. Programm: from oxocard import * from bmx280 import BMP280 from time import sleep def show(): display(int(temp + 0.5)) sleep(3) p = int(pressure + 0.5) display(p // 10) sleep(2) display(p % 10) sleep(3) display("::") sleep(2) bmp = BMP280() while True: temp, pressure = bmp.getValues() print("Temperature: %5.2f degC - Pressure: %5.2f hPa" %(temp, pressure)) show() |
LUFTDRUCKSENSOR HP206 (SEED) |
Das Programm verwendet das Treibermodul hp206c mit der Klasse HP206C und zeigt die zwei letzten Ziffern der Höhe über Meer auf dem LED-Display an. Hebt man die Oxocard einen Meter an, so macht sich dies bereits bemerkbar. Programm: from oxocard import * from hp206c import HP206C from time import sleep def show(): alt = int(altitude + 0.5) display(alt % 100) sleep(2) display("::") sleep(2) hp = HP206C() while True: temp = hp.readTemperature() pressure = hp.readPressure() altitude = hp.readAltitude() print("Temperature: %5.2f degC - Pressure: %5.2f hPa \ - Altitude %5.2f m" %(temp, pressure, altitude)) show() %(temp, pressure, altitude)) show() |
MERKE DIR... |
Zur Messung von Umweltdaten gibt es kombinierte Sensoren mit einem I2C-Interface, die man mit Python sehr einfach auslesen kann. |
ZUM SELBST LÖSEN |
|