Bisher haben wir zur komfortablen Messung von Temperaturen Sensoren wie den DHT22 oder den DS18B20 benutzt. Leider können wir damit nur niedrige Temperaturen messen, eine Messung beim Grillen oder die Messung einer Abgastemperatur können wir damit nicht umsetzten. Deshalb möchte ich heute kurz unser Modul MAX6675 zur Messung von Temperaturen bis 1024°C vorstellen. Anleitungen das Modul mit einem Arduino in Betrieb zu nehmen finden sich leicht im Internet, Adafruit stellt hierzu eine Libary zur Verfügung. Leider ist diese Libary ohne Modifikation nicht mit den NodeMCUs kompatibel. Die NodeMCUs bieten sich meiner Meinung nach eher an als Arduinos, da es Boards wie unser WIFI-Kit 8 gibt, welche bereits eine Spannungsversorgung mit Li-Po Akkus sowie ein OLED Display an Bord haben. Auch bietet sich die Möglichkeit diese in eigene W-Lan einzubinden und die Informationen über eine Webseite oder über MQTT ausgeben zu lassen.
Als Anwendungsbeispiel benutzen wir heute unser LoLin NodeMCU V3 und verkabeln dieses so:
NodeMCU LoLin V3 | MAX6675 Modul |
3.3V | VCC |
GND | GND |
D5 | SCK |
D6 | SO |
D7 | CS |
Die Library von Adafruit gibt es hier. Alternativ kann diese auch über den Bibliotheksverwalter in der ArduinoIDE Installiert werden. Im Anschluss befindet sich das Verzeichnis des MAX6675 bei Ihren anderen Libarys unter C:\Users\Benutzername\Documents\Arduino\libraries
Öffnen Sie dort die Datei max6675.cpp mit einem Editor wie z.B. Nodepad++ und ändern den Code wie im Screenshot von:
auf:
Anschließend können Sie den Code fehlerfrei kompilieren:
#include "max6675.h" int thermoDO = 12; int thermoCS = 13; int thermoCLK = 14; MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO); void setup() { Serial.begin(115200); Serial.println("MAX6675 test"); // wait for MAX chip! delay(500); } void loop() { Serial.print("C = "); Serial.println(thermocouple.readCelsius()); //Serial.print("F = "); //Serial.println(thermocouple.readFahrenheit()); delay(1000); }
Auf dieser Basis können Sie gut aufbauen und spielend leicht Ihr Display oder in Ihre SmartHome Lösung integrieren.
2 comments
Uli
habe die Library über die ArduinoIDE installiert, danach hat es ohne weitere Anpassungen funktioniert, danke :-)
Wolfgang
Bei mir gabs eine Fehlermeldung… Das Delay war nicht definiert…
Folgende Änderung hat funktioniert:
// this library is public domain. enjoy!
// www.ladyada.net/learn/sensors/thermocouple
#define _delay_ms(ms) delayMicroseconds((ms) * 2000)
//#include <avr/pgmspace.h>
//#include <util/delay.h>
#include
#include “max6675.h”