业务和功能介绍
一、立项背景和目标
面向独居老人居家安全监护需求,本项目建设“守望·独居老人智能监护”系统,由 ESP32-S3 边缘采集终端与局域网上位机协同工作。目标是实时掌握老人生命体征与居家环境风险,支持语音控制家电与降噪,并在跌倒、气体异常、火焰、心率偏离及到点吃药等场景及时告警提醒,降低家属与社区护理人员的巡查压力,提升独居场景下的响应时效与照护质量。
二、软件功能与核心模块
健康监测:MAX30102 红外接触式心率检测,手指在位后输出 BPM,异常可持续告警。
环境安全:GY-SHT31 温湿度、TVOC-301 气体(CO₂/VOC/甲醛)、火焰传感器联动监测。
跌倒预警:MPU6500 加速度识别“失重—冲击”过程,触发板端蜂鸣与网页横幅。
语音与家电:板载麦克风采集,上位机离线语音识别,支持打开/关闭空调、开灯/关灯、打开/关闭降噪。
吃药提醒:可配置每日多时段提醒,到点蜂鸣;说“吃药了”或网页确认后关闭。
AI 研判与报告:可选接入 DeepSeek,生成实时建议及日报/周报,供家属查阅。
上位机看板:局域网 Web 页面展示设备在线状态、遥测曲线、告警时间线与控制按钮;支持打包为免安装 exe 分发。
三、业务流程与功能路径
板端上电接入 2.4G WiFi,按配置连接上位机 IP;传感器周期采样,经 UDP 上报遥测,命令经 UDP 下发。语音口令由板端截取音频上传上位机识别后回传指令,控制继电器与降噪开关;跌倒、火焰、气体、心率等告警在本地蜂鸣的同时推送网页;吃药提醒由上位机按时刻触发并驱动蜂鸣,确认后停止。家属通过浏览器查看总览、环境、跌倒、语音家电、告警中心与 AI 报告,形成“感知—告警—处置—复盘”的完整监护路径。
一、整体架构与设计思路、技术栈
系统采用“边缘采集终端 + 局域网上位机”分层架构:ESP32-S3 负责传感器采集、本地告警蜂鸣与音频采集,上位机负责遥测入库、离线语音识别、网页看板、吃药定时提醒与可选 DeepSeek 研判。设计上优先保证实时性与稳定性:遥测与命令走 UDP(8788/8789),语音音频走 HTTP,避免 ESP32 TCP 套接字耗尽;语音识别不上 Google,改用本地 faster-whisper tiny,便于国内离线部署并可打包 exe。
主要技术栈:固件端 Arduino-ESP32、I2C(MAX30102/MPU/OLED/SHT31)、UART(TVOC-301)、I2S(麦克风/功放)、WiFi STA;上位机 Python Flask、SQLite、faster-whisper/CTranslate2、SSE 推送;前端静态 HTML/JS/Chart.js;发布侧 PyInstaller 一键打包。
二、我负责的模块与结果(尽量量化)
板端传感器与告警链路:心率、跌倒、气体、火焰、温湿度、蜂鸣器 GPIO35,上电约 12 秒静音防误报。
网络与上位机对接:STA 入网、HOST_IP 配置、UDP 遥测/命令、语音 WAV 上传。
语音家电与降噪:主机识别“开/关空调、开/关灯、开/关降噪”,识别结果回写网页状态。
吃药提醒:默认定时 08:00/12:00/18:00,可配置时刻,蜂鸣约 15 秒,语音/网页确认关闭。
上位机与分发:Web 看板、事件时间线、exe 发布包(约 160MB,含语音模型)。
结果侧:板端与主机同网可稳定在线;温湿度约秒级刷新;语音口令可驱动继电器状态变化;打包后其他 Windows 电脑免装 Python 即可运行。
三、遇到的难点、坑与解决方案
中国无法稳定使用 Google ASR:改为本地 faster-whisper,并规避 PyAV metadata_errors 兼容问题,直接喂 numpy PCM。
HTTP 遥测导致板端卡死/上报中断:改为 UDP 遥测+异步写库,拆分收发套接字。
空麦噪声被识别成重复口令:提高 VAD 门限、过滤幻觉重复文本、去掉易诱发幻觉的热词。
上电蜂鸣器一直响:加启动静音窗、跌倒需姿态稳定后再武装、火焰 DO 空闲电平自校准。
路径含中文导致 Arduino 链接失败:改用 E 盘英路径编译烧录;OPI PSRAM 下注意蜂鸣器引脚选择。