아두이노 우노 Q MAX6675 열전대 모듈
DHT11이나 LM35 같은 일반 센서는 오븐, 납땜 인두, 작동 중인 엔진 근처에서 견디지 못합니다 — 애초에 그런 열을 위해 만들어지지 않았기 때문입니다. MAX6675 모듈은 Type-K 열전대 프로브와 전용 디지타이저 칩을 짝지어 이 문제를 해결하며, Arduino UNO Q가 일반 센서로는 감당할 수 없는 훨씬 높은 온도를 안전하게 읽을 수 있게 해 줍니다. 이 튜토리얼에서는 배선과 프로그래밍 방법, 그리고 Telegram으로 원격 모니터링하는 방법을 보여줍니다.
이 튜토리얼에서 배울 내용:
- MAX6675 열전대 모듈이 무엇이며 어떻게 작동하는지
- MAX6675 모듈을 Arduino UNO Q MCU에 배선하는 방법
- MAX6675에서 온도를 읽도록 MCU(C/C++ Arduino 코드)를 프로그래밍하는 방법
- Bridge를 통해 MAX6675 데이터를 읽도록 Linux 측(Python)과 MCU 측(C/C++)을 모두 프로그래밍하는 방법
- Arduino UNO Q에서 온도가 임계값을 넘으면 Telegram 알림을 받는 방법
- MAX6675 모듈과 함께 Arduino UNO Q에서 OpenClaw를 사용하는 방법

준비물
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | USB Cable for Arduino Uno Q | 아마존 | |
| 1 | × | MAX6675 Thermocouple Module | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
MAX6675 열전대 모듈에 대하여
열전대는 서로 다른 두 금속 선을 한쪽 끝에서 접합한 온도 센서이며, 이 끝을 온접점(hot junction)이라고 합니다. 이 접점을 가열하면 온도에 따라 변하는 작은 전압이 생깁니다 — MAX6675 칩은 이 작은 전압을 Arduino UNO Q가 바로 사용할 수 있는 깨끗한 12비트 디지털 값으로 변환합니다. 가장 흔한 프로브 종류인 Type-K는 크로멜(Chromel)과 알루멜(Alumel) 선으로 만들어지며, 대략 -328°F에서 +2300°F까지 측정할 수 있습니다.
| MAX6675 모듈 | |
|---|---|
| 동작 전압 | 3.0V ~ 5.5V |
| 인터페이스 | 3선식 (SCK, CS, SO) |
| 온도 범위 | 0°C ~ 1024°C (프로브 외부 케이스 정격은 0°C ~ 80°C) |
| 정확도 | ±3°C |
핀아웃

브레이크아웃 보드에는 네 개의 헤더 핀과 프로브용 2핀 나사 단자가 있습니다:
- VCC: 3.3V 또는 5V에 연결합니다
- GND: GND(0V)에 연결합니다
- SCK: 클록 핀 — MCU의 디지털 핀에 연결합니다
- CS: 칩 선택 핀 — MCU의 디지털 핀에 연결합니다
- SO: 시리얼 데이터 출력 (MISO만 있고 MOSI는 없음) — MCU의 디지털 핀에 연결합니다
Type-K 프로브는 보드 반대쪽의 나사 단자에 연결합니다: 빨간 선은 +에, 파란 선은 -에 연결합니다.
배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| MAX6675 모듈 핀 | Arduino UNO Q MCU |
|---|---|
| VCC | 5V |
| GND | GND |
| SCK | D5 |
| CS | D4 |
| SO | D3 |
MAX6675 프로그래밍 방법
- 라이브러리를 포함합니다:
- 핀을 정의하고 thermocouple 객체를 만듭니다:
- 섭씨와 화씨로 온도를 읽습니다:
※ 주의:
MAX6675는 변환을 완료하는 데 약 220ms가 필요합니다 — 대략 250ms에 한 번보다 자주 읽지 않도록 하세요.
Arduino UNO Q 코드
Arduino UNO Q에는 함께 동작하는 두 개의 프로세서가 있습니다:
- STM32 MCU는 3선식 인터페이스를 통해 MAX6675 모듈을 직접 읽습니다 — 모든 센서 읽기는 MCU에서 실행됩니다
- Qualcomm MPU는 Debian Linux를 실행하며 Wi-Fi, Python, 클라우드 연결을 처리합니다
- 이 섹션에서는 MCU만 프로그래밍합니다 — Linux 측은 유휴 상태로 둡니다. 두 프로세서가 Bridge를 통해 함께 동작하는 방법은 뒤 섹션에서 보여줍니다.
MCU는 매초 MAX6675를 읽고 온도를 시리얼 모니터에 출력합니다.
빠른 단계
Arduino UNO Q를 처음 사용하시나요? 진행하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 하세요.
- 연결: 배선도와 같이 MAX6675 모듈을 Arduino UNO Q MCU에 연결합니다.
- Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다.
- 새 App 만들기: Create New App 버튼을 클릭합니다.

- App에 이름을 지정합니다. 예: Max6675ThermocoupleModule
- Create를 클릭하여 확인합니다.

- 스케치 붙여넣기: 위의 MCU 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다. 다른 파일은 기본값으로 둡니다.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for MAX6675 library created by Adafruit and click the Install button.
- 업로드: Arduino App Lab에서 Run 버튼을 클릭합니다.

- 프로브 끝을 따뜻한 것(뜨거운 물이 담긴 머그컵이 좋습니다)에 대고 — 콘솔에서 온도가 올라가는 것을 지켜보세요.
App Lab 콘솔 출력
Bridge: Linux + MCU
이 섹션에서는 Linux 측이 Bridge를 통해 MAX6675 온도를 읽을 수 있도록 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하는 방법을 보여줍니다:
- MAX6675 모듈은 3선식 인터페이스를 통해 MCU(STM32)에 연결됩니다 — MCU는 매초 최신 값을 읽고 캐시합니다
- MPU는 MAX6675에 직접 접근할 수 없습니다 — 측정값을 가져오려면 Bridge 함수를 호출해야 합니다
- MPU에는 Wi-Fi가 있습니다 — 완전한 Debian Linux를 실행하므로 데이터를 기록하거나, 대시보드에 게시하거나, 인터넷으로 알림을 보낼 수 있습니다
- Arduino_RouterBridge는 두 프로세서 간의 RPC 통신을 가능하게 합니다
- ⚠️ /dev/ttyHS1(Linux)과 Serial1(MCU)은 라우터가 예약한 것입니다 — 사용자 코드에서 절대 열지 마세요
요약하면: MCU가 매초 MAX6675를 읽고 결과를 캐시 → MPU가 Bridge를 폴링하여 측정값을 가져옴 → MPU가 Wi-Fi로 게시하거나 알림을 보냄.
MCU 코드 (Bridge)
Python 코드 (Bridge)
빠른 단계
- 연결: 배선도와 같이 MAX6675 모듈을 Arduino UNO Q에 연결합니다.
- Arduino App Lab 열기: Arduino App Lab을 실행하고 보드가 감지될 때까지 기다립니다.
- 새 App 만들기: Create New App을 클릭하고, 이름을 Max6675ThermocoupleModuleBridge로 지정한 다음 Create를 클릭합니다.
- MCU 스케치 붙여넣기: 위의 MCU Bridge 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다.
- Python 코드 붙여넣기: 위의 Python Bridge 코드를 복사하여 App의 Python 파일에 붙여넣습니다.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- 업로드: Arduino App Lab에서 Run 버튼을 클릭합니다.

- Python 콘솔에 매초 온도 측정값이 나타나는 것을 확인합니다.
App Lab 콘솔 출력
Telegram
MAX6675 온도를 원격으로 모니터링하고, 온도가 100°C를 넘으면 자동으로 Telegram 알림을 받으세요 — 다른 방에서 오븐, 가마, 납땜 스테이션을 지켜볼 때 편리합니다.
MCU 스케치: 이전 Bridge 섹션의 MCU 스케치를 그대로 사용합니다.
Python 코드 (Telegram)
빠른 단계
- YOUR_TELEGRAM_BOT_TOKEN을 BotFather에서 받은 실제 봇 토큰으로 바꿉니다.
- YOUR_CHAT_ID를 여러분의 Telegram 채팅 ID로 바꿉니다.
- 이 Python 코드를 App의 Python 파일에 붙여넣습니다 (MCU 스케치는 그대로 유지).
- Run 버튼을 클릭합니다. Telegram에서 /temp를 보내거나, 프로브를 100°C 이상으로 가열하여 알림을 발생시킵니다.
App Lab 콘솔 출력
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on 아두이노 우노 Q - OpenClaw Tutorial
프로젝트 아이디어
MAX6675와 Arduino UNO Q로 다양한 유용한 프로젝트를 만들 수 있습니다:
- 가마 또는 오븐 온도 기록기: Bridge와 Python으로 시간에 따른 온도를 기록하고, 대시보드에 소성/베이킹 곡선을 그립니다
- 납땜 스테이션 모니터: 인두 팁 온도를 추적하고, 목표 범위를 벗어나면 Telegram 알림을 받습니다
- 바비큐 / 훈연기 온도계: 프로브를 그릴 석쇠에 고정하고 Telegram으로 원격 업데이트를 받아, 뚜껑을 계속 열어 볼 필요가 없게 합니다
- 3D 프린터 핫엔드 감시기: 핫엔드가 안전 한계를 넘어 과열되면 MCU가 Bridge를 통해 릴레이를 작동시켜 전원을 차단합니다
- 다중 구역 용광로 조사: 여러 MAX6675 모듈을 서로 다른 디지털 핀에 연결하고, Python 측에서 Bridge로 각 모듈을 폴링하여 나란히 비교합니다
스스로 도전해 보기
Arduino UNO Q에서 MAX6675로 더 나아갈 준비가 되셨나요? 다음 도전 과제를 시도해 보세요:
- 쉬움: 부팅 이후 본 가장 높은 온도와 가장 낮은 온도를 기억하는 최소/최대 추적 기능을 MCU 스케치에 추가합니다.
- 보통: 열전대 프로브가 분리되었는지 보고하는 get_fault(String) Bridge 함수를 추가하고(프로브가 열려 있으면 MAX6675가 오류 비트를 설정합니다), 이 값이 true가 되면 Python 측에서 경고를 출력하게 합니다.
- 고급: 데이터 로거를 만듭니다: Python 측에서 5초마다 타임스탬프가 포함된 온도 측정값 CSV를 기록하게 하고, 지난 1시간 동안의 가장 높은 측정값을 보내 주는 Telegram /report 명령을 추가합니다.