ESP32 MQ3 알코올 센서 (MicroPython)

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

ESP32 마이크로파이썬 mq3 알코올 센서

필요한 하드웨어

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 핀: 아날로그 출력 핀으로, 알코올 농도에 따라 전압이 달라집니다. 알코올 농도가 높을수록 전압이 높아지고, 낮을수록 전압이 낮아집니다.
mq3 알코올 센서 핀아웃

센서에는 두 개의 LED 표시등이 있습니다:

  • PWR-LED: 센서에 전원이 공급되고 있음을 나타냅니다.
  • DO-LED: DO 핀 값에 따라 알코올이 감지되면 켜지고, 알코올이 감지되지 않으면 꺼집니다.

작동 원리

DO 핀에 대하여:

  • 모듈에는 알코올 수준에 대한 감도를 조절하는 가변 저항이 있습니다.
  • 알코올 수준이 설정된 임계값을 초과하면 센서의 출력 핀이 LOW가 되고 DO-LED가 켜집니다.
  • 알코올 수준이 설정된 임계값 미만이면 센서의 출력 핀이 HIGH가 되고 DO-LED가 꺼집니다.

AO 핀에 대하여:

  • 알코올 농도가 증가하면 전압이 상승합니다.
  • 알코올 농도가 감소하면 전압이 하강합니다.

가변 저항은 AO 핀의 값에 영향을 미치지 않습니다.

MQ3 센서 예열

MQ3 알코올 센서는 사용 전 예열 시간이 필요합니다. 한 달 이상 사용하지 않은 경우, 정확한 측정값을 위해 24~48시간 예열해야 합니다. 최근에 사용한 경우 5~10분 예열로 충분합니다. 처음에는 측정값이 높을 수 있지만 시간이 지나면 안정화됩니다.

MQ3 센서를 예열하려면 VCCGND 핀을 전원 공급 장치나 ESP32의 VCCGND 핀에 연결하고 필요한 시간 동안 연결 상태를 유지합니다.

배선도

MQ3 알코올 센서 모듈에는 두 개의 출력이 있으므로, 필요에 따라 하나 또는 둘 다 사용할 수 있습니다.

  • 브레드보드를 사용한 ESP32와 MQ3 알코올 센서 연결 방법 (USB 케이블로 전원 공급)
ESP32 mq3 알코올 센서 배선도

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

  • 브레드보드를 사용한 ESP32와 MQ3 알코올 센서 연결 방법 (Vin 핀으로 전원 공급)
ESP32 mq3 알코올 센서 배선 안내

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

ESP32와 mq3 알코올 센서 연결 방법
ESP32와 mq3 알코올 센서 배선 방법
MQ3 Alcohol SensorESP32
VCC3.3V
GNDGND
DOGPIO 16
AOGPIO 36 (ADC0)

ESP32 MicroPython 코드 - DO 핀 값 읽기

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-mq3-alcohol-sensor */ from machine import Pin import utime # For timing functions DO_PIN = Pin(16, Pin.IN) # The ESP32 pin GPIO16 as a digital input pin of the MQ3 alcohol sensor module while True: alcohol_state = DO_PIN.value() # Read the digital value from the pin if alcohol_state == 1: print("Alcohol is NOT detected") else: print("Alcohol is detected") utime.sleep(1) # Add a small delay to avoid spamming the output

빠른 시작

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 메시지를 확인합니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Alcohol is NOT detected Alcohol is NOT detected Alcohol is NOT detected Alcohol is NOT detected Alcohol is NOT detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is detected
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

LED 표시등이 항상 켜져 있거나 켜지지 않는 경우, 온보드 가변 저항을 돌려 센서 감도를 조절할 수 있습니다.

ESP32 MicroPython 코드 - AO 핀 값 읽기

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-mq3-alcohol-sensor */ from machine import ADC, Pin import utime # For timing functions AO_PIN = ADC(Pin(36)) # The ESP32 pin GPIO36 (ADC0) as an analog input pin of the MQ3 alcohol sensor module # Set the ADC width (resolution) to 12 bits AO_PIN.width(ADC.WIDTH_12BIT) # Set the attenuation to 11 dB, allowing input range up to ~3.3V AO_PIN.atten(ADC.ATTN_11DB) while True: alcohol_value = AO_PIN.read() # Read the analog value (0-4095) print("MQ3 sensor AO value:", alcohol_value) # Print the analog value utime.sleep(1) # Add a small delay to avoid spamming the output

빠른 시작

  • 제공된 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣습니다.
  • 코드를 ESP32 보드에 저장합니다.
  • 녹색 Run 버튼을 클릭하거나 F5를 눌러 스크립트를 실행합니다.
  • 센서에 알코올 증기를 가져갑니다(손 소독제 또는 이소프로필 알코올 사용).
  • Thonny 하단의 Shell 메시지를 확인합니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot MQ3 sensor AO value: 120 MQ3 sensor AO value: 125 MQ3 sensor AO value: 128 MQ3 sensor AO value: 450 MQ3 sensor AO value: 620 MQ3 sensor AO value: 850 MQ3 sensor AO value: 920 MQ3 sensor AO value: 980 MQ3 sensor AO value: 950 MQ3 sensor AO value: 680 MQ3 sensor AO value: 420
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

DO 또는 AO의 값을 사용하여 알코올 존재를 감지하거나, 알람을 트리거하거나, 음주 측정기 애플리케이션을 위한 데이터를 기록할 수 있습니다.

※ 주의:

이 튜토리얼은 알코올 센서에 연결된 ADC(아날로그-디지털 변환기)에서 값을 읽기 위해 adc.read() 함수를 사용하는 방법을 보여줍니다. ESP32의 ADC는 높은 정밀도가 필요하지 않은 프로젝트에 적합합니다. 그러나 프로젝트에 정확한 측정이 필요한 경우 다음 사항에 유의하세요:

  • ESP32 ADC는 완벽하게 정확하지 않으므로 정밀한 결과를 위해 보정이 필요할 수 있습니다. 각 ESP32 보드마다 약간씩 차이가 있으므로 각 개별 보드에 대해 보정이 필요합니다.
  • 보정은 특히 초보자에게 까다로울 수 있으며, 항상 원하는 결과를 얻지 못할 수도 있습니다.

높은 정밀도가 필요한 프로젝트의 경우, ESP32와 함께 외부 ADC(예: ADS1115)를 사용하거나 더 신뢰할 수 있는 ADC를 가진 Arduino를 선택하는 것을 고려하세요.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.