아두이노 우노 Q 12V 능동 부저

12V 능동 부저는 큰 소리를 내므로 알람과 경고에 이상적입니다. 12V가 필요하므로 Arduino UNO Q에서 직접 전원을 공급할 수 없습니다. 대신 릴레이가 Arduino가 제어하는 스위치 역할을 합니다. 이 튜토리얼에서는 12V 능동 부저를 릴레이를 통해 Arduino UNO Q에 연결하고 로컬 및 Telegram을 통해 원격으로 제어하는 방법을 배우게 됩니다.

Arduino UNO Q - 12v active buzzer

필요한 하드웨어

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

12V 능동 부저에 대하여

12V 능동 부저는 12V 전압이 인가되면 주파수 신호 없이 계속 큰 소리를 냅니다.

핀 구성

12v active buzzer 사용법 핀아웃
  • 양의 (+) 핀 (빨강): 12V 전원(릴레이를 통해)에 연결
  • 음의 (−) 핀 (검정): 12V 전원의 GND에 연결

Arduino UNO Q로 제어하는 방법

부저가 12V를 필요로 하고 Arduino UNO Q는 3.3V를 출력하므로 릴레이가 필요합니다:

  • Arduino UNO Q는 릴레이 코일(3.3V 호환 신호)을 제어합니다
  • 릴레이는 12V 라인을 부저에 켜고 끕니다
  • 릴레이에 익숙하지 않으면 먼저 아두이노 우노 Q - 릴레이을 참조하세요

배선도

Arduino UNO Q 12v active buzzer 연결 배선도

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

MCU 코드

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

코드는 12V 부저를 2초 동안 켜고 5초 동안 끄며 계속 반복합니다:

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

빠른 단계

  • Arduino UNO Q를 처음 사용하신가요? 진행하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따르세요. 그러면 개발 환경이 준비됩니다.
  • 부품 배선: 릴레이 신호 핀을 핀 3에 연결하고, 릴레이를 12V 부저 및 12V 전원에 배선도에 표시된 대로 연결합니다.
  • 연결: USB-C 케이블로 Arduino UNO Q를 컴퓨터에 연결합니다.
  • Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다.
  • 새 앱 만들기: 앱 만들기 버튼을 클릭합니다.
create new app in 아두이노 app lab on Arduino UNO Q
  • 앱에 이름을 지정합니다. 예: DIYables_Buzzer12V
  • 만들기를 클릭하여 확인합니다.
  • 새 앱 내에 생성된 폴더와 파일 집합이 표시됩니다.
아두이노 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의 실행 버튼을 클릭하여 컴파일하고 STM32에 업로드합니다.
    click run 버튼 in 아두이노 app lab on Arduino UNO Q
    • 청취: 부저가 2초 동안 켜지고 5초 동안 꺼지며 계속 반복됩니다.

    Linux + MCU Bridge 프로그래밍

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

    • 릴레이는 MCU(STM32)에 연결됩니다 — 디지털 출력 핀에 배선됩니다. MCU는 릴레이 HIGH/LOW를 구동하여 12V 부저를 제어합니다.
    • MPU는 릴레이를 직접 제어할 수 없습니다Bridge.call()을 통해 MCU 함수를 호출하여 부저를 켜거나 꺼야 합니다.
    • MPU에 Wi-Fi가 있습니다 — MPU는 Wi-Fi가 있는 완전한 Debian Linux를 실행하므로 Telegram 명령을 받고 부저를 원격으로 트리거할 수 있습니다.
    • 통신: Linux 쪽의 Bridge.call()은 MCU 쪽의 Bridge.provide_safe() 함수를 호출합니다. (digitalWrite()는 하드웨어 API이므로)
    • ⚠️ 예약됨: /dev/ttyHS1 (Linux) 및 Serial1 (MCU)은 Arduino Router에서 사용됩니다 — 절대 직접 열지 마세요.

    간단히 말해: MPU가 on/off 명령을 보냄 → MCU가 릴레이를 구동함 → 릴레이가 12V 부저를 켭니다.

    MCU 스케치 — Bridge 및 Monitor 출력이 있는 릴레이 제어 부저:

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

    Python 스크립트 (Arduino App Lab) — Linux에서 부저 제어:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-buzzer */ from arduino.app_utils import * import time def loop(): print("Turning buzzer ON") Bridge.call("buzzer_on") time.sleep(2) print("Turning buzzer OFF") Bridge.call("buzzer_off") time.sleep(5) App.run(user_loop=loop)
    • 참고: 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은 부저를 자동으로 2초 동안 켜고 5초 동안 끕니다.
    • 콘솔 확인: 콘솔 탭 → MCU Monitor 하위탭을 열어 "Buzzer ON" 및 "Buzzer OFF" 메시지를 확인합니다.

    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
    12V Buzzer Bridge ready Buzzer ON Buzzer OFF Buzzer ON

    Telegram 통합

    어디서나 Telegram을 통해 12V 부저를 원격으로 제어합니다.

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

    MCU 스케치: 이전 Bridge 섹션의 동일한 MCU 스케치를 유지합니다 — 변경 사항이 없습니다. 계속하기 전에 STM32에 이미 업로드되고 실행 중인지 확인합니다.

    Python 스크립트 (Arduino App Lab) — 12V 부저 제어를 위한 Telegram 봇:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-buzzer */ 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("buzzer_on") send_message(chat_id, "Buzzer is ON.") elif text == "/off": Bridge.call("buzzer_off") send_message(chat_id, "Buzzer is OFF.") else: send_message(chat_id, "Commands:\n/on — turn buzzer ON\n/off — turn buzzer OFF") time.sleep(1) App.run(user_loop=loop)
    • 참고: 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 콘솔 출력

    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] Buzzer is ON. [2026-04-29 12:02:10] Telegram: /off [2026-04-29 12:02:10] Buzzer 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 ✓✓
    Buzzer is ON.
    10:16 AM
    /off
    10:17 AM ✓✓
    Buzzer is OFF.
    10:18 AM

    OpenClaw 통합

    이 튜토리얼을 OpenClaw에 맞게 조정할 수 있습니다. 아두이노 우노 Q - OpenClaw 튜토리얼의 지침을 참조하세요.

    응용 프로그램/프로젝트 아이디어

    • 원격 알람: 보안 이벤트가 발생할 때 Telegram을 통해 어디서나 큰 12V 알람을 트리거합니다
    • 시간 초과 경고: MPU의 Linux 시계를 사용하여 예정된 시간에 부저를 울립니다
    • 도어 보안 알람: 모션 센서와 페어링합니다 — 예상치 못한 동작이 감지되면 부저를 울립니다
    • 프로세스 완료 경고: 오래 걸리는 프로세스(예: 3D 인쇄, 오븐 타이머)가 완료되면 부저를 울립니다
    • 경계 경고: 릴레이 채널을 여러 개 사용하여 다양한 지역의 여러 부저를 제어합니다

    도전해보세요

    • 쉬움: 부저가 현재 켜졌는지 꺼졌는지 보고하는 /status 명령을 추가합니다
    • 중간: N번 1초 간격으로 부저를 울리도록 하는 /beep <count> Telegram 명령을 추가합니다
    • 고급: Telegram 제어 카운트다운 알람을 만들기 — Telegram에서 부저 트리거 시간을 예약하고 MPU가 자동으로 울립니다