아두이노 우노 Q 릴레이
이 튜토리얼에서는 Arduino UNO Q와 릴레이를 사용하여 LED 스트립, 선풍기, 전구, 전자 잠금장치, 선형 액추에이터와 같이 높은 전압 또는 높은 전류로 작동하는 장치를 제어하는 방법을 보여줍니다. 다음을 배우게 됩니다:
- 릴레이가 어떻게 작동하는지
- 릴레이를 고전압 장치에 연결하는 방법
- Arduino UNO Q를 릴레이에 연결하는 방법
- Linux를 통해 Bridge를 사용하여 릴레이를 제어하는 방법
- Telegram을 통해 릴레이를 원격으로 제어하는 방법

WARNING
주 전기에 연결된 프로젝트를 다룰 때는 전기 충격을 피하기 위해 적절한 지식을 갖추는 것이 중요합니다. 안전이 매우 중요합니다. 자신이 하는 일에 대해 완전히 확신하지 못한다면 시도하지 마세요. 대신 경험이 있는 사람의 도움을 구하세요.
일부 릴레이가 DC와 AC 장치 모두에서 작동할 수 있지만, 테스트할 때는 DC 장치(최대 24V)를 사용하는 것이 좋습니다.
필요한 하드웨어
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | USB Cable for Arduino Uno Q | 아마존 | |
| 1 | × | 릴레이 | 아마존 | |
| 1 | × | LED 스트립 | 아마존 | |
| 1 | × | 12V 전원 어댑터 | 아마존 | |
| 1 | × | DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
릴레이 정보
릴레이는 마이크로컨트롤러(예: Arduino UNO Q)로 제어되는 프로그래밍 가능한 스위치입니다. 고전압 장치를 자동으로 켜고 끌 수 있습니다.
릴레이 핀아웃

릴레이는 두 그룹의 핀을 가지고 있습니다:
입력 그룹 (저전압, Arduino UNO Q에 연결):
- DC- 핀: GND(0V)에 연결합니다.
- DC+ 핀: VCC(5V)에 연결합니다.
- IN 핀: Arduino UNO Q에서의 제어 신호입니다.
출력 그룹 (고전압, 사용자의 장치에 연결):
- COM 핀: 공통 핀으로, 상시개 및 상시폐 모드 모두에서 사용됩니다.
- NO 핀: 상시개(Normally Open) 핀 - 상시개 모드에서 사용됩니다.
- NC 핀: 상시폐(Normally Closed) 핀 - 상시폐 모드에서 사용됩니다.
작동 원리
초보자는 HIGH 레벨 트리거 + 상시개(NO) 모드를 사용하세요:
- IN 핀이 HIGH를 수신하면 → 릴레이가 COM-NO 회로를 닫습니다 → 장치가 켜집니다.
- IN 핀이 LOW를 수신하면 → 릴레이가 COM-NO 회로를 엽니다 → 장치가 꺼집니다.
※ 주의:
다른 제조업체는 릴레이 모듈 핀을 다르게 배치할 수 있습니다. 항상 릴레이 보드의 라벨을 확인하고 따르세요.
고전압 장치 연결 방법

배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
MCU 코드
Arduino UNO Q는 두 개의 프로세서를 가지고 있습니다: STM32 MCU(실시간 하드웨어 제어 처리)와 Qualcomm MPU(Debian Linux 실행). 이 섹션에서는 STM32 MCU만 프로그래밍됩니다 - Linux 쪽은 유휴 상태입니다. 나중 섹션에서는 두 프로세서가 함께 작동하는 방법을 보여줍니다.
아래 코드는 릴레이를 매 500ms마다 반복적으로 켜고 끕니다:
빠른 단계
- Arduino UNO Q를 처음 사용하나요? 계속하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 개발 환경을 준비하세요.
- 구성 요소 배선: 릴레이 IN → 핀 9, DC+ → 5V, DC- → GND에 연결합니다.
- 연결: Arduino UNO Q를 USB-C 케이블로 컴퓨터에 연결합니다.
- Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다.
- 새 앱 생성: Create New App 버튼을 클릭합니다.

- 앱에 이름을 지정합니다(예: DIYables_Relay).
- Create를 클릭하여 확인합니다.
- 새 앱 내에 생성된 폴더와 파일 집합을 볼 수 있습니다.

- 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의 Run 버튼을 클릭하여 컴파일하고 STM32로 업로드합니다.

- 테스트: 매 500ms마다 릴레이가 클릭 소리를 내며 켜지고 꺼져야 합니다.
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("relay_on") 또는 Bridge.call("relay_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) - 매 0.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 라이브러리를 설치하고, Run을 클릭합니다.
- Python 스크립트 추가: 위의 Python 코드를 같은 앱의 Python 탭에 붙여넣습니다.
- 앱 실행: Run을 클릭합니다 - Python이 매 500ms마다 릴레이를 전환합니다.
- 콘솔 확인: 콘솔 탭을 열고 MCU Monitor 하위 탭에서 릴레이 상태를 확인합니다.
App Lab 콘솔 출력
Telegram 통합
/on 및 /off 명령을 사용하여 Telegram을 통해 릴레이를 원격으로 제어합니다.
아직 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을 실제 봇 토큰으로 바꾸세요.
- 앱 실행: Run을 클릭합니다 - 봇이 Telegram 메시지를 기다리기 시작합니다.
- 테스트: /on 및 /off를 보내 릴레이를 제어합니다.
App Lab 콘솔 출력
ArduinoBot
OpenClaw 통합
이 튜토리얼을 OpenClaw에 맞게 조정하려면 아두이노 우노 Q - OpenClaw 튜토리얼의 지침을 참조하세요.
응용 프로그램/프로젝트 아이디어
- 원격 가전 제어: Telegram을 통해 어디서나 조명, 선풍기 또는 히터를 켜고 끕니다.
- 예약 전환: Python의 datetime 모듈을 사용하여 특정 시간에 장치를 켜고 끕니다.
- 보안 시스템: Raspberry Pi가 침입자를 감지할 때 사이렌 또는 경보 릴레이를 트리거합니다.
- 수펌프 제어: 휴대폰에서 관개용 수펌프를 켜고 끕니다.
직접 도전해보세요
- 쉬움: 토글 간격을 500ms에서 2초로 변경합니다.
- 중간: 릴레이를 반대 상태로 전환하는 /toggle 명령을 추가합니다.
- 고급: 타임스탬프가 포함된 모든 릴레이 상태 변경을 MPU의 파일에 기록합니다.