์•ˆ๋…•ํ•˜์„ธ์š”. ์•ฝ ๋‘ ๋‹ฌ๋งŒ์— ๊ธ€์„ ์”๋‹ˆ๋‹ค.

 

๊ณต๋ชจ์ „๊ณผ ๊ธฐ์‚ฌ ์‹œํ—˜์˜ ์ง€์˜ฅ์„ ๋’ค๋กœ ์ž ์‹œ ์—ฌ์œ ๊ฐ€ ์ƒ๊ฒจ ์‹œ๊ฐ„์„ ๋ƒ…๋‹ˆ๋‹ค.

 

์˜ค๋Š˜์€ MQ ์‹œ๋ฆฌ์ฆˆ์—์„œ ๊ณต๊ธฐ์งˆ ์„ผ์„œ๋ฅผ PPM์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ธ€์„ ์“ฐ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

MQ ์‹œ๋ฆฌ์ฆˆ ์„ผ์„œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ PPM ๋ณ€ํ™˜์ด ์„ค๋ช…์ด ์นœ์ ˆํ•˜์ง€ ์•Š์•„ ์ž‘์€ ํž˜์„ ๋ณดํƒœ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ๊ณต๊ธฐ์งˆ ์„ผ์„œ๋ฅผ ์—‘์…€๋กœ ์ •๋ฆฌํ•˜๋‹ค ๋ณด๋‹ˆ ์ด๋ ‡๊ฒŒ ๋ธ”๋กœ๊ทธ ๊ธ€ ์“ฐ๋Š”๋ฐ ๋„์›€์ด ๋˜๋„ค์š”.

 

MQ ์‹œ๋ฆฌ์ฆˆ๋งˆ๋‹ค ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์„ผ์„œ๊ฐ’์ด ๊ต‰์žฅํžˆ ๋งŽ์Šต๋‹ˆ๋‹ค. 

 

Gas_Sensor.xlsx
0.01MB

 

MQ ์‹œ๋ฆฌ์ฆˆ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋‹ค๋ฅธ ์‹œ๋ฆฌ์ฆˆ ๋˜ํ•œ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

MQ ์‹œ๋ฆฌ์ฆˆ

๊ธ€์„ ์„ธ ํŽธ์ •๋„๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ธ€์„ ์“ธ ์˜ˆ์ •์ธ๋ฐ, 

 

1ํŽธ์€ ์„ผ์„œ์˜ ์›๋ฆฌ๊ฐ€ ๊ถ๊ธˆํ•œ ๊ฒƒ์ด ์•„๋‹Œ, ์•„๋‘์ด๋…ธ๋กœ PPM ๋ณ€ํ™˜ ๊ฒฐ๊ณผ๋งŒ ํ•„์š”ํ•˜์‹  ๋ถ„์„ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

2ํŽธ์€ ๋ฐ์ดํ„ฐ์‹œํŠธ๋ฅผ ๋ณด๋ฉด์„œ ํšŒ๋กœ๋ฅผ ๋ณด๊ณ , ์›๋ฆฌ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

3ํŽธ์€ CํŒŒ์ผ์˜ ์ฝ”๋“œ๋ฅผ ๋œฏ์–ด๋ณด๋ฉด์„œ ํŒŒ์ด์ฌ์œผ๋กœ PPM์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

github.com/miguel5612/MQSensorsLib

 

miguel5612/MQSensorsLib

We present a unified library for MQ sensors, this library allows to read MQ signals easily from Arduino, Genuino, ESP8266, ESP-32 boards whose references are MQ2, MQ3, MQ4, MQ5, MQ6, MQ7, MQ8, MQ9,...

github.com

 

GitHub MQ ์‹œ๋ฆฌ์ฆˆ ์ฃผ์†Œ ์ž…๋‹ˆ๋‹ค.

 

MQSensorsLib-master.zip
0.50MB

 

๋‹ค์šด๋ฐ›์•„์„œ ์••์ถ•์„ ํ’€๊ณ  ์•„๋‘์ด๋…ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 

 

์›๋ฆฌ๊ฐ€ ๋‹ค ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— MQ-2 ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด์„œ ์ฝ”๋“œ ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋ณด์ง€ ์•Š๊ณ , ์•„๋‘์ด๋…ธ๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ค‘์š”ํ•œ ์ฝ”๋“œ๋งŒ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

1. Calibration - ์นผ๋ฆฌ๋ธŒ๋ ˆ์ด์…˜

 

๋‹ค๋ฅธ ์„ผ์„œ์™€ ๋‹ค๋ฅด๊ฒŒ ๋“œ๋ก ๊ณผ ๊ฐ™์€ ์นผ๋ฆฌ๋ธŒ๋ ˆ์ด์…˜ ๋‹จ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

MQ ์‹œ๋ฆฌ์ฆˆ์—์„œ ๋งํ•˜๋Š” ์นผ๋ฆฌ๋ธŒ๋ ˆ์ด์…˜์€ ์ฒ˜์Œ ์„ผ์„œ์˜ ๊ฐ’์„ ์˜์ ์„ ์กฐ์ ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ํ‘œํ˜„์„ ์“ฐ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

 

์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์„ผ์„œ๋ฅผ ์ฒ˜์Œ ์ธก์ •ํ•  ๋•Œ, ๊ณต๊ธฐ๊ฐ€ ๊นจ๋—ํ•œ ๊ณณ์„ ๊ธฐ์ค€์œผ๋กœ ๊ณต๊ธฐ์งˆ์„ ์ƒ๋Œ€์ ์œผ๋กœ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.

 

์นผ๋ฆฌ๋ธŒ๋ ˆ์ด์…˜

 

์„ผ์„œ๋กœ ๋ฐ”๋กœ ์ธก์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ 10๋ฒˆ ์ •๋„ ๊นจ๋—ํ•œ ๊ณต๊ธฐ๋ฅผ ์ธก์ •ํ•˜๊ณ , ํ‰๊ท ์„ ๋‚ด์–ด R0์„ ์˜์ ์„ ๋งž์ถฅ๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ RatioMQ2CleanAir๋Š” ์„ผ์„œ๋งˆ๋‹ค ์ •์˜ํ•œ ๊ฐ’์ด ์„œ๋กœ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ œ๊ฐ€ ์ •์˜ํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

Clean Air

MQ2๋Š” 9.83ppm์„ ๊นจ๋—ํ•œ ๊ณต๊ธฐ๋ผ๊ณ  ๊ฐ€์ •์„ ํ•˜๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ์—ฌ๋Ÿฌ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฑฐ์ณ ์ตœ์ ์˜ ๊ฐ’์„ ๋‚ธ ๊ฒƒ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

 

2. PPM ์ถœ๋ ฅ

 

 

์นผ๋ฆฌ๋ธŒ๋ ˆ์ด์…˜์ด ๋๋‚˜๋ฉด, ์•„๋‘์ด๋…ธ์—์„œ MQ Lib์—์„œ ์•Œ์•„์„œ ์ €ํ•ญ ๊ฐ’์ด PPM๊ฐ’์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ๋‚˜์˜ต๋‹ˆ๋‹ค. 

 

๋ฐ”๋กœ ์˜ˆ์ œ๋ฅผ ๋Œ๋ ค๋ณด์‹œ๋ฉด ์•„์‹œ๊ฒ ์ง€๋งŒ, PPM๊ฐ’ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์„ผ์„œ์— ์‚ฌ์šฉ๋œ ์ „์••, ์ €ํ•ญ ๋“ฑ์ด ๋ชจ๋‘ ์ถœ๋ ฅ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

3. a, b ์„ ์–ธ

 

๊ทธ๋ฆฌ๊ณ  ์ค‘์š”ํ•œ ๊ฒƒ์ด ์–ด๋–ค ๊ณต๊ธฐ๋ฅผ ์ธก์ •ํ•  ๊ฒƒ์ธ์ง€ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. 

 

์ตœ๋Œ€ํ•œ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์‹œํŠธ๋Š” ๋ณด๊ณ  ์‹ถ์ง€ ์•Š์ง€๋งŒ, Figure๋Š” ํ•˜๋‚˜ ๋ณด๊ณ  ๊ฐ€์‹œ๋Š”๊ฑธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

MQ ์‹œ๋ฆฌ์ฆˆ ์„ผ์„œ๋Š” ์ƒ์ˆ˜ ๊ฐ’์— ๋”ฐ๋ผ, ์ง€์ˆ˜ ํšŒ๊ท€์‹ ๊ธฐ์šธ๊ธฐ ์ •๋„๊ฐ€ ํฌ๊ฒŒ ๋ฐ”๋€Œ๊ธฐ ๋•Œ๋ฌธ์— a, b๋ฅผ ์ œ๋Œ€๋กœ ์„ ์–ธํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด, ์ด์ƒํ•œ PPM ๊ฐ’์ด ๋‚˜์˜ค๋ฉฐ ๊ฐ’์˜ ์ฐจ์ด๊ฐ€ ๊ต‰์žฅํžˆ ์ปค์ง‘๋‹ˆ๋‹ค.

 

ppm = a * ratio ^ b

ratio = rs / ro

 

ro = ์นผ๋ฆฌ๋ธŒ๋ ˆ์ด์…˜๋œ ์ €ํ•ญ๊ฐ’ (๊ณ ์ •๊ฐ’)

rs = ๊ณต๊ธฐ์งˆ์ด ์ธก์ •๋˜๋Š” ์ €ํ•ญ๊ฐ’ (๊ฐ€๋ณ€๊ฐ’)

 

๋งŒ์•ฝ H2์˜ PPM์„ ์›ํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ  a, b ๊ฐ’์„ ๋ฐ”๊พธ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

MQ2.setA(987.99); 

MQ2.setB(-2.162);

 

์ฐธ๊ณ ๋กœ Figure์— ๋ณด์ด๋Š” RL์€ MQ ์„ผ์„œ์— ๋ถ™์–ด ์žˆ๋Š” ๊ฐ€๋ณ€ ์ €ํ•ญ์ž…๋‹ˆ๋‹ค. ์„ผ์„œ์˜ ์˜ˆ๋ฏผ ์ •๋„๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

/*
  MQUnifiedsensor Library - reading an MQ2

  Demonstrates the use a MQ2 sensor.
  Library originally added 01 may 2019
  by Miguel A Califa, Yersson Carrillo, Ghiordy Contreras, Mario Rodriguez
 
  Added example
  modified 23 May 2019
  by Miguel Califa 

  Updated library usage
  modified 26 March 2020
  by Miguel Califa 
  Wiring:
  https://github.com/miguel5612/MQSensorsLib_Docs/blob/master/static/img/MQ_Arduino.PNG
  Please take care, arduino A0 pin represent the analog input configured on #define pin

 This example code is in the public domain.

*/

//Include the library
#include <MQUnifiedsensor.h>
/************************Hardware Related Macros************************************/
#define         Board                   ("Arduino UNO")
#define         Pin                     (A2)  //Analog input 3 of your arduino
/***********************Software Related Macros************************************/
#define         Type                    ("MQ-2") //MQ2
#define         Voltage_Resolution      (5)
#define         ADC_Bit_Resolution      (10) // For arduino UNO/MEGA/NANO
#define         RatioMQ2CleanAir        (9.83) //RS / R0 = 9.83 ppm 

/*****************************Globals***********************************************/
MQUnifiedsensor MQ2(Board, Voltage_Resolution, ADC_Bit_Resolution, Pin, Type);
/*****************************Globals***********************************************/

void setup() {
  //Init the serial port communication - to debug the library
  Serial.begin(9600); //Init serial port

  //Set math model to calculate the PPM concentration and the value of constants
  MQ2.setRegressionMethod(1); //_PPM =  a*ratio^b
  MQ2.setA(574.25); MQ2.setB(-2.222); // Configurate the ecuation values to get LPG concentration
  /*
    Exponential regression:
    Gas    | a      | b
    H2     | 987.99 | -2.162
    LPG    | 574.25 | -2.222
    CO     | 36974  | -3.109
    Alcohol| 3616.1 | -2.675
    Propane| 658.71 | -2.168
  */

  /*****************************  MQ Init ********************************************/ 
  //Remarks: Configure the pin of arduino as input.
  /************************************************************************************/ 
  MQ2.init(); 
  /* 
    //If the RL value is different from 10K please assign your RL value with the following method:
    MQ2.setRL(10);
  */
  /*****************************  MQ CAlibration ********************************************/ 
  // Explanation: 
  // In this routine the sensor will measure the resistance of the sensor supposing before was pre-heated
  // and now is on clean air (Calibration conditions), and it will setup R0 value.
  // We recomend execute this routine only on setup or on the laboratory and save on the eeprom of your arduino
  // This routine not need to execute to every restart, you can load your R0 if you know the value
  // Acknowledgements: https://jayconsystems.com/blog/understanding-a-gas-sensor
  Serial.print("Calibrating please wait.");
  float calcR0 = 0;
  for(int i = 1; i<=10; i ++)
  {
    MQ2.update(); // Update data, the arduino will be read the voltage on the analog pin
    calcR0 += MQ2.calibrate(RatioMQ2CleanAir);
    Serial.print(".");
  }
  MQ2.setR0(calcR0/10);
  Serial.println("  done!.");
  
  if(isinf(calcR0)) {Serial.println("Warning: Conection issue founded, R0 is infite (Open circuit detected) please check your wiring and supply"); while(1);}
  if(calcR0 == 0){Serial.println("Warning: Conection issue founded, R0 is zero (Analog pin with short circuit to ground) please check your wiring and supply"); while(1);}
  /*****************************  MQ CAlibration ********************************************/ 

  MQ2.serialDebug(true);
}

void loop() {
  MQ2.update(); // Update data, the arduino will be read the voltage on the analog pin
  MQ2.readSensor(); // Sensor will read PPM concentration using the model and a and b values setted before or in the setup
  MQ2.serialDebug(); // Will print the table on the serial port
  delay(500); //Sampling frequency
}

 

์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋ณต์žกํ•ด๋ณด์ด์ง€๋งŒ, ์ฃผ์„์„ ๊ฑท์–ด๋‚ด๊ณ  ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ณธ๋‹ค๋ฉด ๊ต‰์žฅํžˆ ์งง์€ ์ฝ”๋“œ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

MQ2๋ฅผ ์˜ˆ์ œ๋ฅผ ํ™•์ธํ–ˆ์ง€๋งŒ, ๋‹ค๋ฅธ MQ ์‹œ๋ฆฌ์ฆˆ ๋˜ํ•œ ์ด๋Ÿฐ ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๋‹ค์Œ ๊ธ€์€ ๋ฐ์ดํ„ฐ ์‹œํŠธ๋ฅผ ๋ณด๋ฉด์„œ ํšŒ๋กœ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

coding-yoon.tistory.com/121

 

[์•„๋‘์ด๋…ธ] MQ ์‹œ๋ฆฌ์ฆˆ ๊ณต๊ธฐ์งˆ ์„ผ์„œ PPM์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ! (2) ํšŒ๋กœ๋„ (Schematic)

์•ˆ๋…•ํ•˜์„ธ์š”. MQ์‹œ๋ฆฌ์ฆˆ ๋‘ ๋ฒˆ์งธ ๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ๊ธ€์€ ๋ฐ”๋กœ ๋ฐ”๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ธ€์„ ์“ฐ๋ ค๊ณ  ๋ณด๋‹ˆ ๊ธฐ์–ต์ด ์•ˆ ๋‚˜์„œ ๋‹ค์‹œ ์ƒˆ๋กœ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋ฒˆ ๊ธ€์€ ์•„๋‘์ด๋…ธ ๋ผ์ด

coding-yoon.tistory.com

 

728x90
๋ฐ˜์‘ํ˜•
18์ง„์ˆ˜