====== 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~~