Sound Pressure Level Bricklet¶
Sound Pressure Bricklet
Misst den Schalldruckpegel zwischen 30 dB uns 120 dB mit einer Genauigkeit von 5 dB.
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
soundPressureBrickletUID = "xxx" # UID aus dem Brick Viewer
# Import der wichtigen Funktionen
from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_sound_pressure_level import BrickletSoundPressureLevel
# Verbindung herstellen
ipcon = IPConnection() # Create IP connection
soundPressureBricklet = BrickletSoundPressureLevel(soundPressureBrickletUID, ipcon)
ipcon.connect(HOST, PORT) # Connect to brickd
Funktionen im Hauptprogramm¶
Funktionen des Sound-Pressure-Bricklet
decibel = soundPressureBricklet.get_decibel()
Callback-Funktionen¶
Callback-Funktion registrieren
soundPressureBricklet.register_callback(soundPressureBricklet.CALLBACK_DECIBEL, soundCallback)
soundCallback
der Name der gewünschten Funktion ist, welche aufgerufen werden soll. soundCallback
sollte dann so definiert werden: def soundCallback(decibel):
da der jeweilige Messwert als decibel
übergeben wird.
Callback-Funktion konfigurieren
soundPressureBricklet.set_decibel_callback_configuration(period, value_has_to_change, option, min, max)
period
: Wert in ms in der der Schallpegel überprüft werden soll. Standardwert 0.value_has_to_change
: True oder False. Falls True, dann wird die Callbackfunktion nur aufgerufen, wenn sich der Pegel geändert hat. Standardwert Falseoption
: "x", "o", "i", "<" oder ">". Standardwert: "x"- "x" Threshold ist abgeschaltet
- "o" Threshold wird ausgelöst, wenn der Wert außerhalb der Min und Max Werte sind
- "i" Threshold wird ausgelöst, wenn der Wert innerhalb der Min und Max Werte sind
- "<" Threshold wird ausgelöst, wenn der Wert kleiner ist wie der Min Wert (Max wird ignoriert)
- ">" Threshold wird ausgelöst, wenn der Wert größer ist wie der Min Wert (Max wird ignoriert)
min
: Schallpegel in 1/10 dB. Standardwert: 0max
: Schallpegel in 1/10 dB. Standardwert: 0
Anbei ein paar Beispiele für mögliche Konfigurationen:
soundPressureBricklet.set_decibel_callback_configuration(1000, False, "x", 0, 0)
ruft die Callback-Funktion jede Sekunde auf.soundPressureBricklet.set_decibel_callback_configuration(1000, True, "x", 0, 0)
ruft die Callback-Funktion jede Sekunde auf. Aber nur wenn sich der Schallpegel zwischenzeitlich geändert hat.soundPressureBricklet.set_decibel_callback_configuration(1000, False, ">", 80*10, 0)
überprüft den Pegel jede Sekunde und ruft die Callback-Funktion auf, falls der Pegel von 80 dB überschritten hat.
Beispiel für soundCallback
def soundCallback(decibel):
print("Decibel: " + str(decibel/10.0) + " dB(A)")