Passive Contactless Vitals: เฝ้าดูสุขภาพโดยไม่รบกวน
ผู้สูงอายุหลายคนปฏิเสธการสวม smartwatch หรือ wearable ตลอดเวลา ระบบ Passive Contactless Vitals วัดสัญญาณชีพโดยไม่ต้องสวมอุปกรณ์ใดๆ ผ่าน 2 เทคโนโลยีที่ทำงานเสริมกัน: mmWave Radar สำหรับการตรวจจับระยะไกล และ Ballistocardiography (BCG) Mat สำหรับการวัดที่แม่นยำขณะนอน
เทคโนโลยีที่ 1: HLK-LD2410 mmWave Radar
HLK-LD2410 เป็น 24GHz mmWave presence sensor ราคา ~400–600 บาท: - ตรวจจับ presence และ micro-motion (การหายใจ, การเต้นหัวใจ) - ตรวจจับได้ถึงระยะ 6m - Output: UART serial → ESP32/ESPHome - Breathing detection accuracy: ±2 breaths/min ในระยะ ≤1.5m รุ่น LD2450 และ LD2461 รองรับ multi-target tracking และ respiration rate estimation ที่แม่นยำกว่า เหมาะสำหรับ elderly monitoring การติดตั้งเหนือเตียง (ห่าง 1–1.5m):
yaml externalcomponents: - source: github://esphome-components/ld2410 ld2410: uart_id: uart_bus presence: name: Bedroom Presence still_target_distance: name: Still Distance move_target_distance: name: Move Distance light: name: Light Sensor
เทคโนโลยีที่ 2: Ballistocardiography (BCG) Pressure Mat
Ballistocardiography วัดแรงสะท้อนของการสูบฉีดเลือดผ่านแผ่นรับแรงดัน ใต้ที่นอน:
DIY BCG Mat ด้วย: - Piezoelectric film sensor (PVDF, 28μm, ~800 บาท) หรือ - Load cell 4 ตัว ติดที่ขาเตียง + HX711 ADC (~600 บาท) - ESP32 ADC sampling ที่ 100–200 Hz - Peak detection algorithm หา R-peak ของ heartbeat waveform
Commercial option: Withings Sleep Analyzer (~4,500 บาท นำเข้า) มาตรฐาน FDA สำหรับ sleep apnea detection
Signal Processing: Peak Detection
BCG signal ต้องผ่าน bandpass filter ก่อน peak detection:
python from scipy import signal import numpy as np def extract_heart_rate(bcg_signal, fs=100): # Bandpass filter 0.5-5 Hz (heart rate range 30-300 bpm) sos = signal.butter(4, [0.5, 5], btype='band', fs=fs, output='sos') filtered = signal.sosfilt(sos, bcg_signal) # Find peaks (R-waves equivalent) peaks, _ = signal.find_peaks(filtered, distance=fs*0.4, # min 0.4s between beats height=np.std(filtered)) # Calculate heart rate from inter-peak intervals rr_intervals = np.diff(peaks) / fs # in seconds heart_rate = 60 / np.mean(rr_intervals) return heart_rate, rr_intervals
การผสานกับ Home Assistant
BCG + mmWave ส่งข้อมูลผ่าน MQTT → Home Assistant แสดงใน dashboard: | Parameter | Source | Normal Range | Alert | |-----------|--------|-------------|-------| | Heart rate | BCG mat | 50–90 bpm | <40 หรือ >120 | | Respiration rate | LD2410 | 12–20 /min | <8 หรือ >30 | | Presence | LD2410 | on/off | absent >30 min | | HRV (RMSSD) | BCG | >20 ms | <15 ms |
ความแม่นยำเทียบกับ Wearable
การศึกษาเปรียบเทียบ BCG mat กับ ECG gold standard: - Heart rate accuracy: ±3 bpm (85th percentile) ในคนที่นอนหลับปกติ - Atrial fibrillation detection: 82% sensitivity ด้วย irregular RR interval algorithm - Sleep stage estimation (ด้วย Withings mat): 73% agreement กับ PSG
LINE Health Report
ส่งรายงานสุขภาพรายคืนให้ลูกหลานทุกเช้า 07:00: - ชีพจรเฉลี่ย, min, max ขณะนอน - อัตราการหายใจเฉลี่ย - จำนวนครั้งที่ลุกจากเตียง - HRV trend เปรียบเทียบ 7 วัน - แจ้งเตือนพิเศษถ้าพบ irregular rhythm