Liebes Forum,
ich bin gerade dabei einen Datenaufzeichnung und Visualisierung mittels eines DHT11 Temperatur und Feuchtesensor zu realisieren.
Das Auslesen der Sensordaten habe ich mit einem kurzen Python Skript realisiert:
#!/usr/bin/python
# coding=utf-8
import Adafruit_DHT
# Sensortyp
# Mögliche Eingaben:
# Adafruit_DHT.DHT11, Adafruit_DHT.DHT22, Adafruit_DHT.AM2302
sensor = Adafruit_DHT.DHT11
# 1-Wire-Pin. BCM-Bezeichnung nutzen!
pin = 4
humidity, temperature = Adafruit_DHT.read(sensor, pin)
if humidity is not None and temperature is not None:
print "Temperatur: %.2f" % temperature
print "Luftfeuchtigkeit: %.2f" % humidity
else:
print "Lesefehler. Erneut versuchen!"
Alles anzeigen
Um die Daten wie von mir geplant in einer RRD Datenbank zu speichern- und diese dann als Graphik darstellen zu können speichere ich diese weiters in einer txt Datei und extrahiere die von mir benötigten Daten.
Folgend sollen die Daten (Temperatur und Feuchte) in die RRD Datenbank geschrieben werden.
#!/bin/bash
# Arbeitsverzeichnis
WDIR=/home/pi/Documents/myProjects/DHT11
# Zwischenspeicherverzeichnis
SDIR=/home/pi/Documents/myProjects/DHT11/datastore
#Daten aus python auslesen (py wird gestartet und alle Outputs gespeichert)
Data=$($WDIR/dht11.py| cut -f1 -d\.);
logger "$Data"
# Daten werden in Zwischenspeicher geschrieben
echo $Data> $SDIR/data1.txt
# Temperatur wird aus dem Zwischenspeicher extrahiert
Temperatur=$(cat $SDIR/data1.txt| cut -b12-14);
echo $Temperatur> $SDIR/data2.txt
# Feuchte wird aus dem Zwischenspeicher extrahiert
Feuchte=$(cat $SDIR/data1.txt| cut -b33-35);
echo $Feuchte> $SDIR/data3.txt
#RRD anlegen falls diese noch nicht existiert
if [ -e $WDIR/weatherdata.rrd ]; then
echo "RRD existiert bereits";
else
cd /home/pi/Documents/myProjects/DHT11
rrdtool create weatherdata.rrd \
--step 300 \
DS:temp:GAUGE:600:-20:90 \
RRA:AVERAGE:0.5:12:24 \
RRA:AVERAGE:0.5:288:31;
echo "RRD erstellt";
fi
rrdtool update $WDIR/weatherdata.rrd N:$Temperatur
echo $Temperatur
echo $Feuchte
Alles anzeigen
Die Zwischenspeicherung und die Extrahierung der Daten funktioniert gut- jedoch habe ich zwei Probleme die ich bis dato nicht lösen konnte:
1. das die Datei als crontab root ausgeführt werden sollte und ich dies mit folgendem Eintrag in die crontab nicht geschafft habe es zum Laufen zu bringen:
pi@raspberrypi:~ $ sudo crontab -l
*/5 * * * * /home/pi/Documents/myprojects/DHT11/data_to_rrd.sh
2. Ich eine Fehlermeldung bzgl. der rrd Datenbank bekomme (zum probieren bis dato nur die Temperatur in der rrd Aufzeichnung: