Temperatursensor an Raspberry PI
Da mein Raspberry zusammen mit einer USV, zwei NAS, einer Fritzbox und einem 24P-Switch in einem kleinen Schrank liegt möchte ich gerne (neben der „normalen“ Überwachung des RPI) auch das Klima im Schrank überwachen.
Dazu verwende ich einen Sensor BME280 (* Affiliatelink) der wie folgt an Raspberry angeschlossen ist:
Sensor | Raspberry | Funktion |
---|---|---|
VCC | PIN 1 | 3.3V |
GND | PIN 5 | Ground |
SDA | PIN 2 | I2C |
SCL | PIN 3 | I2C |
Ich verwende zum einlesen das Script von raspberrypi-spy.com:
Laden und ausprobieren:
sudo apt-get install i2c-tools
sudo apt-get install python-pip
sudo apt install python-smbus
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bme280.py
i2cdetect -y 1
python bme280.py
Ausgaben_
Zum speichern der Daten in die InfluxDB nutze ich das folgende Script (welches sich mit dem bme280-Script welches ihr oben geladen habt im gleichen Ordner befinden muss):
temperature.py
#!/usr/bin/python
import bme280
#(chip_id, chip_version) = bme280.readBME280ID()
#print "Chip ID :", chip_id
#print "Version :", chip_version
temperature,pressure,humidity = bme280.readBME280All()
#print "Temperature : ", temperature, "C"
#print "Pressure : ", pressure, "hPa"
#print "Humidity : ", humidity, "%"
from datetime import datetime
#current_time = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
current_time = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S")
#print(current_time)
json_body = [
{
"measurement": "rack",
"time": current_time,
"fields": {'Temperature': temperature, 'Pressure': pressure, 'Humidity': humidity}
}
]
#print (json_body)
from influxdb import InfluxDBClient
client = InfluxDBClient(database='temperature')
client.write_points(json_body)
In der InfluxDB muss die Tabelle angelegt werden:
influx
> CREATE DATABASE temperature
Und im Crontab das Script ausgeführt werden (ich hab mich erst mal für jede Minute entschieden):
# Fetchen Temperaturen für InfluxDB
* * * * * /usr/bin/python /home/pi/shell/temperature.py
Sollte etwas nicht funktionieren bitte nachsehen ob i2c im raspi-setup aktiviert ist.
Credits an raspberrypi-spy.co.uk für das Script!
Schreibe einen Kommentar