Inhaltsverzeichnis
Schallpegelmesser Wensn WS1361
Für den Schallpegelmesser Wensn WS1361 gibt es ein Python-Programm von Michael E. Palmer aka mepster, mit dem sich die Daten des WS1361 per USB auslesen, speichern und weiterverarbeiten (z.B mit Gnuplot) lassen.
Vielleicht ist das Gerät auch mit Sigrok kompatibel?
https://sigrok.org/wiki/Tondaj_SL-814
Rohdaten
Die Software speichert die Rohdaten um Unterverzeichnis /logs/
.
Jede Minute wird eine Datei (2022-12-23-20-02.log) erzeugt, die aus je 60 Zeilen besteht (pro Sekunde ein Eintrag), wobei jede Zeile wie im folgenden Beispiel aufgebaut ist:
41.90,A,slow,2022,12,23,19,52,53
41.90 | dB |
A | Bewertung (A oder C) |
slow | slow, fast |
2022 | Jahr |
12 | Monat |
23 | Tag |
19 | Stunde |
52 | Minute |
53 | Sekunde |
- 41.90
- A
- slow
- 2022
- 12
- 23
- 19
- 52
- 53
Es ist sinnvoll, wenn die einzelnen Dateien zu einer zusammengefügt und entsprechend weiterverarbeitet werden, damit Gnuplot damit umgehen kann.
Dateien zusammanfügen und anpassen
Mit diesem Shellskript (wensn-merge.sh) werden die einzelnen Log-Dateien zu einer (data_raw.dat) zusammengefügt und eine Kopie davon (data.dat) wird dann für Gnuplot angepasst.
- wensn-merge.sh
#!/bin/bash cat *.log > data_raw.dat cp data_raw.dat data.dat sed -i 's/,/./g' data.dat sed -i 's/.A.slow./;/g' data.dat sed -i 's/./-/11' data.dat sed -i 's/./-/14' data.dat sed -i 's/./T/17' data.dat sed -i 's/./:/20' data.dat sed -i 's/./:/23' data.dat
Jede Zeile besteht wird nun nach folgendem Beispiel 41.90;2022-12-23T19:52:53
vorher: 41.90,A,slow,2022,12,23,19,52,53 nachher: 41.90;2022-12-23T19:52:53
Schallpegel;Datum/Zeit
Diagram mit Gnuplot erstellen
Mit folgender Gnuplot-Datei kann mit gnuplot wensn-diagram.plt
ein Diagramm erzeugt werden.
- wensn-diagram.plt
set terminal png font monospace 12 size 1440, 900 set output 'diagramm.png' set datafile separator ";" set title "Schalldruckpegel mit Wensn WS1361" set xdata time # x-Achse-Skalierung Datums/Zeitformat set timefmt '%Y-%m-%dT%H:%M:%S' set format x "%H.%M\n%d.%m" set ytics 1 set xtics autofreq set grid ytics xtics set autoscale y set autoscale x set xlabel 'Zeit/Datum' set yrange [30:] set ylabel 'dB(A)' #set xrange ['2022-12-23T20:00:00':'2022-12-23T22:15:00'] plot "data.dat" using 2:1 title 'Schlafzimmer' with lines
Die Zeile #set xrange ['2022-12-23T20:00:00':'2022-12-23T22:15:00']
sollte, wenn man den x-Achsenabschnitt eingrenzen will, auskommentiert (# entfernen) und entsprechend den eigenen Bedürfnissen angepasst werden.
Es wird pro Sekunde ein Schallpegel $Lp$ des Schallpegelmessgeräts mit der eingestellten Bewertung pro Sekunde gezeichnet. Möchte man z.B. den $Leq$ berechnen, muss dafür ein eigenes Skript erstellt werden. Hinweis: Die Darstellung des energieäquivalenten Dauerschallpegels $Leq$ ist also hiermit nicht möglich.
betaversion
Das Shell-Script wensn-diagram.sh
erledit alles in einem Rutsch. Einfach in das Log-Verzeichnis des Wensn-Python-Programms kopieren und von dort aus mit ./wensn-diagram.sh ausführen.
- wensn-diagram.sh
#!/bin/bash cat *.log > data_raw.dat cp data_raw.dat data.dat sed -i 's/,/./g' data.dat sed -i 's/.A.slow./;/g' data.dat sed -i 's/./-/11' data.dat sed -i 's/./-/14' data.dat sed -i 's/./T/17' data.dat sed -i 's/./:/20' data.dat sed -i 's/./:/23' data.dat gnuplot <<EOT set terminal png font monospace 12 size 1440, 900 set output 'diagramm.png' set datafile separator ";" set title "Schalldruckpegel mit Wensn WS1361" set xdata time # x-Achse-Skalierung Datums/Zeitformat set timefmt '%Y-%m-%dT%H:%M:%S' set format x "%H.%M\n%d.%m" set ytics 1 set xtics autofreq set grid ytics xtics set autoscale y set autoscale x set xlabel 'Zeit/Datum' set yrange [30:] set ylabel 'dB(A)' #set xrange ['2022-12-23T20:00:00':'2022-12-23T22:15:00'] plot "data.dat" using 2:1 title 'Schlafzimmer' with lines EOT
Die Zeile #set xrange ['2022-12-23T20:00:00':'2022-12-23T22:15:00']
sollte, wenn man den x-Achsenabschnitt eingrenzen will, auskommentiert (# entfernen) und entsprechend den eigenen Bedürfnissen angepasst werden.
alphaversion 1
- wensndata.sh
#!/bin/bash cat *.log > data_raw.dat cp data_raw.dat data.dat sed -i 's/,A,slow,/;/g' data.dat sed -i 's/,/./g' data.dat sed -i 's/./;/17' data.dat sed -i 's/./:/20' data.dat sed -i 's/./:/23' data.dat
- wensnplot.plt
set datafile separator ";" set title "Messwerte" set xdata time # x-Achse-Skalierung Datums/Zeitformat set timefmt "%H:%M:%S" # Formatierung Datums-/Zeitangaben set format x "%H:%M" # Format für die Achsenbeschriftung set yrange [0: ] # y-Achse beginn bei Null, Obergrenze automatisch set autoscale set xlabel "Zeit" set ylabel "dB(A)" plot "data.dat" using 3:1 with lines linewidth 0.25
Alphaversion 2
- wensndata.sh
#!/bin/bash cat *.log > data_raw.dat cp data_raw.dat data.dat sed -i 's/,/./g' data.dat sed -i 's/.A.slow./;/g' data.dat sed -i 's/./-/11' data.dat sed -i 's/./-/14' data.dat sed -i 's/./T/17' data.dat sed -i 's/./:/20' data.dat sed -i 's/./:/23' data.dat
- wensnplot.plt
set terminal png font monospace 12 size 1200, 720 set output 'diagramm.png' set datafile separator ";" set title "Schalldruckpegel mit Wensn WS1361" set xdata time # x-Achse-Skalierung Datums/Zeitformat set timefmt '%Y-%m-%dT%H:%M:%S' set format x "%H.%M\n%d.%m" set ytics 1 set xtics autofreq set grid ytics xtics set autoscale y set autoscale x set xrange ['2022-12-23T20:00:00':'2022-12-23T22:15:00'] set xlabel 'Zeit/Datum' set yrange [30:] set ylabel 'dB(A)' plot "data.dat" using 2:1 title 'Schlafzimmer' with lines
Quellen und Links
https://sigrok.org/wiki/Sound_level_meter_comparison
Python library to read the Wensn WS1361 Sound Pressure Level Meter over USB (on the Raspberry Pi) wensn-master.zip
http://www.sengpielaudio.com/Rechner-dba-spl.htm
https://chemnitzer.linux-tage.de/2013/vortraege/folien/gnuplot_beginners.pdf
Diskussion
https://t.me/eulenbit/78