《水塔供水远程自动控制》论文 - 图文

更新时间:2024-06-25 11:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

***大学

信息科学与技术学院毕业论文

课题名称: 学生姓名: 学 号: 学 院: 专业年级: 指导教师: 职 称: 完成日期:

水塔远程供水自动控制

信息科学与技术学院 电子信息工程2010级

二○一四年六月四日

摘要

水塔远程供水自动控制

学生: 指导教师:

[摘 要] 在信息化迅速发展的今天,我国许多地区水塔供水系统的硬件设施和软件技术落后,在水井距离用水点较远的场合,通常需要水塔来供应生产、生活用水,然而,人工启动水泵的上水效率低,而且难以把握水位,而国内一般的解决方案是用电台在水塔和泵房之间通信,但电台信号容易受到高压线、变电站等强电磁信号的干扰,如何方便、快捷的实现管理者与水塔之间的自动控制,是目前所需要解决的关键问题。本课设计实现了一个基于SMS短消息的单片机控制系统,采用模块化设计方法,编写了水位检测、短信远程控制、继电器水泵控制三个模块,利用水位检测系统自动控制水塔内的液面高度,最终以短消息的形式发送给管理者,从而实现水塔的远程自动控制。

[关键词] SMS短消息,水位检测,继电器,自动控制

I

Abstract

Remote supply automatic control of the water tower

Students:fubo

Teacher: zhanggengxin

Abstract: With the rapid development of science and technology, in zip code, statistics, reports, financial statements, Bank bills dealing with a large number of characters, such as information recorded occasions, handwritten digit recognition system of requirement has become stronger and stronger, how easily and quickly the number entered in the computer has become a key issue relates to the popularization of computer technology. This article design implementation has a based on Matlab software of handwriting body digital recognition system, used module of design method, write has camera entered, and directly read pictures, and write Board entered three a module, using camera, tools, will to text form exists of handwriting body digital entered into computer, completed on handwriting body digital pictures of collection, and design has a handwriting digital recognition method, on handwriting body digital image for pretreatment, and structure features extraction, and classification recognition, eventually to text form output digital, to implementation handwriting body digital of recognition.

Key words: Pretreatment, structure feature extraction, classification and recognition, handwritten digit recognition.

II

目录

目 录

第一章 引言 ................................................................................................................ - 1 - 1.1 课题背景 ............................................................................................................. - 1 - 1.2 课题研究目的及意义 ......................................................................................... - 2 - 1.2.1 水塔供水远程自动控制的研究目的 .......................................................... - 2 - 1.2.2 水塔供水远程自动控制的研究意义 .......................................................... - 2 - 1.3 课题研究现状及发展趋势 ................................................................................. - 2 - 1.4 课题整体结构 ..................................................................................................... - 3 - 1.5 课题难点分析 ..................................................................................................... - 4 - 第二章 开发运行环境 ................................................................................................ - 5 - 2.1系统开发环境和运行环境 ................................................................................. - 5 - 2.2开发工具介绍 ..................................................................................................... - 5 - 2.2.1 硬件部分介绍 .............................................................................................. - 5 - 2.2.2 软件部分介绍 .............................................................................................. - 6 - 第三章 水塔供水远程自动控制系统构成及原理 .................................................... - 8 - 3.1 自动控制基础知识 ............................................................................................. - 8 - 3.2水塔供水远程自动控制系统构成 ..................................................................... - 8 - 3.3水塔供水远程自动控制系统原理 ..................................................................... - 9 - 3.3.1水位检测 ....................................................................................................... - 9 - 3.3.2单片机控制 ................................................................................................. - 10 - 3.3.3短息模块 ..................................................................................................... - 11 - 第四章 水塔供水远程自动控制系统设计分析 ...................................................... - 12 - 4.1 主板电路图 ....................................................................................................... - 12 - 4.2 系统仿真与设计 ............................................................................................... - 12 -

III

目录

4.3 水塔供水远程自动控制程序设计 ................................................................... - 13 - 4.3.1水塔控制模块的设计 ................................................................................. - 13 - 4.3.2 SMS短信模块的设计 ............................................................................. - 17 - 第五章 系统功能评价及实验结果分析 .................................................................. - 23 - 5.1 识别系统性能的评价 ....................................................................................... - 23 - 5.2 实验结果分析 ................................................................................................... - 23 - 第六章 结论 .............................................................................................................. - 24 - 6.1 毕业设计总结 ................................................................................................... - 24 - 6.2 课题前景与展望 ............................................................................................... - 24 - 致 谢 .......................................................................................................................... - 26 - 参考文献 .................................................................................................................... - 27 - 附 录 .......................................................................................................................... - 28 - 附1、SMS部分主程序 ......................................................................................... - 28 - 附2、SMS短息配置程序 ..................................................................................... - 34 - 附3、GMS水塔控制程序 ..................................................................................... - 34 -

IV

第一章 引言

第一章 引言

1.1 课题背景

1948年,N.维纳的《控制论》一书,标志着自动化的理论基础——控制论正式诞生[1]。同年,C.E.香农发表了《通讯的数字原理》,标志着信息论的诞生[2]。连同1946年诞生的第一台计算机,它们标志着自动化技术进入了网络化与智能化的阶段,计算机技术的飞速发展大大推动了计算机控制系统的应用。同时,这些科技成果也标志着人类社会继农业革命和工业革命之后又一个伟大的变革——信息革命的开始。

自动控制在世界上已经有数百年的历史,而且被人们广泛的应用,然而,在当今社会里,如何将自动控制与人们更复杂的需求结合在一起,已成为影响人机效率的一个重要瓶颈,也关系到自动控制能否真正的走进千家万户和得到广大人民群众的普及应用。

水塔远程自动控制是自动控制与远程通信技术(The automatic control

and Remote communication)的结合,它研究的对象是:如何利用手机短信远

程遥控水塔的工作状态。

在整个控制领域中,最为困难的就是将自动控制与远程通信相结合。从目前来看,尽管人们在自动控制、远程通信的研究中已取得很多成就,但是在二者相结合的实际应用中并不多见,覆盖也不够全面。而在远程自动控制这个方向上,经过多年研究,研究工作者已经开始把它向各种实际应用推广,为水塔远程自动控制技术提供了一种解决方案。

1954年《工程控制论》出版,标志着工程控制学科的正式诞生[3]。工程控制包括各种工程领域,从被控制对象的性质来划分,可分为过程自动化和电气自动化两大类,但这种约定俗成的称呼并不贴切。过程自动化的特征是被控对象中所加工的材料主要是液体、气体和粉体等流体,或许称为流体处理过程控制或自动化更合适。电气自动化的特征是被控对象所处理的是元件、部件的加工和装配,或许叫做元部件处理过程控制或自动化更贴切。

- 1 -

大学学士学位论文

1.2 课题研究目的及意义

1.2.1 水塔供水远程自动控制的研究目的

当前,我国许多地水塔供水系统的硬件设施和软件技术落后,在水井距离用水点较远的场合,需要水塔来供应生产、生活用水,人工启动水泵上水效率低,而且难以把握水位,而国内一般的解决方案是用电台在水塔和泵房之间通信,但电台信号容易受到高压线、变电站等强电磁信号的干扰。

课题通过对于水塔供水远程自动控制系统的研究,介绍了一种利用自动控制技术及SMS远程通信相结合的仿真模型,利用我们所掌握的电子信息工程的专业知识来实现,进而完成水塔供水远程自动控制系统的设计。 1.2.2 水塔供水远程自动控制的研究意义

水是人类不可缺少的资源,供水服务和人们生活息息相关。城市人们的生活用水和饮用水都来自各供水系统,供水系统的供水质量和人们健康密切相关。 新型供水系统的研究和实施及其自动化,在提高供水质量和供水服务,改善人们生活水平,方便用水用户和节省供水系统人力资源等方面有重大的意义。本课题能够提高对SMS远程通信的理解与认识,锻炼分析问题,解决问题的能力;获得独立策划、实施课题,并按照既定计划进行开发的经验,以及查找相关文献的能力。每个仿真模型建立的过程,就是一次对专业知识的巩固、完善与提高。同时可以在仿真平台上展现的创造性、想象力。 1.3 课题研究现状及发展趋势

在日常生产和生活中常遇到水位的检测问题。从20世纪80年代开始 ,一些发达国家就借助于微电子、计算机、光纤、超声波等高科技使水位自动计量呈现出集功能、精度和现场于一体的新水平。

近年来,随着工业的发展,计算机、微电子、传感器等高新技术的应用和研究,水位仪表的研制得到了长足的发展,以适应越来越高的应用要求。目前,水位测量技术已经广泛的运用在工业部门和日常检测部门中。例如:水位测量技术在石油、化工、气象等部门的应用。在测量条件和环境来说,有的测量系统被运用在十分复杂的条件与环境中。例如:有的是高温高压,有的是低温或真空,有的需要防腐蚀、防辐射,有的从安装上提出苛刻的限制,有的从维护上提出严格的

- 2 -

第一章 引言

要求等。这些都大大的提高了对测量技术的要求。所以能实现测量的无接触与智能化是水位测量计现在的主要发展方向。

在现代工业生产中,常常需要测量容器中水位的水位。在一般的生产过程中,水位测量的目的主要是通过水位测量来确定容器里的原料、半成品或产品的数量,以保证生产过程各环节物料平衡以及为进行经济核算提供可靠的依据;另外还为了在连续生产的情况下,通过水位测量,了解水位是否在规定的范围内,从而维持正常生产、保证产品的产量和质量以及保证安全生产。水位的测量在工业生产过程中的作用已经相当重要。

在目前市场上,按测量水位的感应元件与被测水位是否接触,水位仪表可以分为接触型和非接触型两大类[5]。接触型水位测量主要有:人工检尺法、浮子测量装置、伺服式水位计、电容式水位计以及磁致伸缩水位计等。它们的共同点是测量的感应元件与被测水位接触,即都存在着与被测水位相接触的测量部件且多数带有可动部件。因此存在一定的磨损且容易被水位沾污或粘住,尤其是杆式结构装置,还需有较大的安装空间,不方便安装和检修。

非接触型水位测量主要有微波雷达水位计[6]、射线水位计以及激光水位计等。顾名思义,这类测量仪表的共同特点是测量的感应元件与被测水位不接触。因此测量部件不受被测介质影响,也不影响被测介质,因而其适用范围较为广泛,可用于接触型测量仪表不能满足的特殊场合[7] [8],如粘度高、腐蚀性强、污染性强、易结晶的介质。 1.4 课题整体结构

我们的思路是利用ISIS 7 professional仿真软件建立一个模拟水塔供水远程自动控制系统,利用水位检测、短息传输、自动控制三个模块,通过水位检测收到的信号,作为自动控制的条件,经由短信传输模块发送到移动终端,最后通过移动终端发回来的信息与原来设定的密令一致时,自动控制器将给出相应的反馈,控制电磁继电器的开启与关闭,继电器则会单独接入一个外接水泵以及高压电源的外电路,使水塔实现上水功能。如图:1-1

[4]

- 3 -

大学学士学位论文

水位检测 判断液面高度采集信息 短信传输至移动终端 经信息回发控制系统 判断操作指令 继电器开启或关闭 外接电源水泵进行上水 图1-1 识别的基本思路框架图

1.5 课题难点分析

水位检测有很多种,早期大多采用机械原理,但近年来随着电子技术的应用,逐步向机电一体化发展,并且发展了许多新的测量原理。在传统原理中也渗透了电子技术及微机技术,结构有了很大的改善、功能有了很大的提高。根据水位测量所涉及的水位存储容器、被测介质以及工艺过程的不同,水位计类型的选用也不同。在进行水位测量前,必须充分了解水位测量的工艺特点,成本造价,以此作为水位计设计过程中的参考因素[9]。另外,通过AT指令实现人机之间的良好交互功能也是难点之一,短消息服务SMS(Short Message Service) [10]是GSM系统中提供的一种短消息实体之间通过短消息服务中心进行的信息收发的方式。短消息服务中心(SMSC:Short Message Service Center)是独立于GSM网络的一个业务处理系统,主要功能是提交、存储、转发短消息,并完成与PSTN(Public Switched Telephone Network:公用电话交换网)、Internet等网络的互通

[11]

,以实现来自其

他SME(Short MessageEntity),如人工台/自动台、资讯平台等的短消息的传递需求。因此,研究全面自动化的水塔远程自动控制的系统是一个相当有挑战性的任务。

- 4 -

第二章 开发运行环境

第二章 开发运行环境

2.1系统开发环境和运行环境

硬件环境:

单片机焊接电路一个。 移动终端一台。 软件环境:

Windows 7操作系统。 C语言编译环境。

2.2开发工具介绍 2.2.1 硬件部分介绍

本课题中,我们所用到的硬件有AT89S52芯片,AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程AT89S52引脚图 DIP封装Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止[12]。

无线模块采用的是华为GTM900-B,标准SIM 卡接口(1.8或3V)两路模拟音频接口电源接口 GSC 射频天线连接器 50¦? GSC 射频天线连接器 语音业务 支持FR、EFR、HR 和AMR 的语音编码支持免提通话,提供回声抑制功能 短消息业务 支持MO 和MT 点对点和小区广播短消息模式支持TEXT 和PDU GPRS 数据业务 GPRS CLASS 10 编码方式CS 1,CS 2,CS 3,CS 4 最高速率可达85.6Kbit/s 支持PBCCH 内嵌TCP/IP 协议:支持多链接,提供ACK 应答,提供大容量缓存 电

- 5 -

大学学士学位论文

路型数据业务 支持CSD 数据业务,最高速率可达14.4Kbit/s 支持传真:Group3 ,Class2.0 支持USSD 补充业务 来电显示、呼叫转移、呼叫保持、呼叫等待、三方通话等 集群功能 组呼,广播,私密呼叫等 STK功能 通过增强的AT命令支持STK功能 ROHS环保 符合ROSH环保认证要求。

晶振CRYSTAL、运算放大器TLC393、及一些电容电阻滑动变阻器等组成。

2.2.2 软件部分介绍

本课题中,我们所用到的软件是C语言,C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发[13]。

C语言被称作第三代计算机语言,最大的特点就是效率高,可移植性强其具体特点如下:

(1)运算符丰富

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 (2)数据类型丰富

C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 (3)C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 (4)语法限制不太严格,程序设计自由度大

虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。

- 6 -

第二章 开发运行环境

(5)允许直接访问物理地址,对硬件进行操作

由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。 (6)生成目标代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10へ20%。 (7)适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX、windows 98.windows NT;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。

本课题避开了硬件设备的不足,巧妙的运用软件来仿真硬件才能实现的实验结果,大大降低了实验设备要求,节约了人力和财力,避免了用硬件做实验的局限性。

- 7 -

第三章 水塔供水远程自动控制系统构成及原理

第三章 水塔供水远程自动控制系统构成及原理

3.1 自动控制基础知识

自动控制(automatic control)是指在没有人直接参与的情况下,利用外加的设备或装置,使机器、设备或生产过程的某个工作状态或参数自动地按照预定的规律运行。自动控制是相对人工控制概念而言的。自动控制技术的研究有利于将人类从复杂、危险、繁琐的劳动环境中解放出来并大大提高控制效率。自动控制是工程科学的一个分支。它涉及利用反馈原理的对动态系统的自动影响,以使得输出值接近我们想要的值。从方法的角度看,它以数学的系统理论为基础。我们今天称作自动控制的是二十世纪中叶产生的控制论的一个分支[14]。基础的结论是由诺伯特·维纳,鲁道夫·卡尔曼提出的。

为了实现各种复杂的控制任务,首先要将被控制对象和控制装置按照一定的方式连接起来,组成一个有机的总体,这就是自动控制系统。在自动控制系统中,被控对象的输出量即被控量是要求严格加以控制的物理量,它可以要求保持为某一恒定值,例如温度,压力或飞行航迹等;而控制装置则是对被控对象施加控制作用的机构的总体,它可以采用不同的原理和方式对被控对象进行控制,但最基本的一种是基于反馈控制原理的反馈控制系统。 3.2水塔供水远程自动控制系统构成

水位检测 系统 AT89S52单片机(判断水位高低,决定是否向短信模块发送指令)GTM900-B短信模块继电器(接收指令后开启)图 3-1 水塔供水远程自动控制系统结构图

其中三个模块的输入部分以及部分输出部分的设计将会在下一章中提到。

- 8 -

大学学士学位论文

3.3水塔供水远程自动控制系统原理

水塔水位控制系统是我国住宅小区广泛应用的供水系统,水塔供水的主要问题是塔内水位应该始终保持在一定范围内,避免“空塔”、“溢塔”现象发生。传统的控制方式存在控制精度低、能耗大的缺点,而自动控制原理,基于SMS的远程通信功能,实现继电器的远程开关控制,保持水位恒定以满足用水要求,从而提高了供水系统的质最。而智能控制系统的成本低,安装方便,灵敏性好,是节约水源,方便家庭和单位控制水塔水位的理想装置。

该系统是由移动终端控制水塔自动上水的系统,它主要是由主控板,短信模块,水位检测,继电器等部分组成。 3.3.1水位检测

为了研究水塔内水位的高低,从而实现对单片机的控制,首先要获得水塔内水位的信息,这时就会涉及到一个水位检测的问题,对水位进行阶段性统计,可获取水塔内水位的大致状况信息。

在本系统中,我们设计的这个水位检测系统,通过多方面的考虑,采用三线控制阀的方法,这样可以避免掉使用数模转换器。使设计更简便。也是设计过程中可能出现的错误也越少。

原理很简单,如图 3-2:

图 3-2 三线控制阀水位检测

对于我们的水塔系统来说,这样的设计已经够用了,我们将水位划分了3个档位,如图中所示,分别为A,B,C,当A入水,B没有入水的时候,就说明水位已经很

- 9 -

第三章 水塔供水远程自动控制系统构成及原理

低了,这时就需要加水了,他会传递一个电信号给单片机,通知单片机进行上水指令。当B入水,C,没有入水的时候,这是说明水位是正常的,不用做任何指令,我们设计要求的正常指令也是在A与C之间,但是当水位超过C的时候,这时一般是水泵已经开启,正在上水的时候会有这种情况,超过C就说明水位高了,因为水位不可能无限的增高,水塔的容量毕竟是有限的,所以这时就会提醒单片机给上水系统一个停止的指令,这样水位检测系统就已经实现了。如图 3-3

图 3-3 三线阀实物水位检测 3.3.2单片机控制

单片机控制就利用单片机中的AT89S52芯片的可编程的特点,对一些固定功能点进行编写和控制,本课程设计中我对单片机要求实现的功能是对信号的读取、对信息模块的控制,以及接收信息模块收到的指令,例如,我要求水位检测收集到的信号被单片机所接收,而单片机会对水位的高低做出判断,当单片机判断出现在的水位处在低水位状态,就会对短信模块发出信号,短息模块就会对用户的手机发送信息,当短息模块将接收到的信息在发送给单片机是,它会自动做出反应、识别信号,若它识别到的信号是对水塔进行上水,则对继电器实行通电闭合,当水位增长到水位检测的最高点时,单片机会接收到这一信号。对电磁继电器进行放电断开,这样水泵就会断电,上水就会停止,同时对短信模块发送命令,短信模块就会对用户发出信息,说明水塔供水已经停止,这样也会对用户做一个反馈,让用户知道系统是不是有问题,这样可以做一个验证。本课程设计就是本着这样的思想下实现的水塔供水远程自动控制系统,作为本系统的主导模块,单片机控制是对系统具有绝对影响力的一个部分。

- 10 -

大学学士学位论文

实物如图 3-4:

图 3-4 AT89S52 微控制芯片 3.3.3短息模块

短信模块在本系统中只是做为一个信息的传输工具,现在对于它所使用的硬件设施已经很成熟了,本课题我们使用的硬件模块是华为的GTM900-B,对于此硬件就不做过多介绍了,把线路连接上之后拿来使用就可以了。

实物如图 3-5:

图 3-5 GTM900-B模块

- 11 -

第四章 水塔供水远程自动控制系统设计分析

第四章 水塔供水远程自动控制系统设计分析

本次设计使用C语言实现该系统,其功能代码及硬件电路分别介绍如下。 4.1 主板电路图

本课题的硬件电路如下,功能主要分为三个模块,分别是水位检测模块、自动控制模块、以及SMS短消息模块,另外还有个外接电路的继电器。如图 4-1:

(a) (b)

图 4-1 水塔供水远程自动控制系统的电路图

4.2 系统仿真与设计

在protues仿真软件界面上,界面设计的电路如下。如图 4-2:

图 4-2 仿真电路图

- 12 -

大学学士学位论文

以上电路包括了水位检测,和短息模块等。

4.3 水塔供水远程自动控制程序设计 4.3.1水塔控制模块的设计

我们使用的AT89C52芯片,首先要做的就是定义管脚, sbit JQ = P2^0 ; sbit k1=P3^7;

bit biaozhi; //标志 uint getdate; uchar shuiwei;

sbit led1=P1^5; //工作指示 sbit led2=P1^4; //短信指示 sbit shuiwei_1=P1^2; //低水位输入 sbit shuiwei_2=P1^3; //高水位输入 sbit led3=P1^0; sbit led4=P1^1; sbit IGT=P2^1; bit biaozhi2; uint kk;

定义完管脚之后就需要定义通信指令,就好比我说“上水”单片机就会听懂一样,所以我们要给它定义一个标准。就是编译好的像口令一样的东西。我们与单片机对一下口令,他就知道你的意思了。弄完这些以后我们还要给它一个账号,在我们这个系统中也就是手机号,另外再给他一个接收账号,也就是他所发送的手机号,这样单片机就可以执行我们想要的操作了。

uchar code zifu1[]=\定义一个口令 uchar code zifu2[]=%uchar flag_biaozhi[]=\ 接收SC

uchar idata rbuff[128];

//串口接收数据缓存区

uchar numbuff[]=\ //此处修改为需要接收短信的

手机号码,注意要定义为字符串(\\0)

- 13 -

//继电器脚

//水位指示LED //水位指示LED

//接收标志位。01接收BD 23

第四章 水塔供水远程自动控制系统设计分析

uchar rcount; bit bit

//串口接收数据指针 //TC35注册

//收到模块“ok”标志

tc35_init_ok; receive_ok;

成功初始化完成标志 bit new_sms; bit Ring; bit

接下来的是程序的核心,那就是判语语句,一般程序功能的实现都会依赖判断语句的实现,要对水位检测到的电信号进行判断,并且要给短息模块一个反馈信息,而且当短信模块接收到手机发过来的信息时,这时也要对这个“口令”进行判断,不能说凡是单片机收到的信息都会作为下一步的指令,如果经过验证之后,是我们原定的指令,单片机就会执行相应的程序,相反要不是我们原定的指令,单片机则不予理睬。 (1) 短信接收判断语句:

void RECEIVE_DATA(void) interrupt 4 存

{

ES=0; if(RI) {

rbuff[rcount++]=SBUF; RI=0; }

//判断是否接收完毕

if((rbuff[rcount-1]==0x0a)&&(rbuff[rcount-2]==0x0d)&&(rbuff[rcount-3]=='K')&&

(rbuff[rcount-4]=='O'))

{ //换行

//回车 receive_ok=1; }

//判断是否为新短消息指示

//接收tC35发送的数据并缓

//收到新信息标志 //来电标志

//读到来电号码标志

clcc;

- 14 -

大学学士学位论文

if((rbuff[rcount-14]=='C')&&(rbuff[rcount-13]=='M')&&(rbuff[rcount-12]=='T')&&

(rbuff[rcount-11]=='I')&&(rbuff[rcount-1]==0x0A))

{ //换行 new_sms=1; }

else new_sms=0;

if((rbuff[rcount-6]=='R')&&(rbuff[rcount-5]=='I')&&(rbuff[rcount-4]=='N')&&(rbuff

[rcount-3]=='G'))//来电提醒

{ //换行

//回车 Ring=1; rcount=0; } else Ring=0;

if(rcount>128)rcount=0; ES=1; }

(2)判断水位高低判断语句: while(1) {

led3=shuiwei_1; led4=shuiwei_2;

if((shuiwei_1==1)&&(shuiwei_2==1)) //判断水位在哪个位置 {

shuiwei=0; }

if((shuiwei_1==0)&&(shuiwei_2==1)) {

shuiwei=1; }

if((shuiwei_1==0)&&(shuiwei_2==0)) {

- 15 -

第四章 水塔供水远程自动控制系统设计分析

shuiwei=2; }

if((biaozhi==0)&&(shuiwei==0)) {

if((shuiwei_1==1)&&(shuiwei_2==1)) {

biaozhi=1; led2=0;

delay_ms(1000);

Sendsms(\

//回复消息

led2=1; }

}

(3)回复短消息判断语句:

if((biaozhi2==1)&&(shuiwei==2)) {

if((shuiwei_1==0)&&(shuiwei_2==0)) {

biaozhi=0; biaozhi2=0; led2=0; JQ=1;

delay_ms(1000);

Sendsms(\ //回复消息 led2=1; } }

if(k1==0)

{ Delsms(1);//删除短信

//Readsms(1); //读短信

//Sendcmd(flag_biaozhi); //发送AT命令 }

- 16 -

大学学士学位论文

{ 信息 }

if(new_sms==1)

//查询新短息

led2=0; //读完成指示 delay_ms(1000);

Readsms(1); new_sms=0; delay_ms(1000);

Delsms(1);//删除短信 delay_ms(1000);

//读短信

if((flag_biaozhi[2]=='O')&&(flag_biaozhi[3]=='P'))//判断是OP

{

biaozhi2=1;

Sendsms(\ JQ=0; led2=1; } else {

Sendsms(\ //delay_ms(2000); led2=1; }

//回复消息

//回复消息

4.3.2 SMS短信模块的设计

在这个系统中短信模块起着一个功能连接或者是推动的作用,我们与单片机的交互也是靠着短信模块来实现的,所以这是改善用户体验的一个功能性模块,虽然短信模块有现成的硬件电路,但是使用的时候我们也要有相应的软件进行配置和驱动,设置如下。

#ifndef __SMS_H__ #define __SMS_H__

#include

- 17 -

第四章 水塔供水远程自动控制系统设计分析

#define uchar unsigned char #define uint unsigned int #define ulong unsigned long

extern uchar idata rbuff[]; extern uchar extern bit extern bit bit kai=0;

void Init_tc35(void);

//判断是否连接TC35

void Sendcmd(uchar *cmd); void Sendchar(uchar c); void Sendsms(uchar *q);

//发送AT命令 //发送一个字符

//向指定的号码发送短消息 //读取指定索引号的短信内容

//删除指定索引号的短信内容

data databuff[]; tc35_init_ok; receive_ok;

extern uchar rcount;

extern bit new_sms;

void Readsms(uchar index); void Delsms(uchar index); #endif

对手机卡的短信模块的连接,以及短息超时时的处理方法进行配置,其程序主要部分如下。 #include \

#define uchar unsigned char #define uint unsigned int #define ulong unsigned long

extern uchar numbuff[]; extern uchar flag_biaozhi[];

void Sendcmd(uchar *p) { while(*p)

- 18 -

//发送AT命令

大学学士学位论文

{ SBUF=*(p++); while(TI==0);

TI=0;

}

}

void Init_tc35(void)

{ uint i=0xffff; rcount=0; receive_ok=0; Sendcmd(\ while(receive_ok==0) { i--; if(i==0)

{ rcount=0; receive_ok=0; return;

}

}

receive_ok=0; rcount=0; delay(4000);delay(4000);

i=0xffff;

void Readsms(uchar index)

{ ulong i=0x1ffff;

bit es; receive_ok=0;

rcount=0;

//判断是否连接TC35

//超时还未响应则返回

//读取指定索引号的短信内容

//这个值不能再小

- 19 -

第四章 水塔供水远程自动控制系统设计分析

Sendcmd(\ Sendchar(index+0x30); Sendchar(0x0D); rcount=0; receive_ok=0; ES=es;

}

void Delsms(uchar index) { ulong i=0x5fffff; receive_ok=0; rcount=0;

Sendcmd(\ Sendchar(index+0x30); Sendchar(0x0D); while(receive_ok==0) {

i- if(i==0)

{ rcount=0; receive_ok=0; return;

}

}

receive_ok=0; rcount=0;

}

void Sendsms(uchar *q) {

//恢复中断

//删除指定索引号的短信

//删除等待5秒,有的时候删除短信很慢 //超时还未响应则返回

//向指定的号码发送短消息(英文消息)

- 20 -

大学学士学位论文

ulong i=0x1ffff;

//数据缓冲区指针回0

Sendcmd(\// AT+CMGS=\回车(目的地址)

rcount=0;

Sendchar('\ Sendcmd(numbuff); Sendchar('\ Sendchar(0x0D);

while(rbuff[rcount-2]!='>') {

i--;

if(i==0)

{ rcount=0; receive_ok=0;

return;

}

}

Sendcmd(q); Sendchar(0x0D); Sendchar(0x1A); receive_ok=0; i=0x5fffff;

安全

while(receive_ok==0) { i--; if(i==0)

{ rcount=0; receive_ok=0; return;

}

}

//等待TC35回应

//超时返回

//Ctrl+z发送短信

//发送短消息超时处理发送等待5s比较

//超时还未响应则返回

- 21 -

第四章 水塔供水远程自动控制系统设计分析

}

receive_ok=0; rcount=0;

最后我想说的是,以上的代码虽然可以实现水塔供水的自动控制,但是在本课题的设计上是没有水泵出现的,而是由一个继电器结束。这种从经济上考虑,或者是从外接电源的烦易程度上的综合考虑,最终决定省略外接电源的部分,由此带来的效果上的不直观或者使用上的麻烦,我深表歉意。

- 22 -

第五章 系统性能评价及实验结果分析

第五章 系统功能评价及实验结果分析

5.1 识别系统性能的评价

作为一个实际应用的系统,我们要用它的实际功能来验证其性能的高低,本课题的设计也不例外,评价指标除了水塔的水位试验以为,而且还要为用户创造更好的用户体验进行修改和补充。

对于一个水塔供水远程自动控制系统,可以用两个方面指标表征系统的性能: 第一、单片机的短信识别率=正确识别信息数/全部信息数*100% 第二、单片机全部运行正常率=正确运行数/全部运行数*100%

在实际实验也确实是遇到过类似的情况,有的时候单片机就是不识别我们发送的指令,并且找不到问题的原因,过了一阵之后还是原来的程序,它就一直运行正常了,这也是我很奇怪的地方,而且有时候在运行单片机的时候它的程序走不到最后就会卡住,而有的时候就很通畅的运行完成,这也是我很头疼的一个地方。 5.2 实验结果分析

在实验过程中,我们以实物进行验证,发现它可以完成了所有的程序,分别执行了相应的功能,但实验中偶尔也会出现程序卡死的情况,下图为在实验10次的情况下,各部分成功与失败的次数,用1表示成功,0表示失败。大致成功率在70%左右,短信接收验证正确率为90%以上,短息最后回馈手机的成功率在50%。

图 5-1 实验结果图

实验次数 正确识别信息

1 1

2 1

3 1

4 1

5 0

6 1

7 1 8 1

9 1

10 1

程序运行正确 1 1 0 1 0 1 1 1 0 1 - 23 -

信息回馈手机 1 1 0 1 0 1 0 0 1 0 结论

第六章 结论

6.1 毕业设计总结

经过这段时间的努力,我的毕业设计终于如期完成。在这期间,我查阅了大量的文献,对水塔供水远程自动控制有了比较深刻的了解,并在C语言的环境中实现了水塔的自动控制。结果表明对水塔的上水效率,和用户体验还是比较高的,基本达到要求。

本论文是对本次毕业设计的总结,主要做的工作有以下几点:

(1)查阅文献资料,对C语言进行调研,在对实现我要求功能的技术可行性进行分析。

(2)熟悉C语言的编程环境,并对C语言进行深入的学习。 (3)确定硬件电路的初步设计方案,并在仿真软件中进行分析。 (4)焊接硬件电路。

(5)编写适合本硬件电路的C语言程序。

本次毕业设计还存在较多需改善和完善的工作,具体有以下两点:

因为水塔毕竟是一个相对较大的物体,因此维护起来也相对不方便,而对于我系统的稳定性还是不能过多的保证,毕竟在试验中出现过非预期的结果,因此还需要改善,将稳定性能提高,这样才不用经常的维护,给人们减少了许多不必要的麻烦。

另外短信控制水位也只是一个无形的控制,你只是知道它应该工作了,但是它真实的情况我们是看不见的,所以,在以后的发展趋势应该是一种偏于视频化的水塔远程供水自动控制,不光可以控制水位,也可以看见水塔内的真实情况,这样人们就能够知道什么时候水塔是正常工作的,什么时候是因为有问题而停止工作,这也是作为用户体验的一个改进。

6.2 课题前景与展望

随着我国经济发展速度快速增长和水资源开发活动的大力开展,水资源保护压力越来越大,对利用水资源的各个环节都有较高的要求,而目前国内供水水塔打水环节依旧薄弱,主要可分为如下几种:(1)人工水泵打水方式,该方式打水

- 24 -

大学学士学位论文

工作人员由于在地面无法判断水塔内水位而需上到水塔上面观察,劳动强度大,危险性大;(2)变频打水,该方式适应场合要求高,供水网络要求稳定,否则需在供水网变化时对设定水压进行调节,属间接控制水塔水位的方式;(3)水位信号控制方式,该方式直接控制水塔水位,对供水网的变化不受约束,但当水塔与泵房距离较远时,控制线路布设工作量大,投资大[15]。

因此本系统特别是针对这种现象给出了一个解决方案,就是用短息控制来代替复杂的线路,这样不仅节约人力,财力,同时实现了现代化的要求,而且自动控制上水系统,也减少了人工实施的高压危险性,在高新技术发展的今天,相信这种控制理论一定会成为主流的方法论。

- 25 -

致谢

致 谢

毕业设计完成了,我们衷心地感谢所有在这期间指导和帮助过我们的人。 首先,我要感谢我的师哥,在选题的时候他们为我们提出了宝贵的意见。 然后,感谢所有同学、同事的支持、当我遇到不懂的问题时,他们都会鼓励和帮助我。积极的帮助我解决问题,才使毕业设计和论文如期完成。

最后,感谢我们的导师老师。在整个毕业设计过程中,老师给予了我们悉心的教诲与指导,有了塔他理论上与技术上的大力支持,才使我的毕业设计得以顺利开展。从老师身上,我们也看到了力求完美、务实创新的科研态度,老师高效、严谨的科学作风,让我们受益匪浅。相信这种精神会一直伴随着我,是让我受用一生的精神财富。

- 26 -

参考文献

参考文献

[1]1948年,N.维纳的《控制论》

[2]1948年,C.E.香农发表了《通讯的数字原理》 [3]1954年,钱学森发表了《工程控制论》[3]

[4] 王化祥.自动检测技术[M]. 北京:北京化学工业出版社,2004.1-9. [5] 秦永烈.物位测量仪表[M].北京:北京机械工业出版社,1978.19-26. [6]A.M.Zaman,H.M.Malano,B.Davidson.Anintegratedwatertrading-allocation model,Applied

to

a

water

market

in

Australia[J].agricultural

water

management,2009(06).

[7] Brown J, Shipman B, Vetter R. SMS: The Short Message Service. Computer [J] 2007, (12):106-110.

[8] 孙晓松,傅先凤,何志明.远程供水监控系统设计[J],计算机测量与控 制,2005 .13(4 ):335一337

[9] 彭世琪.国外节水农业技术发展特点和趋势[J].中国农技推广,2001(04).

[10] Brown J, Shipman B, Vetter R. SMS: The Short Message Service. Computer [J] 2007, (12):106-110.

[11]崔福义,李圭白.城市供水系统监控和自动化技术设备情况介绍[R ] .2001

[12] AT89S52单片机基础项目教程 张平。赵光霞主编。--北京:北京理工大学出版社,2012.9 [13] C语言程序设计 任文,孔庆彦 机械工业出版社 2009-7-1 [14]《自动控制原理》胡寿松 科技出版社 2001(第四版) [15] 王华.水塔液位远程无线控制系统的研发[J].华章,2011(21). [16]张云,基于GSM的短消息业务协议分析,无线通信技术,2001

[17]刘涛,基于手机模块TC35的单片机短消息收发系统,电子技术,2003.3 [18]朱光喜,张耀华,如何解析GSM短消息,通信技术,2003.3

[19]王晋海,刘光昌,短信息服务SMS的开发,计算机工程与设计,2003.7 [20]施寒潇,吕强,一个SMS增值应用系统,计算机工程,2003.9

[21] Brown J, Shipman B, Vetter R. SMS: The Short Message Service. Computer [J] 2007,

(12):106-110.

- 27 -

附录

附 录

附1、SMS部分主程序

#include \

#define uchar unsigned char #define uint unsigned int #define ulong unsigned long extern uchar numbuff[]; extern uchar flag_biaozhi[]; void delay(uint m) { uchar n; for(;m>0;m--)

for(n=100;n>0;n--);

}

void delay_ms(uint z) //1 MS 延时{

uint a,b; for(a=z;a>0;a--) for(b=120;b>0;b--); }

void Sendcmd(uchar *p) { while(*p) { SBUF=*(p++); while(TI==0);

TI=0;

}

}

void Sendchar(uchar c) {

//延时m*0.2ms

//发送AT命令

//发送一个字符

- 28 -

大学学士学位论文

TI=0; SBUF=c; while(TI==0); TI=0; }

void Init_tc35(void)

{ uint i=0xffff; rcount=0; receive_ok=0; Sendcmd(\ while(receive_ok==0) { i--; if(i==0)

{ rcount=0; receive_ok=0; return;

}

}

receive_ok=0;

rcount=0;

delay(4000);delay(4000); i=0xffff;

Sendcmd(\ while(receive_ok==0) { i--; if(i==0) { rcount=0; receive_ok=0; return;

}

//判断是否连接TC35

//超时还未响应则返回 //关闭回显

//超时还未响应则返回- 29 -

附录

}

receive_ok=0; rcount=0;

delay(4000);delay(4000);

i=0xffff;

Sendcmd(\while(receive_ok==0)

//设置短消息格式

{

i--; if(i==0)

//超时还未响应则返回

{

rcount=0; receive_ok=0; return;

}

}

receive_ok=0; rcount=0;

delay(4000);delay(4000);

i=0xffff;

Sendcmd(\ while(receive_ok==0)

//判断是否加入网络

{

i--; if(i==0)

//超时还未响应则返回

{

rcount=0; receive_ok=0; return;

}

}

if(!((rbuff[rcount-9]=='1')|(rbuff[rcount-9]=='5'))) //有的卡注册成功是1而有的则是5

{

rcount=0; receive_ok=0;

- 30 -

大学学士学位论文

}

return;

//未加入网络则返回

receive_ok=0; rcount=0;

delay(4000);delay(4000); i=0xffff;

Sendcmd(\ //设置新短消息提示方式

while(receive_ok==0) { i--;

if(i==0)

{

rcount=0; receive_ok=0; return;

}

}

receive_ok=0; rcount=0;

tc35_init_ok=1;

}

void Readsms(uchar index) { ulong i=0x1ffff;

bit es;

receive_ok=0; rcount=0;

Sendcmd(\ Sendchar(index+0x30); Sendchar(0x0D); // receive_ok=0; while(receive_ok==0) {

i--;

//超时还未响应则返回

//全部初始化完毕置标志

//读取指定索引号的短信内容 //这个值不能再小

- 31 -

附录

//

}

receive_ok=0; rcount=0;

if(i==0) { }

rcount=0; receive_ok=0; return;

//超时还未响应则返回

es=ES; ES=0; //

rcount=0; receive_ok=0; ES=es;

//恢复中断

//关闭中断

flag_biaozhi[3]=rbuff[rcount-9]; //读取SC 标志 flag_biaozhi[2]=rbuff[rcount-10]; //

flag_biaozhi[3]=rbuff[rcount-9]; //读取SC 标志

flag_biaozhi[2]=rbuff[rcount-12];

void Delsms(uchar index) {

//删除指定索引号的短信

ulong i=0x5fffff; receive_ok=0; rcount=0;

Sendcmd(\Sendchar(index+0x30); Sendchar(0x0D); while(receive_ok==0) {

i--; if(i==0) { }

rcount=0; receive_ok=0; return;

//删除等待5秒,有的时候删除短信很慢

//超时还未响应则返回

- 32 -

大学学士学位论文

}

}

receive_ok=0; rcount=0;

void Sendsms(uchar *q) {

ulong i=0x1ffff; rcount=0;

//向指定的号码发送短消息(英文消息)

//数据缓冲区指针回0 //

AT+CMGS=\回车(目的地址)

Sendcmd(\ Sendchar('\Sendcmd(numbuff); Sendchar('\Sendchar(0x0D);

while(rbuff[rcount-2]!='>')//等待TC35回应

{

i--; if(i==0) { }

rcount=0; receive_ok=0; return;

//超时返回

}

Sendcmd(q); Sendchar(0x0D); Sendchar(0x1A); receive_ok=0; i=0x5fffff;

//发送短消息超时处理发送等待5s比较安全

//Ctrl+z发送短信

while(receive_ok==0) {

i--; if(i==0) {

rcount=0; receive_ok=0; return;

- 33 -

//超时还未响应则返回

附录

}

}

receive_ok=0; rcount=0;

}

附2、SMS短息配置程序

#ifndef __SMS_H__ #define __SMS_H__

#include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long extern uchar extern uchar

idata rbuff[]; data databuff[];

extern uchar rcount; extern bit extern bit

tc35_init_ok; receive_ok;

extern bit new_sms; bit kai=0;

void Init_tc35(void);

//判断是否连接TC35

//发送AT命令 //发送一个字符

//向指定的号码发送短消息

//读取指定索引号的短信内容

void Sendcmd(uchar *cmd); void Sendchar(uchar c);

void Sendsms(uchar *q); void Readsms(uchar index); void Delsms(uchar index); #endif

//删除指定索引号的短信内容

附3、GMS水塔控制程序

#include \#include \#include \#include \

- 34 -

大学学士学位论文

#include

#define uint unsigned int #define uchar unsigned char

sbit JQ = P2^0 ; //继电器脚 sbit k1=P3^7;

bit biaozhi; //标志

uint getdate; uchar shuiwei;

sbit led1=P1^5; //工作指示 sbit led2=P1^4; //短信指示

sbit shuiwei_1=P1^2; //低水位输入 sbit shuiwei_2=P1^3; //高水位输入

sbit led3=P1^0; //水位指示LED sbit led4=P1^1; //水位指示LED

sbit IGT=P2^1; bit biaozhi2; uint kk;

uchar code zifu1[]=%uchar code zifu2[]=\

uchar flag_biaozhi[]=\ uchar idata rbuff[128];

uchar numbuff[]=\ 注意要定义为字符串(\\0)

//uchar numbuff[]=\ uchar rcount;

bit

tc35_init_ok;

//接收标志位。01 接收BD 23 接收SC //串口接收数据缓存区

//此处修改为需要接收短信的手机号码,

//串口接收数据指针

//TC35注册成功初始化完成标志

- 35 -

本文来源:https://www.bwwdw.com/article/lzo3.html

Top