通信本科毕业设计选题推荐:基于实战场景的5个高可行性项目方向
摘要:很多通信工程的同学一到毕设就头大——选题要么太空,要么太老,要么根本跑不通。本文从“能落地、能演示、能答辩”三个维度,挑出 5 个紧贴行业刚需的实战型项目。每个方向都给出完整技术栈、系统架构草图、关键代码片段、复杂度与成本评估,并附“生产环境避坑指南”。照着抄,两周就能跑出 MVP,答辩现场直接掏手机演示,老师想不给高分都难。
一、先吐槽:为什么你的毕设总翻车
- 选题过大:想“再造一个 5G 协议栈”,结果三个月连帧结构都没看懂。
- 缺可运行原型:PPT 里画的天花乱坠,演示时只能放截图,老师一问就“下次一定”。
- 技术栈陈旧:还在用 51 单片机跑 GSM,面试官听完直接沉默。
一句话:脱离真实场景、缺乏可验证成果,是翻车根源。下面 5 个项目,全部经过“本科能力边界”校准,硬件成本 ≤ 300 元,代码量 ≤ 2 k 行,但能跑出“看得见、摸得着”的数据流。
二、5 个实战选题全景图
| 编号 | 选题关键词 | 场景痛点 | 核心技术栈 | 硬件成本 | 开发周期 |
|---|---|---|---|---|---|
| 1 | 基于 LoRa 的“宿舍电量”广域监测 | 高校宿舍违规用电难发现 | ESP32-S3+LoRa+MQTT+Node-RED | ¥260 | 3 周 |
| 2 | WebRTC 局域网“云监考” | 在线考试隔屏作弊 | Node.js+WebRTC+Socket.IO | ¥80 | 2.5 周 |
| 3 | MQTT 多协议网关 | 工业现场协议孤岛 | Python+MQTT+Modbus+SQLite | ¥120 | 3 周 |
| 4 | 毫米波雷达+Wi-Fi 6 的室内定位 | 地下停车场找车难 | ESP32-S3+mmWave+802.11ax | ¥290 | 4 周 |
| 5 | NB-IoT 智能井盖告警 | 市政井盖丢失/溢水 | STM32+BC26+CoAP+OneNet | ¥270 | 3.5 周 |
三、项目 1:LoRa 低功耗宿舍电量监测
3.1 场景说明
宿舍楼晚上 23:00 统一断电,但违规使用电热杯、游戏本仍时有发生。传统人工巡检效率低。本系统让“电量”自己说话:插座级计量芯片每 5 min 上报一次功率,超过 300 W 自动推送到楼管微信。
3.2 系统架构
- 终端:HLW8032 电量计量 + ESP32 计算功率 → LoRa 点对点 → 网关
- 网关:ESP32-S3 双核,一路 LoRa 接收,一路 Wi-Fi 走 MQTT 到云
- 可视化:Node-RED 拖拽仪表盘,5 分钟拼完
3.3 关键代码(设备端上报逻辑)
// ESP32-S3 LoRa 发送端 / 核心片段 #include <LoRa.h> #include <HLW8032.h> HLW8032 meter; float power; void setup() { LoRa.begin(433E6); // 亚洲 ISM 频段 meter.begin(Serial2); // 电量芯片 UART } void loop() { if (meter.available()) { power = meter.getActivePower(); if (power > 300.0) { // 阈值可远程配置 LoRa.beginPacket(); LoRa.print(String(nodeID) + "," + String(power,1)); LoRa.endPacket(); } } esp_deep_sleep(300e6); // 300 秒低功耗 }3.4 复杂度 & 成本
- 代码量:300 行以内
- 硬件:LoRa 模块 25 元、HLW8032 15 元、ESP32-S3 核心板 55 元
- 难点:射频调试、功耗平衡
四、项目 2:基于 WebRTC 的局域网“云监考”
4.1 场景说明
在线考试最怕“第二台设备”。本方案让考生手机/电脑浏览器直接成为监控探头,1080p 实时视频,延迟 < 300 ms,无需安装 App,老师端一键录制。
4.2 核心技术栈
- 信令:Node.js + Socket.IO(80 行代码搞定)
- 穿透:STUN+TURN 双保险,局域网优先直连
- 录制:浏览器端 MediaRecorder + WebM,分段上传
4.3 关键代码(信令服务器)
// server.js —— 跑在局域网树莓派 const io = require('socket.io')(3000, {cors:true}); io.on('connection', socket => { socket.on('offer', data => socket.broadcast.emit('offer', data)); socket.on('answer', data => socket.broadcast.emit('answer', data)); socket.on('ice', data => socket.broadcast.emit('ice', data)); });4.4 复杂度 & 成本
- 代码量:前端 400 行 + 后端 80 行
- 硬件:旧笔记本即可,树莓派 4B ¥180 可选
- 难点:NAT 穿透失败率 8%,需回退 TURN
五、项目 3:MQTT 多协议工业网关
5.1 场景说明
工厂里既有 Modbus TCP 电表,又有 CAN 总线传感器,数据格式五花八门。本网关统一转成 MQTT JSON,上云后 BI 分析,老板手机看实时 OEE。
5.2 系统架构
- 南向:Modbus TCP、CAN、RS485 三合一
- 北向:MQTT TLS 双向认证
- 本地缓存:SQLite 环形表,断网 7 天续传
5.3 关键代码(Modbus → MQTT)
# gateway/modbus_thread.py from pymodbus.client import ModbusTcpClient import paho.mqtt.publish as publish import json, time client = ModbusTcpClient('192.168.1.100') while True: rr = client.read_holding_registers(0, 10) payload = json.dumps({"power": rr.registers[0]/10}) publish.single("factory/line1", payload, hostname="mqtt.xxx.com", auth={'username':'iot','password':'iot123'}) time.sleep(5)5.4 复杂度 & 成本
- 代码量:600 行
- 硬件:工控树莓派 CM4 ¥260
- 难点:协议栈内存泄漏,需 valgrind 体检
六、项目 4:毫米波雷达 + Wi-Fi 6 室内定位
6.1 场景说明
地下停车场 500 车位,GPS 无信号。利用 mmWave 雷达检测车辆驶入,ESPnow(802.11ax 帧)广播坐标,手机小程序导航到车位,平均寻车时间从 5 min 降到 45 s。
6.2 关键技术
- 雷达:TI IWR6843 点云 → 目标 ID
- 通信:ESP32-S3 自带 Wi-Fi 6,ESPnow 协议广播
- 定位:三角指纹加权,精度 1.5 m
6.3 关键代码(雷达目标检测)
// 雷达串口输出的是 TLV,简化后只取“目标索引+距离” if (tlv.type == TARGET_LIST) { for (int i=0; i<tlv.num; i++) { uint8_t id = tlv.target[i].id; float dist = tlv.target[i].range; if (dist < 5.0) { // 5 米内算有效 esp_now_send(mac_addr, (uint8_t*)&id, 1); } } }6.4 复杂度 & 成本
- 代码量:900 行
- 硬件:IWR6843 模组 ¥180、ESP32-S3 ¥55
- 难点:雷达天线方向图调试,需要微波暗室 or 楼道深夜
七、项目 5:NB-IoT 智能井盖告警
7.1 场景说明
市政井盖丢失、溢水导致“城市陷阱”。STM32+BC26 模组检测倾角≥15° 或水位≥2 cm,通过 UDP/CoAP 上报 OneNet,工单系统 30 min 内闭环。
7.2 关键技术
- 传感器:MPU6050 倾角 + 电阻式水浸
- 网络:BC26 全网通 NB 模组,RRC 释放后功耗 5 μA
- 协议:CoAP 非长连接,节省 40% 流量
7.3 关键代码(中断唤醒 + 低功耗)
void HAL_GPIO_EXTI_Callback(/* 水浸中断 */){ if (read_water()) { BC26_Send_CoAP("/井盖/告警", "{\"type\":\"water\"}"); } HAL_PWR_EnterSTOPMode(PWR_REGULATOR_LOWPOWER, PWR_STOPENTRY_WFI); }7.4 复杂度 & 成本
- 代码量:500 行
- 硬件:BC26 模组 ¥65、整机防水壳 ¥35
- 难点:天线金属井盖屏蔽,需外置 FPC 天线引到井壁
八、生产环境避坑指南(通用)
- 射频干扰:LoRa/NB 天线远离 50 Hz 电源线 ≥ 10 cm,必要时用同轴线引到窗外。
- NAT 穿透失败:WebRTC 项目务必自建 coturn 服务器,阿里云 2 核 2 G 足够,提前测试对称型 NAT 回退。
- 协议幂等:MQTT 网关上传“电量”时带 Unix 时间戳,云端用 UNIQUE 约束去重,防止重传计费。
- 毫米波雷达安装高度:建议 2.5 m,低于 2 m 会漏掉 SUV 车顶,高于 3 m 点云密度下降 30%。
- 低功耗评估:NB-IoT 每天上报 24 次,每次 100 byte,年流量 ≈ 87 KB,30 M 年套餐绰绰有余,别被销售忽悠买 1 G。
九、如何起步:两周跑通 MVP
- 先选“资源最靠近”的方向:手里有 ESP32 就玩 LoRa;有树莓派就冲 WebRTC。
- 淘宝下单“最小套件”,别一次性买齐所有配件,防止踩坑吃灰。
- 代码仓库先拉 Template,把“hello world”跑通:LoRa 先让两块板子互发字符串;WebRTC 先跑通局域网视频。
- 用 Docker 一键起后端:LoRa 的 MQTT、WebRTC 的 coturn、Modbus 的 TimescaleDB 都有官方镜像,省掉配环境噩梦。
- 第 14 天拍 1 min 演示视频,提前给导师看,收集意见再迭代,答辩时直接手机投屏,现场效果拉满。
十、写在最后
把毕设当成“最小创业产品”来做:选题要小、数据要真、演示要酷。上面 5 个方向,总有一个能让你在 300 元预算、30 天时间里交出“能跑、能看、能讲”的作品。别纠结“完不完美”,先让系统转起来,再去打磨细节。祝你一次答辩通过,顺便把代码写进简历,明年校招面试官问“做过什么项目”时,你能直接把手机视频甩给他看。