ESP8266 - MAX6675 Thermoelement-Modul
Die meisten Temperatursensoren, die wir in anderen Tutorials behandeln – DHT11/DHT22, DS18B20, LM35 – erreichen ihre Grenze irgendwo zwischen 100°C und 150°C. Das reicht völlig für Wetterstationen, Brutkästen oder ein Küchengerät, ist aber nutzlos, wenn Sie einen Töpferofen, einen Holzbackofen, einen Metallgussofen oder den Auspuff eines kleinen Motors überwachen möchten – all diese werden weit heißer, als es einer dieser Chips überstehen könnte.
Für solche Aufgaben brauchen Sie eine völlig andere Art von Sensor: ein Thermoelement. Dieses Tutorial zeigt, wie Sie ein MAX6675-Thermoelement-Modul an ein ESP8266-Board anschließen und die Temperatur über seine digitale 3-Draht-Schnittstelle auslesen.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Wie ein Thermoelement funktioniert
Ein Thermoelement besteht einfach aus zwei verschiedenen Metalldrähten, die an einem Ende miteinander verschweißt sind. Diese Verbindung nennt man Messstelle (heiße Lötstelle), und sobald sie heiß wird, erzeugt sie eine sehr kleine Spannung, die mit der Temperatur steigt und fällt. Das ist ein simpler Trick, aber ein sehr wirkungsvoller – da keine empfindlichen Siliziumbauteile in der Hitze sitzen, übersteht ein Thermoelement Temperaturen, die einen normalen elektronischen Sensor sofort zerstören würden.
Es gibt mehrere Thermoelementtypen, die mit Buchstaben benannt sind (J, K, E, T usw.), je nachdem, welche zwei Metalle miteinander verschweißt sind. Typ K ist mit Abstand der gebräuchlichste. Er besteht aus Chromel- und Alumel-Drähten und deckt einen enormen Bereich von etwa -328°F bis +2300°F ab.
Der Haken dabei: Die Spannung an der Messstelle eines Thermoelements ist winzig – nur wenige Millivolt – und um daraus einen brauchbaren Temperaturwert zu machen, braucht man einen speziellen Chip. Genau das ist die Aufgabe des MAX6675.
Über das MAX6675-Modul
Das MAX6675-Modul, das Sie online kaufen können, ist eine kleine Breakout-Platine rund um den MAX6675-IC, die zusammen mit einem Typ-K-Thermoelementfühler geliefert wird.
Pinbelegung des MAX6675-Moduls

Intern tastet der MAX6675 die Spannung des Thermoelements ab, wandelt sie mit einem 12-Bit-Analog-Digital-Wandler um und stellt das Ergebnis über eine einfache 3-Draht-Schnittstelle zum reinen Lesen bereit. Eine MOSI-Leitung gibt es hier nicht, weil der ESP8266 nie Daten an den Chip senden muss – er liest nur:
- VCC: Versorgungspin, akzeptiert 3,0V bis 5,5V.
- GND: Masse-Pin.
- SCK: serieller Takt, wird vom ESP8266 angesteuert, um jeden Messwert herauszuschieben.
- CS: Chip-Select – wird auf LOW gezogen, sobald der ESP8266 einen Messwert lesen möchte.
- SO: serieller Datenausgang (die MISO-Leitung des Moduls) – überträgt den 12-Bit-Messwert zurück an den ESP8266.
Am gegenüberliegenden Rand der Platine befindet sich eine kleine Schraubklemme für den Fühler: Der rote Draht wird in den +-Anschluss und der blaue Draht in den --Anschluss geklemmt.
Der Fühler selbst besteht aus etwa 18 Zoll Kabel, das in einer Metallspitze endet. Obwohl der MAX6675-Chip Messwerte bis 1024°C digitalisieren kann, ist der mit dem Modul gelieferte Fühler nur für 0-80°C ausgelegt. Wenn Ihr Projekt höhere Temperaturen messen soll, müssen Sie die MAX6675-Platine mit einem separat erhältlichen Typ-K-Fühler kombinieren, der für höhere Temperaturen ausgelegt ist.
Technische Daten im Überblick:
- Betriebsspannung: 3,0V - 5,5V
- Schnittstelle: 3-Draht digital (SCK / CS / SO)
- Digitalisierter Bereich: 0°C bis 1024°C (mitgelieferter Fühler auf 0-80°C begrenzt)
- Genauigkeit: ±3°C
- Auflösung: etwa 0,25°C
Verdrahtungsdiagramm
Das MAX6675-Modul ist ein 3,3V-5V-Bauteil, der ESP8266 selbst ist jedoch ein reines 3,3V-Board – seine GPIOs sind nicht 5V-tolerant. Versorgen Sie den VCC-Pin des Moduls daher über den 3,3V-Pin des ESP8266, niemals über 5V, und verbinden Sie GND mit GND. Wählen Sie dann drei beliebige freie GPIOs für SCK, CS und SO.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.
Verdrahtungstabelle MAX6675-Modul und ESP8266 NodeMCU
| MAX6675-Modul | ESP8266 NodeMCU |
|---|---|
| VCC | → 3.3V |
| GND | → GND |
| SCK | → D5 |
| CS | → D6 |
| SO | → D7 |
ESP8266-Code
Schnelle Schritte
- Wenn Sie zum ersten Mal mit dem ESP8266 arbeiten, beginnen Sie mit dem Tutorial zur Einrichtung der Umgebung für den ESP8266 in der Arduino IDE.
- Verbinden Sie das MAX6675-Modul gemäß der Tabelle und dem Schaltplan oben mit dem ESP8266 NodeMCU.
- Klemmen Sie die + und - Drähte des Thermoelementfühlers in die Klemmleiste des Moduls, falls noch nicht geschehen.
- Schließen Sie den ESP8266 über ein USB-Kabel an Ihren Computer an.
- Öffnen Sie die Arduino IDE, wählen Sie den richtigen ESP8266-Board-Eintrag (z. B. NodeMCU 1.0 (ESP-12E Module)) und den passenden COM-Port.
- Öffnen Sie das Libraries-Panel in der linken Seitenleiste.
- Suchen Sie nach "MAX6675" und finden Sie die von Adafruit veröffentlichte Bibliothek.
- Klicken Sie auf Install, um sie zu Ihrer IDE hinzuzufügen.
- Search for MAX6675 library created by Adafruit and click the Install button.
- Fügen Sie den obigen Code in einen neuen Sketch ein.
- Drücken Sie Upload, um den Sketch auf den ESP8266 zu übertragen.
- Halten Sie die Spitze des Fühlers an etwas Warmes (eine Tasse Kaffee, Ihre Fingerspitze, einen Haartrockner in sicherem Abstand) und beobachten Sie, wie sich die Werte ändern.
- Öffnen Sie den Serial Monitor, um die Live-Messwerte zu sehen.
※ Notiz:
Kein Messwert, ein eingefrorener Wert oder eine völlig falsche Temperatur lassen sich fast immer auf die Verdrahtung zurückführen: Prüfen Sie, ob SCK/CS/SO mit den Pins im Sketch übereinstimmen, und stellen Sie sicher, dass die + und - Drähte des Fühlers fest in der Klemmleiste sitzen und nicht nur lose anliegen.
Code-Erklärung
Der Sketch bindet die MAX6675-Bibliothek ein, die die gesamte Bit-Banging-Kommunikation mit dem Chip für uns übernimmt.
Für die ESP8266-Seite der Verbindung werden drei Pins definiert – die Taktleitung, die Chip-Select-Leitung und die vom Modul kommende Datenausgangsleitung.
Ein einzelnes MAX6675-Objekt namens thermocouple wird erzeugt, das der Bibliothek mitteilt, welcher Pin welche Rolle übernimmt.
setup() öffnet lediglich die serielle Verbindung und wartet kurz, damit sich das Modul stabilisieren kann, bevor die erste Wandlung angefordert wird.
In loop() lösen die beiden Bibliotheksfunktionen readCelsius() und readFahrenheit() jeweils einen neuen Lesevorgang am Chip aus und liefern die Temperatur in der gewünschten Einheit zurück.
Beide Werte werden anschließend in einer Zeile im Serial Monitor ausgegeben, gefolgt von einer Pause von einer Sekunde – das passt gut zur internen Wandlungsrate des MAX6675, sodass wir nie schneller abfragen, als der Chip tatsächlich neue Daten liefern kann.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.