Der Raspberry Pi 3 Model A+ ist schön kompakt und sollte für einfache Aufgaben ausreichen. Der 1.4GHz 64-bit Prozessor mit 4 Kernen hat etwas mehr Kraft als der alte Raspberry Pi 1 Model A+. Die mechanische Bauform ist identisch mit alten Modell. Da das neue Modell doppelt so schnell taktet wie das alte stellt sich die Frage, ob er in einem geschlossenen Gehäuse zu heiß wird.

Raspberry Pi 3 Modell A+ (links) und Raspberry Pi 1 Modell A+ (rechts)

Das neuere Modell hat ein integriertes Dual-band WLAN und Bluetooth 4.2/BLE. Gerade WLAN braucht viel Strom, der im Chip Wärme erzeugt. Trotzdem sollte das neue Modell ohne Lüfter auskommen und die Chips sind sogar in einer metallenen Verkleidungen. Das sollte die Wärmeableitung deutlich verbessern.

Temperaturmessung

Ich habe mir also die CPU-Temperatur in drei Fällen angeschaut: (1) mit Lüfter, (2) ohne Lüfter im offenen Gehäuse, und (3) ohne Lüfter im geschlossenen Plastik-Gehäuse. Dabei hat der RasPi nichts zu tun, nur die SSH und das WLAN waren im wesentlichen aktiv. Die CPU temperatur kann man mit vcgencmd messen:

vcgencmd measure_temp
temp=35.9'C

Für die Messung habe ich ein Script, dass 1 mal pro Minute die Temperatur misst und in eine CSV Datei schreibt. Das ganze läuft 30 min lang. In den ersten 10 Minuten läuft ein Lüfter über die CPU. Nach jeweils 10 Minuten nehme ich den Lüfter weg und lasse das Gehäuse offen. Nach nochmals 10 Minuten schließe ich das Gehäuse.

#!/bin/bash
counter=0
echo "no;date;timestamp;temperature" > measure_pi_temperature.csv

while [ $counter -lt 30 ]; do
        timestamp=$(date +'%F;%T')
        temperature=$(vcgencmd measure_temp | cut -d'=' -f2 | sed "s/'C//g")
        echo "${counter};${timestamp};${temperature}" | tee -a measure_pi_temperature.csv
        sleep 60
        let counter=$counter+1
done

Das Script fügt noch das Datum, die Uhrzeit und einen Zähler hinzu. Da der Messwert neben der Temperatur auch noch die Einheit ‚C‘ enthält, wird diese noch in Zeile 7 von der Ausgabe von vcgencmd entfernt. Die Messdaten werden als Semilkolon-separierte Werte in die Datei geschrieben. Das Ergebnis sieht so aus:

no;date;timestamp;temperature
0;2021-05-01;12:24:29;35.4
1;2021-05-01;12:25:29;35.4
2;2021-05-01;12:26:29;35.4
3;2021-05-01;12:27:29;35.4
4;2021-05-01;12:28:30;35.4
5;2021-05-01;12:29:30;34.9
6;2021-05-01;12:30:30;34.9
7;2021-05-01;12:31:30;34.9
8;2021-05-01;12:32:30;34.9
9;2021-05-01;12:33:30;34.9
10;2021-05-01;12:34:30;34.9
11;2021-05-01;12:35:30;35.9
12;2021-05-01;12:36:30;36.5
13;2021-05-01;12:37:30;36.5
14;2021-05-01;12:38:30;37.0
15;2021-05-01;12:39:30;37.6
16;2021-05-01;12:40:30;38.6
17;2021-05-01;12:41:30;38.6
18;2021-05-01;12:42:30;38.6
19;2021-05-01;12:43:30;38.6
20;2021-05-01;12:44:30;39.2
21;2021-05-01;12:45:30;39.2
22;2021-05-01;12:46:30;39.7
23;2021-05-01;12:47:30;39.7
24;2021-05-01;12:48:30;39.7
25;2021-05-01;12:49:30;40.2
26;2021-05-01;12:50:30;40.8
27;2021-05-01;12:51:30;40.8
28;2021-05-01;12:52:31;41.3
29;2021-05-01;12:53:31;41.3

Messwerte mit Gnuplot darstellen

Das ganze lässt sich schnell mit Gnuplot als Diagram darstellen. gnuplot kann auf dem Raspberry Pi einfach nachinstalliert werden.

sudo apt install gnuplot

Und um die Werte als Diagramm darstellen, genügt ein Aufruf von:

gnuplot -p -e "set datafile columnheaders;set datafile separator ';';plot 'measure_pi_temperature.csv' using 1:4"

Dabei wird gnuplot mitgeteilt, dass die erste Zeile eine Header ist, die Werte mit Semikolon separiert werden und nur die Spalten 1 (Zähler) und 4 (Temperaturwerte) dargestellt werden sollen. Der Parameter -p verhindert, dass sich das Fenster mit dem Diagramm gleich wieder schließt.

Anstatt alle Einstellungen über die Commandline zu übergeben, kann auch ein Script für Gnuplot erstellt werden. Das folgende Script konfiguriert die Farben, Schriftarten und Diagrammeinstellungen für die Darstellung der Messwerte.

#set terminal png size 800,600
#set output 'measure_pi_temperature.png'
set term qt persist size 800,600 font "Raleway, 10"
set datafile columnheaders
set datafile separator ";"
set title "Raspberry Pi 3 A+ Temperature" font "Raleway, 14"
set ylabel "°C"
set style data points
set key off
set style line 1 lw 2 lc rgb 'blue' ps 1 pt 1 pi 1
set style line 2 lw 2 lc rgb 'red' ps 1 pt 6 pi 1
set xtics rotate by 45 right
set grid xtics ytics
set arrow from 10 to 10,46 nohead ls 3
set arrow from 20 to 20,46 nohead ls 4
plot 'measure_pi_temperature.csv' using 1:4:xticlabels(3) with steps ls 1, \
     'measure_pi_temperature.csv' using 1:4 with points ls 2

Das Ergebnis ist im folgenden Diagramm zu sehen. Die Fotos habe ich zur Illustration der jeweiligen Konfiguration nachträglich in die Grafik eingefügt.

Fazit

Ohne Lüfter und mit geschlossenen Gehäuse wird es dann doch recht warm. Der Unterschied zwischen offenen und geschlossenen Gehäuse sind nur knapp 2 Grad, während der Lüfter einen Unterschied von knapp 4 Grad ausmacht. Insgesamt ist das eine Differenz von knapp 6 Grad und das ist schon signifikant. Das alles war natürlich nur ein ganz einfaches Experiment. Unter Last und mit Lüfter in geschlossenen Gehäuse, der Unterschied zu einem Metallgehäuse und passive Kühlung mit großen Kühlern machen noch einmal große Unterschiede.