- MQ 시리즈 가스 센서
- 하드웨어 준비 :
- MQ 가스 센서에서 PPM을 측정하는 방법 :
- 깨끗한 공기에서 Ro 값 계산 :
- Rs 값 측정 :
- Rs / Ro 비율과 PPM의 관계 :
- MQ 센서를 사용하여 PPM을 계산하는 프로그램 :
- Arduino 및 MQ-137을 사용하여 하드웨어에서 PPM 값 표시 :
산업 시대부터 우리 인류는 빠르게 발전해 왔습니다. 발전 할 때마다 우리는 환경을 오염시키고 결국 환경을 저하시킵니다. 이제 지구 온난화는 놀라운 위협이며 우리가 숨쉬는 공기조차 중요 해지고 있습니다. 따라서 대기 질 모니터링도 중요해지기 시작했습니다. 따라서이 기사에서는 Arduino 와 함께 MQ 시리즈 가스 센서를 사용하는 방법 과 출력을 PPM (백만 분율)으로 표시하는 방법을 배웁니다 . PPM은 또한 리터당 밀리그램 (mg / L)으로 표시됩니다. 이 센서는 일반적으로 사용할 수 있으며 아래에 표시된 다양한 유형의 가스를 측정하는 데에도 신뢰할 수 있습니다.
MQ 시리즈 가스 센서
- 이산화탄소 (CO2): MG-811
- 일산화탄소 (CO): MQ-9
- 총 휘발성 유기 화합물 (TVOC): CCS811
- 등가 이산화탄소 (eCO2): CCS811
- 금속 산화물 (MOX): CCS811
- 암모니아: MQ-137
- 대기 질: MQ-135
- LPG, 주류, 연기: MQ2
우리는 이미 연기 감지에 MQ2를 사용하고 대기 질 모니터링 프로젝트에 MQ-135를 사용했습니다. 여기에서는 sainsmart 의 MQ-137 센서 를 사용하여 암모니아를 ppm 단위로 측정 합니다. 센서를 손에 들고 사용 가능한 모든 자습서를 살펴본 결과 가스를 ppm 단위로 측정하는 방법 에 대한 적절한 문서가 없음을 발견했습니다. 대부분의 튜토리얼은 아날로그 값만 다루거나 모든 유형의 가스를 측정하는 데 신뢰할 수없는 일부 상수를 소개합니다. 그래서 오랫동안 온라인을 만지작 거리며 마침내이 MQ 시리즈 가스 센서를 사용하여 Arduino를 사용하여 ppm을 측정하는 방법을 발견했습니다. 사용 가능한 모든 가스 센서에 대해이 기사를 사용할 수 있도록 라이브러리없이 하단부터 설명하고 있습니다.
하드웨어 준비:
MQ 가스 센서는 모듈로 구매하거나 센서로만 구매할 수 있습니다. ppm 만 측정하는 것이 목적이라면 모듈이 디지털 핀만 사용하는 데 적합하므로 센서 만 구입하는 것이 가장 좋습니다. 따라서 이미 모듈을 구입 한 경우에는 추가로 논의 할 작은 해킹을 수행해야합니다. 지금은 센서를 구입했다고 가정 해 보겠습니다. 센서의 핀 배치 및 연결은 다음과 같습니다.
보시다시피 'H'의 한쪽 끝을 전원에 연결하고 'H'의 다른 쪽 끝을 접지에 연결하면됩니다. 그런 다음 A와 B를 모두 결합하십시오. 한 세트는 전압을 공급하고 다른 세트는 아날로그 핀에 연결합니다. 저항 R L 은 센서 작동에 매우 중요한 역할을합니다. 따라서 사용중인 값을 기록해 두십시오. 47k 값이 권장됩니다.
이미 모듈을 구입했다면 PCB 트레이스를 추적 하여 보드에서 R L 값을 찾아야합니다. Grauonline은 이미 우리를 위해이 작업을 수행했으며 MQ 가스 센서 보드의 회로도는 아래에 나와 있습니다.
보시다시피 저항 R L (R2)은 Aout 핀과 접지 사이에 연결되어 있으므로 모듈이있는 경우 저항 모드에서 멀티 미터를 사용하여 Vout 핀과 Vcc 핀에 걸쳐 멀티 미터를 사용하여 R L 값을 측정 할 수 있습니다. 모듈. 내 sainsmart MQ-137 가스 센서에서 RL 값은 1K 였으며 아래 그림과 같이 여기에 위치했습니다.
그러나, R의 변수 냄비 제공하는 웹 사이트의 주장 L 명확 회로에서 알 수 있듯이 사실이 아니다, 냄비는 연산 증폭기의 가변 전압을 설정하는 데 사용 및 R과는 아무 상관이 없다 L을. 따라서 위에 표시된 SMD 저항기 (1K)를 수동으로 납땜해야하고 RL 역할을하는 접지 및 Vout 핀에 자체 저항기를 사용해야합니다. RL의 가장 좋은 값은 데이터 시트에서 제안한대로 47K이므로 동일한 값을 사용할 것입니다.
MQ 가스 센서에서 PPM을 측정하는 방법:
지금 우리가 알고있는 R의 값 L은 실제로 이러한 센서에서 PPM을 측정하는 방법에 진행 할 수 있습니다. 모든 센서와 마찬가지로 시작하는 곳은 데이터 시트입니다. MQ-137 데이터 시트가 여기에 제공되지만 센서에 대한 올바른 데이터 시트를 찾아야합니다. 데이터 시트 안에는 (Rs / Ro) VS PPM에 대해 그려 질 그래프가 하나만 필요합니다. 이것은 계산에 필요한 그래프입니다. 그래서 그것을 훑어보고 편리한 곳에 보관하십시오. 내 센서에 대한 것이 아래에 나와 있습니다.
MQ137 센서는 NH3, C2H6O 및 심지어 CO까지 측정 할 수 있습니다. 그러나 여기서는 NH3의 값에만 관심이 있습니다. 그러나 동일한 방법을 사용하여 원하는 센서의 ppm을 계산할 수 있습니다. 이 그래프는 ppm 값을 찾을 수있는 유일한 소스이며 Rs / Ro (X 축)의 비율을 계산할 수 있다면이 그래프를 사용하여 ppm (Y 축) 값을 찾을 수 있습니다. Rs / Ro 값을 찾으려면 Rs 값과 Ro 값을 찾아야합니다. Rs는 가스 농도에서의 센서 저항이고 Ro는 깨끗한 sir의 센서 저항입니다.
네… 이건 계획입니다. 우리가 이걸 어떻게 피할 수 있는지 봅시다….
깨끗한 공기에서 Ro 값 계산:
그래프에서 Rs / Ro의 값은 공기 (굵은 파란색 선)에 대해 일정하므로이를 이점으로 사용할 수 있으며 센서가 신선한 공기에서 작동 할 때 Rs / Ro의 값은 3.6이 될 것입니다. 이하
Rs / Ro = 3.6
데이터 시트에서 우리는 또한 Rs 값을 계산하는 공식을 얻습니다. 공식은 아래와 같습니다. 이 공식이 어떻게 파생되는지 알고 싶다면 jay con 시스템을 통해 읽을 수 있습니다.이 공식을 분류하는 데 도움을주었습니다.
이 공식에서 Vc의 값은 우리의 공급 전압 (+ 5V)이고 R L 의 값은 우리가 이미 계산 한 값입니다 (센서의 경우 47K). 작은 Arduino 프로그램을 작성하면 V RL 값을 찾고 마지막으로 Rs 값을 계산할 수도 있습니다. 센서 의 아날로그 전압 (V RL) 을 읽고이 공식을 사용하여 Rs 값을 계산 하고 마지막으로 직렬 모니터에 표시 하는 Arduino 프로그램을 아래에 제공 했습니다. 이 프로그램은 코멘트 섹션을 통해 잘 설명되어 있으므로이 기사를 짧게 유지하기 위해 여기에서는 설명을 건너 뛰겠습니다.
/ * * 신선한 공기 상태에서 알고있는 RL에 대한 R0 값을 측정하는 프로그램 * 프로그램 작성자: B.Aswinth Raj * 웹 사이트: www.circuitdigest.com * 날짜: 28-12-2017 * / //이 프로그램은 가장 잘 작동합니다. 온도: 20 ℃, 습도: 65 %, O2 농도 21 %, Rl 값이 47K 인 경우 #define RL 47 // 저항 RL 값은 47K void setup () // 만 실행 한 번 {Serial.begin (9600); // 값을 표시하기위한 직렬 COM 초기화} void loop () {float analog_value; 플로트 VRL; 부동 Rs; 플로트 Ro; for (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // 200 번 센서의 아날로그 출력 읽기 {analog_value = analog_value + analogRead (A0); // 200에 대한 값 추가} analog_value = analog_value / 500.0; // 평균 VRL = analog_value * (5.0 / 1023.0);// 아날로그 값을 전압으로 변환 // RS = ((Vc / VRL) -1) * RL은 데이터 시트에서 얻은 공식입니다. Rs = ((5.0 / VRL) -1) * RL; // RS / RO는 데이터 시트의 그래프에서 얻은 것처럼 3.6입니다. Ro = Rs / 3.6; Serial.print ("신선한 공기에서의 Ro ="); Serial.println (Ro); // 계산 된 Ro delay (1000); // 1 초 지연}
참고: Ro 값은 다양하므로 센서가 최소 10 시간 동안 예열되도록 한 다음 Ro 값을 사용하십시오.
I가되도록 이슬의 체결 값 (30) 내 센서 KΩ (R에서 L은 인 47kΩ). 귀하는 약간 다를 수 있습니다.
Rs 값 측정:
이제 Ro 값을 알았으므로 위의 두 공식을 사용하여 Rs 값을 쉽게 계산할 수 있습니다. 이전에 계산 된 Rs 값은 신선한 공기 상태에 대한 것이며 암모니아가 공기 중에 존재할 때 동일하지 않습니다. Rs 값을 계산하는 것은 최종 프로그램에서 직접 처리 할 수있는 큰 문제가 아닙니다.
Rs / Ro 비율과 PPM의 관계:
이제 Rs와 Ro의 값을 측정하는 방법을 알았으므로 비율 (Rs / Ro)을 찾을 수 있습니다. 그런 다음 차트 (아래 참조)를 사용하여 해당 PPM 값과 관련시킬 수 있습니다.
NH3 라인 (청록색)이 선형으로 보이지만 실제로는 선형이 아닙니다. 외관상 스케일이 불균일하게 분할되어 있기 때문입니다. 따라서 Rs / Ro와 PPM 사이의 관계는 실제로 아래 방정식으로 나타낼 수있는 로그입니다.
log (y) = m * log (x) + b 여기서, y = 비율 (Rs / Ro) x = PPM m = 선의 기울기 b = 교차점
m과 b의 값을 찾으려면 가스 라인에서 두 점 (x1, y1)과 (x2, y2)를 고려해야합니다. 여기서 우리는 암모니아로 작업하고 있으므로 제가 고려한 두 점은 위의 그림 (빨간색으로 표시됨)과 같이 빨간색 표시가있는 (40,1) 및 (100,0.8)입니다.
m = / m = log (0.8 / 1) / log (100/40) m = -0.243
마찬가지로 (b)의 경우 위의 그림 (파란색으로 표시됨)과 같이 그래프 (70,0.75)에서 중간 점 값 (x, y)을 가져옵니다.
b = log (y)-m * log (x) b = log (0.75)-(-0.243) * log (70) b = 0.323
이제 m과 b의 값을 계산 했으므로 아래 공식을 사용하여 (Rs / Ro)의 값을 PPM과 동일시 할 수 있습니다.
PPM = 10 ^ {/ m}
MQ 센서를 사용하여 PPM을 계산하는 프로그램:
MQ 센서를 사용하여 PPM을 계산 하는 전체 프로그램 은 다음과 같습니다. 몇 가지 중요한 줄이 아래에 설명되어 있습니다.
프로그램 진행하기 전에, 우리는 필요 값 피드 부하 저항 (RL), 기울기 (m), 차단 (b)와 신선한 공기 (RO)의 저항 값의. 이 모든 값을 얻는 절차는 이미 설명되었으므로 지금 입력하겠습니다.
#define RL 47 // 저항 RL 값은 47K #define m -0.263 // 계산 된 기울기 입력 #define b 0.42 // 계산 된 절편 입력 #define Ro 30 // 찾은 Ro 값 입력
그런 다음 센서 (VRL) 에서 전압 강하를 읽고 이를 전압 (0V ~ 5V)으로 변환합니다. 아날로그 읽기는 0에서 1024 사이의 값만 반환하기 때문입니다.
VRL = analogRead (MQ_sensor) * (5.0 / 1023.0); // 전압 강하를 측정하고 0-5V로 변환
이제 VRL 값이 계산되었으므로 위에서 설명한 공식을 사용하여 Rs 값 과 비율 (Rs / Ro) 을 계산할 수 있습니다.
비율 = Rs / Ro; // Rs / Ro 비율 찾기
마지막으로 대수 공식으로 PPM을 계산하여 아래와 같이 직렬 모니터에 표시 할 수 있습니다.
이중 ppm = pow (10, ((log10 (비) -b) / m)); // ppm 계산을위한 공식 사용 Serial.print (ppm); // ppm 표시
Arduino 및 MQ-137을 사용하여 하드웨어에서 PPM 값 표시:
모든 이론이 충분하면 센서와 LCD로 간단한 회로를 만들어 가스 값을 PPM으로 표시합니다. 여기서 제가 사용하고있는 센서는 암모니아를 측정하는 MQ137이며, 설정을위한 회로도 는 아래와 같습니다.
회로도에 표시된대로 센서와 LCD를 연결하고 프로그램 끝에 제공된 코드를 업로드합니다. 위에서 설명한대로 Ro 값을 수정해야합니다. 4.7K 이외의 다른 저항을 RL로 사용하는 경우에도 매개 변수 값을 변경하십시오.
측정을 수행하기 전에 최소 2 시간 동안 설정에 전원을 공급하십시오 (보다 정확한 값을 위해 48 시간이 권장 됨). 이 시간을 가열 시간이라고하며이 시간 동안 센서가 예열됩니다. 그러면 아래와 같이 LCD 화면에 표시되는 PPM 값과 전압을 볼 수 있습니다.
이제 값이 실제로 암모니아 존재와 관련이 있는지 확인하기 위해이 설정을 밀폐 된 용기에 넣고 그 안에 암모니아 가스를 보내 값이 증가하는지 확인합니다. 나는 적절한 PPM 측정기를 가지고 있지 않으며 측정기를 가지고있는 누군가가이 설정을 테스트하고 알려 주면 좋을 것입니다.
아래 비디오 를 통해 암모니아 존재 여부에 따라 판독 값이 어떻게 달라 졌는지 확인할 수 있습니다. 개념을 이해하고 즐겁게 배우 셨기를 바랍니다. 의심스러운 점이 있으면 댓글 섹션에 남겨 두거나 더 자세한 도움말을 보려면 여기 포럼을 사용하세요.