본문 바로가기

아두이노/IoT 아두이노 프로젝트!

IoT로 집안의 가스를 감지하자 !!

- 프로젝트 명: Air Pollution (가스 감지 시스템) - 공기의 오염도를 측정.

- 사용 물품

1. WizArduino

2. GSAS61-P110 (오감 테크놀러지)

3. MQ-2 (Ali express에서 구매)

4. Step Motor (본 프로젝트에서는 LED로 대체)

- 사용 Tool

1. Arduino.org IDE Tool

2. Ubidots (Cloud)

- 목적

  * 본 프로젝트를 사용함으로써 실내 오염 공기를 체크할 수 있으며, 오염공기를 감지시 사용하는 e-mail로 혹은 sns로 이벤트를 받기 위한 프로젝트.



<가스별 사고 건수 그림1>

<가스별 사고 건수 그림2>


그림1, 2를 보면 최근 5년간 가스 사고의 빈도수가 나타나 있다. 이 중 가스 사고의 비중이 가장 높은 것이. 사용자 부주의와 시설미비이다.

거기에 LPG와 도시가스, 고압가스가 가장 많은 구성을 일구고 있다.


앞으로 시간이 지나갈수록 시설미비 건물들이 점점 늘어갈 것으로 추측된다.

그리고 사용자 부주의에 따른 가스사고가 잇따를 것으로 예상된다.


그래서 위 프로젝트는 이를 방지하고자 제작한 프로젝트이다.



가스 사고의 가장 좋은 방법은 위 사진과 같이 해결보단 예방!! 이다. 문제가 생기기전에 미리 예방을 하는 것이 가장 중요하지만,

현대사회에서 바쁘게 살아가는 직장인들은 이것을 모른체 지나갈 확률이 굉장히 높다.

그리고 !!! 항상 예상치 못한 상황이 발생하기 때문에 이를 위해 위 프로젝트를 제작한다.



프로젝트 구성은 위 그림과 같다.

가스센서 2개를 이용하여 제작하였는데, 이유는 비교하는 목적도 있고, 오차를 확인하고 싶어서 그런 것도 있다.


- 사용한 가스 센서

1. GSAS61-P110 (오감 테크놀러지 제작)

2. MQ-2 (Ali express에서 저렴하게 구매)



여기서, GAS detect Sensor에 대해 정확하게 알아보자. (원리)

GAS detect Sensor는 실내 오염 공기(담배 연기, 연료용-LPG/NG, 부탄, 메탄, 알코올 등)를 감지할 수 있는 센서이다.


  

<가스 센서> 

 Parts

Materials 

 1. Gas sensing layer

 SnO2

 2. Electrode (전극)

 Au

 3. Electrode line (전극 선)

 Pt

 4. Heater coil

 Ni-Cr alloy (합금)

 5. Tubular ceramic

 Al2O3 (세라믹 튜브)

 6. Anti-explosion network

 Stainless steel gauze(SUS316 100-mesh)

 7. Clamp ring

 Copper plating Ni

 8. Resin base

 Bakelite

 9. Tube Pin

 Copper plating Ni


위 센서는 위 그림처럼 내부에 포함된 센서와 히터로 가스를 검출한다.

위 센서의 방식은 접촉연소식 방식이다.

위 센서는 둥그런 튜브(세라믹)안에 백금열선을 내장하여 구성한다. 그리고 온도보상용으로 유사한 저항소자를 사용하여 이를 직렬로 연결한다. 그래서 전원을 인가하면 센서가 가열되고 가열된 센서와 가스가 접촉하면서 연소반응이 일어난다.

즉, 공기+가스가 센서에 흡착되어 동작하게 된다. !!


좀 더 자세하게 설명하자면, (여기서 MQ-2와 GSAS61-P110의 차이점이 드러난다.)


- MQ-2의 경우,

MQ-2 센서에 사용되는 내부 히터는 전원에 의해 가열되는 백금선 코일(백금열선)로 만들었다. 그래서 동작 초기에 센서에 전원을 공급하면 백금열선에 열이 상승한다. 그에 따라서 센서의 저항값도 상승하게 된다, 이 때, 동작 초기이기 때문에 공기가 센서에 흡착되어 있다. (열에 의해)

공기가 센서에 흡착되게 되면, 실제 전원은 계속 전류를 공급 해주지만(전자를 공급), 센서에 공기가 흡착되어 있어 전원으로부터 공급받는 전류의 흐름을 막게된다. 따라서 전류가 센서로 흐르지 못한다. 그래서 이때는 저항 값이 상승하게 된다. (최대 약 50 ~ 100K)

이 후 가스를 검출하게 되어 공기과 섞이게 되면, 공기가 흡착되어 있는 센서에 가스가 유입되면서 막혔던 전류의 흐름이 풀어지게 된다. 그래서 전원으로 부터 공급받는 전류가 센서로 흐르게 되어 저항값이 작아지게 된다.


- GSAS61-P110의 경우,

여기서 GSAS61-P110와의 차이점은, GSAS61-P110은 반도체식 가스 센서이다. 동작원리는 MQ-2와 같지만, GSAS61-P110은 순수 반도체로 제작했기 때문에 동작 초기에 센서에 전원을 공급하면 백금열선에 열이 상승하고, 센서의 저항값이 MQ-2와는 반대로 낮아지게 된다.


즉, 초기 동작 시 센서의 저항값이 온도에 따라 커지냐 작아지냐의 차이이다.

왜 서로 다르게 동작하는 것일까??? 

이는 반도체의 특성 때문이다. (반도체는 온도가 올라가면 전자가 열에너지를 받아 핵으로부터 구속을 벗어나 자유전자가 된다.)

GASA61-P110는 반도체 방식이기 때문에 열이 상승하면 저항은 내려간다.

MQ-2는 도체방식이기 때문에 열이 상승하면 저항도 상승하게 된다.


반도체 온도 특성에 대한 자세한 설명은 아래 링크를 확인 바란다.

http://tip.daum.net/question/65324714


즉, 결론은 동작 시 가스가 검출되면 센서의 저항이 낮아진다.



       

<GSAS61-P110 회로도>


<MQ-2 회로도>


회로도는 위와 같으며, 둘 다 동일하게 제작되어 있는 것을 확인할 수 있다.


가스센서만 동작하는 코드는 아래와 같이 다운받으면 된다.

GAS_Sensor.ino


그러면 위 값을 클라우드 Ubidots를 이용하여 데이터를 축적할 수 있게 제작해보겠다.

Ubidots의 사용법은 아래 링크를 클릭바란다.

http://openstory.tistory.com/57


근데, 가스센서 값만 클라우드로 보내서 체크하는 방법 이외에, 실제 내가 가스 밸브를 잠그고 열게 제작해야하기 때문에 이에 대한 코드도 추가한다.

이 때 서브모터를 사용해야 하지만, LED로 대체하여 사용하도록 한다.

위 사진과 같이 Ubidot의 Dashboard로 나타낸 화면이다. 가스 밸브를 잠그고 열기 위해 GAS_valve_control이란 것을 만들었고, 

진짜 가스밸브가 열리고 닫혔는지 확인하기 위해 GAS_valve_status를 하나 더 만들었다.


동작 코드는 아래 코드이다. 동작하는 코드이니 사용해도 무방하다.

Ubidots_Ethernet_sensor_Finish_WizArduino_gas.ino


프로젝트 회로도이다.