아두이노 우노 Q 펌프 제어
12V 펌프는 물, 기름 또는 기타 액체를 이동할 수 있으며 관개 시스템, 수족관 및 정수 충전소에서 일반적으로 사용됩니다. Arduino UNO Q는 릴레이를 통해 펌프를 제어합니다. Bridge와 Telegram을 사용하면 어디서나 원격으로 펌프를 켜거나 끌 수 있습니다.
이 튜토리얼에서 배우게 될 내용:
- 12V 펌프가 어떻게 작동하고 릴레이를 통해 Arduino UNO Q에 연결하는 방법
- MCU를 프로그래밍하여 펌프를 켜고 끄는 방법
- Bridge를 사용하여 Linux 측에서 (Python) 펌프를 제어하는 방법
- Telegram을 통해 Arduino UNO Q에서 원격으로 펌프를 켜고 끄는 방법
- Arduino UNO Q에서 펌프와 함께 OpenClaw를 사용하는 방법

필요한 하드웨어
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | Arduino Uno Q용 USB 케이블 | 아마존 | |
| 1 | × | 12V 펌프 | 쿠팡 | 아마존 | |
| 1 | × | 비닐 튜브 | 아마존 | |
| 1 | × | 릴레이 | 아마존 | |
| 1 | × | 12V 전원 어댑터 | 아마존 | |
| 1 | × | DC 전원 잭 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼 와이어 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
12V 펌프에 대해
핀아웃
12V 펌프는 일반적으로 2개의 와이어 연결이 있습니다:
- 양수 (+) 빨간색 와이어: 릴레이를 통해 12V DC에 연결
- 음수 (-) 검은색 와이어: 12V DC 전원 공급 장치의 GND에 연결

펌프를 제어하는 방법
12V 펌프는 12V 전원 공급이 필요하므로 Arduino UNO Q 핀에 직접 연결되면 안 됩니다. 릴레이가 인터페이스로 사용됩니다. MCU가 릴레이를 제어하고 릴레이가 12V를 펌프에 전환합니다:
- 릴레이 핀 HIGH → 릴레이 닫힘 → 펌프로 12V → 펌프 ON
- 릴레이 핀 LOW → 릴레이 열림 → 펌프로 전원 없음 → 펌프 OFF
배선 다이어그램

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
릴레이 모듈 IN 핀을 MCU 핀 D3에 연결합니다. 릴레이의 COM과 NO 단자를 12V 전원 공급과 펌프 사이에 연결합니다. 릴레이의 VCC를 5V에 연결하고 GND를 GND에 연결합니다.
| 릴레이 핀 | Arduino UNO Q MCU |
|---|---|
| GND | GND |
| VCC | 5V |
| IN | D3 |
펌프 프로그래밍 방법
- 릴레이 핀을 출력으로 설정합니다:
- 펌프를 켜고 끕니다:
Arduino UNO Q 코드
Arduino UNO Q는 함께 작동하는 2개의 프로세서가 있습니다:
- STM32 MCU는 펌프에 12V 전원을 전환하는 릴레이를 제어합니다
- Qualcomm MPU는 Debian Linux를 실행하고 Wi-Fi, Python 및 클라우드 연결을 처리합니다
- 이 섹션에서는 MCU만 프로그래밍되고 Linux 측은 유휴 상태로 유지됩니다. 나중 섹션에서 Bridge를 통해 두 프로세서가 함께 작동하는 방법을 보여줍니다.
이 코드는 펌프를 5초 동안 켜고 5초 동안 끄며 계속 반복합니다.
빠른 단계
Arduino UNO Q를 처음 사용하시나요? 진행하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따르세요.
- 연결: 배선 다이어그램에 표시된 대로 펌프, 릴레이 및 12V 전원 공급장치를 Arduino UNO Q MCU에 연결합니다. 펌프 입구/출구에 비닐 튜브를 부착합니다.
- Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다.
- 새 App 만들기: Create New App 버튼을 클릭합니다.

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

- 스케치 붙여넣기: 위의 MCU 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다. 다른 파일은 기본값으로 유지합니다.
- 라이브러리 필요 없음 - 기본 제공되는 digitalWrite() 함수만 사용합니다.
- 업로드: Arduino App Lab의 Run 버튼을 클릭합니다.

- 펌프가 5초마다 켜지고 꺼지는 것을 관찰합니다.
App Lab 콘솔 출력
Bridge: Linux + MCU
이 섹션에서는 Linux 측이 Bridge를 통해 펌프를 켜고 끌 수 있도록 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하는 방법을 보여줍니다:
- 펌프는 MCU를 통해 릴레이에 연결됩니다 - MCU가 릴레이 출력 핀을 제어합니다
- MPU는 릴레이를 직접 제어할 수 없습니다 - Bridge 함수를 호출하여 펌프를 켜거나 끕니다
- MPU는 Wi-Fi를 가지고 있습니다 - 전체 Debian Linux를 실행하는 것으로 Telegram 또는 다른 서비스에서 명령을 받을 수 있으며 이를 펌프 제어 동작으로 변환할 수 있습니다
- Arduino_RouterBridge는 두 프로세서 간의 RPC 통신을 활성화합니다
- ⚠️ /dev/ttyHS1 (Linux) 및 Serial1 (MCU)은 라우터에 의해 예약됩니다 - 사용자 코드에서 이를 열지 마세요
간단히 말해서: MPU가 온/오프 명령을 보냅니다 → Bridge를 호출합니다 → MCU가 릴레이를 제어합니다 → 펌프가 활성화됩니다.
MCU 코드 (Bridge)
Python 코드 (Bridge)
빠른 단계
- 연결: 배선 다이어그램에 표시된 대로 펌프, 릴레이 및 12V 전원 공급장치를 Arduino UNO Q에 연결합니다.
- Arduino App Lab 열기: Arduino App Lab을 실행하고 보드가 감지될 때까지 기다립니다.
- 새 App 만들기: Create New App을 클릭하고 이름을 PumpBridge로 지정한 후 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 버튼을 클릭합니다.

- 펌프가 순환하는 것을 관찰합니다: 켜기 → 5초 대기 → 끄기 → 1초 대기 → 반복.
App Lab 콘솔 출력
Telegram
Telegram을 통해 펌프를 원격으로 제어합니다. 간단한 명령으로 어디서나 펌프를 켜거나 끌 수 있습니다.
MCU 스케치: 이전 Bridge 섹션의 동일한 MCU 스케치를 유지합니다.
Python 코드 (Telegram)
빠른 단계
- YOUR_TELEGRAM_BOT_TOKEN을 BotFather의 실제 봇 토큰으로 바꿉니다.
- YOUR_CHAT_ID를 Telegram 채팅 ID로 바꿉니다.
- 이 Python 코드를 App의 Python 파일에 붙여넣습니다 (동일한 MCU 스케치 유지).
- Run 버튼을 클릭합니다. Telegram에서 /on을 전송하여 펌프를 시작하고 /off를 전송하여 중지합니다.
App Lab 콘솔 출력
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on 아두이노 우노 Q - OpenClaw Tutorial
프로젝트 아이디어
펌프와 Arduino UNO Q로 많은 유용한 프로젝트를 구축할 수 있습니다:
- 원격 관개 시스템: Telegram을 통해 어디서나 정원 물주기를 시작하고 중지합니다. Linux 측이 각 펌핑 세션을 시작 시간 및 기간과 함께 CSV 파일에 기록합니다.
- 자동 식물 물주기: MPU를 프로그래밍하여 Linux 시스템 시계를 사용하여 매일 아침 5분 동안 펌프를 실행합니다. 수동 개입이 필요하지 않습니다.
- 홍수 대응: 수위 센서와 결합합니다. 센서가 수위 상승을 감지하면 펌프가 자동으로 Bridge를 통해 켜져 물을 배출하고 Telegram 알림을 보냅니다.
- 수족관 자동 보충: 수위 센서로 수위를 모니터링합니다. 수위가 최소값 아래로 떨어지면 Python이 펌프를 30초 동안 활성화하여 다시 채우고 Telegram 알림을 보냅니다.
- 정수 충전소: 동전 작동식 또는 타이머 제어식 정수 분배기를 구축합니다. /on이 펌프를 시작하고 30초 Python 타이머가 자동으로 중지하여 오버플로우를 방지합니다.
도전해 보기
Arduino UNO Q의 펌프로 더 나아갈 준비가 되셨나요? 이 도전들을 시도해 보세요:
- 쉬움: /on_10s Telegram 명령을 추가합니다. 이 명령은 펌프를 정확히 10초 동안 켜집니다. Python 측에서 time.sleep(10)을 사용한 후 Bridge.call("pump_off")를 호출합니다.
- 중간: 일일 물주기 일정을 구현합니다: Python이 ON/OFF 시간을 포함하는 JSON 파일을 읽고 펌프를 자동으로 제어합니다. 각 펌핑 세션이 시작되고 끝날 때 Telegram 알림을 보냅니다.
- 고급: 유량 로거를 구축합니다: 모든 펌프 ON 세션을 시작 타임스탬프, 중지 타임스탬프 및 기간과 함께 CSV 파일에 기록합니다. /log Telegram 명령을 구현하여 마지막 5개 세션의 요약을 반환합니다.