ESP32와 n8n으로 만드는 IoT 자동화 포트폴리오 — 센서 수집부터 장애 대응까지 실전 프로젝트 6선
이 글과 연결된 글 보기
드래그로 이동 · 휠/두 손가락으로 확대 · 방향키로 글 선택 · 0으로 맞춤. 실선: 본문 링크, 점선: 시리즈·주제의 대표 연결.표시된 글 11편 목록
ESP32 센서값을 웹페이지나 대시보드에 단순히 띄우는 프로젝트는 흔하지만, n8n을 붙여 임계치 판단, 중복 알림 방지, 단계별 에스컬레이션, 하트비트 장애 대응까지 연결하면 단순 취미용 하드웨어 제작이 기업에서 탐내는 실무급 IoT 엔지니어링 포트폴리오로 격상됩니다. 사내 슬랙에서 인공지능 팀원 쿠로미(Hermes Agent)와 브레인스토밍하며 정리한 6가지 실전 IoT 프로젝트 주제와, 면접관의 시선을 사로잡는 아키텍처 설계법을 공유합니다.

1. 배경 — 흔한 IoT 프로젝트가 포트폴리오에서 탈락하는 이유
수많은 하드웨어·IoT 포트폴리오가 비슷한 패턴을 따릅니다.
- 아두이노나 ESP32에 온습도 센서를 꽂는다.
- Wi-Fi로 데이터를 보낸다.
- LCD 화면이나 무료 웹 대시보드(Blynk, ThingSpeak 등)에 그래프를 그린다.
문제는 이 구조에는 **"데이터 수집(Ingestion)"**만 있고 **"운영(Operation)"**이 없다는 점입니다. 실무 환경에서 면접관이나 엔지니어링 리더가 궁금해하는 질문은 따로 있습니다.
- "센서 와이파이가 끊기거나 기기가 꺼졌을 때 시스템이 어떻게 감지하나요?"
- "온도가 일시적으로 튈 때마다 슬랙 알림 폭탄이 터지지 않도록 쿨다운(Cooldown)은 어떻게 처리했나요?"
- "담당자가 15분 동안 알림을 확인하지 않으면 상위 관리자에게 어떻게 에스컬레이션(Escalation)되나요?"
- "하루 동안 수집된 데이터는 어디에 적재되고, 일일 요약 리포트는 언제 발행되나요?"
ESP32와 n8n을 결합하면, 백엔드 서버를 밑바닥부터 구축하지 않고도 이 복잡한 비즈니스 로직과 예외 처리 파이프라인을 손쉽게 완성할 수 있습니다.
2. 포트폴리오가 갖춰야 할 4단계 파이프라인
강력한 IoT 포트폴리오는 반드시 아래 4단계 흐름을 증명해야 합니다.
- 센서값 수집: 하드웨어 단에서 아날로그/디지털 센서 데이터를 읽어 JSON 형태로 네트워크 전송
- 판단 및 비즈니스 자동화: n8n에서 데이터 스키마를 검증하고, 정상/주의/위험 상태 판별 및 중복 알림 필터링
- 사용자 알림 및 대시보드: 상황에 맞는 채널(Slack, Telegram) 멘션 발송 및 시계열 데이터 적재
- 장애 대응(Resilience): 기기 전원 단절(Heartbeat Timeout) 감지 및 수동 확인(Ack) 기반 에스컬레이션
3. ESP32 + n8n 포트폴리오 프로젝트 추천 6선
사내 AI 팀원 쿠로미와 선별한 6가지 프로젝트 중, 내 관심 분야나 지원 직무(스마트팩토리, 백엔드, 데이터 엔지니어링, 환경 모니터링)에 맞는 주제를 골라볼 수 있습니다.
| 번호 | 프로젝트명 | ESP32 센서 구성 | n8n 핵심 역할 | 포트폴리오 차별화 포인트 |
|---|---|---|---|---|
| 1 | 실내 공기질·환기 자동화 | CO₂, 온습도, 미세먼지(PM2.5) | 기준치 초과 판정, 지속 시간 누적 계산, 릴레이/스위치 환풍기 제어 | 이벤트 기반 실시간 처리, 시계열 데이터 대시보드 |
| 2 | 냉장고·약품 온도 이상 감지 (강력 추천) | DS18B20 방수 온도센서, 도어 리드스위치 | 온도 이탈 감지, 문 열림 지속 판정, 담당자 단계별 알림, 일일 리포트 | 현업 콜드체인 문제 직결, SLA·에스컬레이션 설계 |
| 3 | 스마트 화분 & 데이터 급수 | 토양 수분, 조도, 온습도, 수위 센서 | 센서값 집계, 기상청 날씨 API 연동 급수 판단, 펌프 제어, 생육 일지 | 하드웨어 제어(Actuator)와 외부 API 연동의 결합 |
| 4 | 전력 사용량·대기전력 감시 | 전류 센서(SCT-013) or 스마트플러그 | 사용량 적산, 이상 소비 탐지, 월 예상 전기료 산출, 시간대별 절감 제안 | 데이터 집계 로직, 이상치 탐지(Anomaly Detection) |
| 5 | 작업실 출입·장비 대여 관리 | RFID/NFC 리더, 도어 마그네틱 센서 | 태그 ID 인증, 권한 확인, 대여/반납 로그, 지연 알림, 캘린더 연동 | 인증/인가(Auth), 자원 관리 운영 자동화 |
| 6 | 스마트 택배·우편함 감지 | 초음파 거리 센서, 무게 센서, 리드스위치 | 물품 도착 감지, 카메라 사진 캡처 요청, 수령 확인 워크플로우 | 저비용 고효율 실생활 데모, 완성도 높은 E2E 시연 |
4. 원픽 추천 프로젝트 심층 설계: "냉장고·보관함 온도 이상 감지"
쿠로미가 가장 강력하게 추천한 구성은 **"냉장고/보관함 온도 이상 감지 + 운영 자동화"**입니다.
식품 매장의 냉동고 고장, 바이오 제약 보관함의 온도 이탈, 서버실 랙의 과열 문제는 모두 회사의 막대한 금전적 손실로 이어지는 **실제 현업의 통증(Pain Point)**이기 때문입니다.
전체 시스템 아키텍처
5. 포트폴리오를 빛나게 만드는 5가지 핵심 엔지니어링 기능
이 프로젝트를 이력서에 적었을 때 면접관을 끄덕이게 만들려면 다음 5가지 기능을 n8n 워크플로우로 반드시 구현해야 합니다.
1) 3단계 상태 머신 (Normal / Warning / Critical)
단순한 참/거짓(True/False) 조건문 대신, 상태 머신을 적용합니다.
- 정상 (-18°C 이하): 조용히 데이터베이스에 로깅만 수행.
- 주의 (-15°C ~ -10°C): 냉각기 효율 저하 의심. 담당자 개인 DM으로 완만한 알림.
- 위험 (-10°C 초과 또는 3분간 5°C 이상 급상승): 컴프레서 고장 또는 정전 의심. 운영팀 채널에 긴급 멘션 및 문자 발송.
2) 알림 피로도 방지를 위한 "쿨다운(Cooldown)" 로직
온도가 -9°C로 올라간 상태에서 센서가 30초마다 데이터를 쏘면, 슬랙에 1분에 2번씩 알림이 쏟아져 담당자가 채널을 음소거하게 됩니다(Alert Fatigue).
- n8n의
Cache노드나 Supabase의last_alerted_at필드를 조회하여, **"동일 등급의 알림은 최소 30분(또는 1시간) 동안 재발송하지 않는다"**는 쿨다운 로직을 넣어야 합니다.
3) 센서 오프라인 감지 — 하트비트(Heartbeat) 워치독
가장 치명적인 버그는 **"냉장고가 고장 나서 센서 전원까지 나갔는데, 알림이 전혀 오지 않는 상황"**입니다.
- ESP32가 정상일 때는 매 전송마다 타임스탬프를 갱신합니다.
- n8n에서
Schedule Trigger로 3분마다 별도 워크플로우를 돌려, **"마지막 수신 시각이 3분을 초과했는가?"**를 검사합니다. - 데이터가 안 들어오는 상황 자체를 인지해 "🚨 1호기 센서 통신 두절(Heartbeat Missed)" 경보를 울립니다.
4) 인간 개입(Human-in-the-Loop)과 단계별 에스컬레이션
- 위험 알림 메시지에 Slack 인터랙티브 버튼(
[확인 완료 - 조치 중])을 함께 보냅니다. - n8n의
Wait Node를 활용해, 15분 이내에 아무도 확인 버튼을 누르지 않으면 상위 관리자나 당직자에게 2차 에스컬레이션을 수행합니다.
5) 데일리 브리핑 리포트 자동 생성
- 매일 아침 08:30, 24시간 동안의 최고 온도, 최저 온도, 평균 온도, 문 열림 횟수를 n8n이 집계하여 슬랙과 이메일로 1장짜리 리포트를 자동 발행합니다.
6. 하드웨어 준비물 & 통신 방식 선택 가이드
필요 부품표 (비용: 약 1만 5천 원 선)
- ESP32 DevKit V1 보드 (1개): Wi-Fi와 블루투스를 기본 내장한 듀얼코어 마이크로컨트롤러
- DS18B20 방수 온도센서 (1개): 냉동고/액체 내부에 직접 넣을 수 있는 1-Wire 디지털 센서
- 4.7kΩ 저항 (1개): 데이터 핀 풀업(Pull-up)용
- 마그네틱 도어 리드스위치 (1개): 문 개폐 감지용
- 브레드보드 및 점퍼선
통신 방식: Webhook vs MQTT
| 항목 | HTTP Webhook 방식 | MQTT Broker 방식 (추천) |
|---|---|---|
| 연동 난이도 | 매우 쉬움 (n8n Webhook 노드에 URL 바로 호출) | 보통 (중간에 Mosquitto/HiveMQ 브로커 필요) |
| 전력 소모 | 연결마다 TCP 핸드셰이크 필요 (배터리 환경에 다소 불리) | 경량 프로토콜로 전력 및 패킷 낭비 최소화 |
| 다중 기기 확장 | 기기가 늘어날수록 n8n 엔드포인트 관리 부담 | 토픽(sensors/fridge/01) 기반으로 수십 대 쉽게 확장 |
| 추천 대상 | 프로토타입을 1시간 안에 끝내고 싶은 경우 | 실제 산업용 IoT 환경을 모사해 포트폴리오를 만들고 싶은 경우 |
초기 실습은 n8n의 Webhook Node로 시작하고, 이후 포트폴리오를 고도화할 때 HiveMQ Cloud(무료)나 자체 Mosquitto를 붙여 MQTT Trigger Node로 전환하는 방식을 권장합니다.
7. 포트폴리오 README에 반드시 담아야 할 결과물
이 프로젝트를 GitHub이나 포트폴리오 문서에 올릴 때는 코딩 코드 자체보다 운영 증거를 시각화해야 합격률이 올라갑니다.
- 아키텍처 다이어그램: 센서부터 n8n, DB, 슬랙으로 이어지는 시스템 구조도
- 실제 이벤트 페이로드(JSON): 센서에서 전송한 정제된 데이터 포맷 예시
{"device_id": "esp32-fridge-01","temperature": -8.4,"door_open": true,"door_open_seconds": 320,"timestamp": 1788052100}
- 장애 복구 데모 GIF: 센서 선을 뽑았을 때 n8n에서 3분 뒤 하트비트 장애 알림이 뜨는 화면 녹화
- 면접 대비 예상 질문 & 답변:
- Q: "현장 와이파이가 1시간 동안 끊겼을 때 센서 데이터는 어떻게 보존하나요?"
- A: "ESP32 내부 SPIFFS 플래시 메모리에 로컬 링버퍼(Ring Buffer)를 두고, Wi-Fi 재연결 시 n8n 일괄 수신 엔드포인트로 배치 전송하도록 설계했습니다."
💡 마치며
하드웨어 센서와 클라우드 자동화를 연결하는 능력은 AI와 물리적 세계(Physical AI / IoT)가 만나는 접점에서 매우 강력한 무기가 됩니다.
단순히 센서값을 출력하는 화면에서 멈추지 마세요. n8n이라는 든든한 워크플로우 엔진을 붙여, **"장애를 스스로 감지하고 사람의 운영 부담을 덜어주는 완성도 높은 시스템"**을 포트폴리오로 증명해 보시기 바랍니다.
