这次我们来看一个物联网方向的单片机毕业设计开源项目:基于物联网技术的养老社区监控系统设计。项目编号 MCU-1195,属于典型的“单片机 + 物联网云平台 + 传感器数据采集”综合应用。和单纯跑一个 LED 流水灯或者温湿度 LCD 显示不同,这类项目的价值在于它把嵌入式终端、无线通信、云平台数据上报、异常告警和远程监控串成了一条完整链路,覆盖面广,适合拿来做毕设,也适合想接触物联网实战的开发者参考。
先看这个项目的核心能力。从设计定位来看,它不是一个单一功能的单片机例程,而是一个面向养老社区场景的多节点监控系统方案。终端侧以单片机作为主控,负责采集环境参数、人体状态或跌倒检测信号,通过 WiFi 模块把数据上报到物联网平台,上位机或云端可以实时查看数据并触发告警。也就是说,它同时涉及硬件选型、传感器驱动、无线通信协议、云平台接入、数据展示和告警逻辑,基本覆盖了物联网毕设的常见技术栈。
本文会围绕这个项目做一次系统拆解,重点回答几个问题:
- 这个系统整体框架怎么搭,感知层、网络层和应用层各做什么。
- 主控、传感器、通信模块怎么选,有没有替代方案。
- 开发环境怎么准备,固件怎么写、怎么烧录。
- 数据链路怎么打通,从单片机到云平台再到上位机。
- 功能验证怎么做,环境监测、无线通信、告警联动怎么逐项测试。
- 常见问题怎么排查,尤其是 WiFi 连不上、数据上报不稳定、云平台收不到消息这一类高频坑。
内容面向三类读者:正在选物联网毕设题目的在校生,想快速搭建一个可演示物联网监控系统的嵌入式开发者,以及需要给养老、社区、病房等场景做低成本环境监测原型的工程师。
1. 核心能力速览
从项目名称和设计定位看,可以将这个养老社区监控系统的能力归纳为下表。
| 能力项 | 说明 |
|---|---|
| 项目类型 | 物联网单片机综合应用设计,适合毕业设计或课程设计 |
| 主控方案 | 主流单片机(常见为 STM32 或 51 系列,具体以项目源码为准) |
| 核心功能 | 环境数据采集、人体状态监测、无线数据上报、异常报警、云平台远程监控 |
| 通信方式 | WiFi 模块(如 ESP8266/ESP32 类)通过 MQTT/HTTP 上报至物联网平台 |
| 远程监控 | 云平台或上位机实时显示传感器数据,支持历史记录与告警 |
| 传感器方向 | 温湿度监测、烟雾/火焰检测、人体红外、跌倒检测等(根据具体方案) |
| 开发语言 | C,配合 Keil MDK / STM32CubeMX / 串口调试工具 |
| 可扩展性 | 可扩展语音提示、OLED 显示、本地按键布防撤防、多节点组网 |
| 开源程度 | 开源毕设项目,可获取源码进行二次开发 |
| 适合场景 | 养老社区、居家养老、病房监护、实验室物联网教学演示 |
需要注意,具体的主控型号、传感器型号和云平台选择,要以项目实际源码和文档为准。不同版本的毕设项目可能选用不同硬件。比如通信模块可以用 ESP8266 也可以用 ESP32,云平台可以用 OneNET、阿里云物联网平台或者巴法云,数据展示可以用自建 Web 页面,也可以用物联网平台自带的数据可视化组件。从材料看,属于“功能框架确定、细节实现可变”的典型毕设项目。
2. 适用场景与使用边界
这类物联网监控系统最常见的落地场景是养老社区和居家养老监护。传感器节点部署在老人活动区域,比如卧室、客厅、卫生间,采集温湿度、烟雾浓度、人体活动等信息。当某个数据异常时,系统触发报警,家属或护理人员可以通过远端页面及时获知。
实际使用中,它非常适合完成以下任务:
- 老人房间环境监测。实时采集温湿度,过高或过低时报警。
- 无人看管时段的安全监控。通过人体红外或跌倒检测模块,判断老人是否长时间无活动或发生跌倒。
- 火灾隐患预警。烟雾传感器或火焰传感器检测到异常时,立即推送报警。
- 远程集中管理。多个房间的监控数据统一上报到云平台,一个页面查看所有节点状态。
使用边界也要说清楚。它首先是教学演示和原型验证性质的项目,不是医疗级设备。跌倒检测、心率监测这类功能只能作为辅助参考,不能替代专业医疗监护设备。如果真实部署到养老机构,需要换成工业级或医疗级传感器,并做好冗余设计和故障处理。另外,项目涉及老人隐私数据,采集、传输、存储过程必须做好隐私保护,数据传输建议加密,平台账号要限定访问权限,不能把老人健康数据暴露到公网。
从合法合规角度,使用开源毕设源码时要注意以下几点:
- 原作者版权信息保留,商用前确认开源协议。
- 涉及人脸、语音、跌倒图像等敏感数据时,必须获得当事人授权。
- 系统只用于技术学习和原型验证,不用于医疗诊断。
- 报警功能需要人工复核,避免误报漏报。
3. 系统总体架构
先看整体架构,再去看代码和电路。养老社区监控系统本质上是三层物联网架构。
- 感知层:单片机连接温湿度传感器、烟雾传感器、红外传感器、跌倒检测模块等,负责数据采集和初步处理。
- 网络层:单片机通过串口或 SPI 与 WiFi 模块通信,WiFi 模块连接路由器,通过 MQTT 或 HTTP 将数据上传到物联网平台。
- 应用层:云平台接收并存储数据,通过 Web 页面或小程序展示实时数据、历史曲线和报警记录。上位机也可以直接通过串口接收数据做本地显示。
从数据流来看,传感器数据从 MCU 读入,经过简单的滤波和阈值判断后,打包成 JSON 或自定义协议帧,通过串口发给 WiFi 模块,WiFi 模块作为 TCP 客户端连接云平台,按固定周期上报。云平台收到数据后,在规则引擎里进行条件判断,满足报警条件时触发消息推送。
以温湿度上报为例,数据链路大致如下:
- MCU 通过 I2C 或单总线读取传感器原始数据。
- MCU 将温度、湿度、节点编号、时间戳组装成数据帧。
- MCU 通过 USART 发送 AT 指令或透传数据给 ESP8266。
- ESP8266 通过 MQTT 协议发布数据到指定 Topic。
- 云平台订阅该 Topic,将数据存入数据库。
- Web 页面通过 API 读取数据并绘图显示。
这种架构的好处是层次清楚,每一层都可以单独调试。传感器采集异常时先查硬件接线,WiFi 无法连接时先查模块配置,云平台收不到数据时先查 Topic 和鉴权信息。不会出现一个问题牵扯全部模块的情况。
4. 硬件选型与环境准备
毕设项目不需要追求最强性能,而是追求“能跑通、好调试、成本低、资料多”。从开源社区常见的物联网毕设方案来看,推荐硬件组合如下。
4.1 主控选型对比
| 主控方案 | 优点 | 缺点 | 适合人群 |
|---|---|---|---|
| STM32F103C8T6 | 资料极多,性能强,例程丰富 | 开发门槛稍高,需要配置时钟和库函数 | 推荐首选 |
| STM32F407 | 性能更强,支持更多外设 | 成本稍高,毕业设计用不到太高性能 | 可选 |
| 51 单片机(STC89C52) | 学习门槛最低,结构简单 | 内存小,外设弱,网络协议栈难以跑复杂逻辑 | 课程设计可选 |
| ESP32 | 自带 WiFi 蓝牙,省掉 ESP8266 | 主控和通信集成,知识链路不完整 | 想做精简方案可选 |
如果希望把“单片机 + 独立 WiFi 模块”的物联网链路完整呈现,选 STM32 + ESP8266 是当前最稳的组合。STM32 负责传感器驱动和业务逻辑,ESP8266 只负责网络透传,两者通过 AT 指令或串口透传通信,思路清晰,答辩时也好讲解。
4.2 传感器选型推荐
- 温湿度检测:DHT11 精度较低但够用,适合演示;DHT22 精度更高,价格也略贵。
- 烟雾检测:MQ-2,模拟量输出,通过 ADC 读取浓度,注意预热时间。
- 人体红外检测:HC-SR501,检测人体活动,用于判断老人是否经过或长时间未活动。
- 火焰检测:火焰传感器模块,检测火焰光谱,注意安装角度避免误报。
- 跌倒检测:MPU6050 六轴姿态传感器,通过加速度和角速度判断跌倒姿态。需要设计算法,不能简单看阈值。
4.3 无线通信模块
最常用的方案是 ESP8266-01S 或 ESP8266-12F。ESP8266 支持 STA 模式连接路由器,支持 TCP 透传,可以配合 MQTT 协议实现数据上报。开发时可以先用 USB 转 TTL 单独调试 ESP8266,确认能联网、能收发 MQTT 消息后,再连接单片机。
4.4 开发环境准备清单
| 工具 | 用途 | 说明 |
|---|---|---|
| Keil MDK | 编写编译 STM32 固件 | 5.x 版本 |
| STM32CubeMX | 生成初始化代码 | 选配,方便配置时钟和引脚 |
| USB 转 TTL | 调试单片机串口、烧录 | 注意驱动安装 |
| ST-Link / J-Link | STM32 下载调试 | 推荐 ST-Link |
| 串口调试助手 | 查看日志、发送 AT 指令 | SSCOM 或 XCOM |
| MQTT 调试工具 | 测试云平台 Topic 收发 | MQTTX 或网页版调试工具 |
| 硬件 | 面包板、杜邦线、LED、蜂鸣器、电阻 | 搭建测试电路 |
开发电脑推荐 Windows 10 或 Windows 11,需要安装 CH340 或 CP2102 串口驱动。云平台账号提前注册好,并创建产品和设备,获取设备鉴权信息。
5. 安装部署与启动方式
这类开源毕设项目通常不是“一键运行”的 Web 项目,需要按以下顺序逐步部署。
5.1 获取源码与工程目录识别
从开源仓库下载项目后,先看目录结构。一般会包含:
- 单片机固件工程,如 MDK-ARM 或 C51 工程文件夹。
- 通信模块 AT 指令参考文档。
- 云平台接入说明或上位机源码。
- 原理图或接线图(可能是 PDF 或图片)。
- README 或毕设论文文档。
先阅读 README,确认主控型号、引脚定义、WiFi 模块型号、云平台类型。不要急着打开工程编译,先对照硬件选型确认是否有缺件。
5.2 固件编译与烧录
以 STM32 为例,标准步骤如下:
- 安装 Keil MDK,并安装对应芯片的器件包。
- 打开工程文件,选择正确的芯片型号。
- 如果没有安装对应器件包,菜单栏会报错,需要先通过 Pack Installer 安装。
- 在工程中确认主频设置、宏定义是否正确。
- 连接 ST-Link,配置 Debug 选项为 ST-Link。
- 编译工程,确认 0 Error。
- 点击下载按钮烧录固件。
- 打开串口调试助手,观察复位后的启动日志。
5.3 WiFi 模块配置
如果项目使用 ESP8266 的 AT 指令方案,需要先让模块连接到路由器,再连接云平台。
AT+CWMODE=1 AT+CWJAP="WiFi名称","WiFi密码" AT+MQTTUSERCFG=0,1,"client_id","username","password" AT+MQTTCONN=0,"云平台地址",1883,1 AT+MQTTSUB=0,"topic_to_subscribe",1 AT+MQTTPUB=0,"topic_to_publish","{\"temp\":26.5}",1,0注意:client_id、username、password需要在云平台设备详情中获取,具体 AT 指令格式以 ESP8266 AT 固件版本为准。调试时先只接 ESP8266 模块,用串口助手发送 AT 指令,确认能收到OK和CONNECT回复后,再接入单片机程序。
5.4 云平台配置
以常见物联网平台为例,流程如下:
- 注册并登录物联网平台账号。
- 创建产品,选择节点类型为设备,协议选择 MQTT。
- 在产品下添加设备,获取设备密钥。
- 定义物模型或 Topic,比如温湿度属性、报警事件。
- 配置规则引擎:收到温度大于多少度时触发告警,推送消息到应用端。
云平台的具体配置界面和术语可能不同,但核心流程一致:创建产品 -> 添加设备 -> 获取密钥 -> 设备端使用密钥鉴权连接 -> 上报数据 -> 平台展示或触发规则。
6. 功能测试与效果验证
项目跑通之后,逐项验证功能。不建议一次性把所有功能都接好再测试,而是分模块验证,降低排查难度。
6.1 温湿度采集测试
测试目的:验证单片机能否正确读取传感器数据。
操作步骤:
- 使用杜邦线连接温湿度传感器到单片机指定引脚。
- 烧录温湿度采集测试程序。
- 打开串口调试助手,设置波特率与工程一致。
预期结果:串口周期性打印Temp: 26.5C Humi: 60.2%。用手握住传感器,温度读数上升,湿度读数变化。
判断成功标准:串口输出稳定无乱码,数据随时间合理变化。
常见失败原因:
- 传感器供电不足,DHT11 需要 3.3V 或 5V 稳定供电。
- 引脚定义与代码不匹配。
- 上拉电阻缺失,DHT11 数据线需要上拉电阻。
- 波特率设置错误,导致输出乱码。
6.2 烟雾浓度采集测试
测试目的:验证 MQ-2 模拟量采集链路。
操作步骤:
- MQ-2 传感器模块的 AO 引脚连接单片机 ADC 引脚。
- 烧录 ADC 采集程序,串口打印 ADC 值和对应电压值。
- 使用打火机气体(不要点火)靠近传感器。
预期结果:ADC 值明显上升。远离气体后,ADC 值缓慢下降。
判断成功标准:数值波动趋势正确,模块预热 5 分钟后输出稳定。
常见失败原因:
- MQ-2 需要预热,刚上电时输出不稳定属正常现象。
- 传感器模块灵敏度电位器没有调好。
- ADC 引脚配置错误,读数固定为 0 或满量程。
6.3 人体红外检测测试
测试目的:验证 HC-SR501 人体红外模块能否正确检测人员活动。
操作步骤:
- 模块 VCC 接 5V,GND 接地,OUT 接单片机 GPIO。
- 烧录 GPIO 检测程序。
- 人员在模块前走动。
预期结果:模块输出高电平,串口打印Someone detected。人员离开后,输出恢复低电平。
判断成功标准:检测延时和输出电平符合模块说明。
常见失败原因:
- HC-SR501 默认触发模式不正确,调整为可重复触发模式。
- 模块通电后有 1 分钟左右的初始化时间,需等待稳定。
- 检测距离和灵敏度通过模块上电位器调节。
6.4 无线数据上报测试
测试目的:验证数据从单片机到 WiFi 模块再到云平台的完整链路。
操作步骤:
- 确认 WiFi 模块已经连接路由器。
- 确认单片机程序中的 WiFi 账号密码、MQTT 服务器地址、设备鉴权信息配置正确。
- 给单片机上电,观察串口日志。
- 打开云平台设备页面,查看设备是否在线。
- 在设备详情页查看上报的数据点。
预期结果:设备状态显示在线,云平台能收到温湿度数据并实时刷新。
判断成功标准:上报周期与程序设置一致,数据内容与串口打印一致。
常见失败原因:
- 云平台鉴权信息填写错误,设备无法上线。
- 上报的 Topic 与云平台定义的属性 Topic 不一致。
- 上报数据格式不符合平台要求,平台接收失败。
- 路由器 2.4G 与 5G 频段问题:ESP8266 只支持 2.4G,某些双频路由需要单独配置 2.4G SSID。
6.5 告警联动测试
测试目的:验证异常数据能否触发报警,并在云平台侧产生告警记录。
操作步骤:
- 设定温度报警阈值,比如超过 35°C 报警。
- 使用加热设备靠近温度传感器。
- 观察单片机端蜂鸣器或指示灯动作。
- 观察云平台是否产生告警记录。
预期结果:温度超过阈值后,本地蜂鸣器鸣叫,云平台显示告警事件。
判断成功标准:本地报警和云端告警同时触发,阈值可配置。
常见失败原因:
- 阈值判断代码没有生效,检查条件判断逻辑。
- 云平台规则引擎没有开启或配置错误。
- 告警消息推送通道没有打通,检查应用端是否订阅。
7. 接口 API 与批量任务
7.1 云平台 API 调用示例
物联网平台通常提供 HTTP API 接口,上位机或小程序可以通过这些接口查询设备数据和状态。以查询设备最新属性为例,通用请求结构如下:
GET /v1/devices/{deviceId}/properties/latest Authorization: Bearer {access_token}实际接口路径和鉴权方式以使用的云平台官方文档为准。设备上报数据后,通过 API 可以查询最新温度、湿度、报警状态等属性。
7.2 Python 调用示例模板
如果需要写一个简单的上位机程序,定时拉取设备数据并写入本地数据库,可以参考如下示例。
import requests import time platform_url = "https://api.example-iot-platform.com" access_token = "your_access_token" device_id = "your_device_id" headers = { "Authorization": f"Bearer {access_token}" } def get_latest_properties(): url = f"{platform_url}/v1/devices/{device_id}/properties/latest" response = requests.get(url, headers=headers, timeout=10) if response.status_code == 200: data = response.json() print("最新数据:", data) return data else: print("请求失败:", response.status_code, response.text) return None if __name__ == "__main__": while True: try: get_latest_properties() except Exception as exc: print("请求异常:", exc) time.sleep(30)说明:这是一个通用调用模板,实际的 API 地址、鉴权方式、参数格式需要按所选云平台文档调整。不要把模板里的字段直接照抄进项目。
7.3 批量任务设计思路
养老社区往往不止一个监控节点,而是多个房间部署多个设备。如果每台设备都单独手动管理,效率很低。批量任务设计可以从几个方面入手:
- 设备分组:在云平台中按照房间或楼层分组,统一管理。
- 批量配置:相同型号的设备使用同一个固件,配置项集中存放。
- 自动上下线检测:云平台或上位机定期检查设备在线状态,离线时发送通知。
- 数据定时归档:使用脚本定时拉取设备数据,写入 MySQL 或 SQLite,生成日报周报。
# 数据归档脚本的伪代码,实际脚本需要按平台 API 调整 # 每 10 分钟拉取一次设备数据并写入数据库如果设备数量多,建议在单片机上增加本地存储能力,比如使用 Flash 芯片记录断网期间的数据,网络恢复后补传。这个功能可以成为毕设的一个加分项。
7.4 MQTT 上报数据格式示例
云平台接收数据时,一般要求 JSON 格式。可以约定如下格式:
{ "deviceId": "room_01", "timestamp": 1710000000, "temperature": 26.5, "humidity": 60.2, "smoke": 124, "bodyDetected": 1, "alert": 0 }设备端将传感器数据打包成 JSON 后,通过 MQTT 发布到上报 Topic。注意 JSON 字段名称必须与云平台物模型属性一致,否则平台可能解析失败。
8. 资源占用与性能观察
8.1 单片机资源占用
从资源占用角度看,STM32F103C8T6 具有 64KB Flash 和 20KB RAM。如果程序里大量使用串口打印浮点数、长时间保存日志缓冲区,内存会显得紧张。建议:
- 浮点数格式化输出用
snprintf,避免频繁调用printf。 - 日志缓冲区控制大小,不需要的调试信息在生产版本中关闭。
- 传感器数据用结构体管理,减少全局变量。
8.2 网络带宽占用
一次温湿度上报的 JSON 数据约 50 到 100 字节,加上 MQTT 协议头和 TCP/IP 头,单次上报大约需要 200 字节左右的网络流量。按 30 秒上报一次计算:
- 单设备一天 MQTT 上报次数:2880 次。
- 单设备一天流量:约 576KB,远低于流量限制。
数据量不大,但要注意上报频率不能过高。如果 1 秒上报一次,单设备一天流量约 16MB,设备多了以后云平台可能产生费用。建议根据场景设置合理上报频率:正常监测 30 秒一次,告警时临时提高频率。
8.3 性能观察重点
调试阶段重点观察以下几个方面:
- 串口打印周期是否与设定一致。
- WiFi 模块断线重连是否及时。
- 云平台收到数据的延迟。
- 本地报警和云端告警的时间差。
- 单片机长时间运行是否有死机或卡死现象。
可以使用串口日志记录程序运行状态,比如打印connect success、data sent、mqtt connected等关键信息。长时间运行测试建议至少跑 24 小时,观察内存泄漏、WiFi 断连后是否能自动恢复。
8.4 降低功耗与资源占用的方法
如果养老社区节点需要电池供电,可以优化:
- 降低采样频率,从 1 秒一次降到 30 秒或 1 分钟一次。
- 数据上报采用事件触发模式,平时休眠,有异常时才唤醒上报。
- WiFi 模块在非上报周期进入睡眠模式。
- 关掉不用的外设时钟,降低单片机功耗。
- 云平台端设置合理的消息保存周期,避免数据无限增长。
9. 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| Keil 编译报找不到芯片 | 器件包没有安装或工程芯片型号错误 | 检查工程选项中的 Device 设置 | 安装对应器件包或修改芯片型号 |
| 程序烧录失败 | ST-Link 驱动问题、接线错误、芯片锁定 | 检查调试器连接,查看 Keil 报错信息 | 重新安装驱动,检查接线,使用 ST-Link Utility 解锁 |
| 串口输出乱码 | 波特率不匹配、电源干扰 | 确认串口工具波特率与程序一致 | 统一波特率,使用独立 5V 或 3.3V 供电 |
| 温湿度读数为空或 0 | 传感器接线错误、上拉电阻缺失、代码引脚错误 | 检查杜邦线连接和原理图 | 给数据线加上拉电阻,核对引脚定义 |
| DHT11 数据不稳定 | 传感器供电不足或线材过长 | 测量 VCC 电压 | 缩短线材,使用独立供电,增加滤波电容 |
| ESP8266 无法连接 WiFi | 密码错误、路由器 5G 频段、模块损坏 | 单独使用串口助手发送 AT 指令测试 | 确认路由器使用 2.4G 频段,重新配置 WiFi 信息 |
| 设备无法上线 | 鉴权信息错误、MQTT 地址错误 | 查看云平台设备状态,对比设备密钥 | 核对 client_id、username、password |
| 云平台收不到数据 | Topic 不一致、上报格式错误、设备掉线 | 在云平台查看设备日志,用 MQTT 工具订阅协助验证 | 修改 Topic 和数据格式 |
| 上报频率过高导致流量异常 | 上报周期设置太短 | 查看云平台消息记录 | 延长上报周期,事件触发上报 |
| 长时间运行后设备掉线 | WiFi 信号不稳定、模块死机、路由器 DHCP 租约到期 | 观察串口日志中的掉线时间点 | 在程序中加入自动重连机制,定期重启 WiFi 模块 |
| 云平台告警没有触发 | 规则引擎配置错误、阈值条件不对 | 检查云平台规则配置和消息数据 | 调整规则条件,确认数据字段名称匹配 |
| 程序运行一段时间后卡死 | 内存泄漏、堆栈溢出、外设冲突 | 查看串口最后一条日志,检查是否在特定函数卡住 | 优化代码,缩小缓冲区,检查中断优先级 |
| 个别设备反复掉线 | 节点距离路由器过远、信号弱 | 使用 ESP8266 的 AT 指令查询信号强度 | 调整路由器位置或增加 AP 接入点 |
10. 最佳实践与使用建议
10.1 分阶段开发,不要一口吃成胖子
建议按以下阶段推进:
- 第一阶段:LED 流水灯和按键输入,确认单片机开发环境正常。
- 第二阶段:串口打印和传感器数据采集。
- 第三阶段:单独调试 ESP8266,实现 AT 联网和 MQTT 通信。
- 第四阶段:单片机 + WiFi 模块对接,实现数据上报。
- 第五阶段:云平台配置和上位机展示。
- 第六阶段:告警联动、断线重连、异常处理优化。
每个阶段都留下验证记录,答辩时可以直接展示。
10.2 代码规范与注释
毕设源码是答辩时的重要评分点。建议注意:
- 每个函数上方写注释,说明用途、输入参数、返回值。
- 全局变量命名有区分度,不使用含义不明的
a、b、tmp。 - 传感器驱动、网络通信、业务逻辑按文件拆分。
- 关键宏定义集中放在头文件,方便修改阈值和周期。
- 提交前清理无用的调试代码。
10.3 数据安全和隐私保护
系统涉及老人健康和环境数据,必须重视隐私保护。
- 云平台账号不要共享,开启访问鉴权。
- 数据传输建议使用 TLS 加密,MQTT 协议默认明文,需要确认平台是否支持加密端口。
- 上报数据中不要包含老人姓名、身份证号等个人敏感信息。
- 数据保存时间定期清理。
- 如果接入小程序或 App,需要做好身份认证和权限控制。
10.4 答辩展示建议
毕设答辩时,建议准备一个最小演示系统:
- 一块 STM32 或开发板。
- 一个温湿度传感器。
- 一个烟雾传感器。
- 一个 ESP8266 WiFi 模块。
- 一个蜂鸣器。
- 一台连接路由器的电脑,用于展示云平台页面。
演示流程:上电 -> 传感器采集 -> 串口输出 -> 云平台显示数据 -> 人为触发报警 -> 蜂鸣器响 -> 云端产生告警。整个过程控制在 3 到 5 分钟,不需要多余的硬件。
11. 总结与下一步
这个养老社区物联网监控系统是一个相当典型的物联网毕设方案,覆盖了感知、传输、平台、应用四个层面,可讲的技术点很多。值得优先验证的是温湿度采集、WiFi 数据上报和云端告警联动这条主链路。最容易踩的坑集中在 WiFi 模块配置、MQTT 鉴权信息和云平台 Topic 不匹配上,只要这三个点通了,整个系统基本能跑起来。
后续扩展方向可以从这几个角度考虑:
- 增加 OLED 显示屏,实时显示温湿度和报警状态。
- 增加多个传感器节点,做多房间组网。
- 接入小程序,让家属通过手机查看老人房间状态。
- 增加数据存储和趋势分析,统计长期温湿度变化。
- 增加短信或微信告警推送,替代单纯的页面告警。
- 使用 ESP32 替换 STM32 + ESP8266,简化硬件。
如果把上面任意一两个方向做深,项目的完整度和答辩亮点都会提升不少。建议先按文中的测试步骤把主链路跑通,再逐步做扩展。这类项目最怕一开始就想把所有功能都做完,结果每个模块都没调通。分阶段推进,留好日志和文档,最终呈现的效果会稳定很多。