Temperaturerfassung mit Raspberry Pi und DS1820

Aus Port23Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Stückliste / Alternativen)
(Konfiguration)
 
(26 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
Hier entsteht die Dokumentation einer Server- / Rack-Temperaturüberwachung mit Raspberry Pi und DS1820 1-Wire Sensoren. Basierend auf einer Raspbian Wheezy Installation wird ein lighthttp Webserver aufgesetzt, der mittels PHP eine handvoll Webseiten ausliefert um den Zustand eines Serverracks zu zeigen. Die Temperaturwerte werden in eine RRD geschreiben und mittels rrd graph visualisiert. Ein konfigurierter Schwellwert soll die Administratoren informieren, wenn die Temperaturen zu hoch sind.
+
Hier entsteht die Dokumentation einer Server- / 19"-Rack Temperaturüberwachung mit einem Raspberry Pi und mehreren DS1820 1-Wire Sensoren sowie einem DHT-11 Sensor für Temperatur und Luftfeuchtigkeit. Basierend auf einer Raspbian Wheezy Installation wird ein lighthttp Webserver aufgesetzt, der mittels PHP eine handvoll Webseiten ausliefert um den Zustand eines Serverracks zu zeigen. Die Temperaturwerte werden in eine RRD geschrieben und mittels rrd graph visualisiert. Ein konfigurierter Schwellwert soll die Administratoren informieren, wenn die Temperaturen zu hoch sind.
   
 
== Stückliste / Alternativen ==
 
== Stückliste / Alternativen ==
   
Nachfolgend die benötigten Bauteile und Lieferanten bzw. deren Alternativen:
+
Nachfolgend die benötigten Bauteile:
   
 
* Raspberry Pi 2 Modell B
 
* Raspberry Pi 2 Modell B
Zeile 9: Zeile 9:
 
* Speicherkarte microSD mind. 4 GB (Class 4 oder besser)
 
* Speicherkarte microSD mind. 4 GB (Class 4 oder besser)
 
* gew. Anzahl Temperatursensoren DS1820 (oder DS18B20), bedrahtet. Die Sensoren können mit einer 2-adrigen Leitung hintereinander geschaltet werden.
 
* gew. Anzahl Temperatursensoren DS1820 (oder DS18B20), bedrahtet. Die Sensoren können mit einer 2-adrigen Leitung hintereinander geschaltet werden.
* Sensor für Luftfeuchtigkeit (DHT11 oder 1-Wire)
+
* Sensor für Luftfeuchtigkeit (DHT11)
 
* Platine zum Aufstecken auf den Raspberry Pi (Prototypen-Board, Lochraster o.ä.)
 
* Platine zum Aufstecken auf den Raspberry Pi (Prototypen-Board, Lochraster o.ä.)
 
* div. Schrauben, Muttern, Kabel, Schrumpfschläuche
 
* div. Schrauben, Muttern, Kabel, Schrumpfschläuche
   
{| border="1"
+
! align="left" | Anzahl
+
{| class="wikitable" border="1"
! align="left" | Bezeichnung
+
! style="font-weight: bold;" | Anzahl
! align="left" | Preis
+
! style="font-weight: bold;" | Bezeichnung
! align="left" | Versand
+
! style="text-align: right; font-weight: bold;" | Watterott
! align="left" | Lieferant
+
! style="text-align: right; font-weight: bold;" | vorhanden
 
|-
 
|-
|1
+
| 1
|Raspberry Pi 2 Modell B
+
| Raspberry Pi 2 Modell B
|align="right"|€37,95
+
| style="text-align: right;" | 38,95
|align="right"|€4,95
+
| style="text-align: right;" |
|[http://www.pollin.de/shop/dt/Mzg1NzkyOTk-/Bausaetze_Module/Entwicklerboards/Raspberry_Pi_2_Model_B.html Pollin]
 
 
|-
 
|-
|1
+
| 1
|Micro SD Karte 4GB Class 10
+
| Micro SD Karte
|align="right"|€5,25
+
| style="text-align: right;" | 10,00 €
|
+
| style="text-align: right;" |
|[http://www.pollin.de/shop/dt/Nzg3NzcyOTk-/Computer_und_Zubehoer/Hardware/Speicherkarten/micro_SDHC_Card_4_GB_KINGSTON_SDC10_4GB.html Pollin]
 
 
|-
 
|-
|1
+
| 1
|Steckernetzteil QUATPOWER PSN5/2000M, 5 V-/2 A, Micro-USB
+
| Steckernetzteil Micro-USB
|align="right"|€4,95
+
| style="text-align: right;" | 5,89 €
|
+
| style="text-align: right;" |
|[http://www.pollin.de/shop/dt/MjY0ODQ2OTk-/Stromversorgung/Netzgeraete/Steckernetzgeraete/Steckernetzteil_QUATPOWER_PSN5_2000M_5_V_2_A_Micro_USB.html Pollin]
 
 
|-
 
|-
|6
+
| 6
|Temperatursensor DS18S20
+
| Temperatursensoren
|align="right"|€10,50
+
| style="text-align: right;" | 12,00 €
|
+
| style="text-align: right;" |
|[http://www.pollin.de/shop/dt/NTg5OTE4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Sensoren_Peltier_Elemente/Temperatursensor_DS18S20.html Pollin]
 
 
|-
 
|-
|1
+
| 1
|Raspberry Pi Prototypen-Board
+
| Platine / Proto-Hat
|align="right"|€22,95
+
| style="text-align: right;" | 4,95
|
+
| style="text-align: right;" |
|[http://www.pollin.de/shop/dt/MzgxODkyOTk-/Bausaetze_Module/Entwicklerboards/Raspberry_Pi_Prototypen_Board_ADAFRUIT_INDUSTRIES.html Pollin]
 
 
|-
 
|-
|6
+
| 1
|DS18B20+ - Temperatursensor
+
| Temperatur / Luftfeuchtigkeits Sensor
|align="right"|€12,00
+
| style="text-align: right;" | 5,31 €
|align="right"|€3,50
+
| style="text-align: right;" | - €
|[http://www.watterott.com/de/DS18B20 Watterott]
 
 
|-
 
|-
|1
+
| 2
|Raspberry Pi 2 Modell B
+
| Käfigmuttern M6
|align="right"|€38,95
+
| style="text-align: right;" |
|align="right"|
+
| style="text-align: right;" | - €
|[http://www.watterott.com/de/Raspberry-Pi-Modell-2 Watterott]
 
 
|-
 
|-
|1
+
| 2
|microSD Karte 8GB
+
| Schrauben M6 x 20
|align="right"|€10,00
+
| style="text-align: right;" |
|align="right"|
+
| style="text-align: right;" | - €
|[http://www.watterott.com/de/microSDHC-8Gb-Raspbian Watterott]
 
 
|-
 
|-
|1
+
| 8
|5V / 1,2A microUSB Netzteil
+
| Schrauben M2,5 x 8
|align="right"|€5,89
+
| style="text-align: right;" |
|align="right"|
+
| style="text-align: right;" | - €
|[http://www.watterott.com/de/Netzteil-5V-/-12A-USB-HNP06-MICRO-USB Watterott]
 
 
|-
 
|-
|1
+
| 4
|Adafruit Prototyping Pi Plate Kit
+
| Muttern M2,5
|align="right"|€17,26
+
| style="text-align: right;" |
|align="right"|
+
| style="text-align: right;" | - €
|[http://www.watterott.com/de/Adafruit-Prototyping-Pi-Plate-Kit-for-Raspberry-Pi Watterott]
 
 
|-
 
|-
|1
+
| 2
|Raspberry Pi B+/Pi2 Prototyping HAT
+
| Widerstand 4,7
|align="right"|€4,95
+
| style="text-align: right;" |
|align="right"|
+
| style="text-align: right;" | - €
|[http://www.watterott.com/de/RPi-Proto-HAT Watterott]
 
 
|-
 
|-
|1
+
| diverse
|T-String 6-fach Temperatursensor
+
| Kabel, Schrumpfschläuche
|align="right"|€75,90
+
| style="text-align: right;" |
|align="right"|€5,60
+
| style="text-align: right;" | - €
|[http://www.fuchs-shop.com/de/shop/6/1/13372163/ Fuchs Elektronik]
 
 
|-
 
|-
|1
+
| 1
|MS-TH Temperatur-/Luftfeuchtesensor
+
| Lochraster Platine
|align="right"|€58,90
+
| style="text-align: right;" |
|
+
| style="text-align: right;" | - €
|[http://www.fuchs-shop.com/de/shop/6/1/13372059/ Fuchs Elektronik]
 
 
|-
 
|-
|1
+
| 1
|DHT11 basic temperature-humidity sensor
+
| Raspberry Pi 2 Modell B 19" Rackmount Winkel
|align="right"|
+
| style="text-align: right;" |
|align="right"|
+
| style="text-align: right;" | - €
|vorh.
 
 
|-
 
|-
|2
+
|
|Käfigmuttern M6
+
| Versandkosten
|align="right"|
+
| style="text-align: right;" | 3,50 €
|
+
| style="text-align: right;" | - €
|vorh.
 
 
|-
 
|-
|2
+
|
|Schrauben M6 x 20
+
|
|align="right"|
+
| style="text-align: right;" |
|
+
| style="text-align: right;" |
|vorh.
 
 
|-
 
|-
|4
+
| style="font-weight: bold;" |
|Schrauben M2,5 x 8
+
| style="font-weight: bold;" | Summe
|align="right"|
+
| style="text-align: right; font-weight: bold;" | 80,60 €
|
+
| style="text-align: right; font-weight: bold;" |
|vorh.
 
|-
 
|4
 
|Muttern M2,5
 
|align="right"|
 
|
 
|vorh.
 
|-
 
|1
 
|Widerstand 4,7 kΩ
 
|align="right"|
 
|
 
|vorh.
 
|-
 
|diverse
 
|Kabel, Schrumpfschläuche
 
|align="right"|
 
|
 
|vorh.
 
|-
 
|1
 
|Raspberry Pi 2 Modell B 19" Rackmount Winkel
 
|align="right"|
 
|
 
|3D Druck
 
 
|}
 
|}
   
 
== Elektronik ==
 
== Elektronik ==
   
[[Datei:Raspberry DS1820 Steckplatine.png|400px]]
+
<div><ul>
  +
<li style="display: inline-block;"> [[Datei:Celsius - Breadboard Steckplatine.png|thumb|none|400px|Breadboard Test]] </li>
  +
<li style="display: inline-block;"> [[Datei:Celsius - Lochraster Steckplatine.png|thumb|none|400px|Lochraster Prototyp]] </li>
  +
<li style="display: inline-block;"> [[Datei:Breadboard-1.JPG|thumb|none|400px|Breadboard Prototyp]] </li>
  +
<li style="display: inline-block;"> [[Datei:Lochraster-1.JPG|thumb|none|400px|Lochraster Prototyp]] </li>
  +
<li style="display: inline-block;"> [[Datei:Hat-1.JPG|thumb|none|400px|fertig aufgebaut]] </li>
  +
</ul></div>
   
 
== Boot Image ==
 
== Boot Image ==
Zeile 138: Zeile 138:
   
 
== Konfiguration ==
 
== Konfiguration ==
  +
  +
Raspbian Wheezy hat schon fast alles installiert, was man braucht. Die folgenden Pakete müssen nachinstalliert werden:
  +
  +
apt-get install python-rrdtool rrdtool lighttpd php5-common php5-cgi \
  +
php5 php5-cli python2.7-dev python-openssl
   
 
* pro Sensor eine rrd anlegen.
 
* pro Sensor eine rrd anlegen.
* Auflösung
 
** minütlich für die letzten 24h
 
** 5-minütlich für die letzten 7 Tage
 
** stündlich für die letzten 31 Tage
 
** täglich für das letzte Jahr
 
   
rrdtool create datenbank.rrd --step 60 \ # alle 60 Sekunden ein Messwert
+
#!/bin/bash
DS:temp:GAUGE:120:10:U \ # Datenquelle Temperatur
+
RRA:AVERAGE:0.5:1:300 \ # minütliche Messungen für 5h
+
#
RRA:AVERAGE:0.5:1440:365 \ # Tagesmittel für ein Jahr
+
# Anlegen einer RRD zur Speicherung von Temperaturmessdaten
RRA:MAX:0.5:1440:365 \ # Tagesmaximum für ein Jahr
+
#
RRA:MIN:0.5:1440:365 \ # Tagesminimum für ein Jahr
+
  +
rrdtool create $1 --step 60 \
  +
DS:temperature:GAUGE:120:U:U \
  +
RRA:AVERAGE:0.5:1:2160 \
  +
RRA:AVERAGE:0.5:5:2016 \
  +
RRA:AVERAGE:0.5:15:2880 \
  +
RRA:AVERAGE:0.5:60:8760 \
  +
RRA:MIN:0.5:1:2160 \
  +
RRA:MIN:0.5:5:2016 \
  +
RRA:MIN:0.5:15:2880 \
  +
RRA:MAX:0.5:1:2160 \
  +
RRA:MAX:0.5:5:2016 \
  +
RRA:MAX:0.5:15:2880
   
   
  +
#!/bin/bash
  +
  +
#
  +
# Anlegen einer RRD zur Speicherung von Luftfeuchtigkeitsmessdaten
  +
#
  +
  +
rrdtool create $1 --step 60 \
  +
DS:luftfeuchtigkeit:GAUGE:120:U:U \
  +
RRA:AVERAGE:0.5:1:2160 \
  +
RRA:AVERAGE:0.5:5:2016 \
  +
RRA:AVERAGE:0.5:15:2880 \
  +
RRA:AVERAGE:0.5:60:8760 \
  +
RRA:MIN:0.5:1:2160 \
  +
RRA:MIN:0.5:5:2016 \
  +
RRA:MIN:0.5:15:2880 \
  +
RRA:MAX:0.5:1:2160 \
  +
RRA:MAX:0.5:5:2016 \
  +
RRA:MAX:0.5:15:2880
   
 
== 19" Rackmount ==
 
== 19" Rackmount ==
   
[[Datei:Raspberry-Rackmount.png|400px]]
+
Da kein 3D-Drucker mit einem Bauraum von 19" zur Verfügung steht, genügt hier eine Verschraubung auf nur einer Seite.
  +
  +
<div><ul>
  +
<li style="display: inline-block;"> [[Datei:Raspberry-Rackmount.png|thumb|none|400px|Rackmount mit Deckel]] </li>
  +
<li style="display: inline-block;"> [[Datei:Celsius raspi.png|thumb|none|400px|Rackmount ohne Deckel]] </li>
  +
<li style="display: inline-block;"> [[Datei:Rack-Prototyp-1.JPG|thumb|none|400px|Rackmount Prototyp]] </li>
  +
<li style="display: inline-block;"> [[Datei:Rack-Prototyp-2.JPG|thumb|none|400px|Rackmount Prototyp]] </li>
  +
<li style="display: inline-block;"> [[Datei:Rackmount-1.JPG|thumb|none|400px|Rackmount mit Deckel]] </li>
  +
<li style="display: inline-block;"> [[Datei:Rackmount-2.JPG|thumb|none|400px|Rackmount Kabel-Auslass]] </li>
  +
</ul></div>
  +
  +
  +
== Ergebnis ==
  +
  +
<div><ul>
  +
<li style="display: inline-block;"> [[Datei:1hour.PNG|thumb|none|800px|Messwerte der letzten Stunde]] </li>
  +
<li style="display: inline-block;"> [[Datei:Celsius-rack (1).jpg|thumb|none|400px|eingebaut im Rack]] </li>
  +
<li style="display: inline-block;"> [[Datei:Celsius-rack (2).jpg|thumb|none|400px|eingebaut im Rack]] </li>
  +
<li style="display: inline-block;"> [[Datei:Celsius-rack (3).jpg|thumb|none|400px|eingebaut im Rack]] </li>
  +
<li style="display: inline-block;"> [[Datei:Celsius-rack (4).jpg|thumb|none|400px|eingebaut im Rack]] </li>
  +
<li style="display: inline-block;"> [[Datei:Celsius-rack (5).jpg|thumb|none|400px|eingebaut im Rack]] </li>
  +
</ul></div>
   
 
== Links und Notizen ==
 
== Links und Notizen ==
Zeile 163: Zeile 181:
 
* [http://www.kompf.de/weather/pionewiremini.html 1-wire Temperatursensor DS1820 am Raspberry Pi (GPIO-direkt)]
 
* [http://www.kompf.de/weather/pionewiremini.html 1-wire Temperatursensor DS1820 am Raspberry Pi (GPIO-direkt)]
 
* [http://raspberry.tips/raspberrypi-tutorials/raspberry-pi-als-webserver-teil-1/ Raspberry Pi als Webserver einrichten]
 
* [http://raspberry.tips/raspberrypi-tutorials/raspberry-pi-als-webserver-teil-1/ Raspberry Pi als Webserver einrichten]
  +
* [https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging?view=all DHT Humidity Sensing on Raspberry Pi or Beaglebone Black with GDocs Logging]
  +
* [https://www.raspberrypi.org/documentation/remote-access/ssh/passwordless.md SSH ohne Passwort]
  +
* [https://blog.bartbania.com/raspberry_pi/temperature-log-howto/ Temperature Log | HowTo]
  +
* [http://blog.bubux.de/stabiler-247-betrieb-des-raspberry-netzwerk-neu-starten/ Stabiler 24/7 Betrieb des Raspberry]
  +
* [http://elinux.org/R-Pi_Troubleshooting#Crashes_occur_with_high_network_load Crashes occur with high network load]

Aktuelle Version vom 10. Oktober 2015, 16:00 Uhr

Hier entsteht die Dokumentation einer Server- / 19"-Rack Temperaturüberwachung mit einem Raspberry Pi und mehreren DS1820 1-Wire Sensoren sowie einem DHT-11 Sensor für Temperatur und Luftfeuchtigkeit. Basierend auf einer Raspbian Wheezy Installation wird ein lighthttp Webserver aufgesetzt, der mittels PHP eine handvoll Webseiten ausliefert um den Zustand eines Serverracks zu zeigen. Die Temperaturwerte werden in eine RRD geschrieben und mittels rrd graph visualisiert. Ein konfigurierter Schwellwert soll die Administratoren informieren, wenn die Temperaturen zu hoch sind.

Inhaltsverzeichnis

[Bearbeiten] Stückliste / Alternativen

Nachfolgend die benötigten Bauteile:

  • Raspberry Pi 2 Modell B
  • Stromversorgung 5V 1,2A min. Micro-USB
  • Speicherkarte microSD mind. 4 GB (Class 4 oder besser)
  • gew. Anzahl Temperatursensoren DS1820 (oder DS18B20), bedrahtet. Die Sensoren können mit einer 2-adrigen Leitung hintereinander geschaltet werden.
  • Sensor für Luftfeuchtigkeit (DHT11)
  • Platine zum Aufstecken auf den Raspberry Pi (Prototypen-Board, Lochraster o.ä.)
  • div. Schrauben, Muttern, Kabel, Schrumpfschläuche


Anzahl Bezeichnung Watterott vorhanden
1 Raspberry Pi 2 Modell B 38,95 €
1 Micro SD Karte 10,00 €
1 Steckernetzteil Micro-USB 5,89 €
6 Temperatursensoren 12,00 €
1 Platine / Proto-Hat 4,95 €
1 Temperatur / Luftfeuchtigkeits Sensor 5,31 € - €
2 Käfigmuttern M6 - €
2 Schrauben M6 x 20 - €
8 Schrauben M2,5 x 8 - €
4 Muttern M2,5 - €
2 Widerstand 4,7 kΩ - €
diverse Kabel, Schrumpfschläuche - €
1 Lochraster Platine - €
1 Raspberry Pi 2 Modell B 19" Rackmount Winkel - €
Versandkosten 3,50 € - €
Summe 80,60 €

[Bearbeiten] Elektronik

  • (thumbnail)
    Breadboard Test
  • (thumbnail)
    Lochraster Prototyp
  • (thumbnail)
    Breadboard Prototyp
  • (thumbnail)
    Lochraster Prototyp
  • (thumbnail)
    fertig aufgebaut

[Bearbeiten] Boot Image

  • Raspbian Debian Wheezy von Raspberry Pi Foundation (990 MB).
  • In raspi-config das Dateisystem erweitern, den Hostnamen setzen und die Ländereinstellungen vornehmen
  • In /boot/config.txt Aktivierung des Device Tree Overlay für 1-wire ergänzen:
    dtoverlay=w1-gpio,gpiopin=4,pullup=on
  • In /etc/modules das Laden der nötigen Module ergänzen:
    wire
    w1-gpio pullup=1
    w1-therm
  • Prüfen, ob die Sensoren in /sys/bus/w1/devices auftauchen:
    ls /sys/bus/w1/devices/
    10-00080198fe85 10-00080199088f 10-000801993025 w1_bus_master1
  • System aktualisieren:
    apt-get update
    apt-get upgrade
    rpi-update


[Bearbeiten] Konfiguration

Raspbian Wheezy hat schon fast alles installiert, was man braucht. Die folgenden Pakete müssen nachinstalliert werden:

apt-get install python-rrdtool rrdtool lighttpd php5-common php5-cgi \
php5 php5-cli python2.7-dev python-openssl 
  • pro Sensor eine rrd anlegen.
#!/bin/bash

#
# Anlegen einer RRD zur Speicherung von Temperaturmessdaten
# 

rrdtool create $1 --step 60 \
           DS:temperature:GAUGE:120:U:U  \
           RRA:AVERAGE:0.5:1:2160  \
           RRA:AVERAGE:0.5:5:2016  \
           RRA:AVERAGE:0.5:15:2880 \
           RRA:AVERAGE:0.5:60:8760 \
           RRA:MIN:0.5:1:2160  \
           RRA:MIN:0.5:5:2016  \
           RRA:MIN:0.5:15:2880 \
           RRA:MAX:0.5:1:2160  \
           RRA:MAX:0.5:5:2016  \
           RRA:MAX:0.5:15:2880


#!/bin/bash

#
# Anlegen einer RRD zur Speicherung von Luftfeuchtigkeitsmessdaten
# 

rrdtool create $1 --step 60 \
           DS:luftfeuchtigkeit:GAUGE:120:U:U  \
           RRA:AVERAGE:0.5:1:2160  \
           RRA:AVERAGE:0.5:5:2016  \
           RRA:AVERAGE:0.5:15:2880 \
           RRA:AVERAGE:0.5:60:8760 \
           RRA:MIN:0.5:1:2160  \
           RRA:MIN:0.5:5:2016  \
           RRA:MIN:0.5:15:2880 \
           RRA:MAX:0.5:1:2160  \
           RRA:MAX:0.5:5:2016  \
           RRA:MAX:0.5:15:2880

[Bearbeiten] 19" Rackmount

Da kein 3D-Drucker mit einem Bauraum von 19" zur Verfügung steht, genügt hier eine Verschraubung auf nur einer Seite.

  • (thumbnail)
    Rackmount mit Deckel
  • (thumbnail)
    Rackmount ohne Deckel
  • (thumbnail)
    Rackmount Prototyp
  • (thumbnail)
    Rackmount Prototyp
  • (thumbnail)
    Rackmount mit Deckel
  • (thumbnail)
    Rackmount Kabel-Auslass


[Bearbeiten] Ergebnis

  • (thumbnail)
    Messwerte der letzten Stunde
  • (thumbnail)
    eingebaut im Rack
  • (thumbnail)
    eingebaut im Rack
  • (thumbnail)
    eingebaut im Rack
  • (thumbnail)
    eingebaut im Rack
  • (thumbnail)
    eingebaut im Rack

[Bearbeiten] Links und Notizen

Meine Werkzeuge