ESP32와 n8n으로 냉장고·약품 온도 이상 감지 파이프라인 만들기 — 3단계 상태 머신과 SLA 에스컬레이션
이 글과 연결된 글 보기
드래그로 이동 · 휠/두 손가락으로 확대 · 방향키로 글 선택 · 0으로 맞춤. 실선: 본문 링크, 점선: 시리즈·주제의 대표 연결.표시된 글 8편 목록
ESP32와 방수 온도센서에 n8n 워크플로우를 결합하면, 단순한 온도 모니터링을 넘어 정상·주의·위험 3단계 상태 머신, 알림 피로도를 없애는 쿨다운 로직, 기기 전원 차단을 감지하는 하트비트 워치독, 그리고 15분 내 미확인 시 상위 관리자로 이어지는 SLA 에스컬레이션 파이프라인까지 현업 수준의 콜드체인 관리 시스템을 구축할 수 있습니다.

1. 배경 — 식품과 약품 보관에서 "온도 1도"가 갖는 비즈니스 임팩트
백신, 인슐린, 고급 식자재, 제약 바이오 샘플은 온도가 몇 시간만 규정 범위를 벗어나도 전량 폐기 처분해야 하며, 수천만 원에서 수억 원에 달하는 손실을 초래합니다.
하지만 현업에서 흔히 쓰는 외장 온도계는 현장 직원이 수기 일지로 적거나, 단순 알람음만 울려 야간이나 주말에 냉장고 컴프레서가 멈췄을 때 속수무책으로 당하곤 합니다.
엔지니어링 관점에서 이 문제를 풀려면 다음 세 가지 질문에 답할 수 있어야 합니다.
- 단순 경보를 넘어선 단계별 대응: 일시적인 문 열림과 컴프레서 완전 고장을 어떻게 구분하는가?
- 알림 폭탄 방지: 위험 온도가 지속될 때 1분마다 슬랙을 울리지 않고 담당자를 어떻게 효과적으로 깨우는가?
- 담당자 부재 대응: 1차 수신자가 자고 있거나 회의 중일 때 시스템이 어떻게 상위 관리자에게 에스컬레이션하는가?
2. 전체 시스템 아키텍처
3. 부품표 및 하드웨어 구성
- ESP32 DevKit V1 (1개): 저전력 슬립 모드 및 Wi-Fi 전송 지원
- Dallas DS18B20 방수 프로브 (1개): -55°C ~ +125°C 측정 가능한 1-Wire 디지털 온도센서
- 4.7kΩ 저항 (1개): 1-Wire 데이터 라인 풀업 저항
- 마그네틱 도어 리드스위치 (1개): 문이 닫히면 접점이 붙는 센서
- 점퍼선 및 풀업 저항 (10kΩ): 리드스위치 입력 핀 안정화
ESP32는 30초마다 아래의 JSON을 n8n 웹훅 엔드포인트로 전송합니다.
{
"device_id": "fridge-pharma-01",
"temperature": -7.8,
"door_open": true,
"door_open_seconds": 380,
"battery_v": 4.12,
"timestamp": 1788053460
}
4. 실무급 n8n 워크플로우 설계 4대 핵심
1) 3단계 상태 머신 로직
- Normal: 조용히 Supabase에 로그를 적재하고 종료합니다.
- Warning: 냉각 능력 저하 또는 잦은 개폐 의심. 담당자 개인 DM으로 주의 알림을 전송합니다.
- Critical: 식품/약품 변질 위험. 전사 운영 채널에 경보를 울리고 즉각 조치를 요청합니다.
2) 동일 알림 쿨다운 (Cooldown)
온도가 위험 기준을 넘긴 채 유지되면 30초마다 알림이 발생해 다른 업무 메시지가 마비됩니다. n8n에서 last_alert_level과 last_alert_time을 검사해 **"동일 등급 경보는 30분 동안 재발송을 차단"**합니다.
3) 인간 개입(Human-in-the-Loop)과 2차 에스컬레이션
위험 알림 메시지에 Slack 블록 키트(Block Kit)로 [조치 확인] 버튼을 포함합니다.
- 담당자가 버튼을 누르면 n8n Webhook이 호출되어 "담당자 조치 중" 상태로 전환됩니다.
- 만약 15분(SLA) 동안 아무도 버튼을 누르지 않으면, n8n
Wait Node가 깨어나 총괄 팀장 전화/문자 및 상위 채널로 즉시 2차 에스컬레이션을 실행합니다.
4) 센서 단절 워치독 (Heartbeat)
냉장고 전원 코드가 빠져 센서까지 꺼진 경우, 정상적인 온도 데이터가 아예 들어오지 않으므로 수집 워크플로우는 아무 반응도 하지 못합니다.
- n8n에서 매 3분마다 도는 스케줄 워크플로우를 따로 띄워,
NOW() - last_heartbeat_timestamp > 3분조건을 감시합니다. - 센서가 침묵하는 순간 "1호기 보관함 통신 두절(Heartbeat Missed)" 경보를 띄웁니다.
5. 포트폴리오 면접 예상 질문 & 모범 답변
- Q: "온도가 -10.1°C와 -9.9°C 사이를 오갈 때 경보가 반복 발생하지 않나요?"
- A: "해제 기준(Clear threshold)을 -14°C로 낮게 설정한 히스테리시스(Hysteresis) 구조와 30분 쿨다운 타이머를 결합하여 바운더리 진동(Flapping)을 원천 차단했습니다."
- Q: "현장 와이파이가 끊겼을 때 센서 데이터는 유실되나요?"
- A: "ESP32 내장 Flash(SPIFFS)에 순환 버퍼를 두어 최대 4시간 치 데이터를 저장하고, Wi-Fi 재접속 시 일괄 배치 엔드포인트로 안전하게 백필(Backfill)합니다."
💡 마치며
하드웨어 프로젝트가 비즈니스 엔지니어링으로 인정받는 순간은 **"장애가 났을 때 시스템이 어떻게 스스로 대처하고 사람을 깨우는가"**를 증명할 때입니다.
이 파이프라인을 구축해 깃허브 README에 아키텍처와 하트비트 단절 데모 GIF를 첨부해 보세요. 포트폴리오의 신뢰도가 완전히 달라집니다.
