Temperatur - Raspberry - Module - Verwendung

Feb 02 2013

Temperatur messen mit dem Raspberry Pi

Kategorie 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

5 Kommentare zu “Temperatur messen mit dem Raspberry Pi”

  1. Janam 02. Apr 2013 um 16:23 Uhr

    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

  2. blechkoppam 03. Apr 2013 um 19:48 Uhr

    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

  3. Ragnaram 12. Mai 2013 um 00:14 Uhr

    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!

  4. Alexam 24. Jun 2013 um 23:29 Uhr

    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

  5. blechkoppam 01. Jul 2013 um 20:33 Uhr

    @Alex: Sicher, dass du den Sensor richtig verkabelt hast?

Einen Kommentar hinterlassen


Spammen zwecklos!
Lediglich zum Zwecke der Linkverbreitung abgegebene Kommentare werden kommentarlos gelöscht!