Feb 02 2013
Temperatur messen mit dem Raspberry Pi
Der große Vorteil des Raspberry Pi – ich hatte es glaube ich bereits mehrfach erwähnt – ist die Flexibilität seiner GPIO-Schnittstelle. Dies in Verbindung mit der Tatsache, dass es sich beim Raspberry um einen vollwertigen Computer handelt, lässt so manches Bastlerherz höher schlagen. Mein aktuelles Projekt läuft bereits sehr stabil in der Testphase. Bald wird es dazu an dieser Stelle einen etwas umfangreicheren Bericht geben. Da bei besagtem Projekt die von mir so hoch gelobte GPIO-Schnittstelle bisher gar keine Verwendung findet, habe ich die Liste der Features mal um einen Punkt erweitert: Die Möglichkeit, die aktuelle Temperatur zu messen, die ermittelten Werte zu loggen und in einem Diagramm anschaulich darzustellen. Das mag in vielen Augen vielleicht total langweilig klingen, ist es aber meiner Meinung nach überhaupt nicht.
Wenn man Google nach Temperatursensoren in Verbindung mit dem Raspberry Pi befragt, bekommt man eine recht umfangreiche Suchergebnisliste präsentiert. Das Problem: Oftmals finden Bauteile oder sogenannte “Breakout-Boards” Verwendung, die für dieses recht simple Vorhaben nicht nur überdimensioniert, sondern auch völlig überteuert sind. Ich habe mich für folgende Hardware entschieden:
- DS18B20 Temperatursensor (1,69 Euro)
- 1x 4,7kOhm Widerstand (0,10 Euro)
- 3 Kabel und später mal einen Schrumpfschlauch, um das Ganze zusammenzuhalten
Der “DS18B20″ sendet seine Signale via “1Wire“, einer einfachen seriellen Schnittstelle die Dank passender Module auch der GPIO-Header des Raspberry versteht. Das ganze habe ich nach diesen Schaltbild von Adafruit verkabelt. Bei Bedarf kann man sogar mehrere Sensoren parallel miteinander verbinden und gleichzeitig auswerten. Der Testaufbau sah bei mir folgendermaßen aus:
Um die Daten der Sensoren empfangen und auswerten zu können, benötigt man noch folgende Module:
modprobe w1-gpio
modprobe w1-therm
Für das automatische Laden der Module sollte man diese in /etc/modules unterbringen. Den Sensor kann man nun ungefähr an dieser Stelle
cat /sys/bus/w1/devices/w1_bus_master1/28-00000450aa93/w1_slave
auslesen. Allerdings erhält man hier noch jede Menge mehr Informationen und muss schon genau hinschauen, um den Wert für die aktuelle Temperatur herauszufinden. Außerdem muss die Temperatur noch umgerechnet werden. Hier hilft ein wenig Linux-Shell-Voodoo, zu welchem das Programm bc (sudo apt-get install bc) benötigt wird:
echo “scale=3; $(grep ‘t=’ /sys/bus/w1/devices/w1_bus_master1/28-00000450aa93/w1_slave | awk -F’t=’ ‘{print $2}’)/1000″ | bc -l
Heraus kommt eine Temperatur in Celcius. Das Ganze habe ich mir natürlich nicht selber ausgedacht, sondern in diesem interessanten Wiki-Eintrag gefunden.
5 Kommentare zu “Temperatur messen mit dem Raspberry Pi”
Hi!
Schön geschrieben. Gefällt mir besser als aufs technische reduzierte “cleane” Artikel.
Gerne würde ich das auch ein mal nachbauen, da mein Pi bisher nur als Webserver Verwendung findet…
Jedoch stehe ich vor dem Problem, das ich nicht so recht weis, was ich dafür alles besorgen müsste und wo ich es am besten bestelle…
Wie gesagt, ich habe bisher nur den Pi. So wie ich das sehe bräuchte ich dann noch eine Verbindung zu so einem Steckbrett (Experimentierboard? Na das Kabel mit der kleineren blauen Platine und das große weiße eben.. ), den Sensor, Wiederstand und Kabel…
Könntest du mir sagen wo du das alles besorgt hast bzw. was ich wo bestellen müsste?
Würde mich sehr freuen,
LG
Jan
Hallo Jan,
danke für die Blumen.
Die Frage ist gar nicht so leicht zu beantworten. Es gibt diverse “Starterpacks” die aber meiner Meinung nach ein schlechtes Preis-/Leistungsverhältnis haben…für die paar im Einzelnen “billigen” Bauteile, die man da jeweils zusammenstellt. Es kommt also ein bisschen darauf an, was du bereit bist auszugeben. Eines der besseren Angebote ist jenes hier bei eBay:
http://www.ebay.de/itm/Raspberry-Pi-Cobbler-GPIO-Super-Starter-Kit-Breadboard-Cable-LEDs-Switches-/181071750824
Am günstigsten kommst du aber immernoch, wenn du genau weißt, was du brauchst (vielleicht anhand eines konkreten Projektes?) und du dir genau die Teile einzeln kaufst. Meinen “Pi-Cobbler” (den auf dem Foto) habe ich glaube ich von Adafruit. Da war ich eigentlich auch zufrieden. Die haben auch “Steckbretter”, Kabel und all den Kram. Die Versandkosten sind da jedoch recht hoch. Farnell und Element14 wären da noch zu nennen (die vertreiben ja auch die Raspberrys).
Kurz: eBay wäre aktuell meine erste Wahl.
Grüße,
Torsten
Hey…
also die Teile würde ich nicht überteuert kaufen! Die Sensoren bekommt man zb Versandfrei aus Übersee (DX.com) ab einem Stück
Den Widerstand auch… Als Grundplatte würde ich mir eine Lochrasterplatte kaufen und das da aufbauen… an die Platte kann man bei Bedarf ja noch Kabel mit Steckverbindern löten oder man lässt die Platte weg und lötet direkt Kabel mit Steckverbindern an den Sensor und den Widerstand einfach zwischen die Beinchen des Sensors!
Wenn dir ein deutscher Händler lieber ist kann ich Reichelt.de empfehlen… zig mal biliger als Conrad und genau so gut!
Da sollte das ganze Projekt für maximal 4 Euro machbar sein… bzw für 2 Euro wenn man die Platte weglässt!
Hey,
bei mir klappts nicht so wrklich… es kommt immer 85°C (also maximalwerte) raus…
50 05 4b 46 7f ff 0c 10 1c : crc=1c YES
50 05 4b 46 7f ff 0c 10 1c t=85000
@Alex: Sicher, dass du den Sensor richtig verkabelt hast?