面向社区居家养老的独居老人健康监护数据平台:把手环、血压计、血氧仪、门磁与跌倒传感器的数据统一清洗入库,按「连续次数 + 时间窗口 + 冷却 + 超时升级」判定异常并通知家属与网格员;同时用 Scrapy 采集中国天气网的七日预报、24 小时实况与生活指数,把低温与高温作为心脑血管风险因子纳入提醒。
视频也可在 B 站视频页 观看
| 编程语言 | Python 3.8 及以上 |
|---|---|
| Web 框架 | Django 4.2 |
| 采集框架 | Scrapy 2.11(采集中国天气网公开页面) |
| 数据库 | MySQL 5.7 及以上(交付默认 SQLite,免安装) |
| 可视化 | ECharts 5(已内置本地文件,离线可用) |
| 前端 | Bootstrap 5(已内置本地文件) |
| 报表导出 | openpyxl |
| 操作系统 | Windows / macOS / Linux |
| 启动方式 | 双击一键脚本,或 python manage.py runserver |
下面是交付包里的真实目录,共 114 个文件。只展示文件名,不含文件内容; 点击文件夹可逐层展开,看到每个模块是怎么拆分的。
点击任意一张可放大,支持左右切换(也可用键盘 ← → 键)










交付的任务书、开题报告与论文均为 Word 文档,下面是真实页面预览;点击可放大并左右切换:



能。交付包里已带数据库与演示数据,安装依赖后双击一键脚本或按说明启动即可;天气数据也已经采好一份,断网也能演示。
天气、七日预报、24 小时实况与生活指数由 Scrapy 从中国天气网真实采集,可在「采集记录」核对时间与条数;老人档案、设备与体征是程序生成的仿真数据,固定随机种子,不对应真实个人。
单次测量受姿势、佩戴松紧影响,容易误报。阈值类规则要求窗口内最新 N 条设备数据全部异常才触发;跌倒这类事件规则设为 1 次,单次即报,不会被连续次数拖延。
同一老人同一规则在冷却期内不重复新建告警,上一告警未处理时合并;待处理超过 30 分钟自动升级一级并再通知网格员,升级只发生一次。
超过 180 分钟没有上报即视为离线,触发「设备离线」规则,并在设备台账与工作台标出;离线数据作为缺失处理,不会当成「正常」。
Scrapy 依赖 Twisted 的 reactor,同一进程只能启动一次,网页里二次启动会抛 ReactorNotRestartable。因此采集放在命令行与定时任务,页面上展示采集记录与命令说明,这也更符合真实系统的做法。
解析代码集中在 crawler/tianqi/spiders/weather.py:七日预报与生活指数走 CSS 选择器,3 小时与 24 小时实况从内联脚本 JSON 解析(花括号配对,不用非贪婪正则)。改版时先 curl 页面确认选择器即可。
能。设置 DB_ENGINE=mysql 与连接参数后 migrate 即可,代码不用改;交付默认 SQLite 是为了免安装、双击即跑。