현장에서 검증된 실제 프로젝트 사례입니다
장거리 다중 센서 데이터를 안정적으로 수집하고 클라우드로 전송하는 게이트웨이 시스템
공장/농장 등 넓은 공간(~1km)에 분산된 20~30개 센서 노드의 데이터를 실시간 수집해야 하는 상황에서:
[센서 노드 1-30] [듀얼 게이트웨이] [클라우드]
(ESP32 + LoRa) → Gateway A (Main) → MQTT Broker
SF7/BW125/CR4/5 Gateway B (Sub) ↓
10분 주기 전송 중복 제거 로직 InfluxDB
배터리 동작 타임스탬프 기준 ↓
재전송 버퍼 Web Dashboard
하드웨어:
소프트웨어:
// 타임스탬프 + Node ID 기반 중복 제거
if (packet.timestamp - last_packet[node_id].timestamp < 5000ms):
if (packet.payload == last_packet[node_id].payload):
discard_duplicate()
else:
process_and_forward()
15% → 2%
중복 제거 알고리즘 적용 후
~1.2km
실외 개활지 기준, 안정적 수신
30일+
듀얼 게이트웨이 Failover 동작
6개월+
18650 3400mAh, 10분 주기
브라우저에서 MQTT 메시지를 실시간 모니터링하고 알람 규칙을 설정하는 대시보드
[센서 노드] → [MQTT Broker] → [WebSocket 브릿지] → [브라우저]
(Mosquitto) (Node.js) (Chart.js)
↓
[알람 엔진]
(임계값 체크)
// Node.js + Socket.IO
mqtt.on('message', (topic, message) => {
const data = JSON.parse(message);
io.emit('sensor_data', {
topic: topic,
value: data.value,
timestamp: Date.now()
});
});
rules = [
{sensor: "temp_01", condition: "> 30", action: "email"},
{sensor: "humid_02", condition: "< 40", action: "sms"}
]
if (evaluate_condition(data, rule)):
trigger_alarm(rule.action)
< 1초
센서 전송부터 화면 표시까지
50명
단일 서버에서 안정적 처리
즉시
임계값 초과 시 실시간 전송
CPU 15%
Raspberry Pi 4 기준
배터리로 6개월 이상 동작하는 BLE 온습도 센서 네트워크
[BLE 센서 노드] [BLE Gateway] [서버]
ESP32-C3 ESP32 (Central) MQTT Broker
+ SHT31 (온습도) BLE Scan + Database
+ CR2032 (220mAh) → MQTT Publish + Dashboard
5분 주기 광고 최대 30개 노드 수집
Deep Sleep
void loop() {
// Wake up
read_sensor(); // ~50ms
ble_advertise(data, 1sec); // ~1sec
esp_deep_sleep(5min); // 평균 전류 ~80μA
}
// 전류 프로파일:
// Deep Sleep: 10μA
// Active: 80mA × 1.05sec = 84mAs
// Average: 80μA
// 연속 스캔 + 중복 제거
scan_window = 1sec
scan_interval = 1sec // 100% duty cycle
if (new_device_detected):
parse_manufacturer_data()
publish_mqtt()
8개월+
CR2032 220mAh, 5분 주기
80μA
Deep Sleep 최적화 후
~15m
실내 벽 1~2개 관통
±0.3°C
SHT31 센서 기준
문제: 앱 기반 조명 밝기/색상 제어와 시간대별 자동 예약
구성: ESP32 + WS2812B 300LED + MQTT + 모바일 앱(Flutter)
결과: 300개 LED 개별 제어, 앱 반응속도 100ms 이내, 16가지 프리셋 효과
문제: 실내 환경 자동 매핑과 장애물 회피 경로 생성
구성: LiDAR (RPLiDAR A1) + IMU + Jetson Nano + ROS Melodic + Cartographer SLAM
결과: 50㎡ 공간 5분 내 매핑, 충돌 없이 자율 주행, 5cm 위치 정확도
문제: 비접촉 심박/호흡 측정을 위한 고감도 센서 신호 처리
구성: 압전 필름 센서 + ADS1299 ADC (250Hz) + STM32 + FFT 필터링
결과: 심박수 오차 ±3bpm, 호흡수 오차 ±1rpm, 실시간 파형 시각화