MySQL und Python: Unterschied zwischen den Versionen

Aus CyberWiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
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 CHAR(10)
  timestamp JJMMTTHHMM char(10)
  temp1    -99.9      DECIMAL(2,1)  (Temperatur 1 C)
  temp1    -99.9      decimal(2,1)  (Temperatur 1 C)
  temp2    -99.9      DECIMAL(2,1)  (Temperatur 2 C)
  temp2    -99.9      decimal(2,1)  (Temperatur 2 C)
  hum1      999.9      DECIMAL(3,1)  (Luftfeuchtigkeit 1 %)
  hum1      999.9      decimal(3,1)  (Luftfeuchtigkeit 1 %)
  hum2      999.9      DECIMAL(3,1)  (Luftfeuchtigkeit 2 %)
  hum2      999.9      decimal(3,1)  (Luftfeuchtigkeit 2 %)
  hpa      9999.9    DECIMAL(4,1)  (Luftdruck hpa)
  hpa      9999.9    decimal(4,1)  (Luftdruck hpa)
'''Tabelle: hochtief'''
'''Tabelle: hochtief'''
  timestamp JJMMTT    CHAR(6)
  timestamp JJMMTT    char(6)
  temp1h    -99.9      DECIMAL(2,1)  (hoch Temperatur 1 C)
  temp1h    -99.9      decimal(2,1)  (hoch Temperatur 1 C)
  temp1t    -99.9      DECIMAL(2,1)  (tief Temperatur 1 C)
  temp1t    -99.9      decimal(2,1)  (tief Temperatur 1 C)
  temp2h    -99.9      DECIMAL(2,1)  (hoch Temperatur 2 C)
  temp2h    -99.9      decimal(2,1)  (hoch Temperatur 2 C)
  temp2t    -99.9      DECIMAL(2,1)  (tief Temperatur 2 C)
  temp2t    -99.9      decimal(2,1)  (tief Temperatur 2 C)
  hum1h    999.9      DECIMAL(3,1)  (hoch Luftfeuchtigkeit 1 %)
  hum1h    999.9      decimal(3,1)  (hoch Luftfeuchtigkeit 1 %)
  hum1t    999.9      DECIMAL(3,1)  (tief Luftfeuchtigkeit 1 %)
  hum1t    999.9      decimal(3,1)  (tief Luftfeuchtigkeit 1 %)
  hum2h    999.9      DECIMAL(3,1)  (hoch Luftfeuchtigkeit 2 %)
  hum2h    999.9      decimal(3,1)  (hoch Luftfeuchtigkeit 2 %)
  hum2t    999.9      DECIMAL(3,1)  (tief Luftfeuchtigkeit 2 %)
  hum2t    999.9      decimal(3,1)  (tief Luftfeuchtigkeit 2 %)
  hpah      9999.9    DECIMAL(4,1)  (hoch Luftdruck hpa)
  hpah      9999.9    decimal(4,1)  (hoch Luftdruck hpa)
  hpat      9999.9    DECIMAL(4,1)  (tief Luftdruck hpa)
  hpat      9999.9    decimal(4,1)  (tief Luftdruck hpa)
Diese Tabelle beinhaltet Datensätze mit folgenden Werten in timestamp:
Diese Tabelle beinhaltet Datensätze mit folgenden Werten in timestamp:
  JJ9999 - Jahres-Hoch-Tief-Werte
  JJ9999 - Jahres-Hoch-Tief-Werte

Version vom 2. Juli 2017, 16:36 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