ESP8266 NodeMCU: K-Type Thermocouple with MAX6675 Amplifier

In this guide, you’ll learn how to read temperature using a K-Type Thermocouple with the MAX6675 amplifier with the ESP8266 NodeMCU board. A K-type thermocouple is a type of temperature sensor wide measurement range like −200 to 1260ºC (−326 to 2300ºF).

ESP8266 NodeMCU with K-Type Thermocouple with MAX6675 Amplifier

This tutorial covers how to interface the k-type thermocouple with your ESP8266 board, install the required library and use a simple sketch to display the sensor readings in the Serial Monitor.

Table of Contents

In this tutorial, we’ll cover the following topics:

What is a K-Type Thermocouple?

A thermocouple is a device that consists of two different electrical conductors that form an electrical junction—thermal junction. The change in temperature at the junction creates a slightly but measurable voltage at the reference junction that can be used to calculate the temperature.

Thermocouple How it Works

A thermocouple can be made of different metals. The metals used will affect the voltage range, cost, and sensitivity. There are standardized metal combinations that result in different thermocouple types: B, E, J, N, K, R, T, and S.

Our tutorial is about the k-type thermocouple. A k-type thermocouple is made out of chrome and alumel conductors and has a general temperature range of −200 to 1260ºC (−328 to 2300ºF).

type-k thermocouple

MAX6675 Amplifier

To get the temperature from the thermocouple we need a thermocouple amplifier. The temperature output from the thermocouple amplifier depends on the voltage read on the reference junction. The voltage at the reference junction depends on the temperature difference between the reference junction and the thermal junction. So, we need to know the temperature at the reference junction.

MAX6675 thermocouple amplifier

The MAX6675 thermocouple comes with a temperature sensor to measure temperature at the reference junction (cold-compensation reference) and amplifies the tiny voltage at the reference junction so that we can read it using our microcontrollers. The MAX6675 amplifier communicates with a microcontroller using the SPI communication protocol and the data is output in a 12-bit resolution.

K-Type thermocouple with MAX6675 Amplifier

Usually, you can get a pack with a k-type thermocouple and the MAX6675 amplifier. Here’s a list of the MAX6675 most relevant features. For a more detailed description, please consult the MAX6675 datasheet.

  • Direct digital conversion of k-type thermocouple output
  • Cold-junction compensaiton
  • Simple SPI-compatible serial interface
  • Operating voltage range: 3.0 to 5.5V
  • Operating temperature range: -20 to 85ºC
  • Resolves temperatures to 0.25ºC, allows readings as high as 1024ºC (1875ºF).

Interfacing K-Type Thermocouple with MAX6675 Amplifier

As mentioned previously, the MAX6675 communicates with a microcontroller using SPI communication protocol.

MAX6675Microcontroller
SOMISO
CSCS
SCKCLK
VCCVCC (3.3V or 5V)
GNDGND


Get Temperature from K-Type Thermocouple with MAX6675 Amplifier

In this section, you’ll learn how to get temperature from your k-type thermocouple. We’ll show you a simple example that reads the temperature and displays it on the Arduino IDE Serial Monitor.

ESP8266 with type-k thermocouple and MAX6675 amplifier

Parts Required

To complete this tutorial, you need the following parts:

You can use the preceding links or go directly to MakerAdvisor.com/tools to find all the parts for your projects at the best price!

Schematic – ESP8266 with K-type thermocouple and MAX6675 Amplifier

Wire the MAX6675 Amplifier to the ESP8266 as shown in the following schematic diagram.

ESP8266 with Type-k thermocouple and Max 6675 Amplifier Wiring Diagram

You can also follow the next table.

MAX6675ESP8266
GNDGND
VCC3.3V
SCKGPIO 14
CSGPIO 15
SOGPIO 12

Installing MAX6675 Arduino Library

There are different libraries to get temperature from a K-type thermocouple using the MAX6675 amplifier. We’ll use the max6675 library from Adafruit.

Follow the next steps to install the library in your Arduino IDE:

Open your Arduino IDE and go to Sketch Include Library > Manage Libraries. The Library Manager should open.

Search for “max6675 ” in the search box and install the library from Adafruit.

Installing MAX6675 Arduino Library

Code – Get Temperature from K-Type Thermocouple with MAX6675 Amplifier

Getting temperature from the K-Type thermocouple with the ESP8266 is very simple. The library provides an example that gets temperature and displays the results on the Arduino IDE Serial monitor.

The code was adapted from the example provided by the library to make it compatible with the ESP8266.

// this example is public domain. enjoy! https://learn.adafruit.com/thermocouple/

#include "max6675.h"

int thermoDO = 12;
int thermoCS = 15;
int thermoCLK = 14;

MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);

void setup() {
  Serial.begin(9600);

  Serial.println("MAX6675 test");
  // wait for MAX chip to stabilize
  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());
 
  // For the MAX6675 to update, you must delay AT LEAST 250ms between reads!
  delay(1000);
}

View raw code

How the Code Works

First, include the max6675.h library.

#include "max6675.h"

Define the pins that are interfacing with the MAX6675 thermocouple amplifier.

int thermoDO = 12;
int thermoCS = 15;
int thermoCLK = 14;

Create a MAX6675 object called thermocouple on the pins we’ve defined previously.

MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);

In the setup(), initialize the Serial Monitor at a baud rate of 9600.

Serial.begin(9600);

In the loop(), we read the temperature and display it on the Serial Monitor. The library provides a method to read the temperature in Celsius and a method to read the temperature in Fahrenheit degrees.

  • thermocouple.readCelsius(): returns temperature in Celsius degrees.
  • thermocouple.readFahrenheit(): returns temperature in Fahrenheit degrees.

The following lines read the temperature and display it on the Serial Monitor.

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

As you can see, it’s very simple to get temperature readings using the K-type thermocouple with the MAX6675 amplifier.

Demonstration

Upload the code to your ESP8266 board. Don’t forget the select the board you’re using in Tools > Board and select the COM port your board is connected to in Tools > Port.

After uploading the code to the ESP8266, open the Serial Monitor at a baud rate of 9600. Press the ESP8266 on-board RST button.

New temperature readings are displayed on the Serial Monitor every second.

Type-J Thermocouple Example Serial Monitor

Wrapping Up

In this tutorial, you learned how to read temperature using the k-type thermocouple with the MAX6675 amplifier. Thermocouples have a wide temperature measurement range and allow you to read very high temperatures—as high as 1024ºC (1875ºF) when using k-type thermocouple with MAX6675.

We have tutorials for other popular sensors with the ESP8266 board that you may like:

Learn more about the ESP8266 with our resources:



Learn how to build a home automation system and we’ll cover the following main subjects: Node-RED, Node-RED Dashboard, Raspberry Pi, ESP32, ESP8266, MQTT, and InfluxDB database DOWNLOAD »
Learn how to build a home automation system and we’ll cover the following main subjects: Node-RED, Node-RED Dashboard, Raspberry Pi, ESP32, ESP8266, MQTT, and InfluxDB database DOWNLOAD »

Enjoyed this project? Stay updated by subscribing our newsletter!

4 thoughts on “ESP8266 NodeMCU: K-Type Thermocouple with MAX6675 Amplifier”

Leave a Comment

Download Our Free eBooks and Resources

Get instant access to our FREE eBooks, Resources, and Exclusive Electronics Projects by entering your email address below.