ESP32 마이크로파이썬 가스 센서
자세한 설명, 코드 샘플, 배선도, 비디오 튜토리얼, 그리고 각 코드 줄에 대한 명확한 설명을 제공하여 ESP32를 원활하게 사용할 수 있도록 도와드립니다.
이 튜토리얼은 MicroPython 프로그래밍을 활용하여 ESP32와 MQ2 가스 센서를 이용해 공기질을 모니터링하는 방법을 안내합니다. 이를 통해 LPG, 연기, 알코올, 프로판, 수소, 메탄, 일산화탄소 등 다양한 인화성 가스의 농도를 측정할 수 있습니다. 자세히 살펴보면, 다음 내용을 배우게 될 것입니다:
- ESP32와 MQ2 가스 센서 연결 방법
- ESP32용 MicroPython 코드로 MQ2 가스 센서 데이터 읽는 방법

준비물
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | MQ2 가스 센서 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
MQ2 가스 센서에 대하여
MQ2 가스 센서는 LPG, 연기, 알코올, 프로판, 수소, 메탄, 탄소 등 다양한 가스를 감지할 수 있습니다. 신호 전송을 위해 디지털 출력 핀과 아날로그 출력 핀 모두를 갖추고 있습니다.
MQ2 센서는 개별 가스에 대한 구체적인 정보를 제공하지 않고, 대신 혼합 가스나 여러 가스가 동시에 존재함을 나타냅니다.
MQ2 센서를 사용하여 가스 누출을 감지하거나 열악한 공기 질을 모니터링할 수 있으며, 이를 통해 경보를 작동하거나 공조 시스템을 활성화하는 등 적절한 조치를 취할 수 있습니다.
핀아웃
다음은 수정된 버전입니다:
MQ2 가스 센서에는 네 개의 핀이 있습니다:
- 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 핀의 값에 영향을 미치지 않습니다.
MQ2 센서 예열
MQ2 가스 센서는 사용 전에 예열 기간이 필요합니다. 센서를 한 달 이상 사용하지 않았다면, 정확한 판독 결과를 위해 24-48시간 예열시켜야 합니다. 최근에 사용했다면, 5-10분의 예열로 충분합니다. 초기에는 판독값이 높을 수 있으나 시간이 지나면서 안정됩니다.
MQ2 센서를 예열하려면, VCC 및 GND 핀을 전원 공급 장치 또는 ESP32의 VCC 및 GND 핀에 연결하고, 필요한 시간 동안 그대로 유지합니다.
선연결
MQ2 가스 센서 모듈은 두 가지 출력을 제공합니다. 요구 사항에 따라 하나 또는 둘 다 사용할 수 있습니다.
- 브레드보드를 사용하여 ESP32와 가스 센서를 연결하는 방법 (USB 케이블로 전원 공급)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- Vin 핀을 통해 전원을 공급받는 breadboard을 사용하여 ESP32와 가스 센서를 연결하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- USB 케이블로 전원 공급되는 나사 터미널 블록 브레이크아웃 보드를 사용하여 ESP32와 가스 센서를 연결하는 방법

- ESP32와 가스 센서를 스크류 터미널 블록 브레이크아웃 보드(Vin 핀을 통해 전원 공급됨)를 사용하여 연결하는 방법

ESP32 MicroPython 코드 - DO 핀에서 값 읽기
자세한 사용 방법
ESP32에서 Thonny IDE를 사용하여 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침은 다음과 같습니다:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하십시오.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하십시오.
- MicroPython을 사용하는 ESP32가 처음인 경우, 단계별 지침은 ESP32 마이크로파이썬 - 시작하기를 참고하십시오.
- 제공된 다이어그램에 따라 ESP32 보드를 MQ2 가스 센서에 연결하십시오.
- ESP32 보드를 USB 케이블로 컴퓨터에 연결하십시오.
- 컴퓨터에서 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를 눌러 스크립트를 실행하십시오.
- MQ2 가스 센서를 감지가 필요한 연기나 가스 근처에 두십시오.
- Thonny 하단의 Shell에서 메시지를 확인하십시오.
LED 불빛이 항상 켜져 있거나 켜지지 않을 경우, 작은 노브를 돌려 센서의 민감도를 조절할 수 있습니다.
ESP32 MicroPython 코드 - AO 핀에서 값 읽기
자세한 사용 방법
- 제공된 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣습니다.
- 코드를 ESP32 보드에 저장합니다.
- 녹색 실행 버튼을 클릭하거나 (또는 F5 키를 눌러) 스크립트를 실행합니다.
- 감지하려는 연기 또는 가스 근처에 MQ2 가스 센서를 배치합니다.
- Thonny 하단의 Shell에서 메시지를 확인합니다.
DO 또는 AO의 값을 사용하여 대기 질이 귀하의 기준에 부합하는지 확인하거나 경보를 작동시키거나 환기 시스템을 켤 수 있습니다.
※ 주의:
이 튜토리얼은 가스 센서에 연결된 ADC(아날로그-디지털 변환기)에서 값을 읽기 위해 adc.read() 함수를 사용하는 방법을 보여줍니다. ESP32의 ADC는 높은 정밀도가 필요하지 않은 프로젝트에 적합합니다. 그러나 프로젝트에 정확한 측정이 필요한 경우 다음 사항을 유념하십시오:
- ESP32 ADC는 완벽하게 정확하지 않으며 정밀한 결과를 위해 보정이 필요할 수 있습니다. 각 ESP32 보드는 약간씩 다를 수 있으므로 보정은 각 보드마다 필요합니다.
- 보정은 특히 초보자에게 도전적일 수 있으며 항상 원하는 정확한 결과를 얻지 못할 수도 있습니다.
높은 정밀도가 필요한 프로젝트의 경우, ESP32와 함께 외부 ADC(예: ADS1115)를 사용하거나 더 신뢰할 수 있는 ADC를 가진 Arduino를 선택하는 것을 고려하십시오. 여전히 ESP32 ADC를 보정하려는 경우, ESP32 ADC Calibration Driver를 참조하십시오: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/adc_calibration.html
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.