Zum Inhalt

CO2 Bricklet

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")
gibt den aktuellen CO2-Belastung in der Einheit ppm (Parts per Million) zurück. Es kann auch die Temperatur und die Luftfeuchtigkeit ausgelesen werden. Jeweils in der Einheit 1/100 °C oder 1/100 %.

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("")