ESP32 and Max6675 example

In this example we take a look at the MAX6675 Cold-Junction-Compensated K-Thermocouple-to-Digital Converter

The MAX6675 performs cold-junction compensation and digitizes the signal from a type-K thermocouple. The data is output in a 12-bit resolution, SPI™-compatible, read-only format.
This converter resolves temperatures to 0.25°C, allows readings as high as +1024°C, and exhibits thermocouple accuracy of 8 LSBs for temperatures ranging from 0°C to +700°C.

Key Features

Cold-Junction Compensation
Simple SPI-Compatible Serial Interface
12-Bit, 0.25°C Resolution
Open Thermocouple Detection

Usually you use these in a breakout/module form and can also purchase a kit which includes a thermocouple. Here is a picture of the module that I purchased

Connection

Here are the connections , sometimes these are named differently on the modules, in particular the CS connection

Vcc connected to 3.3v
Gnd connected to Gnd
SO connected to Pin 19 (MISO)
SS/CS connected to Pin 23 (MOSI)
CSK connected to Pin 5 (SS)

Code

You will need the MAX6675 library – https://github.com/adafruit/MAX6675-library – I needed to edit the library for it to compile, this version works – MAX6675_library


#include "max6675.h"

int thermoDO = 19;
int thermoCS = 23;
int thermoCLK = 5;

MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);

void setup()
{
Serial.begin(9600);
Serial.println("MAX6675 test");
delay(500);
}

void loop()
{
// basic readout test, just print the current temp

Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());

delay(1000);
}

Results

Open the serial monitor window and you should see something like this

C = 26.50
F = 79.70
C = 26.75
F = 80.15
C = 26.25
F = 79.25
C = 26.50
F = 79.70
C = 27.00
F = 80.60

 

Links

MAX6675 Module + K Type Thermocouple Temperature Sensor

SHARE
Previous articleESP32 and MCP23017 flashy led example
Next articleESP32 and microSD card example