# 智能停车场管理系统——TCP/IP网络实现多节点车位状态联网 教学设计

| **课题** | **智能停车场管理系统——TCP/IP网络实现多节点车位状态联网** |
|---------|------------------------------------------|
| **课时** | 1课时(45分钟) |
| **教学目标** | **知识目标**:理解TCP/IP协议的客户端-服务器模型,掌握TcpListener和TcpClient类的基本使用方法,了解其在**停车场分布式监控**中的应用。<br>**技能目标**:能够编写C#网络服务器程序接收多个ESP8266传感器节点的车位数据,**实现项目中多车位状态的网络化集中管理**。<br>**素养目标**:培养网络编程中的安全意识(端口管理、异常处理),体验分布式物联网系统架构设计的工程思维。 |
| **教学重难点** | **重点**:TcpListener的启动、监听、接受连接流程;NetworkStream的数据读取。<br>**难点**:理解异步多客户端连接处理机制,区分单串口与网络通信在项目架构中的差异。 |
| **教学资源准备** | 项目架构演示课件;Visual Studio开发环境;2-3台已烧录TCP客户端程序的ESP8266开发板;网络测试工具(NetAssist);项目服务器端程序框架。 |

## 教学过程

| 教学环节 | 教学内容 | 教师活动 | 学生活动 | 设计意图 |
|:---------|:---------|:---------|:---------|:---------|
| **1. 项目复盘与需求升级**<br>(5分钟) | 回顾上节课实现的串口单车位监控;**提出项目新需求**:监控整个停车场100个车位,串口方案的局限性分析。 | **问题引导**<br>展示项目架构图,提问:"如果要监控100个车位,用100个串口线可行吗?";<br>**方案对比**<br>对比串口与网络方案的优劣,**引出网络化升级的项目必然性**。 | **思考讨论**<br>分析串口方案在**大规模项目部署**中的问题(布线、距离、成本);<br>**需求认同**<br>理解网络通信是**项目扩展的必然选择**。 | **从已完成的项目功能出发**,通过真实工程问题驱动技术升级需求,建立新旧知识在项目演进中的逻辑关联。 |
| **2. 核心概念讲解**<br>(10分钟) | TCP/IP协议基础(IP地址、端口号);C#中的TcpListener类(Start、AcceptTcpClient);NetworkStream数据流读取;**网络架构在项目中的角色**。 | **概念讲解**<br>用"邮局收信"类比服务器监听机制,讲解IP和端口在**项目网络架构**中的作用;<br>**代码演示**<br>演示创建TcpListener,监听8888端口,接受首个客户端连接。 | **聆听理解**<br>记录关键类和方法,绘制**项目网络拓扑简图**(多节点→服务器);<br>**同步操作**<br>在自己电脑上创建**项目服务器端程序**,配置监听端口。 | 将抽象网络协议**转化为项目架构中的具体组件**,通过类比和可视化架构图降低理解难度,明确技术服务的项目目标。 |
| **3. 项目任务实践**<br>(20分钟) | **项目任务**:编写停车场管理服务器程序,接收3个ESP8266节点发送的车位编号和状态数据(格式:"P01:OCCUPIED"),在ListBox中显示所有在线车位状态。 | **任务分解**<br>拆解为:①启动监听②循环接受连接③创建线程处理④读取并解析数据;<br>**关键点突破**<br>重点讲解使用Thread为每个客户端创建独立处理线程,避免阻塞;<br>**巡回指导**<br>协助学生调试网络连接,使用NetAssist模拟客户端测试。 | **编码实现**<br>**以项目服务器开发者角色**编写TcpListener启动代码,编写客户端处理函数;<br>**联调测试**<br>连接ESP8266硬件或使用工具发送测试数据,验证**项目多节点接入功能**;<br>**协作调试**<br>与邻组交换测试,模拟多客户端场景。 | 以**真实的多节点项目场景**驱动编程实践,在网络调试中理解并发处理机制,**完成项目联网架构的核心模块**,体验分布式系统开发。 |
| **4. 功能验证与优化讨论**<br>(7分钟) | 展示成功接收多节点数据的界面;讨论项目优化方向(连接断开检测、数据校验、性能优化)。 | **成果展示**<br>选取典型学生作品,演示**多车位实时状态在项目中的集中显示**;<br>**引导思考**<br>提问:"如果某个传感器节点断网了,程序如何处理?",启发优化思路。 | **功能演示**<br>展示自己的**项目服务器程序**接收多客户端数据效果;<br>**思考交流**<br>讨论项目中可能遇到的网络异常,提出改进想法。 | 通过**项目成果验证**强化技能掌握,通过开放性问题培养**系统健壮性思维**,为后续项目完善埋下伏笔。 |
| **5. 总结与项目展望**<br>(3分钟) | 总结本节课实现的**项目网络层架构**;预告下节课:将车位数据上传到云端管理平台(HTTP API)。 | **知识梳理**<br>回顾TCP服务器开发流程,强调其在**项目多节点管理**中的核心地位;<br>**项目进度**<br>更新项目进度图,明确已完成模块和下一步目标。 | **总结笔记**<br>整理网络编程关键步骤,绘制**项目当前架构图**;<br>**任务预习**<br>了解云平台概念,思考本地与云端的关系。 | **巩固项目阶段成果**,建立本地网络与云平台的技术层级关系,保持**项目持续推进的连贯性**。 |

## 板书设计

```
智能停车场管理系统——网络架构

[项目网络拓扑]
ESP8266节点1(车位P01-P30) ┐
ESP8266节点2(车位P31-P60) ├─→ C#服务器(IP:192.168.1.100:8888) → 数据库/界面
ESP8266节点3(车位P61-P90) ┘

[核心代码流程]
1. TcpListener listener = new TcpListener(IPAddress.Any, 8888);
2. listener.Start();
3. while(true) { TcpClient client = listener.AcceptTcpClient(); }
4. Thread thread = new Thread(HandleClient);
```

## 教学成效与反思

| | |
|:---|:---|
| **教学成效** | 结合**"多节点联网"项目阶段目标**,约75%的学生成功搭建TCP服务器并接收到至少2个节点的数据,完成了停车场系统从单点监控到网络化集中管理的关键跨越。学生对**项目架构升级的必要性**有了深刻认识,**多节点并发处理**这一复杂概念通过真实硬件连接得以具象化。部分基础较好的学生主动添加了客户端IP显示功能,展现出良好的项目扩展意识。 |
| **教学反思** | 本课时成功将TCP/IP网络编程融入"停车场多节点联网"的项目需求中,通过对比串口方案的局限性,自然引出技术升级的必然性,学生接受度高。不足:①多线程编程对中职生而言较为抽象,部分学生虽能照写代码但对并发原理理解不深,建议增加动画演示或简化为Task异步模式;②网络调试环节因防火墙、IP配置等环境问题耗时较多,应提前准备标准化测试环境和故障排查清单;③对异常处理(如客户端突然断开)讲解不足,导致部分程序运行中崩溃。整体上,项目驱动下的网络编程教学让学生体验到技术选型的工程价值,教学效果显著。 |