上位机——温度控制系统设计
![](https://img-home.csdnimg.cn/images/20240711042549.png)
一、项目描述
我们的课程项目是模拟温度大棚控制系统,使用C#开发一个Windows Forms应用程序,通过工具箱设计按钮等控件实现各个设备的操作控制。还需要在界面上显示当前大棚内的温度。串行口是设备之间进行通信常用的硬件接口,而串口通信是物联网应用技术中最常用的通信方式。串口通信是指外设和计算机之间,通过数据线按位进行传输数据的一种通讯方式。设计一个上位机程序,实现上位机与下位机之间的双向串口通信。过上位机可以直接观察到温室的各项实时参数和各个装置的工作状态,并且可以通过曲线图直观地分析该温室最近一段时间的环境变化。上位机可对终端中遮阳、风机等装置进行远程控制。管理员可以通过查询数据库来查看温室的历史环境参数。上位机将采集数据转发至移动终端,方便管理员能够随时随地查看温室内情况,同时,上位机可接受移动终端下达的指令并通过串口转发至底层终端。为了使主进程能够流畅的运行,不出现卡顿的情况,我使用线程池,为每一个模块执行的重要操作都分配一个线程,这样便可以保证程序不再运行过程中会出现无响应等异常情况。整个程序包括自动报警、串口通信、显示数据、数据存储。
项目要求:
- 通过串口方式与下位机通信,通信协议自定
- 上位机可以实时显示下位机采集到的温度数据
- 上位机可以开启或者关闭下位机的采光、风扇、喷灌设备
二、串口通信
上位机服务器与底层终端的通信采用串口来实现,由.NET Framework提供的操作串口的System.IO.Port.SerialPort类创建并初始化对象PortNameArr,调用GetPortNames()方法获取目标串口名称,并通过主窗体上的ComboBox控件配置波特率、数据位等主要参数,通过注册监听方式接收数据。
三、项目实施
绘制一个界面。
实例化一个串口
SerialPort serialPort1 = new SerialPort();
打开串口、关闭串口
private void btn_Open_Click(object sender, EventArgs e) //打开 and 关闭串口按键
{
if (serial_open_state == true) //关闭串口
{
UserCloseSerialPort();
}
else //打开串口
CSDN-Ada助手: 恭喜您写下了第5篇博客!标题中的"KNX智能家居工程设计"让我充满了期待。您的持续创作真是令人鼓舞!对于智能家居工程设计这一主题,我相信您一定有着深入的了解和独到的见解。接下来,我期待您能够更加深入地探索KNX智能家居工程设计的细节,或者分享一些实际案例,让读者更好地理解和应用这一知识。再次感谢您的努力,期待您的下一篇博客!
CSDN-Ada助手: 恭喜您撰写了关于“上位机——温度控制系统”的第三篇博客!您对温度控制系统的深入研究令人佩服。通过阅读您的博客,我对上位机的作用以及其在温度控制方面的重要性有了更清晰的认识。不仅如此,您还解释了上位机与温度控制系统之间的关系,让我受益匪浅。 希望您能继续保持创作的热情和努力,为读者带来更多有价值的内容。在下一步的创作中,或许您可以探讨一下如何优化上位机的设计,或者分享一些实际应用中的案例,这将进一步丰富读者的知识。再次感谢您的分享,期待您的下一篇博客! CSDN 正在通过评论红包奖励优秀博客,请看红包流:https://bbs.csdn.net/?type=4&header=0&utm_source=csdn_ai_ada_blog_reply3
CSDN-Ada助手: 非常感谢您的分享,这篇博客非常详细地介绍了STC89C52的原理和标准功能,对于了解这款芯片的人来说非常有帮助。同时,这篇文章也帮助了那些想要了解嵌入式系统开发的初学者。除了您所提到的功能,还有一些其他的扩展知识和技能,比如如何编写优化的代码,如何进行硬件调试等等。希望您能够继续分享这方面的知识,帮助更多人提高自己的技能水平。 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2 如果您持续创作,完成第三篇博客,并且质量分达到 80 分以上,在评论区就有机会获得红包奖励哦!