设计温室监控系统应用程序界面

本文详细介绍了如何设计和实现一个温室监控系统,包括WinForm程序的编写,上位机与下位机通信协议的定制,协议解析,风扇和灯光控制接口的实现,以及通过虚拟串口进行程序调试的方法。在调试阶段,使用串口助手验证了数据发送的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、设计温室监控系统应用程序界面

二、编写温室监控系统 WinForm 程序

1.上位机与下位机通信协议定制

2.上位机协议解析

(1)在解决方案中单击右键,依次点击“添加->类”,在弹出的对话框中将类的名称设置为GreenHouse

(2)定义帧格式变量。

(3)定义数据发送事件。

(4)实现风扇控制接口。

(5)实现灯光控制接口。

(6)实现温度读取接口。

3.温室控制系统程序实现

4.程序的调试

(1)使用”虚拟串口驱动“创建一对相互连接的虚拟串口

 (2)运行上位机程序并打开COM1,运行串口助手并打开COM2

(3)在上位机程序中,点击“开启通风”按钮,观察在串口调试工具中是否收到了数据(注意:接收数据要 以16进制方式显示,否则会出现乱码),并且数据格式是否正常。

(4)


一、设计温室监控系统应用程序界面

打开 Visual Studio 2019 编程环境,创建一个名称为 温室控制系统设计 的项目,设计一个 温室
控制系统 应用程序功能界面,该程序可以使用项目5-1上位机程序模板进行修改,可以加快开发速度。

二、编写温室监控系统 WinForm 程序

1.上位机与下位机通信协议定制

本项目中上位机与下位机是通过串口连接进行数据传输的,上位机可以控制温室大棚进 行通风、采光等操作,这种操作属于上位机下发控制指令,数据流向从上到下;上位机还需要显示当前 的温室大棚内的实时温度值,这种属于下位机上传数据,数据流向是从下到上。

因此,我们对通信协议的要求可以总结出以下几点:
1. 通信协议应包含数据流向,既要区分是下发还是上传
2. 通信协议应包含控制对象与控制值,例如控制风扇的状态为开
3. 通信协议需要包含帧头和帧尾,在本项目中使用固定帧长度
根据以上需求,设计的帧格式如图 7-16 所示

             7-16 通信协议帧格式

各个数据段的含义如表 7-5 所示:
7-5 :通信帧数字段说明以及含义

2.上位机协议解析

(1)在解决方案中单击右键,依次点击添加->,在弹出的对话框中将类的名称设置为GreenHouse

(2)定义帧格式变量。

为了提高代码的可读性和维护性,应该避免在代码的逻辑判断中直接写数据,如 for循环中的循环次数直接写 6 等,这被称之为 " 魔数 " ,因为除了编程者没人知道为什么循环次数是 6 ,对 于这种数应该使用单独的变量定义并且变量名称使用大写。在C 语言中常常用 define 定于常量。定义常量 能提高可读性之外,还能提高维护性,一旦需要修改这个变量只需要一处定义即可。GreenHouse 类中 定义了以下常量。
const byte FRAME_HEAD1 = 0xAA; //帧头1
const byte FRAME_HEAD2 = 0x55; //帧头2
const byte FRAME_END = 0x0D; //帧尾
const byte FRAME_DIR_CMD = 0x01; //数据方向 上位机发命令
const byte FRAME_DIR_REC = 0x81; //数据方向 上位机接收数据
const byte DEVICE_LED = 0x01; //设备类型 LED
const byte DEVICE_FAN = 0x02; //设备类型 风扇
const byte DEVICE_TEMP = 0x03; //设备类型 温度传感器
实现串口数据解析功能。在类中添加 ReceivedRawData 方法,其参数为
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值