아두이노 우노 Q 가스 센서
MQ2 가스 센서는 LPG, 연기, 알코올, 프로판, 수소, 메탄 및 일산화탄소를 감지합니다. 디지털 신호(가스/무가스)와 아날로그 신호(가스 농도 수준)를 출력합니다. Bridge와 Telegram을 사용하면 Arduino UNO Q가 휴대폰에 즉시 가스 누출 알림을 보낼 수 있습니다.
이 튜토리얼에서 배울 내용:
- MQ2 가스 센서가 작동하는 방식과 워밍업 기간이 필요한 이유
- MQ2를 Arduino UNO Q MCU에 배선하는 방법
- 디지털(DO) 및 아날로그(AO) 출력을 모두 읽는 방법
- Bridge를 사용하여 Linux 측(Python)에 가스 상태 및 이벤트를 노출하는 방법
- Arduino UNO Q에서 긴급 Telegram 가스 누출 알림을 수신하는 방법
- Arduino UNO Q에서 가스 센서와 함께 OpenClaw를 사용하는 방법

※ 주의:
조기 경고 목적으로만 가스 센서를 사용하십시오. 항상 적절한 가스 감지기, 환기 및 안전 장비와 함께 사용하십시오. 생명 안전 응용 프로그램을 위해 이 센서만 믿고 사용하지 마십시오.
필요한 하드웨어
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | USB Cable for Arduino Uno Q | 아마존 | |
| 1 | × | MQ2 가스 센서 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
MQ2 가스 센서에 대해
MQ2는 다음을 감지할 수 있습니다: LPG, 연기, 알코올, 프로판, 수소, 메탄 및 일산화탄소. 개별 가스를 구별하지 않으며 전체 가연성/유해 가스 수준을 측정합니다.

핀배치
- VCC 핀: 5V 전원(내부 히터에는 5V가 필요함)
- GND 핀: 그라운드
- DO 핀: 디지털 출력 — HIGH = 가스 없음, LOW = 가스 감지됨. 감도는 온보드 포텐셔미터로 조정됩니다.
- AO 핀: 아날로그 출력 — 높은 값 = 더 많은 가스 농도
LED 표시기
- PWR-LED: 전원 표시기
- DO-LED: 가스가 감지되면 켜집니다(DO 핀 LOW)
워밍업 요구 사항
MQ2는 정확한 판독 전에 내부 히터가 작동 온도에 도달해야 합니다:
- 오랜 시간 후 처음 사용(>1개월): 24-48시간 워밍업
- 정상 사용: 5-10분 워밍업; 초기 판독값이 높을 수 있지만 안정화됩니다
코드에는 setup()에 최소 20초의 워밍업 지연이 포함되어 있습니다. 센서에 전원을 공급하고 판독값을 신뢰하기 전에 기다립니다.
※ 주의:
MQ2 AO 핀은 5V에서 전원을 공급할 때 ~5V까지 출력할 수 있습니다. Arduino UNO Q MCU의 ADC 참조는 3.3V입니다 — 3.3V 이상의 전압은 ADC를 4095에서 포화시킵니다. DO 핀을 주 가스 감지 방법으로 사용하고 AO는 상대 강도로만 사용하십시오.
배선 다이어그램

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| MQ2 가스 센서 핀 | Arduino UNO Q MCU |
|---|---|
| VCC | 5V |
| GND | GND |
| DO | D2 |
| AO | A0 |
가스 센서 프로그래밍 방법
- DO 핀을 디지털 입력으로 구성합니다:
- 두 출력을 모두 읽습니다:
- 디지털 출력에서 가스를 확인합니다:
Arduino UNO Q 코드
Arduino UNO Q에는 함께 작동하는 두 개의 프로세서가 있습니다:
- STM32 MCU는 센서를 20초 동안 워밍업한 다음 500ms마다 DO와 AO를 모두 읽습니다.
- Qualcomm MPU는 Wi-Fi가 있는 Debian Linux를 실행합니다 — 이 섹션에서는 MCU만 프로그래밍됩니다. 이후 섹션에서는 두 프로세서가 Bridge를 통해 함께 작동하는 방식을 보여줍니다.
빠른 단계
Arduino UNO Q를 처음 사용하시나요? 계속하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따르세요.
- 연결: 배선 다이어그램에 표시된 대로 MQ2 가스 센서를 Arduino UNO Q MCU에 배선합니다.
- Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다.
- 새 앱 만들기: Create New App 버튼을 클릭합니다.

- 앱에 이름을 지정합니다(예: GasSensor).
- Create를 클릭하여 확인합니다.

- 스케치 붙여넣기: 위의 MCU 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다.
- 업로드: Arduino App Lab에서 Run 버튼을 클릭합니다.

- Serial Monitor에서 20초 워밍업 메시지가 완료될 때까지 기다립니다.
- 센서를 소량의 가스에 노출합니다(예: 라이터를 불태우지 않고 센서 근처에 들고 있음) — Serial Monitor 출력을 관찰합니다.
- DO LED가 반응하지 않으면 포텐셔미터를 조정합니다.
App Lab 콘솔 출력
Bridge: Linux + MCU
이 섹션에서는 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하는 방법을 보여줍니다. Linux 측에서는 Bridge를 통해 가스 상태 및 이벤트를 읽을 수 있습니다:
- 가스 센서는 MCU에 연결되어 있습니다 — MCU는 20초 동안 워밍업한 다음 500ms마다 DO와 AO를 읽습니다.
- MPU는 센서 핀을 직접 읽을 수 없습니다 — Bridge 함수를 호출하여 상태, 강도 값 또는 이벤트를 얻습니다.
- MPU에는 Wi-Fi가 있습니다 — 완전한 Debian Linux를 실행하며, 가스가 감지되는 즉시 긴급 Telegram 가스 알림을 보낼 수 있습니다.
- Arduino_RouterBridge는 두 프로세서 간에 RPC 통신을 활성화합니다.
- ⚠️ /dev/ttyHS1(Linux) 및 Serial1(MCU)은 라우터에 의해 예약됨 — 사용자 코드에서 절대 열지 마십시오.
MCU 코드(Bridge)
Python 코드(Bridge)
빠른 단계
- 연결: 배선 다이어그램에 표시된 대로 MQ2 가스 센서를 Arduino UNO Q에 배선합니다.
- Arduino App Lab 열기하고 GasSensorBridge라는 새 앱을 만듭니다.
- MCU 스케치를 붙여넣기합니다 sketch/sketch.ino에.
- Python 코드를 붙여넣기합니다 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.
- 업로드: Run 버튼을 클릭합니다. 워밍업 기간이 끝날 때까지 기다립니다.

- 센서를 가스에 노출합니다 — 두 콘솔에서 이벤트를 관찰합니다.
App Lab 콘솔 출력
Telegram
Arduino UNO Q 가스 센서에서 즉시 Telegram 가스 누출 알림을 받고 공기 품질을 원격으로 쿼리합니다.
MCU 스케치: 이전 Bridge 섹션의 동일한 MCU 스케치를 유지합니다.
Python 코드(Telegram)
빠른 단계
- YOUR_TELEGRAM_BOT_TOKEN을 BotFather에서 받은 실제 봇 토큰으로 바꿉니다.
- YOUR_CHAT_ID를 Telegram 채팅 ID로 바꿉니다.
- 이 Python 코드를 앱의 Python 파일에 붙여넣기합니다(동일한 MCU 스케치 유지).
- Run 버튼을 클릭합니다 — 워밍업 후 센서를 가스에 노출하여 Telegram 알림을 트리거합니다.
App Lab 콘솔 출력
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on 아두이노 우노 Q - OpenClaw Tutorial
프로젝트 아이디어
MQ2 가스 센서와 Arduino UNO Q를 사용하여 많은 유용한 프로젝트를 만들 수 있습니다:
- 가정용 가스 누출 알람: 스토브 근처의 주방에 설치합니다 — 가스가 감지되면 MPU가 긴급 Telegram 알림과 강도 값을 보내고 릴레이를 통해 음향 알람도 트리거합니다.
- 환기 제어기: 가스 센서를 릴레이 제어 팬과 결합합니다 — 가스 AO가 임계값을 초과하면 MCU가 자동으로 팬을 켜고 Python에서 Telegram 알림을 보냅니다.
- 공기 품질 로거: 매분 가스 상태 및 AO 값을 Linux의 CSV 파일에 로깅합니다 — 공기 품질 이벤트 및 최고 판독값의 일일 Telegram 요약을 보냅니다.
- 차고 일산화탄소 모니터: 센서를 차고에 배치합니다 — 자동차 엔진이 공기에 CO를 남길 때 Telegram 알림을 받고 AO가 기준선으로 돌아갈 때 자동 알림 취소됩니다.
- 다중 가스 안전 시스템: 가스 센서를 불꽃 센서 튜토리얼과 결합합니다 — 둘 다 동시에 위험을 감지하면 최대 긴급성을 위해 "GAS + FIRE" Telegram 알림을 보냅니다.
자신을 도전해 보세요
Arduino UNO Q의 MQ2 가스 센서로 더 나아갈 준비가 되셨나요? 다음 도전을 시도해 보세요:
- 쉬움: 마지막 5개의 가스 감지 이벤트, 타임스탬프 및 Python 리스트에 저장된 AO 강도 값을 반환하는 /history Telegram 명령을 추가합니다.
- 중간: 거짓 알람 필터 구현: 가스가 최소 3개의 연속 판독값(1.5초) 동안 감지되어야 MPU에서 Telegram 알림을 보냅니다 — 이는 단일 판독값 스파이크가 거짓 알람을 트리거하는 것을 방지합니다.
- 고급: 가스 강도 추세 모니터 빌드: Python에서 마지막 20개의 AO 판독값을 추적합니다 — 가장 최근 10개 판독값의 평균이 이전 10개 판독값의 평균보다 50% 높으면 DO 핀이 트리거되기 전에도 "Gas concentration rising" Telegram 알림을 보냅니다.