Section 4.2 Thermocouples
A thermocouple is made by mechanically joining two dissimilar metals. Thanks to a fun physical phenomenon known as the Seebeck effect, this results in a very small temperature-dependent voltage across the junction. With a sufficiently sensitive voltage measurement and appropriate calibration, it is possible to deduce the temperature at the thermocouple junction.
The MAX6675 and MAX31855 thermocouple amplifiers are small chips designed to make it easy to use thermocouples. They include an amplifier which boosts the tiny voltage signal up to a range that can be easily read, and ADC to convert that voltage to a digital value, a small amount of logic to calculate the temperature, and a simple digital interface to connect to a microcontroller.
The primary difference between the parts is the temperature range: the MAX6675 can read from 0 to 1023.75 ° C, while the MAX31855 can theoretically read from -270 °C up to 1800 °C 1 .
Subsection 4.2.1 Wiring the thermocouple
GNDconnects to ground
VCCconnects to 3.3V
DOis the Data Output pin; connect it to any digital input
CSis a Chip Select pin which the microcontroller uses to tell the chip when to send data. Connect it to any digital output.
CLKis a clock signal which is used to synchronize the transmission of data. Connect it to any digital output.
Subsection 4.2.2 Reading the temperature in MiroPython
First, download the
thermocouple.py library from the course website, and copy it to your ESP32 like other libraries.
Then use the example code below to take a reading from the sensor:
from machine import Pin # You'll need to make sure the thermocouple.py library is copied to your ESP32 from thermocouple import MAX6675 # Now initialize the thermocouple object with the correct pins # Change the pin numbers to match your setup therm = MAX6675(cs=Pin(15), sck=Pin(2), so=Pin(4)) # Take a single reading and print it print(therm.read())
The code for the MAX31855 is the same; just make sure to import