上位机温室监控系统(串口通讯)

前言

1.上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机single chip microcomputer/slave computer/lower computer之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般为模拟量),转换成数字信号反馈给上位机。简言之如此,实际情况千差万别,但万变不离其宗:上下位机都需要编程,都有专门的开发系统。

2.智能温室监测系统集传感器、自动化控制、通讯、计算等技术与专家系统于一体,通过预装多种作物生长所需的适宜环境参数,搭建温室智能化软硬件平台,实现对温室中温度、湿度、光照、二氧化碳等因子的自动监测和控制。本文将介绍该系统的串口通讯部分。

串口通讯部分

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

如下同

我的上位机程序是用Visual Studio 2022做的,而下位机是51单片机。

因此通信协议的要求可以总结出以下几点:

        1.    通信协议应包含数据流向,既要区分是下发还是上传
        2.    通信协议应包含控制对象与控制值,例如控制风扇的状态为开
        3.    通信协议需要包含帧头和帧尾,在本项目中使用固定帧长度
 

数据段名称    含义
                    帧头(2Byte)    固定为0xAA 0x55

数据流向(1Byte)    
0x01:上位机下发

0x81:下位机上传

操作对象(1Byte)    
0x01:温室灯光

0x02:温室风扇

           0x03:温室当前温度   

                                              数据(2Byte)    根据操作对象不同含义有所不同 
               帧尾(1Byte)    固定为0x0D

 定义跟下位机通讯的协议

 在类中添加ReqceivedRawData方法,其参数为byte[]数组,接收来自串口的原始数据。代码如下所示。

 

 

实现灯光控制接口。 

    实现风扇控制接口。

实现温度读取接口。

以上其实是在课上学习的内容,这些只是一部分啦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值