MySQL und Python: Unterschied zwischen den Versionen

Aus CyberWiki
Zur Navigation springen Zur Suche springen
Zeile 15: Zeile 15:
Für die Speicherung der Sensorwerte benötigen wir zwei Tabellen. In die erste (werte) schreiben wir die 5-Minuten-Daten der Sensoren und in der zweiten (hochtief) sollen die Maxima bzw. Minima Platz finden. Die Tabellen haben folgenden Aufbau:<br />
Für die Speicherung der Sensorwerte benötigen wir zwei Tabellen. In die erste (werte) schreiben wir die 5-Minuten-Daten der Sensoren und in der zweiten (hochtief) sollen die Maxima bzw. Minima Platz finden. Die Tabellen haben folgenden Aufbau:<br />
'''Tabelle: werte'''
'''Tabelle: werte'''
  timestamp JJMMTTHHMM
  timestamp JJMMTTHHMM CHAR(10)
  temp1    -99.9      (Temperatur 1 C)
  temp1    -99.9      DECIMAL(2,1)  (Temperatur 1 C)
  temp2    -99.9      (Temperatur 2 C)
  temp2    -99.9      DECIMAL(2,1)  (Temperatur 2 C)
  hum1      999.9      (Luftfeuchtigkeit 1 %)
  hum1      999.9      DECIMAL(3,1)  (Luftfeuchtigkeit 1 %)
  hum2      999.9      (Luftfeuchtigkeit 2 %)
  hum2      999.9      DECIMAL(3,1)  (Luftfeuchtigkeit 2 %)
  hpa      9999.9    (Luftdruck hpa)
  hpa      9999.9    DECIMAL(4,1)  (Luftdruck hpa)
'''Tabelle: hochtief'''
'''Tabelle: hochtief'''
  timestamp JJMMTT
  timestamp JJMMTT     CHAR(6)
  temp1h    -99.9      (hoch Temperatur 1 C)
  temp1h    -99.9      DECIMAL(2,1)  (hoch Temperatur 1 C)
  temp1t    -99.9      (tief Temperatur 1 C)
  temp1t    -99.9      DECIMAL(2,1)  (tief Temperatur 1 C)
  temp2h    -99.9      (hoch Temperatur 2 C)
  temp2h    -99.9      DECIMAL(2,1)  (hoch Temperatur 2 C)
  temp2t    -99.9      (tief Temperatur 2 C)
  temp2t    -99.9      DECIMAL(2,1)  (tief Temperatur 2 C)
  hum1h    999.9      (hoch Luftfeuchtigkeit 1 %)
  hum1h    999.9      DECIMAL(3,1)  (hoch Luftfeuchtigkeit 1 %)
  hum1t    999.9      (tief Luftfeuchtigkeit 1 %)
  hum1t    999.9      DECIMAL(3,1)  (tief Luftfeuchtigkeit 1 %)
  hum2h    999.9      (hoch Luftfeuchtigkeit 2 %)
  hum2h    999.9      DECIMAL(3,1)  (hoch Luftfeuchtigkeit 2 %)
  hum2t    999.9      (tief Luftfeuchtigkeit 2 %)
  hum2t    999.9      DECIMAL(3,1)  (tief Luftfeuchtigkeit 2 %)
  hpah      9999.9    (hoch Luftdruck hpa)
  hpah      9999.9    DECIMAL(4,1)  (hoch Luftdruck hpa)
  hpat      9999.9    (tief Luftdruck hpa)
  hpat      9999.9    DECIMAL(4,1)  (tief Luftdruck hpa)
Diese Tabelle beinhaltet folgende Datensätze:
Diese Tabelle beinhaltet Datensätze mit folgenden Werten in timestamp:
  JJ9999 - Jahres-Hoch-Tief-Werte
  JJ9999 - Jahres-Hoch-Tief-Werte
  JJMM99 - Monats-Hoch-Tief-Werte
  JJMM99 - Monats-Hoch-Tief-Werte

Version vom 2. Juli 2017, 16:30 Uhr

MySQL installieren und Datenbank anlegen

Zuerst müssen wir den MySQL Server und die Python-Module für den Datenbankzugriff installieren.

sudo apt-get install mysql-server python-mysqldb

Danach legen wir eine Datenbank sensor an:

$ mysql -u root -p
Enter password:
mysql> CREATE DATABASE sensor;
mysql> USE sensor;

Jetzt legen wir einen User account für diese Datenbank an und vergeben die Zugriffsrecht. password ist unser gewünschtes Passwort.

mysql> CREATE USER 'pi'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON sensor.* TO 'pi'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

Tabellen definieren

Für die Speicherung der Sensorwerte benötigen wir zwei Tabellen. In die erste (werte) schreiben wir die 5-Minuten-Daten der Sensoren und in der zweiten (hochtief) sollen die Maxima bzw. Minima Platz finden. Die Tabellen haben folgenden Aufbau:
Tabelle: werte

timestamp JJMMTTHHMM CHAR(10)
temp1     -99.9      DECIMAL(2,1)  (Temperatur 1 C)
temp2     -99.9      DECIMAL(2,1)  (Temperatur 2 C)
hum1      999.9      DECIMAL(3,1)  (Luftfeuchtigkeit 1 %)
hum2      999.9      DECIMAL(3,1)  (Luftfeuchtigkeit 2 %)
hpa       9999.9     DECIMAL(4,1)  (Luftdruck hpa)

Tabelle: hochtief

timestamp JJMMTT     CHAR(6)
temp1h    -99.9      DECIMAL(2,1)  (hoch Temperatur 1 C)
temp1t    -99.9      DECIMAL(2,1)  (tief Temperatur 1 C)
temp2h    -99.9      DECIMAL(2,1)  (hoch Temperatur 2 C)
temp2t    -99.9      DECIMAL(2,1)  (tief Temperatur 2 C)
hum1h     999.9      DECIMAL(3,1)  (hoch Luftfeuchtigkeit 1 %)
hum1t     999.9      DECIMAL(3,1)  (tief Luftfeuchtigkeit 1 %)
hum2h     999.9      DECIMAL(3,1)  (hoch Luftfeuchtigkeit 2 %)
hum2t     999.9      DECIMAL(3,1)  (tief Luftfeuchtigkeit 2 %)
hpah      9999.9     DECIMAL(4,1)  (hoch Luftdruck hpa)
hpat      9999.9     DECIMAL(4,1)  (tief Luftdruck hpa)

Diese Tabelle beinhaltet Datensätze mit folgenden Werten in timestamp:

JJ9999 - Jahres-Hoch-Tief-Werte
JJMM99 - Monats-Hoch-Tief-Werte
JJMMTT - Tages-Hoch-Tief-Werte

Nun steigen wir mit dem neuen User in die Datenbank ein:

mysql -u pi -p