db(A) logger mit dem Raspberry PI

Für unser alljährliches Festival ( ROCKFREUNDE.DE )

wollte ich interessehalber mal eine Auswertung des Geräuschpegels auf unserem Festivalgelände machen.

Daraus entstand dann folgendes Projekt.

Ziel ist das speichern und auswerten von Lautstärkewerten über einen längeren Zeitraum

 

Was wir benötigen:

front_of_raspberry_pi Raspberry PI V3, Netzteil und SD-Karte (min 16GB)

(Amazon: LINK)

51xAKfckmGL Arduino Nano V3.0 ATmega328P-AU MCU

(Amazon: LINK)

31ZbrO5wm7L InLine Modular Kupplung, RJ12 Buchse / Buchse

(Amazon: LINK)

mml0 Messmodul Lärm

(LINK)

 

 

Lautstärke berechnen:

Beim aufbau des Moduls zur Berechnung der Lautstärke werte halten wir uns weitgehend an diese Anleitung (LINK).

  1. Als erstes brechen wir die RJ12 Kupplung in der Mitte durch (das geht relativ einfach)
  2. Die Kable schwarz, blau und weiß schneiden wir kurz
  3. Nun werden die übrigen kabel mit dem Arduino verlötet:
    1. rot -> A0
    2. gelb -> +5V
    3. grün -> Gnd
  4. Die Buchse und den Arduino mit Tape zusammenkleben (um das lösen der verlöteten Kabel zu vermeiden)
  5. Die benötigte Software auf den Arduino spielen (wie das geht wird in der Anleitung oben beschrieben)
    • die in der Anleitung Beschriebene Software für den Arduino muss für unsere Zwecke leicht angepasst werden. Hier ein die angepasste Software (LINK)

Danach sollte der Arduino über den seriellen Port (Baudrate 9600) die aktuelle Lautstärke (dbA) ausgeben.

 

 

Raspberry vorbereiten:

In meinem Bespiel habe ich das Raspberry PI Raspian Jessie benutzt.

  1. Die benötigte Software installieren „apt-get install apache2 php5 mysql-server mysql-client php5-mysql“
  2. Arbeitsverzeichnis anlegen „mkdir /home/pi/dba“
  3. Tmp Verzeichnis erstellen „mkdir /home/pi/dba/tmp“
  4. MYSQL:

Nun erstellen wir eine MYSQL Datenbank in der unsere werte später gespeichert werden.

Zuerst verbinden wir uns zu unserem DBMS (Datenbankmanagementsystem):

mysql -p

Dann erstellen wir eine Datenbank:

CREATE DATABASE test;

Nun wählen wir die Datenbank aus:

USE test; 

Jetzt wird die Tabelle erstellt:

Zum Schluss verlassen wir die MYSQL Session:

\q

 

 

Scripte für das Logging:

Als erstes das Autostart Script „/etc/init.d/auto.sh

Nachdem wir das Script erstell haben muss es Ausführbar gemacht werden und in den Autostart genommen werden,

dies machen wir mit: „chmod 777 /etc/innit.d/auto.sh“ und „insserv /etc/innit.d/auto.sh

 

Dann brauchen wir das Startscript „/home/pi/dba/start

-> sudo chmod 777 /home/pi/dba/start

Das Startscript liest den Arduino in einer Schleife aus und startet die arb.php

 

Die arb.php „/home/pi/dba/arb.php

-> sudo chmod 777 /home/pi/dba/arb.php

In der arb.php werden die ausgelesenen Daten in die MYSQL-Datenbank geschrieben.

 

 

Webseite zum auswerten:

Die index.php „/var/www/html/index.php

hier wird die Auswahl des zu zeigenden tags getroffen 

 

Um die Werte in einem Graph darzustellen erstellen wir zuerst einen Ordner und machen diesen beschreibbar:

sudo mkdir /var/www/html/wdx 

sudo chmod -R 777 /var/www/html/wdx

Außerdem benötigen wir einige Javascripts, diese findet ihr hier (LINK)

Einfach mit tar xvf js.tar entpacken und unter /var/www/html/wdx/js speichern.

Zudem brauchen wir noch das jquerry-Script  welches nach /var/www/html/wdx/ muss.

 

Zum auslesen und aufbereiten der Daten aus der MYSQL-Datenbank brauchen wir die data.php „/var/www/html/wdx/data.php

 

Und zu guter letzt noch die anzeige des Graph index.php „/var/www/html/wdx/index.php“

 

 

Nach einem Neustart des Raspberry PI sollte dann die Aufzeichnung automatisch starten

 

Das Ergebnis könnte etwa so aussehen:

dba