====== Schallpegelmesser Wensn WS1361 ======
{{user:wellenschrat:messtechnik:wensn-ws1361:ws1361.png?nolink |}} Für den [[https://wikiless.org/wiki/Schallpegelmesser?lang=de|Schallpegelmesser]] [[https://www.wensn.com/?product-e/41.html|Wensn WS1361]] gibt es ein Python-Programm von [[https://github.com/mepster|Michael E. Palmer aka mepster]], mit dem sich die Daten des WS1361 per USB auslesen, speichern und weiterverarbeiten (z.B mit [[https://wikiless.org/wiki/Gnuplot?lang=de|Gnuplot]]) lassen.
Vielleicht ist das Gerät auch mit Sigrok kompatibel? \\
https://sigrok.org/wiki/Tondaj_SL-814 FIXME
===== 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.
#!/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.
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.
#!/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 <
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 =====
#!/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
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 =====
#!/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
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
[[https://github.com/mepster/wensn|Python library to read the Wensn WS1361 Sound Pressure Level Meter over USB (on the Raspberry Pi)]] {{ user:wellenschrat:messtechnik:wensn-ws1361:wensn-master.zip |}}
http://www.sengpielaudio.com/Rechner-dba-spl.htm
https://chemnitzer.linux-tage.de/2013/vortraege/folien/gnuplot_beginners.pdf
===== Kommentare =====
https://t.me/eulenbit/78
~~DISCUSSION~~