CO2 Bricklet¶
CO2 Bricklet
- Misst CO2 Konzentration von 400 bis 10000 ppm (Teile pro Million)
- Hohe Genauigkeit von ±30 ppm (gesamter Messbereich) und ±3% (Messwert)
- Misst Temperatur und Luftfeuchtigkeit zur Kompensation
- Umgebungsluftdruck kann für zusätzliche Kompensation gesetzt werden
Initialisierung¶
Code um das Bricklet anzusteuern
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Adressierung
# Diese beiden Zeilen nur 1x pro Programm nutzen:
HOST = "localhost"
PORT = 4223
# UID des Bricklets
co2BrickletUID = "xxx" # UID aus dem Brick Viewer
# Import der wichtigen Funktionen
from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_co2_v2 import BrickletCO2V2
# Verbindung herstellen
ipcon = IPConnection() # Create IP connection
co2Bricklet = BrickletCO2V2(co2BrickletUIDs, ipcon)
ipcon.connect(HOST, PORT) # Connect to brickd
Funktionen im Hauptprogramm¶
Funktionen des Sound-Pressure-Bricklet
co2_concentration, temperature, humidity = co2Bricklet.get_all_values()
print("CO2 Concentration: " + str(co2_concentration) + " ppm")
print("Temperature: " + str(temperature/100.0) + " °C")
print("Humidity: " + str(humidity/100.0) + " %RH")
Callback-Funktionen¶
Callback-Funktion registrieren
Eine Callback-Funktion ist eine Funktion, welche unter bestimmten Umständen aufgerufen werden soll. Wir nennen die Funktion hier co2Callback
. Die Callbackfunktion muss zuerst registriert werden:
co2Bricklet.register_callback(co2.CALLBACK_ALL_VALUES, co2Callback)
Danach kann man genauer definieren, wann die Callbackfunktion co2Callback
aufgerufen werden soll:
Hiermit wird die Callback-Funktion jede Sekunde (1000 ms) aufgerufen, falls sich der CO2-Messwert im Vergleich zur vorherigen Sekunde geändert hat:
co2Bricklet.set_co2_concentration_callback_configuration(1000, True, "x", 0, 0)
Hiermit jede Sekunde (1000 ms) überprüft, ob der Messwert eine Grenze von 500 ppm unterschreitet. Falls dies so ist, wird die Callbackfunktion co2Callback
aufgerufen:
co2Bricklet.set_co2_concentration_callback_configuration(1000, False, "<", 500, 0)
Hiermit jede Sekunde (1000 ms) überprüft, ob der Messwert eine Grenze von 500 ppm überschritten hat. Falls dies so ist, wird die Callbackfunktion co2Callback
aufgerufen:
co2Bricklet.set_co2_concentration_callback_configuration(1000, False, ">", 0, 500)
Mehr Konfigurationsmöglichkeiten können auf Tinkerforge nachgeschaut werden
Beispiel für co2Callback
def co2Callback(co2_concentration, temperature, humidity):
print("CO2 Concentration: " + str(co2_concentration) + " ppm")
print("Temperature: " + str(temperature/100.0) + " °C")
print("Humidity: " + str(humidity/100.0) + " %RH")
print("")