아두이노 나노 ESP32 MAX6675 열전대 모듈
이 시리즈의 다른 모든 온도 튜토리얼 - DHT11/DHT22, DS18B20, TMP36 - 은 같은 약점을 가지고 있습니다: 정말 뜨거운 곳에 넣으면 어느 것도 견디지 못합니다. 플라스틱 패키지와 실리콘 다이는 150°C보다 훨씬 낮은 온도에서 고장나기 시작하므로, 커피 원두 로스팅, 도자기 가마 감시, 장작 난로의 연도 온도 확인 같은 용도에는 쓸 수 없습니다.
해결책은 열전대라는 완전히 다른 감지 기술과, 그 출력을 Arduino Nano ESP32가 읽을 수 있는 숫자로 바꿔 주는 작은 브레이크아웃 보드를 함께 사용하는 것입니다. 이 튜토리얼에서는 Arduino Nano ESP32와 MAX6675 열전대 모듈의 배선 및 프로그래밍을 다룹니다.

준비물
| 1 | × | 아두이노 나노 ESP32 | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | MAX6675 Thermocouple Module | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 나노용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 나노용 브레이크아웃 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 나노 ESP32용 전원 분배기 | 쿠팡 | 아마존 |
MAX6675 열전대 모듈에 대하여
"MAX6675 모듈"로 판매되는 제품은 사실 두 가지가 함께 묶인 것입니다: MAX6675 칩을 중심으로 만든 작은 브레이크아웃 보드와, 여기에 연결된 Type-K 열전대 프로브입니다.

열전대란 무엇인가요?
마케팅 문구를 걷어내면, 열전대는 서로 다른 두 금속 선을 한쪽 끝에서 용접한 것에 불과하며, 이 끝을 온접점(hot junction)이라고 합니다. 이 접점을 가열하면 두 선 사이에 작은 전압이 생기고, 온도가 변하면 전압도 커지거나 작아집니다. 칩도, 실리콘도, 녹을 것도 없습니다 - 바로 이 때문에 열전대는 일반 센서라면 즉시 망가질 곳에도 넣을 수 있습니다.
열전대는 사용되는 금속 조합에 따라 여러 종류(J, K, E, T 등)가 있습니다. 크로멜(Chromel)과 알루멜(Alumel)로 만든 Type-K가 가장 흔히 볼 수 있는 종류이며, 대략 -328°F에서 +2300°F까지 여유 있게 측정할 수 있습니다.
하지만 밀리볼트 수준의 신호 자체는 다루기가 까다롭습니다. Arduino Nano ESP32가 유용하게 사용하려면 증폭, 선형화, 실제 온도 값으로의 변환이 필요합니다 - 그리고 이 변환 작업을 MAX6675가 담당합니다.
MAX6675 모듈 핀아웃
브레이크아웃 보드는 프로브의 작은 전압을 계속 샘플링하고, 12비트 아날로그-디지털 변환기를 거쳐, 완성된 측정값을 3선식 읽기 전용 링크로 Arduino Nano ESP32에 전달합니다:
- VCC: 전원 입력, 3.0V ~ 5.5V를 허용합니다.
- GND: 접지 기준.
- SCK: 시리얼 클록, 각 측정값을 내보내기 위해 Arduino Nano ESP32가 구동합니다.
- CS: 칩 선택 - Arduino Nano ESP32가 측정값을 읽고 싶을 때마다 이 핀을 LOW로 내립니다.
- SO: 시리얼 데이터 출력, 모듈의 MISO 라인으로 12비트 결과를 Arduino Nano ESP32로 보냅니다. 칩에 데이터를 보낼 일이 없으므로 MOSI 핀은 아예 없습니다.
반대쪽 가장자리에는 프로브용 2핀 나사 단자가 있습니다: 빨간 선은 +에, 파란 선은 -에 고정합니다.
모듈에 포함된 프로브는 길이가 약 18인치이며, MAX6675 칩 자체는 0°C부터 1024°C까지 디지털화할 수 있지만 프로브는 0°C ~ 80°C 정격입니다. 80°C보다 뜨거운 것을 측정하려면 더 높은 온도 정격의 Type-K 프로브로 교체해야 합니다.
간단한 사양:
- 동작 전압: 3.0V - 5.5V
- 디지털화 범위: 0 - 1024°C (포함된 프로브는 0-80°C로 제한)
- 정확도: ±3°C
- 분해능: 약 0.25°C
배선도
Arduino Nano ESP32의 로직은 3.3V로 동작하고, MAX6675 모듈은 3.0V에서 5.5V 사이 어디서나 잘 동작하므로, VCC는 보드의 3V3 핀에서 전원을 공급하고 GND는 GND에 연결합니다. SCK, CS, SO에는 남는 디지털 핀 세 개를 아무거나 사용하고, 프로브의 빨간 선과 파란 선을 모듈의 +와 - 단자에 고정합니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
MAX6675 모듈과 Arduino Nano ESP32의 배선표
| MAX6675 모듈 | Arduino Nano ESP32 |
|---|---|
| VCC | → 3V3 |
| GND | → GND |
| SCK | → D4 |
| CS | → D3 |
| SO | → D2 |
Arduino Nano ESP32 코드
빠른 단계
Arduino Nano ESP32를 시작하려면 다음 단계를 따르세요:
- Arduino Nano ESP32가 처음이라면 아두이노 나노 ESP32 - 소프트웨어 설치 튜토리얼을 참고하세요.
- 위의 표와 배선도에 따라 MAX6675 모듈을 Arduino Nano ESP32에 연결합니다.
- USB 케이블로 Arduino Nano ESP32 보드를 컴퓨터에 연결합니다.
- 컴퓨터에서 Arduino IDE를 실행합니다.
- Arduino Nano ESP32 보드와 해당 COM 포트를 선택합니다.
- Arduino IDE 왼쪽 탐색 바의 Library Manager 아이콘을 클릭하여 라이브러리 매니저를 엽니다.
- 검색창에 "MAX6675"를 입력한 다음, Adafruit의 MAX6675 라이브러리를 찾습니다.
- Install 버튼을 클릭하여 라이브러리를 설치합니다.
- Search for MAX6675 library created by Adafruit and click the Install button.
- 위의 코드를 복사하여 Arduino IDE에 붙여넣습니다.
- Arduino IDE의 Upload 버튼을 클릭하여 코드를 컴파일하고 Arduino Nano ESP32 보드에 업로드합니다.
- 측정하려는 대상에 열전대 끝을 대 보세요 - 첫 테스트로는 뜨거운 물이 담긴 머그컵이 좋습니다.
- 시리얼 모니터를 열어 측정값이 들어오는 것을 확인합니다.
※ 주의:
시리얼 모니터가 계속 같은 값이나 명백히 잘못된 값을 출력한다면, SCK/CS/SO 배선이 스케치에서 사용한 핀과 맞는지 다시 확인하고, 프로브의 빨간 선과 파란 선이 단자에 그냥 닿아 있는 것이 아니라 단자 블록 안에 제대로 조여져 있는지 확인하세요.
코드 설명
스케치는 먼저 칩과의 저수준 통신을 처리하는 MAX6675 라이브러리 헤더를 포함합니다.
다음으로 Arduino Nano ESP32와 모듈의 클록, 칩 선택, 데이터 출력 라인 간의 연결을 위해 세 개의 핀 번호를 정의합니다.
그 다음 thermocouple이라는 이름의 MAX6675 객체를 만들어, 라이브러리에 각 핀의 역할을 알려줍니다.
setup()은 시리얼 연결을 열고 잠시 대기하여, 스케치가 첫 측정값을 요청하기 전에 모듈이 안정될 시간을 줍니다.
loop() 안에서는 두 개의 라이브러리 함수가 모든 일을 합니다: thermocouple.readCelsius()와 thermocouple.readFahrenheit()는 각각 칩에서 새로운 변환을 시작하고 요청한 단위로 결과를 반환합니다.
두 값은 시리얼 모니터의 한 줄에 출력되고, 그 다음 1초 지연이 이어지는데, 이는 MAX6675가 실제로 새 변환을 만들어낼 수 있는 속도에 맞춘 것입니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.