Arduino Uno 로 가스센서 (MQ-2) 와 적외선 화염센서를 사용해서 아날로그와 디지털 방식으로
가스누출 & 화재감지 경보기를 구성해 보고 테스트해 보는 프로젝트입니다
시중에는 다양한 종류의 가스센서가 유통되고 판매되고 있습니다.
그중에 아두이노와 호환 가능한 MQ 시리즈를 사용해서 간단하게 가스 경보기를 구성해 볼 수 있습니다
MQ 시리즈는 다양한 모델이 있으며 각각의 모델들은 다양한 가스를 측정할수 있으며 측정범위도 모델별로 차이가 있습니다
어떤 모델이 어떤 종류의 가스를 측정할수 있는지는 아래 사양표를 참조 하도록 합시다
사용된 부품
Arduino Uno R3 (Italy)
MQ-2 가스센서
IR 적외선 화염센서
브래드 보드
5mm LED - 레드,그린
Active 능동부저 5V
가변저항 220 (Ohm)
점퍼케이블
사용된 키트
구성 배선도-가스 감지시 적색 LED 점등시키고 부저 울려보기
구성 배선도-화염(화재) 감지시 부저 울려보기
사용된 예제소스
주의사항
MQ-2 가스센서 모듈이 가스가 감지되지 않았는데도 동작 LED가 점등되고 시리얼 모니터로 확인 한
출력값에도 변화가 없다면 이 경우 MQ-2 가스센서는 브래드보드 말고 암놈-숫놈 점퍼케이블을
사용해서 아두이노에 배선해주고 테스트 하면 됩니다 (브래드보드에 가스센서 핀이 꽉 물리지 않아 발생하는 현상)
별도의 라이브러리를 사용하지 않아 간단하게 테스트 가능합니다
하지만 MQ-2 가스 센서를 사용해서 테스트 할때 꼭 주의 할 점이 있습니다
MQ-2 가스센서는 위 이미지 처럼 2가지 버전으로 생산되고 있습니다
버전에 따라서 기본 출력값에 약간의 차이가 있습니다
때문에 일단은 위 첨부된 Gas Sensor Buzzer 예제코드를 수정없이 그냥 컴파일 업로드 해 준 다음 MQ-2 가스센서를 배선하고 아두이노 IDE의 시리얼 모니터로 가스누출 없이 미누출일때 출력값이 얼마가 나오는지를 확인해 줍니다
본 테스트할때 가스 미누출일때 출력값이 160정도로 나왔습니다
(노트북이나 컴퓨터 등 아두이노와 연결된 전원 전압에 따라서도 출력값의 차이가 생길 수 있습니다)
그럼 시리얼 모니터로 가스 미누출 일때 출력값이 160 정도임을 확인했으므로 예제코드의 6번째 줄
int sensorThres = 400; 이 부분을
int sensorThres = 200; 이렇게 적당하게 수정해 주면 됩니다
그럼 가스가 누출되서 가스가 감지되면 출력값이 200을 훌쩍 넘게 되므로 LED가 녹색에서 빨간색으로 변하고 부저가 울리게 됩니다
int redLed = 12;
int greenLed = 11;
int buzzer = 10;
int smokeA0 = A5;
예제코드를 보면 알수 있듯이 빨란색 LED는 12번핀, 녹색 LED는 11번핀 가스센서는 A5 번핀으로 세팅되어 있습니다
세팅된 sensorThres 값을 기준으로
가스 미누출시 녹색 LED가 점등되고 누출시 빨간색 LED가 점등 됩니다
두번째 화염(화재) 감지시 부저를 울리는 예제코드도 간단합니다
const int buzzerPin = 12;
const int flamePin = 11;
int Flame = HIGH;
부저핀은 12번, 화염센서 핀은 11번으로 세팅되어 있습니다, 화염(화재) 감지시 HIGH 출력으로 부저를 울려 줍니다
부저 소리가 작다면? 배선도 부저의 GND쪽에 연결된 저항을 제거후
점퍼케이블로 GND로 연결해서 테스트 하면됩니다
프로젝트 동영상-가스 감지시 적색 LED 점등시키고 부저 울려보기
핸드폰으로 촬영해서 부저 소리가 잘 들리지 않는데, 이어폰으로 동영상을 보면 부저 소리가 들립니다
프로젝트 동영상-화염(화재) 감지시 부저 울려보기
이어서 추가로 가스센서와 화염센서를 동시에 사용해서 경보기를 만들어 보는 테스트입니다
구성 배선도-가스 또는 화재 감지시 적색 녹색 LED 점등시키고 부저 울려보기
사용된 예제소스
주의사항
가스센서는 전류를 많이 소모하므로 화염센서와 같이 5V로 연결시 동작이 원활하지 않습니다
때문에 가스센서는 5V 로 화염센서는 3V로 연결합니다
pinMode(smokeA0, INPUT);
pinMode(flameA0, INPUT);
가스센서와 추가로 화염센서의 핀모드가 설정되었습니다
Serial.print("Pin A1: ");
Serial.print("Pin A2: ");
시리얼 모니터로 가스센서 아날로그 출력값 Pin A1 과 화염센서 아날로그 출력값 Pin A2
를 확인할 수 있습니다
가스나 화염 미감지시 A1 과 A2 의 출력값을 시리얼 모니터로 확인 다음
int sensorThres = 400;
int sensorThres2 = 400;
이 부분의 400을 적당한 수치로 수정해 주면 됩니다
*주의! 화재감지 센서는 가스센서와는 다르게 화염 불꽃 감지시
아날로그 출력값이 감소가 됩니다* 이점을 감안해서
시리얼 모니터로 출력값을 확인해 본다음 적당한 임계값으로 예제를 수정후
화재나 가스가 감지되면 임계값을 넘도록 테스트 합니다
if (analogSensor > sensorThres)
가스센서는 아날로그 출력값이 400 이상으로 출력값이 올라갈때 부저가 울리게 설정되어 있으며
if (analogSensor2 < sensorThres2)
화염센서는 반대로 동작하는 타입이기 때문에 400이하로 출력값이 내려갈때 부저가 울리게 설정되어 있습니다
delay(100);
딜레이 시간을 적당하게 조정해서 LED 점등 타임을 조정해 봅니다
프로젝트 동영상-가스 와 화재 감지시 적녹색 LED 점등시키고 부저 울려보기
연관 포스팅
Arduino Uno 로 가스센서 (MQ-5 & MQ-7)를 사용해 1602 캐릭터 LCD에 가스감지시 가스 출력값 표시해 보기
Step.13-Arduino Uno 로 화염감지 센서를 이용해 부저(경보) 울리기
추가로 가스감지시 또는 화재 감지시 가스센서와 화재감지 센서에 연결된 LED를 각각제어하는
예제와 동영상 입니다
배선도는 바로위의 배선도와 동일하게 배선해서 테스트하면 됩니다
예제코드만 가스센서와 화재감지 센서에 연결된 LED를 각각 제어하도록 수정하였습니다
사용된 예제코드
프로젝트 동영상-가스 와 화재 감지시 적녹색 LED 점등시키고 부저 울려보기 (LED를 각각제어)
'Arduino(아두이노) 활용 강좌' 카테고리의 다른 글
Arduino Uno 로 우적센서를 사용해 빗방울 감지시 부저와 LED 활성화 시키고 LCD로 출력값 확인해 보기 (2) | 2019.05.04 |
---|---|
L298P 다기능 모터쉴드 사용법 알아보기 (0) | 2019.04.07 |
아두이노 ESP8266 GPIO 와이파이 쉴드 (ESP8266 GPIO WIFI Shield) 아두이노 MEGA2560 으로 사용하는 방법 알아보기 (0) | 2019.03.25 |
Arduino Uno 로 시리얼(Serial) 직렬통신을 해보고 RS485 통신으로 여러개의 아두이노와 통신해 보기 (0) | 2019.01.19 |
Arduino Uno 로 TM1637 4자리 7세그먼트 모듈과 DHT11 온습도 센서를 사용해서 실내 온습도 출력해 보기 (0) | 2018.12.31 |
댓글