안녕하세요.
간단하게 연기 검출을 테스트하기 위해서 저렴한 센서들을 이용해 보았습니다. 센서 키트 구매하면 플라스틱 케이스에 9개 담겨 옵니다.
그리고 가스에 대해서 조금 이해가 있어야 조금 더 잘 사용할 것 같아서 찾아본 자료를 공유해 보도록 하겠습니다.
1. 가스 분류
- 크게 5가지로 나눠 볼 수 있습니다.
1) 가연성 가스 : 공기 중에 산소와 반응하여 연소하는 가스 (LNG, LPG, CH₄, H₂, i-C₄H10, etc)
2) 독 성 가스 : 인체 허용 농도(TLV) 기준의 유독 가스 (NH3, CO, CL₂, COCL₂, VCM, etc)
3) 불활성 가스 : 분자 구조가 안정되어 있어 화학반응을 하지 않는 가스 (He, Ar, Ne, etc)
4) 조연성 가스 : 연소하는 것을 도와주는 가스 (O₂)
5) 불연성 가스 : 전혀 연소하지 않는 가스 (N₂, CO₂, Freon, etc)
2. 가스센서별 측정원리 (간단히)
1) 접촉 연소 방식 센서 (Catalytic Combustion)
가연성 가스의 감지에 적용. 백금 필라멘트의 촉매(백금, 파라디움 등)가 가연성 가스를 함유한 공기와 접촉하면 산화반응을 일으키는 방식
2) 반도체 방식 센서 (Semi-Conductor)
금속산화물 반도체(산화아연, 산화주석 등)의 표면에 가연성 가스 등의 분자가 달라붙어 반도체 내의 전자구조를 변화시켜 전기전도도가 증가하는 것을 이용하는 방식
3) 박막형 방식 센서 (Thin Film Semic-Onductor)
박막형 센서는 약 1000A°(1010)의 박막형 반도체 표면 위의 가스 흡착에 의한 전기 저항의 변화를 측정하는 방식
4) 열선형 반도체 방식 센서 (Hotwire Semi-Conductor)
열선형 반도체 센서는 고체의 열전도의 변화를 측정하고 산화된 금속 반도체의 표면에 가스 흡착의 전기적 변화를 측정. 백금코일의 양끝의 저항에 의하여 측정하는 방식
5) 가스온도 전도성 방식 센서 (Thermal Conductivity)
가스온도 전도성 센서는 가스마다 다르게 나타나는 온도 전도성의 차이에 따르는 가열된 이미터 전극(백금선 코일)의 온도 변화를 측정하는 방식
6) 정전위전해 방식 센서 (Electro Chemical)
독성검지기에 사용. 가스 투과성의 격막을 통하여 전해질에 확산, 흡수된 가스는 산화시키고 이때 발생하는 전류를 사용하여 가스농도를 측정하는 방식
7) 비분산 적외선방식(NDIR, Non-Dispersive Infrared)
- 가스 분자의 광 흡수도를 측정하여 농도로 환산하는 방식
3. 접촉 연소 센서 구조 (예, MQ-135)
2, 5핀에 연결된 저항처럼 보이는 것이 히터 코일입니다. 코일쪽 VH은 AC 혹은 DC 5V 전압이 가능하지만, Vc 쪽은 DC 5V로 연결해주어야 합니다. RL은 전류를 전압으로 바꿔주는 저항으로 모듈별로 저항 값이 조금씩 다른 듯합니다.
4. 가스 센서 킷트 스펙과 센서 종류
1) 공통적인 스펙
- Size: 32X22X27mm/
- Main Chip: LM393, ZYMQ-5 gas sensor
- Operating Voltage: DC 5V
- Power: 150mA
- DO Output: 0.1V/5V
- AO Output: 0.1-0.3A(0 ~ 5V analog)
2) 센서 종류 감지 내용
5. 테스트용 소스
아두이노 나노 A5 핀에 가스 모듈 A0 핀을 연결 VCC와 GND 연결해서 아날로그 값만 받아 표시하는 것으로 테스트하였습니다.
int smokeA0 = A5;
void setup() {
pinMode(smokeA0, INPUT);
Serial.begin(9600);
}
void loop() {
int analogSensor = analogRead(smokeA0);
Serial.print("GAS Pin A5: ");
Serial.println(analogSensor);
delay(1000);
}
6. 가스 센서 모듈 테스트 결과
알림) 아래의 결과는 객관적 수치가 아님을 다시 한번 말씀드립니다. 챔버를 구성해서 정확한 량을 가지고 테스트한 것이 아니라 사무실 내에서 모듈을 변경해 가며 개인적으로 테스트한 것이기 때문에 모듈 상태가 정상이 아닌 것이 있을 수도 있기 때문에 대략적인 참조로만 확인하셔야 합니다.
입김을 불어보고, 라이터의 가스를 주입해 보고, 성냥을 연소시키면서 발생하는 연기를 가지고 테스트해 보았습니다. 예열 시간을 3~5분 정도밖에 주지 않아서 정확하지 않습니다.
1) MQ-2 : 실험전 사무실 경우 140 정도로 나타남, 입김에 수치 증가함(+~150), 부탄가스를 주입 시 빠르게 증가함, 성냥 연기에 +600 ~ 800 정도 증가함
2) MQ-3 : 실험전 사무실 경우 400 대로 나타남, 입금에 크게 반응하지 않음(+50), 부탄가스를 주입해도 크게 증가하지 않음(+100), 성냥 연기에 +500 정도 증가함
3) MQ-4 : 실험 전 사무실 경우 30 정도 나타남, 입김에 크게 반응하지 않음(+30), 부탄가스를 주입 시 빠르게 증가하고 복구됨, 성냥 연기에 +150 정도 증가하며 크게 반응하지 않음
4) MQ-5 : 실험 전 사무실 경우 20 정도 나타남, 입김에 크게 반응하지 않음, 부탄가스를 주입 시 빠르게 증가(+700~800)하고 빠르게 복구됨, 성냥 연기에 +150 정도 증가함
5) MQ-6 : 실험 전 사무실 경우 300 정도 나타남, 입김에 크게 반응하지 않음, 부탄가스를 주입 시 조금 느리게 증가함(+500) 느리게 복귀함, 성냥 연기에 +100 정도 증가함
6) MQ-7 : 실험 전 사무실 경우 80 정도 나타남, 입김에 크게 반응하지 않음, 부탄가스를 주입 시 빠르게 증가(+700)하고 빠르게 복구됨, 성냥 연기에 +300 정도 증가함
7) MQ-8 : 실험 전 사무실 경우 60 정도 나타남, 입김에 크게 반응하지 않음, 부탄가스를 주입 시 빠르게 증가함, 성냥 연기에 +100 정도 반응함
8) MQ-9 : 실험 전 사무실 경우 200 정도 나타남, 입김에 크게 반응하지 않음, 부탄가스를 주입 시 +400~500 증가함, 성냥 연기에 +200~300 정도 증가함
9) MQ-135 : 실험 전 사무실 경우 250 정도 나타남, 입김에 크게 반응하지 않음, 부탄가스를 주입 시 빠르게 증가함, 성냥 연기에 +200~300 정도 반응함
7. 센서 특성 그래프 확인 (예, MQ-135)
- 온도 : 20도, 습도 : 65%, 02 공급 : 21%, RL : 20㏀
- 그래프 Y축의 Rs/R0는 센서 모듈 고유저항 / 센서 출력 저항을 나타내는 것이다. 그래서 가스에 따라서 R0 만 변화됩니다. 그리고 X 축은 투입되는 가스 양입니다. 가스 양이 많아질수록 Ro 저항(분모)이 커지게 되고 전압 분배 법칙에 따라 저항의 값이 낮아지므로 ADC 값은 커지게 됩니다.
- 온도 20도 기준으로 공기 중에 암모니아 농도 100ppm 측정을 습도 33%, 85%에서 각각 측정한 결과입니다.
- 그래프 X 축은 변화 온도이고 상대적으로 습도가 33에서 대략 1, 85에서 대략 0.9로 높을수록 Ro 센서 출력 저항이 10% 커집니다.
"ppm(parts per million, 백만분의 1 비율)는 양이나 무게의 개념이 아닌 분량이나 비율을 의미한다"
일반적인 액체, 고체 농도와 달리 기체의 밀도는 주변 온도와 압력에 영향을 크게 받기 때문에 다른 계산식을 사용해야 한다고 합니다. 특히 액체 농도 단위 경우 mg/L이고 기체 농도 단위 mg/1000L 이므로 기체의 부피가 액체의 것보다 천 배나 크다는 것입니다. ( 저도 상세한 설명드리기 어렵기 때문에 참조 사이트를 보시기를 추천드립니다. ^^;)
8. 테스트 후기
구매할 때 쉽게 생각해서 "이 센서는 정해진 가스만 측정할 거야"라고 생각하고 구매하시면 생각과 다르게 반응한다는 것을 알 수 있습니다. 가스센서가 다른 가스에서도 반응하지만 제품에 맞게 주된 가스에 더 민감하게 반응하게 만들어졌다고 생각하시면 될 것 같습니다.
그래서 가스마다 센싱 된 피크치가 크기가 다르기 때문에 시간축으로 분석해야 정확한 물질을 판단할 수 있습니다. 또한 정밀성을 요구하거나 주변 환경에서 온도와 습도의 변화가 클 경우 광범위의 실험이 필요합니다.
<특정 가스를 분석하기 위한 실험 방법>
- 특정 가스만 입력 가능한 챔버(Chamber)를 구성한다.
- 챔버에는 외부의 공기가 유입되지 않아야 하며 내용물을 완전히 비울 수 있는 진공 상태를 만들어야 한다.
- 습도와 온도를 정확히 알 수 있도록 한다.
- 센서가 정상화될 때까지의 히팅 시간을 준다. (스펙상 24시간)
- 한 가지 특성 가스 일정량을 챔버에 유입하여 ADC 값을 관찰하는데 반드시 변곡점 가지 도달 시간을 측정한다.
- 상승곡선과 하강곡선은 시간에 따라 그 기울기가 다르므로 이를 신호 처리로 해결하도록 한다.
- 가스마다 곡선과 상승 타이밍이 다르므로 이를 이용하여 기체를 분석한다.
- 특정 가스 1000ppm을 주입하여 초기값을 넣어 0점 조정한다.
"코딩으로 배우는 센서 내용 중"
<참고 자료>
1. 유한테크 기술 자료실
http://www.yoohannet.com/xe/5462
2. 9개 센서 종류
https://eduino.kr/product/detail.html?product_no=144
3. [도서] 코딩으로 배우는 센서
4. [개념] 기체의 ppm
https://m.blog.naver.com/tiaks2002/221705501228
5. MQ-135 Datasheet
'Embedded > Arduino' 카테고리의 다른 글
아두이노 나노(Arduino Nano)로 EXSEN CO2 Sensor(RX-9) 테스트 (0) | 2024.05.08 |
---|---|
아두이노 나노(Arduino Nano)로 솔레노이드(Solenoid) DS-0630S [SZH-GNP529] 테스트 (0) | 2024.04.30 |
아두이노(Arduino) Flex Sensor 2.2 (SEN-10264) 테스트 (2) | 2024.04.20 |
Arduino Nano IoT 33 Bootloader blocked 된 경우 MKR ZERO로 살리기(실패) (0) | 2024.04.13 |
아두이노 나노 호환보드 워치독(Watchdog) 작동 안 되는 현상(멈춤현상) (0) | 2024.04.03 |