Home IoT Hub Series · 11

[11편] 집을 비웠을 때 불꽃 징후를 먼저 잡자 - 화염 센서 화재 감지 노드

[11편] 집을 비웠을 때 불꽃 징후를 먼저 잡자 - 화염 센서 화재 감지 노드 대표 이미지
시스템 아키텍처 및 데이터 파이프라인 안내
이 글은 2편: 두뇌 만들기에서 구축한 중앙 NodeMCU 서버에 연결되는 우리집 IoT 허브 구성 문서입니다. 화염 센서가 불꽃의 적외선 영역을 감지해 즉시 경고 대상 슬롯을 갱신합니다. 수집된 데이터는 로컬 무선망 IoT_Hub_Net을 통해 중앙 서버의 8번 화재 감지 슬롯(/set?no8=값)을 갱신하며, 20채널 스마트홈 통합 컨트롤러의 판단 근거로 사용됩니다.

화염 센서는 760~1100nm 파장의 적외선(불꽃에서 나오는 파장)을 감지한다. 불꽃이 감지되면 디지털 출력이 LOW로 떨어진다. 8번 슬롯(Fire)은 경고 대상. 값이 1이면 부저가 울립니다.

준비물과 가격

부품수량개당 가격
Wemos D1 Mini1개2,000원
화염 센서 모듈1개1,000원
점퍼 와이어 3개
합계3,000원

핀 연결

[11편] 집을 비웠을 때 불꽃 징후를 먼저 잡자 - 화염 센서 화재 감지 노드 배선도
센서/모듈보드 연결
VCC3.3V
GNDGND
DOD1 (GPIO5)

전체 코드

화염 센서의 디지털 출력은 평소 HIGH, 불꽃 감지 시 LOW다. 코드에서 반전해서 1로 만든다.

[11편] 집을 비웠을 때 불꽃 징후를 먼저 잡자 - 화염 센서 화재 감지 노드 - 전체 코드
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const char* ssid     = "IoT_Hub_Net";
const char* password = "iothub1234";
const char* hubURL   = "http://192.168.1.1";

#define FLAME_PIN 5   // D1
#define SLOT_NO   8
#define INTERVAL  2000

void setup() {
  Serial.begin(115200);
  pinMode(FLAME_PIN, INPUT);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Connecting to IoT_Hub_Net");
  while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
  Serial.println("\nConnected!");
}

void loop() {
  int detected = !digitalRead(FLAME_PIN); // LOW=감지 → 1로 반전

  Serial.print("Flame: "); Serial.println(detected ? "FIRE!" : "OK");

  WiFiClient client; HTTPClient http;
  String url = String(hubURL) + "/set?no"
             + String(SLOT_NO) + "=" + String(detected);
  http.begin(client, url); http.GET(); http.end();
  Serial.println("HTTP -> " + url);

  delay(INTERVAL);
}

업로드 및 확인

라이터 불꽃을 센서 정면 50cm 이내에 가져가면 시리얼 모니터에 FIRE!가 표시되고 두뇌 부저가 울립니다. 센서 모듈의 가변저항으로 감도를 조절할 수 있습니다.

시리얼 모니터

업로드가 끝나면 Arduino IDE의 툴 → 시리얼 모니터를 열고 보드레이트를 115200으로 맞춥니다. 다음은 정상 동작을 확인하기 위한 시리얼 모니터 출력 예시입니다. 이 로그는 실제 캡처가 아니라, 화염 센서의 햇빛 오탐 필터와 8번 슬롯 경고 흐름을 보여주는 예시입니다.

[BOOT] Home IoT Node #11 - Flame sensor alert
[GPIO] flame_raw=HIGH, daylight_guard=PASS
[SENSOR] flame_detected=NO
[HTTP] GET /set?no8=0
[HUB] 200 OK - slot no8=NORMAL
[TEST] lighter test -> flame_raw=LOW -> no8=1
[WARN] keep sensor angle away from direct window light
  • Connected 또는 connected가 보이면 Wi-Fi 연결 단계는 통과한 것입니다.
  • HTTP 200 또는 200 OK가 보이면 두뇌 서버에 값이 전달된 것입니다.
  • 값이 갱신되지 않으면 먼저 URL의 슬롯 번호와 센서 배선을 함께 확인합니다.

⚠ 주의

이 센서는 라이터, 성냥, 촛불 같은 작은 불꽃에는 잘 반응하지만, 연기만 나는 화재 초기에는 반응이 늦을 수 있습니다. 실제 화재 경보기는 별도로 설치해야 합니다.

다음 글 예고

CO2 + 미세먼지. 이번 시리즈에서 가장 비싼 센서들이다(MH-Z19B 2만원 + PMS5003 1.5만원). 하지만 실내 공기질을 알려주는 핵심 센서.

준비물: Wemos D1 Mini (2,000원), MH-Z19B (20,000원), PMS5003 (15,000원)

불꽃 감지 센서로 우리집 화재 조기경보 만들기

적외선 불꽃 센서는 불꽃이 내뿜는 760~1100nm 대역의 적외선을 읽어 화재를 연기보다 빠르게 잡아냅니다. 우리집 IoT 허브 시리즈에 얹으면 부저 경보와 스마트폰 알림까지 자연스럽게 이어집니다.

안 될 때 체크포인트

이 노드는 코드만 보면 짧아 보일 수 있지만, 실제 집에 붙이면 센서 위치·전원·무선망·노이즈 때문에 값이 쉽게 흔들립니다. 아래 항목은 두뇌 서버에 잘못된 판단 근거가 들어가지 않도록 현장에서 먼저 점검할 내용입니다.

증상가능한 원인현장 해결 방법
햇빛에 화재로 오인함화염 센서가 감지하는 적외선 영역이 강한 직사광선과 겹침창문을 직접 바라보지 않게 아래쪽으로 각도를 틀고, 실제 라이터 불꽃 기준으로 가변저항 민감도를 낮춥니다.
전등을 켤 때 값이 튐백열등·할로겐·반사광이 센서에 들어옴광원이 보이는 방향에는 차광 튜브를 씌우고, 2~3회 연속 감지될 때만 1을 보냅니다.
정작 불꽃 가까이서 반응이 약함센서 수신부 방향과 화구 위치가 어긋남감시하려는 지점과 센서 렌즈가 같은 시야에 들어오도록 설치 전 라이터로 시야각을 확인합니다.
경고 후 복구가 불안정함화재 슬롯이 경고 대상이라 순간 오탐도 부저로 이어짐화염 단독보다 가스·온도 상승과 함께 판단하는 조합 조건을 두면 실사용 오탐을 줄일 수 있습니다.

활용 기준

  • 주방 가스레인지: 냄비를 올려두고 자리를 비웠다가 국물이 끓어 넘쳐 불이 번지는 순간을 즉시 포착합니다.
  • 촛불·향초: 아이나 반려동물이 넘어뜨린 촛불이 커튼·종이에 옮겨붙는 초기 단계에서 경보를 울립니다.
  • 보일러실·전기실: 배선 스파크나 보일러 착화 이상으로 생긴 불꽃을 사람이 없는 공간에서도 감시합니다.
  • 전기장판·히터 과열: 겨울철 취침 중 발화 위험 지점 근처에 두면 부저가 잠을 깨워 대피 시간을 벌어줍니다.
  • 알림 연동: 감지 시 부저 + 허브의 MQTT/텔레그램 푸시를 동시에 보내 외출 중에도 상황을 알 수 있게 합니다.

추천 설치 장소

  • 화원 방향으로 각도 조준: 센서는 렌즈 정면 약 60도 시야각, 실내에서 대략 1~2m 거리가 안정적입니다. 렌즈가 가스레인지·보일러를 정면으로 바라보게 고정합니다.
  • 천장보다 벽·상부 모서리: 불꽃 자체(빛)를 보는 센서라 열·연기처럼 천장에 모이지 않습니다. 화원이 잘 보이는 벽 상부가 유리합니다.
  • 직사광선·강한 조명 회피: 창가 햇빛, 할로겐·백열 조명은 적외선을 뿜어 오작동을 유발합니다. 이런 광원이 렌즈에 직접 들어오지 않는 위치를 고르세요.

실전 팁과 주의점

  • 오탐 필터링: 소프트웨어에서 '수백 ms 이상 연속 감지 시에만 경보'로 디바운스를 두면 순간적 햇빛 반사·리모컨 적외선 오탐을 크게 줄입니다.
  • 감도 조정: 모듈의 가변저항으로 임계값을 맞추되, 라이터 불꽃을 1m 밖에서 테스트해 실제 반응 거리를 확인합니다.
  • 단독 사용 금지: 이 센서는 어디까지나 보조 감지 장치입니다. 법적 인증을 받은 정식 화재경보기·소화기와 반드시 병행하고, DIY 경보를 유일한 안전장치로 믿지 않는 것이 좋습니다.

자주 묻는 질문

Q. 연기 감지기와 어떤 차이가 있나요? 연기 감지기는 연기 입자를, 불꽃 센서는 불꽃의 적외선을 봅니다. 불꽃 센서는 유염 화재를 더 빨리 잡지만 연기만 나는 훈소에는 약하니 둘을 함께 쓰는 것이 이상적입니다.

Q. 햇빛에 계속 오작동해요. 창을 등지도록 방향을 돌리고, 디바운스 시간을 늘리고, 감도(임계값)를 한 단계 낮춰 조정합니다. 그래도 심하면 렌즈에 얕은 후드를 달아 상부 직사광을 가리면 효과적입니다.

Q. 감지 거리를 더 늘릴 수 있나요? 큰 불꽃일수록 멀리서도 잡히지만, 안정적인 실내 감시 거리는 1~2m로 보고 화원마다 센서를 나눠 설치하는 편이 오탐도 적고 정확합니다.

우리집 IoT HUB 20슬롯 시스템 맵

이 글은 2편의 중앙 두뇌 서버와 3~19편의 분산 엣지 노드가 함께 구성하는 20채널 홈 IoT 시스템의 일부입니다. 필요한 편으로 이동해 슬롯과 센서 흐름을 함께 확인합니다.

[1편] 우리집 IoT 허브 전체 그림[2편] 중앙 두뇌 서버 만들기 · 슬롯 1~20[3편] 집 안 온습도, 감으로 보지 말고 숫자로 보자 · 슬롯 1·2[4편] 문 닫았나 계속 신경 쓰일 때 · 슬롯 9[5편] 냉장고가 제대로 돌고 있는지 눈으로 확인하자 · 슬롯 12[6편] 창문 열어도 될까? · 슬롯 3[7편] 욕실 곰팡이 생기기 전에 습도부터 잡자 · 슬롯 19[8편] 보일러가 실제로 도는지 배관 온도로 확인하자 · 슬롯 5·17[9편] 외출했는데 가스레인지가 켜져 있지 않을까? · 슬롯 6[10편] 가스 냄새가 나기 전에 먼저 경고받자 · 슬롯 7[11편] 집을 비웠을 때 불꽃 징후를 먼저 잡자 · 슬롯 8[12편] 머리가 멍한 이유가 공기 때문인지 확인하자 · 슬롯 13·14[13편] 전기세 무지 나오네, 이번 기회에 눈으로 보자 · 슬롯 15[14편] 물 새는지, 얼마나 쓰는지 숫자로 보자 · 슬롯 16[15편] 비 오는 줄 모르고 창문 열어두지 않게 · 슬롯 18[16편] 불 껐나, 문 잠갔나 한 번에 확인하자 · 슬롯 11·10[17편] 리모컨 없이 에어컨을 IoT 허브에서 제어하자 · 슬롯 4[18편] 강아지 밥그릇이 비었는지 눈으로 보자 · 슬롯 20[19편] 사람 있을 때만 시원하게, 없을 땐 아끼자 · 슬롯 1·4[20편] 집 안 상태가 한 화면에 보이기 시작했다 · 슬롯 전체