아두이노 나노 ESP32 - 가스 센서 | Arduino Nano ESP32 - Gas Sensor

이 튜토리얼은 아두이노 나노 ESP32와 MQ2 가스 센서를 활용하여 LPG, 연기, 알코올, 프로판, 수소, 메탄 및 일산화탄소와 같은 다양한 가연성 가스의 수준을 조사함으로써 공기 질을 평가하는 과정을 안내할 것입니다. 다음과 같은 측면을 자세히 다룰 것입니다:

준비물

1×Arduino Nano ESP32 Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×MQ2 Gas Sensor Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

MQ2 가스 센서 정보

MQ2 가스 센서는 주변 환경에서 LPG, 연기, 알코올, 프로판, 수소, 메탄 및 일산화탄소와 같은 다양한 가스의 존재를 감지할 수 있습니다. 디지털 출력 핀과 아날로그 출력 핀 두 가지 출력 옵션을 제공합니다.

MQ2 가스 센서가 각각의 가스에 대해 구체적인 정보를 제공하지 않는다는 점을 유의하는 것이 중요합니다. 대신, 이 센서는 가스들의 조합이나 가스의 존재 여부 전체에 대해 우리에게 알려줍니다.

MQ2 센서를 활용함으로써 가스 누출이 있는지 아니면 공기질이 좋지 않은지를 식별할 수 있습니다. 이 정보를 통해 알람을 활성화하거나 환기 시스템을 켜는 등 우리의 안전을 보장하기 위한 적절한 조치를 취할 수 있습니다.

핀 배치

MQ2 가스 센서는 특정 기능을 가진 네 개의 핀으로 구성됩니다:

  • VCC 핀: 이 핀은 VCC(5V)에 연결되어야 합니다.
  • GND 핀: 이 핀은 GND(0V)에 연결되어야 합니다.
  • DO 핀: 가연성 가스의 존재를 나타내는 디지털 출력 핀입니다. 가연성 가스 농도가 감지되면, 이 핀은 LOW 신호를 출력하고, 그렇지 않으면 HIGH 신호를 출력합니다. 가스 농도를 감지하는 임계값은 내장된 가변 저항을 사용하여 조정할 수 있습니다.
  • AO 핀: 가스 농도에 비례하는 아날로그 전압을 생성하는 아날로그 출력 핀입니다. 가스 농도가 증가하면, 전압 출력도 증가하고, 가스 농도가 감소하면, 전압 출력도 해당하게 감소합니다.
MQ2 Gas Sensor Pinout

또한 MQ2 가스 센서는 두 개의 LED 지시등이 장착되어 있습니다:

  • PWR-LED 지시등: 이 LED는 센서가 전력을 받고 있음을 나타내는 전원 지시등으로 사용됩니다. 센서에 전력이 공급되고 작동 중일 때 켜집니다.
  • DO-LED 지시등: 이 LED는 센서의 DO 핀과 연결되어 있습니다. DO 핀에서 받은 값에 기반한 가스 농도의 시각적 표현을 제공합니다. 가스 농도가 존재하고 DO 핀이 LOW로 설정된 경우 DO-LED 지시등이 켜집니다. 반대로, 가스 농도가 감지되지 않고 DO 핀이 HIGH로 설정된 경우 DO-LED 지시등이 꺼집니다.

작동 방식

DO 핀에 관하여:

  • MQ2 모듈은 가스 농도의 감도나 임계값을 조절할 수 있는 내장형 포텐쇼미터를 특징으로 합니다.
  • 주변 환경의 가스 농도가 설정 임계값을 초과하면 센서의 출력 핀이 LOW로 설정되고, DO-LED가 켜집니다.
  • 반대로, 가스 농도가 설정 임계값 아래로 떨어지면 센서의 출력 핀이 HIGH로 설정되고, DO-LED가 꺼집니다.

AO 핀에 관하여:

  • 가스 농도가 증가함에 따라 AO 핀의 전압도 비례하여 증가합니다.
  • 반대로, 가스 농도가 감소하면 AO 핀의 전압도 그에 따라 감소합니다.

조정 가능한 저항을 조절해도 AO 핀의 값에는 영향을 미치지 않는다는 점을 주목하는 것이 중요합니다.

MQ2 센서 예열

MQ2 가스 센서는 효과적으로 사용하기 전에 예열 기간이 필요합니다. 다음은 그 세부 사항입니다:

  • 장기간 보관(한 달 이상) 후 센서를 처음 사용할 때는 24-48시간 동안 예열이 필요합니다. 이 긴 예열 시간은 정확한 작동을 보장합니다.
  • 센서를 최근에 사용한 경우, 예열 시간이 훨씬 더 짧습니다. 센서가 완전히 예열되는 데 보통 5-10분만 걸립니다. 이 예열 기간 동안 센서는 처음에는 높은 측정값을 제공할 수 있지만, 이러한 측정값은 센서가 안정화될 때까지 점차 감소합니다.

MQ2 센서를 예열하려면, 그것의 VCCGND 핀을 전원 공급 장치에 연결하거나 Arduino Nano ESP32의 VCCGND 핀에 연결하기만 하면 됩니다. 필요한 예열 기간 동안 센서를 이 상태로 유지하십시오.

선연결

MQ2 가스 센서 모듈에는 두 개의 출력이 있기 때문에, 필요에 따라 하나 또는 둘 다 사용할 수 있습니다.

아두이노 나노 ESP32와 MQ2 가스 센서를 USB 포트를 통해 전원을 공급할 때의 배선도.

Arduino Nano ESP32 MQ2 gas sensor wiring diagram

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

아두이노 나노 ESP32와 MQ2 가스 센서를 Vin 핀을 통해 전원을 공급할 때의 연결도.

Arduino Nano ESP32 air quality wiring diagram

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

아두이노 나노 ESP32 코드 - DO 핀에서 값을 읽기

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-gas-sensor */ #define DO_PIN D2 // 아두이노 나노 ESP32의 DO 핀에 연결된 핀 void setup() { // 시리얼 모니터와 통신하기 위해 시리얼을 초기화합니다. Serial.begin(9600); // ESP32의 핀을 입력으로 초기화합니다 pinMode(DO_PIN, INPUT); Serial.println("Warming up the MQ2 sensor"); delay(20000); // MQ2가 예열되기를 기다립니다. } void loop() { int gasState = digitalRead(DO_PIN); if (gasState == HIGH) Serial.println("The gas is NOT present"); else Serial.println("The gas is present"); }

사용 방법

  • 이것이 아두이노 나노 ESP32를 처음 사용하는 경우, 아두이노 IDE에서 아두이노 나노 ESP32 환경 설정 방법을 참조하세요.
  • 위의 코드를 복사하고 아두이노 IDE로 열기
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 아두이노 나노 ESP32에 코드를 업로드
  • MQ2 가스 센서를 감지하고자 하는 연기/가스 근처에 두기
  • 시리얼 모니터에서 결과 확인하기
COM6
Send
The gas is NOT present The gas is NOT present The gas is NOT present The gas is NOT present The gas is NOT present The gas is present The gas is present The gas is present The gas is present The gas is present
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

LED 상태가 지속적으로 켜져 있거나 꺼져 있다는 것을 알아차린다면, 센서의 민감도를 미세 조정하기 위해 저항기를 조정할 수 있다는 점을 기억해 주세요.

아두이노 나노 ESP32 코드 - AO 핀에서 값 읽기

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-gas-sensor */ #define AO_PIN A5 // 아두이노 나노 ESP32의 핀이 MQ2 센서의 AO 핀에 연결되어 있습니다. void setup() { // 시리얼 모니터와 통신하기 위해 시리얼을 초기화합니다. Serial.begin(9600); Serial.println("Warming up the MQ2 sensor"); delay(20000); // MQ2가 예열되기를 기다립니다. } void loop() { int gasValue = analogRead(AO_PIN); Serial.print("MQ2 sensor AO value: "); Serial.println(gasValue); }

사용 방법

  • 위의 코드를 복사하고 아두이노 IDE로 열기
  • 아두이노 나노 ESP32에 코드를 업로드하기 위해 아두이노 IDE에서 Upload 버튼 클릭
  • 감지하고자 하는 연기/가스 근처에 MQ2 가스 센서를 놓기
  • 시리얼 모니터에서 결과 확인하기
COM6
Send
MQ2 sensor AO value: 135 MQ2 sensor AO value: 136 MQ2 sensor AO value: 136 MQ2 sensor AO value: 573 MQ2 sensor AO value: 674 MQ2 sensor AO value: 1938 MQ2 sensor AO value: 1954 MQ2 sensor AO value: 2000 MQ2 sensor AO value: 3002 MQ2 sensor AO value: 4014 MQ2 sensor AO value: 4017
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

DO 또는 AO에서 읽은 값으로 귀하의 표준에 따라 공기 질을 추론하거나 경보를 작동시키거나 환기 시스템을 켤 수 있습니다.

동영상

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

관련 튜토리얼

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!