ESP32 MQ3 알코올 센서 (MicroPython)
이 튜토리얼은 MicroPython 프로그래밍을 사용하여 MQ3 알코올 센서를 ESP32와 연결하고 에탄올 및 알코올 증기 농도를 감지·측정하는 방법을 안내합니다. 구체적으로 배우는 내용:
- MQ3 알코올 센서를 ESP32에 연결하는 방법
- ESP32에서 MQ3 알코올 센서 데이터를 읽는 MicroPython 코드 작성 방법

필요한 하드웨어
| 1 | × | 38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow | 쿠팡 | 아마존 | |
| 1 | × | (또는) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide | 쿠팡 | 아마존 | |
| 1 | × | (또는) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide | 아마존 | |
| 1 | × | (또는) ESP32 Uno-form board | 아마존 | |
| 1 | × | (또는) ESP32 S3 Uno-form board | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | MQ3 Alcohol Sensor | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Breakout Expansion Board for ESP32 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
MQ3 알코올 센서에 대하여
MQ3 알코올 센서는 주변 공기 중의 에탄올 및 알코올 증기를 감지하도록 설계되었습니다. 알코올 분자에 노출될 때 이산화주석(SnO2) 감지 소자의 저항이 변하는 금속 산화물 반도체(MOS) 기술을 사용합니다. 센서는 디지털 출력 핀과 아날로그 출력 핀 두 가지를 제공합니다.
MQ3 센서는 음주 측정기, 알코올 감지 시스템, 음주 운전 감지 장비, 환경 알코올 증기 모니터링에 일반적으로 사용됩니다.
핀아웃
MQ3 알코올 센서 모듈에는 네 개의 핀이 있습니다:
- VCC 핀: 이 핀을 VCC(5V)에 연결합니다.
- GND 핀: 이 핀을 GND(0V)에 연결합니다.
- DO 핀: 디지털 출력 핀입니다. 알코올 증기가 감지되면 LOW, 알코올이 없으면 HIGH가 됩니다. 온보드 가변 저항으로 감지 임계값을 조절할 수 있습니다.
- AO 핀: 아날로그 출력 핀으로, 알코올 농도에 따라 전압이 달라집니다. 알코올 농도가 높을수록 전압이 높아지고, 낮을수록 전압이 낮아집니다.

센서에는 두 개의 LED 표시등이 있습니다:
- PWR-LED: 센서에 전원이 공급되고 있음을 나타냅니다.
- DO-LED: DO 핀 값에 따라 알코올이 감지되면 켜지고, 알코올이 감지되지 않으면 꺼집니다.
작동 원리
DO 핀에 대하여:
- 모듈에는 알코올 수준에 대한 감도를 조절하는 가변 저항이 있습니다.
- 알코올 수준이 설정된 임계값을 초과하면 센서의 출력 핀이 LOW가 되고 DO-LED가 켜집니다.
- 알코올 수준이 설정된 임계값 미만이면 센서의 출력 핀이 HIGH가 되고 DO-LED가 꺼집니다.
AO 핀에 대하여:
- 알코올 농도가 증가하면 전압이 상승합니다.
- 알코올 농도가 감소하면 전압이 하강합니다.
가변 저항은 AO 핀의 값에 영향을 미치지 않습니다.
MQ3 센서 예열
MQ3 알코올 센서는 사용 전 예열 시간이 필요합니다. 한 달 이상 사용하지 않은 경우, 정확한 측정값을 위해 24~48시간 예열해야 합니다. 최근에 사용한 경우 5~10분 예열로 충분합니다. 처음에는 측정값이 높을 수 있지만 시간이 지나면 안정화됩니다.
MQ3 센서를 예열하려면 VCC와 GND 핀을 전원 공급 장치나 ESP32의 VCC 및 GND 핀에 연결하고 필요한 시간 동안 연결 상태를 유지합니다.
배선도
MQ3 알코올 센서 모듈에는 두 개의 출력이 있으므로, 필요에 따라 하나 또는 둘 다 사용할 수 있습니다.
- 브레드보드를 사용한 ESP32와 MQ3 알코올 센서 연결 방법 (USB 케이블로 전원 공급)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- 브레드보드를 사용한 ESP32와 MQ3 알코올 센서 연결 방법 (Vin 핀으로 전원 공급)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- 나사 단자 브레이크아웃 보드를 사용한 ESP32와 MQ3 알코올 센서 연결 방법 (USB 케이블로 전원 공급)

- 나사 단자 브레이크아웃 보드를 사용한 ESP32와 MQ3 알코올 센서 배선 방법 (Vin 핀으로 전원 공급)

| MQ3 Alcohol Sensor | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| DO | GPIO 16 |
| AO | GPIO 36 (ADC0) |
ESP32 MicroPython 코드 - DO 핀 값 읽기
빠른 시작
Thonny IDE를 사용하여 ESP32에서 MicroPython 코드를 설정하고 실행하는 방법:
- Thonny IDE가 컴퓨터에 설치되어 있는지 확인합니다.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인합니다.
- ESP32에서 MicroPython을 처음 사용하는 경우, ESP32 마이크로파이썬 - 시작하기 가이드를 참조하세요.
- 제공된 배선도에 따라 ESP32 보드를 MQ3 알코올 센서에 연결합니다.
- USB 케이블로 ESP32 보드를 컴퓨터에 연결합니다.
- 컴퓨터에서 Thonny IDE를 엽니다.
- Thonny IDE에서 Tools Options로 이동합니다.
- Interpreter 탭에서 드롭다운 메뉴의 MicroPython (ESP32)를 선택합니다.
- 올바른 포트가 선택되어 있는지 확인합니다. Thonny IDE가 자동으로 감지하지만, 수동으로 선택해야 할 수도 있습니다(Windows에서는 COM12, Linux에서는 /dev/ttyACM0).
- 제공된 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣습니다.
- 다음 방법으로 코드를 ESP32에 저장합니다:
- Save 버튼을 클릭하거나 Ctrl+S를 누릅니다.
- 저장 대화상자에서 MicroPython device를 선택합니다.
- 파일 이름을 main.py로 지정합니다.
- 녹색 Run 버튼을 클릭하거나 F5를 눌러 스크립트를 실행합니다.
- MQ3 센서 근처에 알코올 증기 소스를 가져갑니다(손 소독제나 솜에 묻힌 소독용 알코올 사용).
- Thonny 하단의 Shell 메시지를 확인합니다.
LED 표시등이 항상 켜져 있거나 켜지지 않는 경우, 온보드 가변 저항을 돌려 센서 감도를 조절할 수 있습니다.
ESP32 MicroPython 코드 - AO 핀 값 읽기
빠른 시작
- 제공된 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣습니다.
- 코드를 ESP32 보드에 저장합니다.
- 녹색 Run 버튼을 클릭하거나 F5를 눌러 스크립트를 실행합니다.
- 센서에 알코올 증기를 가져갑니다(손 소독제 또는 이소프로필 알코올 사용).
- Thonny 하단의 Shell 메시지를 확인합니다.
DO 또는 AO의 값을 사용하여 알코올 존재를 감지하거나, 알람을 트리거하거나, 음주 측정기 애플리케이션을 위한 데이터를 기록할 수 있습니다.
※ 주의:
이 튜토리얼은 알코올 센서에 연결된 ADC(아날로그-디지털 변환기)에서 값을 읽기 위해 adc.read() 함수를 사용하는 방법을 보여줍니다. ESP32의 ADC는 높은 정밀도가 필요하지 않은 프로젝트에 적합합니다. 그러나 프로젝트에 정확한 측정이 필요한 경우 다음 사항에 유의하세요:
- ESP32 ADC는 완벽하게 정확하지 않으므로 정밀한 결과를 위해 보정이 필요할 수 있습니다. 각 ESP32 보드마다 약간씩 차이가 있으므로 각 개별 보드에 대해 보정이 필요합니다.
- 보정은 특히 초보자에게 까다로울 수 있으며, 항상 원하는 결과를 얻지 못할 수도 있습니다.
높은 정밀도가 필요한 프로젝트의 경우, ESP32와 함께 외부 ADC(예: ADS1115)를 사용하거나 더 신뢰할 수 있는 ADC를 가진 Arduino를 선택하는 것을 고려하세요.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.