아두이노 우노 Q 팬 제어
이 가이드에서는 Arduino UNO Q를 사용하여 릴레이로 팬을 제어하는 방법을 배웁니다. 릴레이는 Arduino UNO Q MCU와 팬의 전원 공급 사이의 스위치 역할을 합니다.

WARNING
주 전기에 연결된 프로젝트로 작업할 때 감전을 피하기 위해 적절한 지식을 갖추는 것이 중요합니다. 안전이 매우 중요합니다. 무엇을 하고 있는지 완전히 확신하지 않으면 시도하지 마십시오. 대신 경험 있는 사람의 도움을 받으십시오.
AC 전원 팬보다는 DC 팬(최대 24V)으로 테스트하는 것을 권장합니다.
필요한 하드웨어
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | Arduino Uno Q용 USB 케이블 | 아마존 | |
| 1 | × | 릴레이 | 아마존 | |
| 1 | × | 12V DC 냉각 팬 | 아마존 | |
| 1 | × | (대체) 5V DC 냉각 팬 | 쿠팡 | 아마존 | |
| 1 | × | 12V 전원 어댑터 | 아마존 | |
| 1 | × | DC 전원 잭 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼 와이어 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
DC 팬 정보
핀아웃
DC 팬은 일반적으로 두 개의 와이어를 가집니다:
- 음수(-) 와이어(검정색): DC 전원 공급 장치의 음수에 연결
- 양수(+) 와이어(빨간색): DC 전원 공급 장치의 양수에 연결

전원 공급 장치의 전압이 팬이 필요로 하는 전압과 일치하는지 확인하십시오(예: 5V 또는 12V).
팬을 제어하는 방법
- DC 팬이 전원 공급 장치에 직접 연결되면 계속 최대 속도로 작동합니다.
- MCU에서 팬을 켜고 끄려면 Arduino UNO Q와 팬의 전원 공급 사이에 릴레이를 사용하십시오.
이 튜토리얼에서는 릴레이를 사용하여 팬을 전환합니다. 릴레이에 익숙하지 않으면 먼저 아두이노 우노 Q - 릴레이 튜토리얼을 참조하십시오.
배선도

이 이미지는 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를 처음 사용하신가요? 아두이노 우노 Q 시작하기 튜토리얼을 따라 계속 진행하기 전에 개발 환경을 준비하십시오.
- 부품 배선: 릴레이 IN → 핀 9, DC+ → 5V, DC- → GND에 연결하십시오. 팬을 릴레이를 통해 전원 공급 장치에 연결하십시오.
- 연결: USB-C 케이블로 Arduino UNO Q를 컴퓨터에 연결하십시오.
- Arduino App Lab 열기: Arduino App Lab을 시작하고 Arduino UNO Q가 감지될 때까지 기다리십시오.
- 새 앱 만들기: 새 앱 만들기 버튼을 클릭하십시오.

- 앱에 이름을 지정하십시오. 예: DIYables_Fan
- 만들기를 클릭하여 확인하십시오.
- 새 앱 내에 생성된 폴더 및 파일 세트가 표시됩니다.

- sketch/sketch.ino 파일을 찾으십시오 — MCU 스케치를 붙여넣을 위치입니다.
- 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의 실행 버튼을 클릭하여 STM32로 컴파일 및 업로드하십시오.

- 테스트: 팬이 5초 동안 켜지고 5초 동안 끈 후 반복되어야 합니다.
Linux + MCU Bridge 프로그래밍
Arduino UNO Q는 함께 작동하는 두 개의 프로세서를 가집니다: MPU(Qualcomm, Debian Linux 실행) 및 MCU(STM32, Arduino 스케치를 실행하는 Zephyr OS). Arduino_RouterBridge 라이브러리를 통해 RPC를 사용하여 통신합니다 — 원본 시리얼 포트를 통해서는 절대 사용하지 않습니다.
- 릴레이(및 팬)는 MCU(STM32)에 연결됩니다 — 릴레이 IN은 핀 9에 있습니다.
- MPU는 릴레이를 직접 제어할 수 없습니다 — MCU에서 Bridge.call("fan_on") 또는 Bridge.call("fan_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를 사용한 팬 제어:
Python 스크립트(Arduino App Lab) — 팬을 5초 동안 켜기, 5초 동안 끄기:
- 참고: MCU 스케치에서 Bridge.begin()이 호출되고 Linux 측에서 Python 스크립트를 실행하기 전에 스케치가 업로드되었는지 확인하십시오.
- ⚠️ 경고: /dev/ttyHS1(Linux의)을 직접 열거나 코드에서 Serial1(MCU)을 사용하지 마십시오 — 이들은 Arduino Router에서 사용되며 액세스하면 Bridge가 손상됩니다.
빠른 단계
- MCU 스케치 업로드: Arduino App Lab을 열고 새 앱을 만든 후 Bridge MCU 스케치를 sketch/sketch.ino에 붙여넣고 Arduino_RouterBridge 라이브러리를 설치한 후 실행을 클릭하십시오.
- Python 스크립트 추가: 위의 Python 코드를 동일한 앱의 Python 탭에 붙여넣으십시오.
- 앱 실행: 실행을 클릭하십시오 — Python이 5초마다 팬을 켜고 끕니다.
- 콘솔 확인: 콘솔 탭을 열고 → MCU Monitor 서브탭을 클릭하여 팬 상태를 확인하십시오.
App Lab 콘솔 출력
Telegram 통합
Telegram을 통해 /on 및 /off 명령을 사용하여 팬을 원격으로 제어합니다.
아직 Telegram 봇이 없으면 계속 진행하기 전에 아두이노 우노 Q - 텔레그램 봇을 참조하여 봇 토큰을 얻으십시오.
MCU 스케치: 이전 Bridge 섹션에서 동일한 MCU 스케치를 유지하십시오 — 변경 사항이 필요하지 않습니다. 계속 진행하기 전에 STM32에 이미 업로드되고 실행 중인지 확인하십시오.
Python 스크립트(Arduino App Lab) — 팬 제어를 위한 Telegram 봇:
- 참고: YOUR_BOT_TOKEN을 Telegram의 @BotFather에서 얻은 토큰으로 바꾸십시오.
- /on을 전송하여 팬을 시작합니다. /off를 전송하여 중지합니다.
빠른 단계
- MCU 스케치 업로드: 이전 섹션의 Bridge MCU 스케치를 사용하십시오(아직 업로드하지 않았으면 먼저 업로드하십시오).
- Telegram 스크립트 붙여넣기: 위의 Python 코드를 Arduino App Lab의 앱의 Python 탭에 복사하여 붙여넣으십시오.
- 토큰 설정: 스크립트의 YOUR_BOT_TOKEN을 실제 봇 토큰으로 바꾸십시오.
- 앱 실행: 실행을 클릭하십시오 — 봇이 Telegram 메시지를 수신 대기하기 시작합니다.
- 테스트: /on 및 /off를 전송하여 팬을 제어하십시오.
App Lab 콘솔 출력
ArduinoBot
OpenClaw 통합
아두이노 우노 Q - OpenClaw 튜토리얼의 지침을 참조하여 이 튜토리얼에 OpenClaw를 적용할 수 있습니다.
애플리케이션/프로젝트 아이디어
- 스마트 냉각 시스템: 온도가 임계값을 초과하면 팬을 자동으로 켭니다.
- 환기 제어: 특정 시간대에 팬을 실행하도록 예약합니다.
- 원격 침실 팬: Telegram을 통해 집에 도착하기 전에 휴대폰에서 침실 팬을 제어합니다.
- 서버실 냉각: CPU 온도 판독값을 기반으로 팬을 트리거합니다.
도전 과제
- 쉬움: 켜기/끄기 간격을 5초에서 10초로 변경합니다.
- 중간: /toggle 명령을 추가하여 팬을 반대 상태로 전환합니다.
- 고급: 온도 센서와 결합하여 온도가 높을 때 팬을 자동으로 켭니다.