Hardware | MQ-2 sensor 사용해 보기

1. MQ-2

어쩌다 구하게 된, 가스센서 MQ-2 모듈 입니다.

* MQ-2 Spec.
  - Winsen
  - HANWE


가스를 측정하는 센서의 방식은, 가열된 백금선에 기체가 섞이면서 저항값 변동에 대한 차를 감지하여 측정하게 됩니다.


히터 가열을 통해 감지를 하는 방식임으로, 불이 쉽게 붙을 수 있는 환경에서는 사용 않기를 권장하고 있으나, 아이러니 하게도 감지할 수 있는 기체는 불이 붙을 수 있는 - Flemmable Gases 입니다. 금속으로 된 망사가 불 붙는 것을 방지해 준다고 합니다. 구동은 5V 전원을 가지고 값의 변화를 Analog 로 표현해 줍니다.


특정 값 기준으로 On / Off 판단할 수 있도록 , 모듈에는 Dual Comparators 가 달려 있습니다.

* Dual Comparators
  - BA10393

미리 Potentiometer 를 이용하여 기준 값을 정해놓고, 이 정해놓은 값 보다 높은 값이 인지되면 Gas 가 있다를 판단하기 위함 입니다. 기준이 있다/없다 이므로 Digital Pin 인, D0 를 사용하게 됩니다. 실제 D0 사용시에는 측정된 값을 알 수는 없습니다.


뒷면 입니다. Keystudio 제품이군요.




2. MQ Series

참고로, MQ 시리즈는 다음과 같이 많은 종류들이 있습니다.

-----------------------------------------------
  Sensor  |          Gas to measure
-----------------------------------------------
   MQ-2   | Methane, Butane, LPG, Smoke
   MQ-3   | Alcohol, Ethanol, Smoke
   MQ-4   | Methane, CNG Gas
   MQ-5   | Natural gas, LPG
   MQ-6   | LPG, Butane
   MQ-7   | Carbon Monoxide
   MQ-8   | Hydrogen Gas
   MQ-9   | Carbon Monoxide, Flammable Gasses
  MQ-131  | Ozone
  MQ-135  | Air Quality
  MQ-136  | Hydrogen Sulphide Gas
  MQ-137  | Ammonia
  MQ-138  | Benzene, Toluene, Alcohol, Propane,
          | Formaldehyde gas, Hydrogen
  MQ-214  | Methane, Natural Gas
  MQ-216  | Natural Gas, Coal Gas
 MQ-303A  | Alcohol, Ethanol, Smoke
 MQ-306A  | LPG, Butane
 MQ-307A  | Carbon Monoxide
 MQ-309A  | Carbon Monoxide, Flammable Fas
-----------------------------------------------

MQ-2 와 비슷하게 동작하는 센서로는 MQ-6, AQ-2, MQ-306A, AQ-3 등이 있습니다.



3. Layout

이미 모듈화 되어 있기 때문에, Arduino 의 A0 (Analog Pin) 과 연결되면 됩니다.

----------------------------
   MQ-2    | Arduino Nano
----------------------------
    GND    |     GND
    VCC    |     5V
    A0     |     A0
----------------------------
   Buzzer  |
----------------------------
    GND    |     GND
    VCC    |     3.3V
     S     |     D10
----------------------------
    LED    |
----------------------------
 Red LED + | D12 /w 100k Ohm
Blue LED + | D11 /w 100k Ohm
----------------------------

회로로 구성하면 다음과 같습니다.


실제 구성한 모습 되겠습니다.




4. Calibration

영점 조절은, 모듈 위에 있는 Potentiometer 를 이용하여 조정하게 됩니다. 절대값을 찾기 위해서는 클린 룸 환경이 조성되어야 하나, 일단 방 안의 환경을 기준으로 잡아 줍니다.

드라이버를 이용하여 파란색만 점등하는 순간에 Potentiometer 돌리는 것을 멈추면 됩니다.




5. Source

활용하는 소스는 다음과 같습니다.


특정 값 - 450 이상을 감지하게 되면, 부저를 울리고 빨간색 LED 를 점등 시키는 소스 입니다.


/* 
 All the resources for this project:
 https://www.hackster.io/Aritro
*/

int redLed = 12;
int greenLed = 11;
int buzzer = 10;
int smokeA0 = A5;

// Your threshold value
int sensorThres = 450;

void setup() {
  pinMode(redLed, OUTPUT);
  pinMode(greenLed, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(smokeA0, INPUT);
  Serial.begin(115200);
}

void loop() {
  int analogSensor = analogRead(smokeA0);
  
  Serial.print("Pin A0: ");
  Serial.println(analogSensor);
  
  // Checks if it has reached the threshold value
  if (analogSensor > sensorThres) {
    digitalWrite(redLed, HIGH);
    digitalWrite(greenLed, LOW);
    tone(buzzer, 1000, 200);
  } else {
    digitalWrite(redLed, LOW);
    digitalWrite(greenLed, HIGH);
    noTone(buzzer);
  }
  
  delay(100);
}



6. Test

라이터 가스를 이용하여 측정해 봤습니다. 바로 반응 하는군요.


부저를 부착하고, 날숨을 이용하여 확인해 봤습니다. Methane, Butane, LPG, Smoke 등을 측정하나, 저의 날숨이 메탄으로 측정 되었을까요? 부탄으로 측정 되었을까요? 아니면 연기로 측정 되었을까요? 아마 수증기가 날숨에 섞여 있으므로, Smoke 가 아닐까 합니다.


꽤나 민감하게 잘 반응 합니다. 일상 생활 센서로써 활용할 만 하다고 생각 됩니다.



7. Serial Monitor

Arduino IDE 의 Serial Monitor 에서 확인한 시계열 값 입니다.


Arduino IDE 의 Serial Plotter 에서 확인한 그래프 입니다.



FIN

댓글