NEWS
Schallpegel / Lärm einlesen (per USB?) ?
-
Hallo,
ursprünglich wollte ich den Strassenlärm, im Rahmen einer Bürgerinitiative, mit dem Raspi und Enviroplus board aufzeichnen, wie ich es auch mit den Luftdaten.info Werten mache. Leider komme ich beim Lärmmessen mangels Bezugsquellen nicht weiter. Nun habe ich eine andere Alternative überlegt zu der ich gerne Euer feedback hätte.
Ich habe hier ein geeichtes Schallpegel Messgerät mit dem ich gerne den Strassenlärm aufzeichnen würde.
(Wir vergessen dabei hier mal die Diskussion um "genormte oder anerkannte Messverfahren" weg, das diskutiere ich gerade mit den Zuständigen
Das Gerät wurde mit Win10 Treiber und Software geliefert und per USB Schnittstelle angeschlossen. Läuft unter Win10 ganz OK, die Software ist aber sehr limitiert, kann keine Langzeit Aufzeichnung, z.B. über Tage oder Monate. Der Support hat die Erweiterung des Zeitrahmens abgelehnt.Also dachte ich daran den bestehenden io/Broker und Grafana Charts zu nutzen.
Dabei habe ich aber gleich zwei Hürden. Erstens die Daten (Level und Timestamp) vom USB Port eingelesen und interpretiert zu bekommen und diese dann in der InfluxDB zu speichern.
Ist das Vorhaben eher "mission impossible" für jemanden der keine Ahnung von coding hat, oder gibt es evtl. schon Programme / Adapter die man dazu nutzen könnte.
Andere Ideen sind natürlich auch willkommenAm Raspi wird das Gerät erkannt unter:
Bus 001 Device 009: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]Mit Wireshark hab ich mal auf den USB geschaut, aber wie oben geschrieben - ich hab kein Plan vom Coding und weiss nicht wie komplex so etwas ist.
Bin für jeden Hinweis dankbar, schlimmstenfalls auch für eine klare Absage, dann weiß ich wenigstens woran ich bin.
No. Time Source Destination Protocol Length Info 21 2020-04-15 13:44:57,056351 host 1.20.0 USB 36 GET DESCRIPTOR Request CONFIGURATION 22 2020-04-15 13:44:57,056351 1.20.0 host USB 60 GET DESCRIPTOR Response CONFIGURATION 23 2020-04-15 13:44:57,056351 host 1.20.0 USB 36 SET CONFIGURATION Request 24 2020-04-15 13:44:57,056351 1.20.0 host USB 28 SET CONFIGURATION Response 25 2020-04-15 13:44:57,872515 1.4.2 host USB 32 URB_INTERRUPT in 26 2020-04-15 13:44:57,872564 host 1.4.2 USB 27 URB_INTERRUPT in 27 2020-04-15 13:44:57,888516 1.4.2 host USB 32 URB_INTERRUPT in 28 2020-04-15 13:44:57,888565 host 1.4.2 USB 27 URB_INTERRUPT in 29 2020-04-15 13:44:57,896360 1.4.2 host USB 32 URB_INTERRUPT in 30 2020-04-15 13:44:57,896393 host 1.4.2 USB 27 URB_INTERRUPT in 31 2020-04-15 13:44:57,904625 1.4.2 host USB 32 URB_INTERRUPT in 32 2020-04-15 13:44:57,904660 host 1.4.2 USB 27 URB_INTERRUPT in
Frame 25: 32 bytes on wire (256 bits), 32 bytes captured (256 bits) USB URB [Source: 1.4.2] [Destination: host] USBPcap pseudoheader length: 27 IRP ID: 0xffffc40218861050 IRP USBD_STATUS: USBD_STATUS_SUCCESS (0x00000000) URB Function: URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER (0x0009) IRP information: 0x01, Direction: PDO -> FDO URB bus id: 1 Device address: 4 Endpoint: 0x82, Direction: IN URB transfer type: URB_INTERRUPT (0x01) Packet Data Length: 5 [bInterfaceClass: HID (0x03)] Leftover Capture Data: 010000ff00 Frame 26: 27 bytes on wire (216 bits), 27 bytes captured (216 bits) USB URB [Source: host] [Destination: 1.4.2] USBPcap pseudoheader length: 27 IRP ID: 0xffffc40218861050 IRP USBD_STATUS: USBD_STATUS_SUCCESS (0x00000000) URB Function: URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER (0x0009) IRP information: 0x00, Direction: FDO -> PDO URB bus id: 1 Device address: 4 Endpoint: 0x82, Direction: IN URB transfer type: URB_INTERRUPT (0x01) Packet Data Length: 0 [Response in: 29] [bInterfaceClass: HID (0x03)]
-
Hi Aiouh,
schick uns doch Mal bitte den Output von "lsusb" und den relevanten Part von "dmesg".
Laut deinen Logs könnte sich das Teil als Eingabegerät melden "hid" device.
In dmesg wirst du evtl. evtl ein Hinweis auf ein /dev/hid... finden. Wenn ja, lese Mal mit dem Befehl: "tail -f /dev/hid...".
Gruß Schnup
-
@Schnup89
Mit "HID" ist Nichts zu finden (habe auch weder Maus noch Keyboard angeschlossen, arbeite nur per ssh).pi@iobroker-pi:~ $ lsusb Bus 001 Device 004: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family] Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. SMC9512/9514 USB Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Hoffe das ist der relevante Teil den Du meinst
[ 3.493359] usb 1-1.2: new full-speed USB device number 4 using dwc_otg [ 3.670090] usb 1-1.2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00 [ 3.688489] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 3.705645] usb 1-1.2: Product: CP2102 USB to UART Bridge Controller [ 3.721828] usb 1-1.2: Manufacturer: Silicon Labs [ 3.736249] usb 1-1.2: SerialNumber: 0001 [ 19.238062] usbcore: registered new interface driver usbserial_generic [ 19.238216] usbserial: USB Serial support registered for generic [ 19.323056] usbcore: registered new interface driver cp210x [ 19.373667] usbserial: USB Serial support registered for cp210x [ 19.427159] usb 1-1.2: cp210x converter now attached to ttyUSB0
Hier der gesamte Output von dmesg SL400.txt
-
@Aiouh
Der dmesg Output bring uns schonmal sehr viel weiterDas Gerät meldet sich als serielle Schnittstelle (/dev/ttyUSB0) CP210x Controller und sendet ! hoffentlich ! ungefragt seine Daten darüber.
Wir können das prüfen mit dem Kommando:
tail -f /dev/ttyUSB0 oder sudo tail -f /dev/ttyUSB0
Lass das mal ein paar Minuten laufen evtl. sendet das Gerät nur alle x Minuten die Daten.
-
@Schnup89
Sieht so aus, als ob das Gerät "freiwillig" keine Daten sendet.
Bei Win10 verhält es sich auch so.
Wenn ich die App nicht starte, läuft keine Kommunikation. Die fängt erst nach dem Starten der App an, was dann so aussieht. -
@Aiouh
Das erschwert dann leider doch die Sache.
Wenn es dir die Arbeit wert ist, dann könnte man versuchen mit einem com Port sniffer an das Protokoll zu kommen.https://github.com/Helgayork/serial-port-tools/blob/master/serial-port-monitor.md
- Sniffersoftware installieren (ich hoffe die ist kostenlos)
- im Gerätemanager oder in der Auslese-Software die Nummer des COM-Ports herausfinden
- Auslesevorgang mit der Auslese-Software starten
- In der Sniffersoftware das Sniffen starten und in dem Fenster "Terminal" erscheinen dann hoffentlich Daten/Befehle
Gruß
Schnup -
@Schnup89 Dann werde ich das mal bei Gelegenheit versuchen. Bis hierhin schon mal Vielen Dank, jetzt ruft der Garten und das alkfreie Bierchen...