아두이노 우노 Q 가열 요소 제어

이 가이드에서는 Arduino UNO Q와 릴레이를 사용하여 가열 요소를 제어하는 방법을 배웁니다. 릴레이는 Arduino UNO Q MCU와 가열 요소의 전원 공급 장치 사이의 스위치 역할을 합니다.

Arduino UNO Q controls heating element

WARNING

가열 요소를 다룰 때는 극도로 주의하십시오. 가열 요소는 매우 뜨거워질 수 있으며 화재 및 화상 위험을 초래합니다. 가열 요소에 전원이 공급되는 동안 절대 방치하지 마십시오.

메인 전기와 연결된 프로젝트 작업 시 감전을 피하기 위해 적절한 지식이 매우 중요합니다. 자신이 무엇을 하고 있는지 확실하지 않은 경우 경험이 있는 사람에게 도움을 청하십시오.

안전을 위해 저전압 DC 가열 요소로 테스트하는 것이 좋습니다.

필요한 하드웨어

1×Arduino UNO Q 아마존
1×USB Cable for Arduino Uno Q 아마존
1×릴레이 아마존
1×가열 소자 아마존
1×12V 전원 어댑터 아마존
1×DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

가열 요소 정보

핀 배치

heating element 사용법 핀아웃

가열 요소는 일반적으로 두 개의 전선을 가지고 있습니다:

  • 양극(+) 전선 (빨강): DC 전원의 양극에 연결
  • 음극(−) 전선 (검정): DC 전원의 GND에 연결

가열 요소를 제어하는 방법

12V 가열 요소가 12V 전원에 연결되면 열을 발생시킵니다. MCU에서 이를 켜고 끄기 위해 Arduino UNO Q와 가열 요소 사이에 릴레이를 사용합니다. Arduino UNO Q는 릴레이를 통해 가열 요소를 제어합니다. 릴레이의 작동 원리에 대해 잘 모르면 먼저 아두이노 우노 Q - 릴레이 튜토리얼을 참고하세요.

배선 다이어그램

Arduino UNO Q controls heating element 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

가열 요소를 릴레이의 COM 및 NO 단자를 통해 전원 공급 장치에 연결합니다. 릴레이 IN 핀은 Arduino UNO Q MCU의 핀 9에 연결됩니다.

MCU 코드

Arduino UNO Q는 두 개의 프로세서를 가지고 있습니다: STM32 MCU(실시간 하드웨어 제어 담당)와 Qualcomm MPU(Debian Linux 실행). 이 섹션에서는 STM32 MCU만 프로그래밍됩니다 — Linux 쪽은 유휴 상태입니다. 나중 섹션에서는 두 프로세서가 함께 작동하는 방법을 보여줄 것입니다.

아래 코드는 가열 요소를 5초 동안 켜고 5초 동안 끄는 작업을 반복합니다:

/* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-controls-heating-element */ #define RELAY_PIN 9 // The Arduino UNO Q pin connected to the IN pin of the relay (controls heating element) void setup() { pinMode(RELAY_PIN, OUTPUT); } void loop() { digitalWrite(RELAY_PIN, HIGH); // turn heating element on for 5 seconds delay(5000); digitalWrite(RELAY_PIN, LOW); // turn heating element off for 5 seconds delay(5000); }

빠른 단계

  • Arduino UNO Q를 처음 사용하시나요? 계속하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 개발 환경을 준비하세요.
  • 구성요소 배선: 릴레이 IN → 핀 9, DC+ → 5V, DC- → GND에 연결합니다. 가열 요소를 릴레이를 통해 전원 공급 장치에 연결합니다.
  • 연결: Arduino UNO Q를 USB-C 케이블로 컴퓨터에 연결합니다.
  • Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다.
  • 새 App 생성: Create New App 버튼을 클릭합니다.
create new app in 아두이노 app lab on Arduino UNO Q
  • App에 이름을 지정합니다. 예: DIYables_Heater
  • Create를 클릭하여 확인합니다.
  • 새 App 내부에 폴더 및 파일 집합이 생성됩니다.
아두이노 app lab app folders and files on Arduino UNO Q
  • sketch/sketch.ino 파일을 찾습니다 — 여기에 MCU 스케치를 붙여넣을 것입니다.
  • 스케치 붙여넣기: 위의 MCU 코드를 복사하여 스케치 파일에 붙여넣습니다. 다른 파일은 기본값으로 유지합니다.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    add sketch 라이브러리 in 아두이노 app lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • 업로드: Arduino App Lab에서 Run 버튼을 클릭하여 STM32로 컴파일 및 업로드합니다.
    click run 버튼 in 아두이노 app lab on Arduino UNO Q
    • 테스트: 가열 요소가 5초 동안 켜지고 5초 동안 꺼지는 작업을 반복해야 합니다.

    Linux + MCU Bridge 프로그래밍

    Arduino UNO Q는 함께 작동하는 두 개의 프로세서를 가지고 있습니다: MPU(Qualcomm, Debian Linux 실행) 및 MCU(STM32, Zephyr OS와 Arduino 스케치 실행). 이들은 Arduino_RouterBridge 라이브러리를 사용하여 RPC를 통해 통신합니다 — 원시 시리얼 포트를 통해서가 아닙니다.

    • 릴레이(및 가열 요소)는 MCU(STM32)에 연결됩니다 — 릴레이 IN은 핀 9입니다.
    • MPU는 릴레이를 직접 제어할 수 없습니다 — 이는 MCU에서 Bridge.call("heater_on") 또는 Bridge.call("heater_off")를 호출하며, 이는 릴레이 핀을 설정합니다.
    • MPU는 Wi-Fi를 가지고 있습니다 — MPU가 Wi-Fi를 포함한 전체 Debian Linux를 실행하기 때문에 Telegram 명령을 수락하여 가열 요소를 원격으로 제어할 수 있습니다.
    • 통신: Linux 쪽의 Bridge.call()은 MCU 쪽의 Bridge.provide_safe()를 호출합니다 (digitalWrite()이 릴레이를 제어하는 데 사용되므로).
    • ⚠️ 예약됨: /dev/ttyHS1(Linux) 및 Serial1(MCU)은 Arduino Router에서 사용됩니다 — 절대 직접 열지 마십시오.

    요약하면: MPU가 가열 명령 전송 → MCU가 릴레이 핀 설정 → 가열 요소 켜짐/꺼짐.

    MCU 스케치 — Bridge를 사용한 가열 요소 제어:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-controls-heating-element */ #include "Arduino_RouterBridge.h" #define RELAY_PIN 9 void heater_on() { digitalWrite(RELAY_PIN, HIGH); Monitor.println("Heating element: ON"); } void heater_off() { digitalWrite(RELAY_PIN, LOW); Monitor.println("Heating element: OFF"); } void setup() { Bridge.begin(); Monitor.begin(); pinMode(RELAY_PIN, OUTPUT); digitalWrite(RELAY_PIN, LOW); Bridge.provide_safe("heater_on", heater_on); Bridge.provide_safe("heater_off", heater_off); Monitor.println("Heating Element Bridge ready"); } void loop() {}

    Python 스크립트(Arduino App Lab) — 가열 요소를 5초 동안 켜고 5초 동안 끄기:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-controls-heating-element */ from arduino.app_utils import * import time def loop(): Bridge.call("heater_on") time.sleep(5) Bridge.call("heater_off") time.sleep(5) App.run(user_loop=loop)
    • 참고: Bridge.begin()이 MCU 스케치에서 호출되고 스케치가 업로드되었는지 확인한 후 Linux 쪽에서 Python 스크립트를 실행하세요.
    • ⚠️ 경고: 코드에서 /dev/ttyHS1(Linux에서) 또는 Serial1(MCU에서)을 직접 열지 마십시오 — 이들은 Arduino Router에서 예약되어 있으며 접근하면 Bridge가 끊어집니다.

    빠른 단계

    • MCU 스케치 업로드: Arduino App Lab을 열고 새 App을 생성한 후 Bridge MCU 스케치를 sketch/sketch.ino에 붙여넣고 Arduino_RouterBridge 라이브러리를 설치한 후 Run을 클릭합니다.
    • Python 스크립트 추가: 위의 Python 코드를 동일한 App의 Python 탭에 붙여넣습니다.
    • App 실행: Run을 클릭합니다 — Python이 5초마다 가열 요소를 켜고 끕니다.
    • 콘솔 확인: 콘솔 탭 → MCU Monitor 하위 탭을 열어 히터 상태를 확인합니다.

    App Lab 콘솔 출력

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    Heating Element Bridge ready Heating element: ON Heating element: OFF Heating element: ON Heating element: OFF

    Telegram 통합

    Telegram으로 /on/off 명령을 사용하여 가열 요소를 원격으로 제어합니다.

    아직 Telegram 봇이 없으면 계속하기 전에 아두이노 우노 Q - 텔레그램 봇을 참고하여 봇 토큰을 얻으세요.

    MCU 스케치: 이전 Bridge 섹션의 동일한 MCU 스케치를 유지하세요 — 변경이 필요하지 않습니다. STM32에서 이미 업로드되고 실행 중인지 확인하세요.

    Python 스크립트(Arduino App Lab) — 가열 요소 제어용 Telegram 봇:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-controls-heating-element */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/on": Bridge.call("heater_on") send_message(chat_id, "Heating element is ON.") elif text == "/off": Bridge.call("heater_off") send_message(chat_id, "Heating element is OFF.") else: send_message(chat_id, "Commands:\n/on — turn heating element on\n/off — turn heating element off") time.sleep(0.5) App.run(user_loop=loop)
    • 참고: YOUR_BOT_TOKEN을 Telegram의 @BotFather에서 얻은 토큰으로 바꾸세요.
    • /on을 전송하여 가열 요소를 활성화합니다. /off를 전송하여 비활성화합니다.

    빠른 단계

    • MCU 스케치 업로드: 이전 섹션의 Bridge MCU 스케치를 사용합니다 (아직 업로드하지 않았으면 먼저 업로드).
    • Telegram 스크립트 붙여넣기: 위의 Python 코드를 Arduino App Lab의 App의 Python 탭에 복사합니다.
    • 토큰 설정: 스크립트의 YOUR_BOT_TOKEN을 실제 봇 토큰으로 바꿉니다.
    • App 실행: Run을 클릭합니다 — 봇이 Telegram 메시지 대기를 시작합니다.
    • 테스트: /on/off를 전송하여 가열 요소를 제어합니다.

    App Lab 콘솔 출력

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /on [2026-04-29 12:00:01] Heating element is ON. [2026-04-29 12:05:30] Telegram: /off [2026-04-29 12:05:31] Heating element is OFF.
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /on
    10:15 AM ✓✓
    Heating element is ON.
    10:16 AM
    /off
    10:17 AM ✓✓
    Heating element is OFF.
    10:18 AM

    OpenClaw 통합

    이 튜토리얼에 OpenClaw를 적용할 수 있으며 아두이노 우노 Q - OpenClaw 튜토리얼의 지침을 참고하세요

    응용 프로젝트 아이디어

    • 스마트 온도 조절기: 온도 센서와 결합하여 목표 온도를 자동으로 유지
    • 부화기 제어: 피드백 제어를 사용하여 계란 부화기를 정밀한 온도로 유지
    • 온실 난방: 온도가 설정 지점 아래로 떨어질 때 온실을 자동으로 난방
    • 원격 히터: Telegram을 사용하여 집에 도착하기 전에 공간 히터 켜기

    자신에게 도전해보세요

    • 쉬움: 켜짐/꺼짐 간격을 5초에서 30초로 변경
    • 중간: 가열 요소를 반대 상태로 전환하는 /toggle 명령 추가
    • 어려움: 온도 센서와 결합하여 임계값 이하일 때 히터를 자동으로 켜고 이상일 때 끄기