首页 智能温室上位控制系统毕业设计论文(单片机vb)

智能温室上位控制系统毕业设计论文(单片机vb)

举报
开通vip

智能温室上位控制系统毕业设计论文(单片机vb) 智能温室上位控制系统 目录 摘 要 2 Abstract 3 第1章 绪论 4 1.1 课题背景 4 1.2 智能温室系统发展现状 5 1.3 课题研究内容以及技术指标 6 第2章 智能温室系统总体方案的设计 8 2.1 系统描述 8 2.2 总体方案选择 8 第3章 上位测控系统与现场测控系统通信设计 12 3.1 串行通信 12 3.2 RS-232总线标准·························12 3.3 硬件连接电路以及通信协议 14 3.4 Visual...

智能温室上位控制系统毕业设计论文(单片机vb)
智能温室上位控制系统 目录 摘 要 2 Abstract 3 第1章 绪论 4 1.1 课题背景 4 1.2 智能温室系统发展现状 5 1.3 课题研究内容以及技术指标 6 第2章 智能温室系统总体 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 8 2.1 系统描述 8 2.2 总体方案选择 8 第3章 上位测控系统与现场测控系统通信设计 12 3.1 串行通信 12 3.2 RS-232总线 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ·························12 3.3 硬件连接电路以及通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 14 3.4 Visual Basic6.0中的串行通信控件MSComm·························16 3.4.1 MSComm控件处理通信的方式 16 3.4.2 MSComm控件的常用属性 16 3.4.3 MSComm控件的使用 18 3.5 VB程序编制 18 第4章 上位测控系统软件系统 20 4.1 上位测控系统信息管理系统功能 20 4.2 数据库的设计 21 4.2.1 Access数据库的设计 21 4.2.2 VB操作Access数据库的方法 23 4.3 应用程序的设计 24 4.3.1 用户管理模块设计 25 4.3.2主界面的设计 28 4.3.3 实时数据显示模块的设计 31 4.3.4 查询模块的设计 32 4.3.5 历史数据趋势图模块的设计 33 4.3.6标准参数修改模块的设计 34 4.3.8 保存程序以及建立可执行文件 36 总结与展望 38 参考文献 39 致 谢 41 附录 程序清单 42 摘 要 基于现场测控系统实现温度湿度光照信号的上位测控系统,首先 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 了在Visual Basic 编程环境中实现上位测控系统与现场测控系统之间的串口通信技术,介绍了如何通过MSComm控件实现两者之间的通信,现场测控系统将数据送至串口,上位测控系统通过程序将数据取走并将其保存在数据库中。然后介绍了VB 和ACCESS的连接,并介绍了相关控件和实现方法, 最后显示到主界面, 可以进行查询,参数设置等功能。经调试表明,该设计性能较稳定,界面较美观,该智能温室上位测控系统系统拥有较良好的人系统界面,通用性好,操作简单、方便、易于实现温度的集中监控和管理等特点,理论上具有较广泛的应用前景。 关键词: VB 现场测控系统 串口通信 数据库 Abstract MCU-based PC monitor temperature and dampness and beam signal first analyzed the Visual Basic programming environment in the between MCU,and describes between PC and MCU, Serial data sent to the microcontroller, PC taken away by the program and save the data in the database and gives the collection of the system code. Then introduces the VB and ACCESS connections, and describes the relevant controls and implementation methods, the test results are given to ver ify the effectiveness and feasibilit y of the methods finally. The shakedown test application shows that this design performance is stable and the contact surface is artistic.The Intelligent greenhouse computer system -computer interface, good common, simple and convenient operation. It is easy to implement centralized monitoring and management of the temperature. The system prospect in the theory. Keywords: VB MCU Serial Communication Database 第1章 绪论 1.1 课题背景 由于植物只有在合适的环境下生长,所以不同植物只有在温度湿度光照适宜的季节生长,为了在一年四季都可以得到只在适宜季节才生长的植物,则发明了温室系统,温室系统里面的环境与外界隔绝,由人工控制温室内部的温度湿度光照来满足植物生长多需要的外界环境,其中影响植物生长的因素很多,目前科学家已经确定了52种因素,如土壤有系统质、土壤水分、根层深度、温度、湿度、光照度、风速等等,所以掌握植物生长环境中的这些因素是很重要的,温度、湿度、光照度对植物的影响是最大的。 (1)温度对植物生长的影响 温度对植物生长的影响是综合的,它既可以通过影响光合、呼吸、蒸腾等代谢过程,也可以通过影响有系统物的合成和运输等代谢过程来影响植物的生长,还可以直接影响土温、气温,通过影响水肥的吸收和输导来影响植物的生长。因此在生产实践上培育健壮植株,常常要求低于最适温度的温度,这个温度称协调的最适温度。 (2)湿度对植物生长的影响 影响湿度的因子主要取决于水汽的来源、输送与空气保持水汽的能力等。因此,影响水汽供应的因子如降水、水体的存在、土壤水分的高低和蒸发条件等,影响水汽输送的条件如风、垂直气流等,以及影响空气保持水汽能力的条件如气温等,都可能影响湿度。湿度另一方面决定于空气温度。空气湿度或饱和差是影响植物吸水与蒸腾的重要因子之一。 (3)光照度对植物生长的影响 光是植物进行光合作用的能量来源。光合作用主要是依靠植物的叶绿素这一器官完成的。同一种植物在不同的发育阶段对光的要求也不一样。如厚朴、杜仲等木本植物,幼苗期也需遮阴,怕强光。当参幼苗喜阴,成株则喜阳。黄连虽为阴性植物,生长不同阶段,耐阴程度都不同。幼苗期最耐阴,但栽后第四年则可除去遮阴物,在强光下生长,利于根部生长。一般情况下,植物在开花结实阶段或块茎等贮藏器官形成阶段,需要较多的养分,对光的要求也更高。了解植物对光照度的生态类型,在药用植物合理栽培、兼做套种、引种驯化等方面,都是非常重要的。 51现场测控系统的温室自动控制系统,是基于目前我国温室大棚生产的特点,在温室大棚生产实现智能自动化的基础上,实现连栋温室大棚的规模化生产,既能满足个体生产的需要,又便于企业规模的生产的需要。本系统采取传感器的技术采集温度、湿度的信号,经现场测控系统对信号的处理,传入上位测控系统系统进行人工监测以随时了解温室大棚的各项参数指标。 1.2 智能温室系统发展现状 (1)国外状况 世界发达国家如荷兰、美国、以色列等大力发展集约化的温室产业,温室内温度、光照、水、气、肥实现了计算系统调控,从品种选择、栽培管理到采收包装形成了一整套完整的规范化技术体系。 美国是最早发明计算系统的国家,也是将计算系统应用于温室控制和管理最早、最多的国家之一。美国有发达的设施栽培技术,综合环境控制技术水平非常高。环境控制计算系统主要用来对温室环境(气象环境和栽培环境)进行监测和控制。以花卉温室为例,温室内监控项目包括室内气温、水温、土壤温度、锅炉温度、管道温度、相对空气湿度、保温幕状况、通窗状况、泵的工作状况、CO2浓度、Ec调节池和回流管数值、pH调节池和回流管数值;室外监控项目包括大气温度、太阳辐射强度、风向风速、相对湿度等。温室专家系统的应用给种植者带来了一定的经济效益,提高了决策水平,减轻了技术管理工作量,同时也为种植带来了很大方便。 (2)国内状况 我国农业计算系统的应用开始于20世纪70年代,80年代开始应用于温室控制与管理领域。20世纪90年代初期,中国农业科学院农业气象研究所和作物花卉研究所,研制开发了温室控制与管理系统,并开发了基于Windows操作系统的控制软件;90年代中后期,江苏理工大学毛罕平等人研制开发了温室软硬件控制系统,能对营养液系统、温度、光照、CO2 、施肥等进行综合控制,是目前国产化温室计算系统控制系统较为典型的研究成果。在此期间,中国科学院石家庄现代化研究所、中国农业大学、中国科学院上海植物生理研究所等单位也都侧重不同领域,研究温室设施的计算系统控制与管理技术。“九五”期间,国家科技攻关项目和国家自然科学基金均首次增设了工厂化农业(设施农业)研究项目,并且在项目中加大了计算系统应用研究的力度,其中“九五”国家重大科技产业工程“工厂化高效农业示范工程”中,直接设置了“智能型连栋塑料温室结构及调控设施的优化设计及实施” (3) 我国温室存在的主要问题 1)科技含量和总体发展水平较低。我国设施栽培起步晚、基础差,没有将其作为整体工程问题研究。从设施装备到栽培技术的生产管理不配套,生产不规范,难以形成大规模商品生产。 2) 我国现有的温室控制系统仍以控制一个温室为主,没有基于温室群的控制系统。这样降低了生产管理的效率。 3)温室测控系统的通信仍然采用有线方式。我国温室测控系统的通信主要有485总线以及CAN总线等有线方式。这些有线通信方式不仅使得温室内的信号线和动力线错综复杂,而且导致系统的可靠性降低,安装维护工作量变大。 4) 缺少基于农业专家知识的上位测控系统管理系统。我国目前的温室控制系统中,一些上位测控系统只限于存储采集的历史数据,没有根据农业专家知识的实时控制管理系统。 5) 设施水平低,抵御自然灾害的能力差。我国目前部分温室的建筑材料主要是钢材和玻璃。但没有形成国家统一的标准和工厂系列的产品,且应用率仅占设施栽培面积的10%,而绝大部分由农民自行建造的塑料日光温室也只能起到一定的保温作用,根本不能实现对温度、湿度、光照等环境因子的调控。 6) 系统械化水平低,调控能力差,作业主要依靠人力。生产管理主要靠经验和单因子定性调控。 1.3 课题研究内容以及技术指标 温度湿度光照信号采集与监测是智能温室系统控制中的重要组成部分。随着现场测控系统技术与计算系统技术的稳步发展,利用现场测控系统与上位测控系统的串口通信,实现温度湿度光照数据采集并对其数据进行监测,在科研及生产中得到了非常广泛的应用。在很多测控系统中,需要将采集到的信号送入计算系统,由计算系统进行实时显示或分析处理。这就要求计算系统具有能从现场发出控制命令或获取实际数据的能力,这些功能的实现可以通过对计算系统串口的操作完成的,简单来说就是智能温室测控系统必须实现计算系统对串口的控制与访问。利用现场测控系统与计算系统之间串口通讯实现温度湿度光照数据的采集和处理的设计方法。其中涉及了上位测控系统与现场测控系统串口通信,温度数据采集与存储,数据库调用查询,温度曲线绘制等一系列理论方法,并对温度数据进行实时显示分析实现温度信号的监测等方面的研究设计进行探讨,提出解决方案。 第2章 智能温室系统总体方案的设计 2.1 系统描述 智能温室系统是有现场测控系统与上位测控系统两部分组成,现场测控系统设计以AT89C52为控制核心,以SHT11温湿度传感器、光敏电阻完成对温室大棚内的各项参数进行测量,并将数据输入到现场测控系统中,由现场测控系统根据所写的程序,通过继电器控制电路控制相应的设备达到自动调控温室大棚内各项参数的目的,同时将通过各种传感器测的数据实时地显示在液晶屏上。并通过MAX232电平转换芯片将现场测控系统与RS232接口连接起来,实现现场测控系统与上位测控系统的通信。 上位测控系统主要把传感器测控得到的温度湿度光照的实时数据接收到MAX232芯片中,MAX232芯片接收到数据后就将其转换为vb所能识别的二进制代码,通过vb的MSComm控件进行存入数据库并显示在上位测控系统界面中,操作人员就可以通过上位测控系统界面进行实时监控,达到了智能化。可视化,便于操作的目的。 2.2 总体方案选择 智能温室系统由上位测控系统与现场测控系统两部分组成,下面分别对它们的方案选择进行描述。现场测控系统的方案选择如下: (1)选择AT89C52单片机,了解其基本特性和功能,使用AT89C52实现对温湿度、光照量的智能控制。 (2)单片机通过温度传感器SHT11检测温室的空气温度,当空气温度过高时,就通过控制电路打开排气扇配合设置在温室大棚顶部的喷雾设备进行一段时间的温室大棚的降温作业,而当温室温度过低时,则通过现场测控系统自动关闭降温设备的工作,使温度达到适宜的范围。如果开始检测的空气温度在适宜范围,现场测控系统将维持现有状态。 (3)单片机通过湿度传感器SHT11检测土壤的湿度,若土壤的湿度过低,现场测控系统就打开滴灌设备的电磁阀一分钟,对作物进行滴灌作业,增加土壤湿度,经过一段时间,现场测控系统再次检测土壤湿度,如果湿度过高,就关闭滴灌设备的电磁阀,停止滴管作业。如果开始检测的土壤湿度在适宜的范围,现场测控系统则维持现有状态不变。 (4)单片机通过光照传感器光敏电阻,光照度的控制主要靠遮阳幕的开关,光照度过高时,系统通过关闭大棚顶部的遮阳幕,避免阳光直射作物,减少光照度,及减少强光对作物生长的影响。当光照度过低时,就打开遮阳幕,增加光照度。如果检测的光照度在适宜范围,现场测控系统将维持现状。 下位测控系统的操作硬件可以使用PLC、PC机等,软件可以使用PLC编程软件、VB等。下文分别介绍他们的优缺点并进行比较: PLC是一种专门在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的系统械或生产过程。PLC及其有关的外围设备都应按照易于与工业控制系统形成一个整体,易于扩展其功能的原则而设计。 PLC具有以下鲜明的特点。 (1) 功能完善,组合灵活,扩展方便,实用性强。 (2) 使用方便,编程简单,采用简明的梯形图、逻辑图或语句表等编程语言,而无需计算系统知识,因此系统开发周期短,现场调试容易。 (3)安装简单,容易维修。 (4)抗干扰能力和可靠性能力都强,远高于其他各种系统型。 (5)环境要求低。PLC的技术条件能在一般高温、振动、冲击和粉尘等恶劣环境下工作,能在强电磁干扰环境下可靠工作。 (6)易学易用。PLC是面向工矿企业的工控设备,接口容易,编程语言易于为工程技术人员接受。 PLC的缺点:对于编程语言的具有较强的固定性,只要适用于PLC软件,对其他编程语言(如:C、VB等)的兼容性较差,同时PLC的体系结构是封闭的,各PLC厂家的硬件体系互不兼容, 编程语言及指令系统也各异,当用户选择了一种PLC产品后,必须选择与其相应的控制规程,并且学习特定的编程语言。 完整的PC机包括两大部分,即硬件系统和软件系统。所谓硬件,是指构成计算系统的物理设备,即由系统械、电子器件构成的具有输入、存储、计算、控制和输出功能的实体部件。下面简单介绍一下PC机的优缺点: PC机是管理、控制和监督计算系统软、硬件资源协调运行的程序系统,由一系列具有不同控制和管理功能的程序组成,它是直接运行在计算系统硬件上的、最基本的系统软件,是系统软件的核心。操作系统是计算系统发展中的产物,它的主要目的有两个:一是方便用户使用计算系统,是用户和计算系统的接口。比如用户键入一条简单的命令就能自动完成复杂的功能,这就是操作系统帮助的结果;二是统一管理计算系统系统的全部资源,合理组织计算系统工作流程,以便充分、合理地发挥计算系统的效率。 PC机的优点之一:上位测控系统的数据库是指按照一定联系存储的数据集合,可为多种应用共享。数据库管理系统(Data Base Management System,DBMS)则是能够对数据库进行加工、管理的系统软件。其主要功能是建立、消除、维护数据库及对库中数据进行各种操作。 PC机的优点之二:能实现原来PLC的控制功能。并且具有更强的数据处理能力、强大的网络通讯功能以及能够执行比较复杂的控制算法和其近乎无限制的存储容量等优势。同时也有很好的兼容性,能很好的兼容VB等编程语言。 综上所述:由于PC机具有的功能可以包含PLC的功能,也能够兼容各种编程语言,具有很强的实用性,价格也会比PLC廉价,所以在本次课题中选择PC机作为上位测控系统的硬件系统。 对于编程语言PLC主要用于工业上自动化控制,没有数据库功能,故没有很好的数据统计的模块,不利于研究人员进行分析。而VB语言简单易学,具有强大的可视化功能,也包含有数据库模块,从其他的方面也符合上位测控系统的要求,所以上位测控系统软件就选择了VB语言作为编程语言。综上所述:本次课题中现场测控系统的硬件选择PC机,软件选择VB语言,来实现所需要的功能。系统原理图如图2.1所示: 第3章 上位测控系统与现场测控系统通信设计 本章主要讨论采用比较廉价的通信方式—RS-232总线来实现监控系统的上位测控系统(上位测控系统)向现场测控系统(现场测控系统)发送信息以及上位测控系统接收现场测控系统的温度信息并加以处理。串行通信流程图如图3.1所示: 图3.1 串行通信流程图 3.1 串行通信 随着计算系统系统的应用和微系统网络的发展,计算系统的通信功能显得尤为重要。从广义上讲,计算系统通信可以分为并行通信和串行通信。并行通信速度快、实时性好,但占用的口线多、成本高、通信距离短,不适用于小型化产品。串行通信只需一根传输线即可完成通信功能,成本低,在通信中得到了广泛应用。计算系统与外界的数据传送大多数都是串行的,通常把计算系统与外界的数据传送称之为通信,因此提到的通信大多数都是指串行通信。 (1)串行通信的概念 串行通信是计算系统与外部设备进行信息交换的一种方式,是指数据一位一位地按顺序在一根信号线上进行传输的通信方式。串行通信有两种基本工作方式:异步传送和同步传送。在现场测控系统中使用的串行通信都是异步方式,因此本系统采用异步串行通信方式来实现上位测控系统与现场测控系统之间的通信。 (2)串行通信的传送速率 在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,即每秒钟传送的二进制位数,其单位为bps。它是衡量串行数据传输快慢的重要指标。接收方的波特率和发送方的波特率可以分别设置,但接收方的波特率必须与发送方的波特率相同。 3.2 RS-232总线标准 在串行通信时,要求双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通信。RS-232C是美国电子工业协会 EIA公布的串行通信标准,RS是Recommended Standard的字头缩写,代表推荐,232是标识号,C表示修改的次数。RS-232C适用于短距离或带调制解调器的通信场合,目前已广泛应用于计算系统与外围设备的串行异步通信接口中。 (1)系统械特性:RS-232C的系统械特性主要指两个通信装置如何实现系统械对接。RS-232C是数据终端设备DTE与数据通讯设备DCE之间的接口,RS-232C的系统械标准规定DTE应配置DB25插头,即25针连接器,DEC应配置DB25的插座,即25孔连接器。 引脚号 信号名称 方向 信号功能 1 DCD 上位测控系统←对方 上位测控系统收到远程信号(载波检测) 2 RXD 上位测控系统←对方 上位测控系统接收数据 3 TXD 上位测控系统→对方 上位测控系统发送数据 4 DTR 上位测控系统→对方 上位测控系统准备就绪 5 GND —— 信号地 6 DSR 上位测控系统←对方 对方准备就绪 7 RTS 上位测控系统→对方 上位测控系统请求发送数据 8 CTS 上位测控系统←对方 对方切换到接收状态(清除发送) 9 RI 上位测控系统←对方 通知上位测控系统,线路正常(振铃指示) 表3.1 计算系统DB-9连接器引脚信号功能 实际应用中,DB-25型连接器中的许多信号用不上,因此普遍采用DB9插头,即9针连接器。表3.1给出了DB9连接器的信号引脚功能。本系统采用DB9型连接器,通过三根线实现系统连接,即接收数据引脚与发送数据引脚彼此交叉相连,信号地对应相接。这是最常用最简单系统连接法。 (2)电气特性:RS-232标准的电气特性如表3.2所示。 不带负载时驱动器输出电平 -25V~25V 负载电阻范围 3~7k欧 驱动器输出电阻 <300欧 负载电容(包括线间电容) <2500pF 逻辑“0”时驱动器输出电平 5~15V 逻辑“0”时负载端接收电平 >+3V 逻辑“1”时驱动器输出电平 -15~-5V 逻辑“1”时负载端接收电平 <-3V 输出短路电流 <500mA 驱动器转换速率 <30 表3.2 RS-232标准的电气特性 由表3.2可以看出RS-232C电平采用负逻辑,逻辑“0”:+5~+15V,逻辑“1”:-5~-15V。在计算系统和智能仪器内,通用的信号是正逻辑的TTL电平。而RS-232C电平是负逻辑的,与TTL电平不兼容,必须进行电平转换。电平转换通常可以使用MC1488、MC1489、MAX232等芯片来实现。本系统是采用MAX232芯片实现电平转换的。 RS-232标准规定的波特率为:50、75、100、150、300、600、1200、4800、9600和19200bps。本系统波特率采用9600bps。 3.3 硬件连接电路以及通信协议 上位测控系统与现场测控系统之间的通信通过串口实现。由于RS232电平与TTL电平不兼容,本系统通过MAX232芯片实现TTL电平到RS232电平的转换,MAX232芯片是包含两路接收器和驱动器的RS232电平转换芯片,适用于各种232通信接口。如图3.2所示。 图3.2 PC与硬件现场测控系统的连接电路图 为使数据在上位测控系统和现场测控系统之间无差错的传送,本文采用通信协议来规定数据的传输。上位测控系统与现场测控系统双方的通信协议如下: 波特率:9600bps; 数据格式:8位数据位,1位停止位,无奇偶校验; 传送方式:上位测控系统和现场测控系统都采用查询方式收发数据,传送的数据格式为二进制格式。现场测控系统收到上位测控系统发送的握手信号后,就依次命令传感器进行温度湿度光照转换;上位测控系统依次接收现场测控系统上传过来的数据,并显示在特定区域。 3.4 Visual Basic6.0中的串行通信控件MSComm Visual Basic是一种可视化的编程语言,利用可视化技术进行编程,可使应用程序的开发简单、快捷,可编写出界面友好、功能强大的应用程序。Visual Basic 6.0拥有强大的插件,为用户编写程序简化了很多复杂的程序,其中有一个用于串口通信的控件MSComm,MSComm控件全称为Microsoft Communications Control,是Microsoft公司提供的ActiveX控件,目的是为了简化Windows下串行通信编程,它既可以用来提供简单的串口端口通信功能,也可以用来创建功能完备的、事件驱动的高级通信工具。 MSComm控件在串口编程时非常方便,程序员不必花时间去了解较为复杂的API函数,而且在Visual Basic、Visual C++、Delphi等语言中均可以使用。使用它可以建立与串行端口的连接,通过串行端口连接到其它通信设备(如调制解调器),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。 3.4.1 MSComm控件处理通信的方式 MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。 它提供下列两种处理通信的方式。 (1)事件驱动方式 事件驱动通信是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时程序得到通知,例如,在串口接收缓冲区中有一个字符到达或一个变化发生时,程序都可以利用MSComm控件的OnComm事件捕获并处理这些通信事件,OnComm事件还可以检查和处理通信错误。在程序设计中,可以在OnComm事件处理函数中加入自己的处理代码,一旦事件发生即可自动执行该段程序。这种方法的优点是程序响应及时,可靠性高。 (2)查询方式 在程序的每个关键功能完成之后,可以通过检查CommEvent属性的值来查询事件和错误。适用于自保持的应用程序较小的编程。查询方式的编程可用计时器或Do…Loop程序实现。其实,查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。 3.4.2 MSComm控件的常用属性 对控件编程首先需要了解它的属性和事件。下面介绍MSComm控件的一些主要属性,如表3.3所示。 属性 描述 Commport 设置并返回通信串口号 Settings 以字符串的形式设置并返回串口波特率、奇偶校验、数据位、停止位。格式为:MSComm1.Settings=”BBBB,P,D,S” Portopen 设置并返回串口状态,也可以打开和关闭串口 Input 从接收缓冲区中读取数据并清空缓冲区 Inputlen 设置并返回一次从接收缓冲区中读取字节数 InBufferSize 设置并返回接收缓冲区的大小,缺省值为1024字节 InBufferCount 设置并返回接收缓冲区中等待接收的字符数 InputMode 设置并返回接收数据的类型。其值为0和1时,分别表示通过Input属性以文本方式和二进制方式取回数据 OutBufferSize 设置并返回发送缓冲区的大小,缺省值为512字节 OutBufferCount 设置并返回发送缓冲区中等待计算系统发送的字符数 Output 向发送缓冲区发送数据,该属性设计时无效,运行时只读 Rthreshold 在MSComm控件设置ConunEvent属性为comEvReceive并产生OnComm之前,设置并返回要接收的字符数 表3.3 MSComm控件的主要属性 其中CommEvent属性是一个非常重要的属性。一旦串口发生通信事件或产生错误,依据产生的事件和错误,MSComm控件为CommEvent属性赋以不同的代码,同时产生OnComm事件。用户程序就可在OnComm事件处理程序中针对不同的代码,进行相应的处理。CommEvent属性的事件代码、常数以及含义参见表3.4。 事件代码 常值 含义 1 ComEvRecive 接收到Rthreshold个字符。该事件将连续产生,直到用Input属性从接收缓冲区中读取并删除字符 2 ComEvSend 发送缓冲区中数据少于Sthreshold个,串口已经发送了一些数据,程序可以用Output属性继续发送数据 3 ComEvCTS Clear To Send信号线的状态发生变化 4 ComEvDSR Data Set Ready信号线从1变到0 5 ComEvCD Carrier Detect信号线的状态发生变化 6 ComEvRing 检测到振铃信号 7 ComEvEOF 接收到文件结束符 表3.4 CommEvent通信事件代码、常数及含义表 3.4.3 MSComm控件的使用 MSComm控件通信的流程图如图3.3所示。编写程序时,只需要按照下面流程图,即可实现通信功能。 图3.3 MSComm控件通信的流程图 3.5 VB程序编制 Private Sub MSComm1_OnComm() Select Case MSComm1mEvent Case comEvReceive ' 收到 RThreshold # ofchars. xv: Dim '通道0的开始标志位 z_start = True ovt = 0 End If If '通道0的结束标志位 z_start = False Text1.Text=Val(in_data(1) & in_data(2)) '温度值 Text2.Text=Val(in_data(3) & in_data(4)) '湿度值 Text9.Text=Val(in_data(5) & in_data(6)) '光照值 End If If z_start = True Then in_data(ovt) = '判定缓冲区数据的长度 GoTo xv End If End Select 第4章 上位测控系统软件系统 基于智能温室上位系统的功能要求,可以绘制出整个软件的系统模块图,如图4.1所示: 图4.1 上位测控系统功能模块图 4.1 上位测控系统功能 智能温室上位测控系统的目的是对现场测控系统检测的数据进行后处理。智能温室上位测控系统主要包括以下功能: 1.与现场测控系统进行数据通信; 2.检测数据录入数据库; 3.实现温度信息库的查询、显示、趋势图等处理功能; 4.修改标准参数; 接下来分别对各个模块进行简单的介绍: 用户管理模块:为防止不相关人员随意打开本软件修改,删除检测结果,所以软件运行后,首先设计了登陆对话框,要求输入用户名和密码,输入正确后才能进入该软件的主界面。 串行通信模块:用于接收现场测控系统所发送给上位测控系统的数据。以及将上位测控系统的数据传输到现场测控系统中。(这个模块上一章已经有过详细介绍,下文将不再介绍了) 数据实时显示模块:从现场测控系统发送过来的数据,经过串口通信,存入数据库,然后显示在界面上,操作人员可以直观的看到实时数据。 历史数据趋势图模块:用于观察所测得的温度湿度光照值得变化,是管理变得更直观,人性化。 历史数据查询模块:当操作人员需要分析一段时间的数据的时候,可以调用查询模块进行历史数据分析。 标准参数修改模块:为了适应不同的植物所需要的环境,为了保证本软件的兼容性,设计了一个参数修改模块,通过这个模块用户可以对所需要的各项参数进行修改。 智能温室上位测控系统信息管理系统软件运行在上位测控系统上,开发平台采用Microsoft Visual Basic6.0,下面将详细介绍各个模块的实现过程。 4.2 数据库的设计 数据库是存放数据的仓库,是以一定的组织方式存储在计算系统中相关数据的集合。它能以最佳方式、最少的重复、最大的独立性为多种应用提供共享服务。多点温度信息管理系统数据库采用关系型数据库,用Access2003开发。Access2003是开发中小型数据库的首选数据库管理系统,使用它可以很方便的设计出一个出色的关系数据库,而且VB可以通过ADO data对象建立对Access类型数据库的快速连接。 4.2.1 Access数据库的设计 在Microsoft Access数据库中,信息是以表的形式组织起来的,表就是数据以行和列的形式组织在一起,每一行代表一条记录,每一列代表一个字段,描述它所含有的数据。 根据该系统的功能,我设计了3个表: 用户信息表:用户信息表用于描述用户名和密码,完成用户登陆信息和密码修改信息的验证。 标准值表:标准值表用于保存用户所修改的标准温度值。 温度湿度光照信息表:温度湿度光照信息表用于描述现场测控系统每个测量结果,即传感器的测量日期、温度、湿度、光照。 3个表的结构分别如表4.1所示。 (a) 温度信息表 字段名称 字段大小 必填字段 数据类型 时间 常规日期 是 日期时间 温度 单精度型 是 文本 湿度 单精度型 是 文本 光照 单精度型 是 文本 (b)用户信息表 字段名称 字段大小 必填字段 数据类型 账号 50 是 文本 密码 50 是 文本 (c) 标准值表 字段名称 字段大小 必填字段 数据类型 标准温度 单精度型 是 文本 最高温度 单精度型 是 文本 最低温度 单精度型 是 文本 标准湿度 单精度型 是 文本 最高湿度 单精度型 是 文本 最低湿度 单精度型 是 文本 标准光照 单精度型 是 文本 最高光照 单精度型 是 文本 最低光照 单精度型 是 文本 表4.1 上位测控系统信息数据库的表结构 由于数据在现场测控系统和上位测控系统之间传输的时间很短,所以约定温度信息送至上位测控系统的时间为测量的时间。由于测量日期和时间不会重复,所以根据日期和时间,可以区分数据库中的数据属于哪一次检测。 4.2.2 VB操作Access数据库的方法 VB访问数据库有多种方法,如Data控件、DAO对象、RDO对象、ADO控件和ADO对象等。Microsoft Visual Basic6.0提供了三种不同的访问数据库接口: DAO数据存取对象、RDO远程数据对象、ADOActiveX数据对象。 DAO(Data Access Objects)数据存取对象是数据访问对象之一,是VB最早引入的数据访问技术。它比Data控件功能强大,不仅可以打开、访问并操纵已有的数据库,而且可以创建数据库、表和索引。 RDO(Remote Data Objects)远程数据对象是一个到ODBC的面向对象的数据访问接口,有了Visual Basic6.0以后,RDO已逐步被ADO替代。 ADO(ActiveX Data Objects)ActiveX数据对象是最新的数据访问技术,访问更加简单和灵活,支持多种数据库,而且访问的数据库类型也更为丰富,特别在Internet方面的应用可极大提高系统性能。 所以,本文选择ADO Data控件来访问数据库,进行数据库的操作。ADO Data控件使用Microsoft ActiveX数据对象(ADO)来快速建立数据绑定控件和数据提供者之间的连接。数据绑定控件是任何具有数据源属性的控件。尽管在程序中可以直接使用ActiveX数据对象,但ADO Data控件作为一个图形控件的优势,以及一个易于使用的界面,使用户可以用最少的代码创建数据库应用程序。 ADO Data控件属性很多,其中ConnectionString属性和RecordSource属性是两个非常重要的属性。ConnectionString属性值是一个字符串,包含进行一个连接所需要的所有设置值,在字符串中所传递的参数是与驱动程序相关的。RecordSource属性包含一条语句或一个表格名称,用于决定从数据库检索什么信息。 设置ADO Data控件与数据库的连接,具体代码如下: Dim connectionstring As String connectionstring="provider=microsoft.jet.oledb.4.0;"&"datasource=mima.md" conn.Open connectionstring 连接数据也可以在属性栏里面设置connectionstring属性进行连接,如图4.2所示 图4.2 ADODC连接数据库 4.3 应用程序的设计 数据库建立好以后,就可以对其进行各种操作了。接下来将分别在Microsoft Visual Basic6.0集成环境下各个模块的设计过程。 首先运行Microsoft Visual Basic6.0,出现“新建工程”对话框,如图4.3所示。选择新建“标准EXE”,执行“打开”命令,进入Visual Basic工程集成开发环境,窗体设计器会自动出现一个Form1的空白窗体,如图4.4所示。 图4.3 “新建工程”对话框 图4.4 空白窗体 4.3.1 用户管理模块设计 为防止不相关人员随意打开本软件修改,删除检测结果,所以软件运行后,首先设计了登陆对话框,要求输入用户名和密码,输入正确后才能进入该软件的主界面。如果失败达三次,则自动退出系统。用户登陆界面如图4.5所示。 图4.5 用户登陆界面 在空白窗体上,添加3个Label控件、2个TextBox控件、1个ADODC控件。界面上的3个Label控件用来标识窗体中的信息(用户登陆,账号,密码),2个TextBox控件用来输入账号和密码,2个CommandButton控件用来登陆以及新建用户,1个ADODC控件(运行时隐藏)用来完成和数据库用户信息表的连接。 当操作人员没有用户名的情况下可以建立新的用户,但是需要一个已经用拥有账号的用户来新建,添加新用户程序流程图如图4.6所示: 图4.6 新建用户程序流程图 其界面如图4.7所示。 图4.7 添加新用户界面 界面上的3个Label控件用来标识窗体中的信息(新建用户,用户名,密码),3个TextBox控件用来输入用户名,密码,2个CommandButton控件用来新建用户或返回首页,1个ADODC控件(运行时隐藏)用来完成和数据库用户信息表的连接。 4.3.2主界面的设计 为了方便地管理系统程序,且占有教少的系统资源,我们采用多界面MDI进行主界面的设计。通过选择主界面上的菜单,我们就可以实现对温度信息的各种操作。系统的主界面如图4.8所示。 图4.8主界面 主界面主要由窗体、菜单栏、状态栏组成。主窗体用于显示温度湿度光照的测量范围、标准值、实测值。监控曲线、时间、报警装置等。菜单栏是通过VB中的菜单编辑器设计的,包含了历史数据查询、参数修改、开始停止记录、帮助等模块;状态栏用于显示系统日期、时间和设计信息,通过StatusBar控件实现。 在使用菜单编辑器之前首先需要启动它,它的启动方式有下面4种形式。 选择“工具”“菜单编辑器”命令; 在“标准”工具栏上选择“菜单编辑器”图表; 用鼠标右键单击要添加的菜单窗体,在弹出的快捷菜单中选择“菜单编辑器”命令; 利用快捷键{Ctrl+E}来调用“菜单编辑器”。 打开的菜单编辑器如图4.9所示。其中包括三个区域:菜单属性设置区、菜单编辑区、菜单列表区。 菜单属性设置区是指在菜单编辑器中分隔条上面的部分,它主要用于设置菜单的相关属性。其主要属性有标题、名称、索引以及快捷键。其中标题和名称属性是必须要设置的,其他的属性可以采用默认值,或者不需设置。 菜单编辑区是指中间的7个按钮,主要用于对已经输入的菜单进行简单的编辑操作。 菜单列表区就是指菜单项的分级列表。将子菜单单项缩进以指出它们的分级位置或等级。 图4.9 菜单编辑器 StatusBar控件提供一个小的窗体。该窗体通常位于父窗体的底部,通过这一窗体,应用程序能显示各种数据。StatusBar最多能被分成16个Panel对象,这些对象包含在Panels集合中。StatusBar控件是Active控件,在使用该控件之前需要先将其添加到工具箱中。选择“工程”“部件”命令,在弹出的对话框中选中Microsoft Windows Common Controls 6.0(SP6)项,即可将一组控件添加到工具箱中,其中,图4.10中鼠标所指的即为StatusBar控件。 图4.10工具箱中的StatusBar控件 将StatusBar控件添加到窗体上,用鼠标右键单击该控件,在弹出的快捷菜单中选择“属性”命令,即可弹出“属性页”对话框。如图4.11所示。选择“窗格”选项卡,默认会自动创建一个窗格, 设置第一个窗格的“样式”为6-sbrDate,显示当前系统的日期。单击“插入窗格”按钮,插入一个表格。 设置第二个窗格的“样式”为5-sbrTime,用于显示时间。单击“插入窗格”按钮,插入一个表格。 在第三个窗格的“文本”中输入设计者:徐围。单击“插入窗格”按钮,插入一个表格。 在第四个窗格的“文本”中输入指导教师:曾宇丹。 图4.11 StatusBar控件属性页 4.3.3 实时数据显示模块的设计 完整的温度信息显示采用类似于电子数据表的DataGrid控件实现。其程序流程图如图4.12所示: 图4.12 数据显示程序流程图 在VB6.0中的众多数据控件中,DataGrid控件是最灵活、功能最强大的控件之一。使用DataGrid控件无须编写任何代码,只要绑定到ADO控件上,就可以实现数据的相关操作。设置好的界面如图4.13所示: 图4.13 温度湿度光照信息显示界面 4.3.4 查询模块的设计 在这个系统中,查询模块单独的设置了一个窗体,设定想要查询的时间段,单击“查询”,就会在表中显示所有在这个时间段的温度湿度光照信息。“更新”按钮是用于同步数据,“返回”按钮用于回到主界面。其程序流程图如图4.14所示: 图4.14 查询模块程序流程图 其工作界面如图4.15所示。 图4.15 查询界面 界面上的1个Label控件用来显示“设定查询时间段”,3个CommandButton控件用来显示“查询”“更新”“返回”按钮,2个DTPicker控件用来显示所要选择的时间段,1个ADODC控件(运行时隐藏)用来完成和数据库用户信息表的连接,1个DataGrid控件来进行数据显示。 4.3.5 历史数据趋势图模块的设计 为了更加直观的表达出历史数据的变化,本课题采用了绘制实时趋势图的方式来直观的表达各个时刻的数据变化,可以得到其程序流程图如图4.16所示: 图4.16 绘制趋势图程序流程图 绘制实时曲线程序流程图其工作界面如图4.17所示。 图4.17 趋势图 为了实现趋势图的显示,本在这个课题中选用了3个picturebox控件,分别用来显示温度曲线,湿度曲线,光照曲线。并运用line函数进行编写程序,横坐标是时间,纵坐标是每个时刻所测得的值。Line方法可以在窗体或图片框指定位置上,按指定的颜色画直线或者曲线。Line方法的格式如下: Object.Line[STEP] (X1,Y1) [STEP] (X1,Y2),[COLOR],[B][F] 例如温度值的实时趋势曲线程序代码: Picture1.Line((time_count)*Picture1.ScaleWidth8,Picture1.ScaleHeight5*4-wenduzhi(line_k))-((time_count+1)*Picture1.ScaleWidth 18, Picture1.ScaleHeight 5 * 4 - wenduzhi(line_k + 1)), vbWhite 4.3.6标准参数修改模块的设计 对于不同的植物,他所适宜的温度湿度光照度是不一样的,为了方便使用,以及提高可靠性,本课题提供了一个参数修改模块,用来适应不同的用途。得到其程序流程图如图4.18所示: 图4.18 参数修改程序流程图 其界面如图4.19所示: 图4.19 参数修改界面 当实际测得的温度湿度光照值在所给定的范围之内,报警按钮则处于绿色状态,如果实测的值超出这个范围报警按钮就会变为红色。 4.3.7 “帮助”模块的设计 如图4.20所示: 图4.20 帮助模块 运用MsgBox函数实现,程序如下: MsgBox "请致电18996148285 徐围,解决相关问题" 4.3.8 保存程序以及建立可执行文件 当应用程序编写完后,就应该将其保存起来。事实上,编辑过程中经常进行保存是一个很好的习惯,这样可以避免由于系统崩溃或系统器掉电而导致的数据丢失。 要保存应用程序,可单击标准工具栏的“保存工程”按钮。如果工程尚未保存过,那么系统首先显示“文件另存为”对话框,提示编程人员确定用于保存窗体的文件名。确定窗体文件的名字后,单击“保存”按钮,将显示“工程另存为”对话框,提示编程人员确定用于保存工程的文件名。确定工程文件的名字之后,单击“保存”按钮即可保存与应用程序有关的所有文件。Visual Basic把用来构造一个应用程序的所有相关文件称为一个工程(Project)。 一个工程通常包括以下几类文件。 工程文件(*.vbp); 窗体文件(*.frm); 二进制窗体文件(*.frx); 标准模块文件(*.bas); 类模块文件(*.cls)。 分别完成各项功能之后,为了使应用程序能够脱离开发环境而直接在Windows环境下运行,就必须将应用程序编译成可执行文件(.exe文件)。 编译方法是:依次选择“文件”菜单的“生成工程1.exe”命令(这里的“工程1”是工程名),弹出“生成工程”对话框,选定保存位置,输入可执行文件的名字,单击“确定”按钮即可在指定位置建立一个可执行文件。 总结与展望 通过对智能温室上位测控系统的课题的完成,逐步了解了VB编程以及串口通信的编程方法,了解了通过ADO对象实现程序与数据库的连接、使用DataGrid控件显示温度数据。整个课题的开发过程主要包括了两个方面的内容: 一、实现上位测控系统与现场测控系统的通信,完成温度湿度光照信息的相互交换; 二、采用VB语言编程对智能温室上位测控系统管理系统的设计,从而完成温度湿度光照的查询、显示、参数修改、趋势图等功能。 在本次毕业设计中,成功的将程序编写出来了,也能够调试成功,基本上实现了主要功能,但是也有许多的不足之处,比如,系统得稳定性有待提高,还有很多地方做得不够精细,比如说:由于时间关系,在新建用户的时候没有把所有有可能产生的情况都通过编程表达进去,在主界面的设计上也有诸多的不足,虽然,这个系统我做得并不完美,但是让我在其中学到了很多知识,体会到了一种成功的乐趣,这次毕业设计对我的影响是非常大的,然我养成了一种坚韧不拔的习惯。 由于时间比较紧张,这个系统只有一个初步的雏形,很多的方面需要完善,比如登录系统模块,主界面模块等,如果有足够多的时间就可以逐步的完善这个系统,使其具有实际的市场意义。 参考文献 [1]李江全, 张丽, 岑红蕾. Visual Basic串口通信与测控应用技术实战详解. 北京: 人民邮电出版社, 2007: 150-155 [2]李长林, 沙占友等. Visual Basic串口通信技术与典型实例. 北京: 清华大学出版社, 2006: 112-157 [3]李长林,张丽华,王红. Visual Basic数据库应用系统开发从基础到实践. 北京:电子工业出版社, 2006: 276-310 [4]刘彬彬,高春艳,孙秀梅等. Visual Basic从入门到精通. 北京: 清华大学出版社, 2008: 427-454 [5]陈杰华, 刘奇, 卿川. 奇思异想编程序. 北京: 国防工业出版社, 2004: 314-315 [6]斯琴巴图, 杨利润等. 零基础学Visual Basic. 北京: 系统械工业出版社, 2008: 228-230 [7]白晓勇, 余健等. Visual Basic课程设计案例精编. 北京: 清华大学出版社, 2007: 255-256 [8]陈紫红, 安剑, 孙秀梅等. Visual Basic项目开发全程实录. 北京: 清华大学出版社, 2008: 115-124 [9]胡小江等. 21天学通Visual Basic. 北京: 电子工业出版社, 2009: 239-251 [10]范逸之. Visual Basic与RS232串行通讯控制. 北京: 中国青年出版社, 2000: 2-15 [11]李怀明等. Visual Basic 6.0 中文版参考详解. 北京: 清华大学出版社, 1999: 98-103 [12]龚沛增. Visual Basic 程序设计教程. 北京: 清华大学出版社, 2004: 11-32 [13]刘新民. Visual Basic 6.0程序设计. 北京: 清华大学出版社, 2004: 61-83 [14]刘瑞新, 李树东. Visual Basic 程序设计教程习题及习题解答. 北京: 电子工业出版社, 1999: 101-120 [15]郭琦. Visual Basic 数据库系统开发技术. 北京: 人民邮电出版社, 2004: 42-53 [16]El1]SIGRIMIS N,ARVAN1TIS K G,PASGIAN0S G D,et a1puter integrated management and intelligent control ofgreenhouse[J].Environ Co ntrol in Biol,2002,40(1):39—53. [17]SEGINE L,B0IⅡ。ARD T,BAILEY B J.Neural network modds of the greenhouse climateEJ].J Ag c Eng Research,1994,59: 致 谢 在本次毕业设计中,我遇到了很多困难,就如在做这次毕业设计之前我是没有接触过VB编程的,通过一个寒假的学习以及在编写程序中与老师和同学的探讨,最终解决了这些问题。这将是我大学生活难忘的经历。这次毕业设计的完成,与很多人的努力是分不开的。 首先,我要感谢我的指导老师曾宇丹老师对我的精心指导;她严谨的科学态度,遇到困难时勇于战胜的精神,一直鼓励着我前进。本论文是在曾老师的悉心指导下完成的,在论文的撰写和定稿的整个过程中,曾老师付出了极大的心血。再一次对曾老师致以最衷心的感谢。其次,在我做毕业设计的过程中,许多同学也给我提出了宝贵的意见,也给了许多帮助,本次毕业设计的圆满完成是与他们的帮助所分不开的。在此一并向他们表示最真挚的谢意! 本次毕业设计虽然结束了,但它却给我留下了很多美好的回忆,面对自己的劳动成果有一种油然而生的满足感和成就感,没有付出,就没有收获这句话又一次得到了验证。满足之余也让我不由的想起帮助过我的老师和同学,没有他们的帮助,我不会顺利地完成这次毕业设计,因此,再次向帮助和指导我的老师和同学表示感谢。 最后,一并感谢批阅我论文的老师以及答辩的老师们,感谢您们给我设计的指导,我定将虚心接受并继续改进。 附录 程序清单 主界面程序: Dim z_start As Boolean Dim ovt As Integer Dim in_data(7) As Byte Dim t_z_start As Boolean Dim t_ovt As Integer Dim t_in_data(7) As Byte Dim time_count As Integer Dim time_zhi(20) As Date Dim wenduzhi(20) As Single Dim shiduzhi(20) As Single Dim guangzhaozhi(20) As Single Dim wenduzhi_k As Integer Dim time_k As Integer Dim line_k As Integer Dim time_k1 As Integer Dim line_k1 As Integer Dim mk As Integer Private Sub begin_Click() Timer1.Enabled = True End Sub Private Sub Combo1_Click() On Error GoTo BLAK If MSComm1.PortOpen = True Then MSComm1.PortOpen = False MSComm1mPort = Combo1.ListIndex + 1 MSComm1.PortOpen = True Else MSComm1mPort = Combo1.ListIndex + 1 MSComm1.PortOpen = True End If Exit Sub BLAK: MsgBox "串口不存在或者被占用!", vbOKOnly, "提示信息" End Sub Private Sub Combo2_Change() MSComm1.Settings = Combo2.Text & "n,8,1" End Sub Private Sub exit_Click() End End Sub Private Sub Form_Load() Form1.Hide Form2.Show Form3.Hide Combo1.ListIndex = 0 Combo2.ListIndex = 0 MSComm1.InputMode = comInputModeBinary End Sub Private Sub '通道0的开始标志位 z_start = True ovt = 0 End If If '通道0的结束标志位 z_start = False Text1.Text = Val(in_data(1) & in_data(2)) Text2.Text = Val(in_data(3) & in_data(4)) Text9.Text = Val(in_data(5) & in_data(6)) End If If z_start = True Then in_data(ovt) = GoTo xv End If End Select 'Text1.Text = Rnd * 10 'Text2.Text = Rnd * 10 '判断是否报警 '温度 If (Val(Text1.Text) < Val(Text3.Text)) Or (Val(Text1.Text) > Val(Text4.Text)) Then Shape1.BackColor = &HFF& '红色 Else Shape1.BackColor = &H8000& '绿色 End If '湿度 If (Val(Text2.Text) < Val(Text5.Text)) Or (Val(Text2.Text) > Val(Text6.Text)) Then Shape2.BackColor = &HFF& '红色 Else Shape2.BackColor = &H8000& '绿色 End If '光照度 If (Val(Text9.Text) < Val(Text7.Text)) Or (Val(Text9.Text) > Val(Text8.Text)) Then Shape3.BackColor = &HFF& '红色 Else Shape3.BackColor = &H8000& '绿色 End If '判断结束 End Sub Private Sub refleash_Click() Adodc2.Refresh End Sub Private Sub shuju_Click() Form1.Hide Form5.Show End Sub Private Sub stop_Click() Timer1.Enabled = False End Sub Private Sub Timer1_Timer() Adodc1.Recordset.AddNew '将文本框中用户输入的各个字段值填入相应字段 ' time_count = time_count + 1 Adodc1.Recordset.Fields("温度值") = Val(Text1.Text) Adodc1.Recordset.Fields("湿度值") = Val(Text2.Text) Adodc1.Recordset.Fields("光照值") = Val(Text9.Text) Adodc1.Recordset.Fields("时间") = Now Adodc1.Recordset.Update '数据库操作结束 '划线 ' 重新定义坐标 '第一张图片 Picture1.Picture = LoadPicture("") Picture2.Picture = LoadPicture("") Picture3.Picture = LoadPicture("") For wenduzhi_k = 0 To 18 Step 1 wenduzhi(wenduzhi_k) = wenduzhi(wenduzhi_k + 1) '第一个参数 shiduzhi(wenduzhi_k) = shiduzhi(wenduzhi_k + 1) guangzhaozhi(wenduzhi_k) = guangzhaozhi(wenduzhi_k + 1) Next wenduzhi_k wenduzhi(18) = Val(Text1.Text) * Picture1.ScaleHeight 150 shiduzhi(18) = Val(Text2.Text) * Picture2.ScaleHeight 120 + 100 guangzhaozhi(18) = Val(Text9.Text) * Picture3.ScaleHeight 120 + 100 For line_k = 0 To 18 Picture1.Line ((time_count) * Picture1.ScaleWidth 18, Picture1.ScaleHeight 5 * 4 - wenduzhi(line_k))-((time_count + 1) * Picture1.ScaleWidth 18, Picture1.ScaleHeight 5 * 4 - wenduzhi(line_k + 1)), vbWhite Picture2.Line ((time_count) * Picture2.ScaleWidth 18, Picture2.ScaleHeight - shiduzhi(line_k))-((time_count + 1) * Picture2.ScaleWidth 18, Picture2.ScaleHeight - shiduzhi(line_k + 1)), vbWhite Picture3.Line ((time_count) * Picture3.ScaleWidth 18, Picture3.ScaleHeight - guangzhaozhi(line_k))-((time_count + 1) * Picture3.ScaleWidth 18, Picture3.ScaleHeight - guangzhaozhi(line_k + 1)), vbRed time_count = time_count + 1 If (time_count * Picture1.ScaleWidth 18 > Picture1.ScaleWidth) Then time_count = 0 End If Next line_k Label16.Caption = Date & Time Label24.Caption = Time Label25.Caption = Time + 0.00003 Label26.Caption = Time + 0.00007 Label29.Caption = Time Label28.Caption = Time + 0.00003 Label27.Caption = Time + 0.00007 Label30.Caption = Time Label41.Caption = Time + 0.00003 Label42.Caption = Time + 0.00007 End Sub 登陆界面模块程序: Private Sub Command1_Click() Static mk As Integer Dim U As Boolean, P As Boolean, Ok As Boolean If Text1.Text = "" Or Text2.Text = "" Then MsgBox "请输入帐号或密码" End If With Adodc1 .Refresh Do While Not .Recordset.EOF U = .Recordset.Fields(0).Value = Text1.Text '字段0为用户名称 P = .Recordset.Fields(1).Value = Text2.Text '字段1为用户密码 If U And P Then Ok = True Exit Do Else .Recordset.MoveNext End If Loop End With mk = mk + 1 If Ok Then Form1.Show Form2.Hide 'MsgBox "登录成功" Else MsgBox "登录失败" If mk = 3 Then MsgBox "你登录已经超过3次" Form2.Hide End If End If End Sub Private Sub Command2_Click() Static mk As Integer Dim U As Boolean, P As Boolean, Ok As Boolean If Text1.Text = "" Or Text2.Text = "" Then MsgBox "请输入帐号或密码" End If With Adodc1 .Refresh Do While Not .Recordset.EOF U = .Recordset.Fields(0).Value = Text1.Text '字段0为用户名称 P = .Recordset.Fields(1).Value = Text2.Text '字段1为用户密码 If U And P Then Ok = True Exit Do Else .Recordset.MoveNext End If Loop End With mk = mk + 1 If Ok Then Text1.Text = "" Text2.Text = "" Form4.Show Form2.Hide 'MsgBox "登录成功" Else MsgBox "登录失败" If mk = 3 Then MsgBox "你登录已经超过3次" Form2.Hide End If End If End Sub Private Sub Form_Load() Text1.Text = "" Text2.Text = "" End Sub 查询模块程序: Private Sub Command1_Click() Form1.Show 'Form2.Hide Form3.Hide End Sub Private Sub Command2_Click() Adodc1.RecordSource = "select * from bysj where 时间>=#" + Str(DTPicker1.Value) + "# and 时间<=# " + Str(DTPicker2.Value) + "# order by 时间" Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 Timer1.Enabled = False End Sub Private Sub Command3_Click() Timer1.Enabled = True End Sub Private Sub Timer1_Timer() Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 End Sub 新建用户模块程序: Private Sub Command1_Click() Form4.Hide Form2.Show End Sub Private Sub Command2_Click() Adodc1.Recordset.AddNew '将文本框中用户输入的各个字段值填入相应字段 ' time_count = time_count + 1 Adodc1.Recordset.Fields("帐号") = Text1.Text Adodc1.Recordset.Fields("密码") = Text2.Text Adodc1.Recordset.Update End Sub 参数修改模块程序: Private Sub Command1_Click() Dim i As Integer Dim bb As New ADODB.Recordset Dim aa As Variant aa = Adodc1.Recordset.Bookmark Text1.Locked = False Text2.Locked = False Text3.Locked = False Text4.Locked = False Text5.Locked = False Text6.Locked = False Text7.Locked = False Text8.Locked = False Text9.Locked = False Adodc1.Recordset.Update '增加空白记录 Text1.SetFocus Command1.Enabled = True Command7.Enabled = True End Sub Private Sub Command7_Click() Form5.Hide Form1.Show End Sub Private Sub MSComm1_OnComm() Dim Buffer As Variant ' 设置并打开端口 MSComm1.PortOpen = True Buffer = Text1.Text Buffer = Text2.Text Buffer = Text3.Text Buffer = Text4.Text Buffer = Text5.Text Buffer = Text6.Text Buffer = Text7.Text Buffer = Text8.Text Buffer = Text9.Text MSComm1.Output = Buffer End Sub 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。 学位论文作者(本人签名): 年 月 日 学位论文出版授权书 本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。 论文密级: □公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议) 作者签名:_______ 导师签名:_______ _______年_____月_____日 _______年_____月_____日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 二〇一〇年九月二十日   毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 二〇一〇年九月二十日 致 谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师***老师、和研究生助教***老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在农大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 温湿度传感器 MAX232 A T 8 9 C 5 2 控制电路 执行部件 滴灌系统 A/D 温室大棚 LED 显示屏 光照度传感器 排气扇及喷雾设备 遮阳幕 上位测控系统 MSComm串口通信 RS232 串 行 通 信 用 户 信 息 管 理 实时数据显示 数 据 趋 势 图 历 史 数 据 查 询 参 数 修 改 图2.1 系统原理图 RS232 MSComm控件 MAX232 上位测控系统 现场测控系统 上位测控系统软件系统 串行通信 用户信息管理 实时数据显示 历史数据趋势图 历史数据查询 标准参数修改 开始 否 失败 失败3次 登陆 是 退出 成功 新建用户 登陆 开始 调用数据库 在DataGrid控件里显示数据 结束 开始 设置查询起始时间 调用ADODC对象 在DataGrid对象里显示数据 结束 开始 刷新picturebox控件 是 绘制曲线 绘图是否超过界面 否 结束 开始 打开参数修改界面 进行参数修改 修改后的参数存入数据库 将参数修改了后的显示到主界面 通过MSCOMM控件传入MAX232 结束 1 _1234567895.vsd
本文档为【智能温室上位控制系统毕业设计论文(单片机vb)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
不系舟红枫
从教近30年,经验丰富,教学水平较高
格式:doc
大小:1MB
软件:Word
页数:0
分类:工学
上传时间:2019-01-21
浏览量:3