水质监测数据传输网络设计gai_第1页
水质监测数据传输网络设计gai_第2页
水质监测数据传输网络设计gai_第3页
水质监测数据传输网络设计gai_第4页
水质监测数据传输网络设计gai_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-1-水质监测数据传输网络设计陈梦竹电子信息工程学院电子信息工程专业2016级指导教师:刘汉奎摘要:随着电子技术的不断进步,新概念的不断提出,人们对于生活的要求也在不断的提高,智能化自动化的概念也逐渐的深入人心。伴随着生命之源的不断消耗,人们对于淡水资源的关注度也在提高。本课题就是以智能检测为主题进行设计的一款集检测、监测于一体的水质在线监测系统。本系统能够实时监测温湿度、水位、浑浊度值,并可以通过无线模块传输此时的监测值。用户采用手机APP即可查看此时检测的数据,非常方便。系统的硬件设计包括STM32系统处理器电路、温湿度传感器模块、水位监测模块、WIFI模块、浑浊度监测模块设计;软件设计主要包括系统主程序、温湿度采集程序、WIFI传输子子程序。最终通过实测表明系统设计达到设计要求,所有功能均实现。关键词:STM32;WIFI;温湿度;水位;浑浊度

WaterqualitymonitoringdatatransmissionnetworkdesignChenmengzhuschoolofElectronicInformationEngineering,Electronicinformationengineering,Class06Grade2016Instructor:PengTingAbstract:Withthecontinuousprogressofelectronictechnology,newconceptsareconstantlyputforward,people'srequirementsforlifearealsoconstantlyimproving,theconceptofintelligentautomationisalsograduallydeeplyrootedinpeople'sminds.Alongwiththecontinuousconsumptionofthesourceoflife,people'sattentiontofreshwaterresourcesisalsoincreasing.Thissubjectisanonlinewaterqualitymonitoringsystemwithintelligentdetectionasthetheme.Thesystemcanmonitortemperatureandhumidity,waterlevelandturbidityinrealtime,andcantransmitthemonitoringvaluethroughwirelessmodule.TheusercancheckthedetecteddatabyusingthemobileAPP,whichisveryconvenient.ThehardwaredesignofthesystemincludesSTM32systemprocessorcircuit,temperatureandhumiditysensormodule,waterlevelmonitoringmodule,WIFImoduleandturbiditymonitoringmodule.Thesoftwaredesignmainlyincludesthemainprogramofthesystem,temperatureandhumidityacquisitionprogram,WIFItransmissionsub-subroutine.Finally,thetestshowsthatthesystemdesignmeetsthedesignrequirementsandallthefunctionsarerealized.Keywords:STM32;WIFI;Temperatureandhumidity;Thewaterlevel;turbidity

目录1绪论 -5-1.1设计背景 -5-1.2设计现况和意义 -6-1.3本文主要内容 -6-2系统的方案设计 -7-2.1系统主要模块 -7-2.2系统结构 -7-3系统的硬件设计 -9-3.1主处理器系统电路 -9-3.2温湿度模块 -9-3.3水位监测模块 -10-3.4浑浊度检测模块 -10-3.5Wifi模块接口 -11-4系统的软件设计 -13-4.1主程序 -13-4.2温湿度检测子程序 -14-4.3Wifi传输子程序 -15-5系统测试 -18-5.1测试流程 -18-5.2测试结果 -19-结论 -21-参考文献 -22-附录 -23-致谢 -52-

1绪论1.1设计背景水是生命之源,人类在生产生活中都离不开水。在地球水圈中,水资源的总量为1.37×,其中海水约占总量的97.3%,淡水仅占其2.7%。淡水所占比例不但少,而且大部分分布在地球南北极冰雪覆盖下的冰川、冰盖中,而可利用的淡水资源就只有河流、淡水湖和地下水的一部分,还不到总量的1%[1]。现如今随着社会经济的发展、科学的进步和人民生活水平的提高,环境污染越来越严重,其中,水环境污染最为严重。在水资源日益短缺的今天,水质问题受到了更多地关注,因此对水质进行测试能使我们更好地保护水资源,保证合格的水质,这对正常生产、保证产品质量和人们健康具有非常重要的意义。随着中国社会经济的快速发展,城市化和工业化的加速,城市和工业废水大量流入江河湖泊水库,地表水和地下水污染严重,问题日益严重。根据中国环境状况公报,2001年全国13个主要水文系统(扬子江、黄河、珠江等)控制的400个省级水质监测特征中,56%与第一类水质有关。这个增加率为26.1%,第五类的水质介绍增加了16.1%。显示了我国的水质污染有每年减少的倾向。第五类水质为43.0%。第二类湖泊只占7%。据2006年统计,由于水污染,中国每年遭受700亿元的经济损失。保护水环境和治理水污染是我国经济发展的急迫问题。地球上的土地面积很少,大部分的部分都是水,所以说地球还可以成为一颗水星,但是尽管水占地球的大部分区域,而其中的淡水资源却很少,整体的淡水资源只占地球的百分之一。就在这仅有的百分之一的淡水资源随着工业化的破坏和人们的不节约,在很多淡水都是冰山的时候,人们可用的淡水也越来越急缺。随着电子技术、传感器技术、计算机技术、现代通信技术等高新技术的发展,使安全技术逐渐发展起来。人们也开始逐渐关注节约水资源和针对污染水质进行治理。对于水质的检测国家和社会也是逐渐增加了关注度和支持力度,技术人员也不断地更新检测技术,对于检测方案也是越来越多。1.2设计现况和意义进入二十一世纪以来,电子技术的概念不断进步和发展,人们对于计算机,物联网都有了一定的认识和基础,慢慢接受并享受电子技术带来的方便和快捷,人们的生活水平也在不断的提高,随着温饱问题的解决,生活的质量要求也随之升高,人们更多地注重于安全,这个安全包括:生活安全和食品安全,尤其是水质安全问题。这时,电子技术和人们需求相结合就诞生了水质在线检测的这个新概念,以一个大型的物联网城市,进行分别连接各家各户的智能点,进而形成一个智慧城市的大框架,在这个大框架下,智能水质监测是最基础也是最重要的点,国家也在积极支持和发展这方面的技术和方法,智能检测成为时代的主题。水质监测的重点是特定的含水层(例如河流、湖泊、水库、海洋)。对水质的几个参数进行测定和分析,对污染物质的种类和污染物质浓度的状况进行测定和评价。科学家不仅要管理污染源,还要紧急处理水污染事故。另外,政府制定开发计划,支持环保部数据,加强水生环境保护,水质监测对加强水环境保护和管理非常重要。解决我国的水污染危机。现在,世界上对水质监测的重视程度很高,各国都制定了符合实情的水质标准和水质监测标准。水质标准和水质监测技术标准也在制定中。例如,国家地表水质标准(GB3838.ANE2002)、国家地下水质量标准(GB/T1448.93)和水质监测标准(SDL27.84)。目前市场上的主要的水质监测探测器是人工进行化学监测,消耗人工和资源,而且要得到水质的结果不及时。针对这种情况,实时水质监测系统就显得尤为重要。经过特定的水质检测器进行定点水质检测,经过微系统处理器获得该点的水质信息,并实时传输到液晶显示模块上。该系统将实时显示水质情况,可以做到在线观看。水质在线监测系统是针对水质的安全风险而设计的,如水的一些参数:温度,浑浊度,湿度,水位等。1.3本文主要内容本文所设计的水质数据监测系统以STM32单片机为控制核心,电路按照实际电路功能划分,通过具体的硬件电路设计结合软件编程,实现了所需要的基本功能。每一章的具体内容如下:第一章绪论主要讲述了课题研究的背景、研究意义以及国内外研究现状,通过对比表明了当前研究的必要性;第二章主要讲述了系统总体设计过程,首先阐明了系统设计要求,随后介绍了系统设计的各个模块,最后介绍了系统整体结构;第三章主要是讲述了系统的硬件设计过程,包括STM32系统处理器电路、温湿度传感器模块、水位监测模块、WIFI模块、浑浊度监测模块设计;第四章主要讲述了软件设计,主要包括系统主程序、温湿度采集程序、WIFI传输子子程序;第五章讲述了系统的测试过程以及测试结果,并给出相应详细的分析过程。

2系统的方案设计2.1系统主要模块1.处理器采用STM32单片机作为系统控制器,STM32F103RCT6是由意法半导体公司出品的STM32F103系列的微处理器。STM32最高频率可达72MHz,它有零等待的存储器访问、基于哈佛结构并带有3级流水线特性和其高效的处理效率保证能够实时高效的处理水表取数和上传数据。STM32自带64k字节Flash,它具有多种低功耗模式:等待、活跃停机、停机模式,外设的时钟可单独关闭。在停机模式下,STM32的功耗仅仅4.5uA左右,完全能够满足智能控制的供电要求,这实现并保证了整个系统的低功耗特性[9]。2.无线通信模块Esp8266ex是一个完整且集成的WLAN网络解决方案,可以独立运行,也可以作为另一个主机MCU上的从属运行,如果Esp8266ex配备了应用处理器作为设备中唯一的应用处理器,则可以直接从外部闪存启动。内存有助于提高系统性能并减少内存需求。如果esp8266ex负责WLAN适配器的任务,则可以将其添加到任何基于微控制器的设计中。只需通过SPI/SDIO或I2C/UART即可轻松实现连接。esp8266ex除了具有WLAN功能外,还集成了32位处理器和Tensilial106钻孔系列的SRAM,具有强大的处理和存储选项。乐信提供的软件开发套件(SDK)包含各种示例代码。Esp8266ex§122200Grad§2;内部集成包括天线开关,RF巴伦,功率放大器,低噪声接收器放大器,滤波器和电源管理模块,因此整个解决方案只需很少的外部电路,并且占用的电路板空间最小。ESP8266模块非常小(19mm*29mm),模块通过6个2.54mm间距的排针与外部连接,方便大家安装到自己的设备里面;相比TC35i,ATK-ESP8266体积更小,速率更高,功耗更低,支持的频段也更为丰富,因此系统采用该模块进行设计。3.温湿度监测模块在传统的信号测量标准系统中,必须以惊人的方式解决诸如不正确信息排序之类的技术问题,例如变量中的误差转换和电路中的电路偏差。另外,正常观察点是产生强信号干扰的弱电磁环境,并且模拟的温度信号易于失真,失真和指定。结果,用于测量温度的解决方案对于系统中的新数字温度的干扰是有效的;这些问题的解决方案是一种有效的解决方案,非常适合新的数字热传感器和更小,更精确和更高的电压,以及更广泛的电缆应用和网络。2.2系统结构该系统由监测终端和手机APP组成,监测终端负责监测水质数据,当开启时,WIFI通信自动连接,将采集的数据通过无线传输的方式传递到手机APP端,用户可以随时查看此时测量的实时数据。同时,监测系统可安装干电池和蓄电池两种电源,两种电源可自动切换,也可以只安装一种电源,供电方式多样。系统原理框图如下图所示。温湿度模块水位模块主控芯片WIFI模块手机APP温湿度模块水位模块主控芯片WIFI模块手机APP浑浊度模块浑浊度模块图2.2系统结构系统的监测终端由主控芯片、温湿度模块、水位模块、浑浊度模块以及WIFI模块构成,WIFI模块和手机APP进行通信。

3系统的硬件设计3.1主处理器系统电路该系统的主芯片使用STM32系列和STM323c8t6模型作为主芯片,获取传感器数据,同时通过算法处理数据。STM32系统所需的元件还包括起动模式选择电路、振动复位电路等,以便在电路设计时将两个ADC接口连接到传感器。在设计上追加了灯和按钮。设计要求系统与外部电路,设计原理图3.1。图3.1处理器系统电路STM32F103RCT6有3种复位方式:外部RST引脚复位,软件复位,看门狗复位。如图3.1,外部RST引脚从外部复位到NRST引脚复位脉冲一定宽度,从实现的微控制器的复位[10]。NRST引脚出厂配置为RST复位引脚应被配置为I/O端口,在ISP编程设定。如果NRST不在STC-ISP编程设置的I/O端口输入引脚NRST是芯片复位。RST复位引脚为高电平并保持至少24个时钟加为10μs,单片机将进入复位状态时,RST复位引脚回到低电平时,单片机结束复位状态,并从0000H部门的用户程序区启动正常工作。STM32F103RCT6单片机有两个时钟源:内部的R/C振荡器时钟和外部晶振时钟。工厂标准配置是使用芯片的R/C振荡器,其频率为8MHz,则内部的R/C振荡频率将会存在一个数字温度漂移[12],再加上制造错误的,因此内部的R/C振荡器只适合的时钟的频率不要求高精度的场合。单片机可以调整时钟频率。这是因为与多个动作速度相对应,这个单片机的动作电压高,很难得到定电源电压输出。特别是电池,因为放电时间可以产生减少的电压。这个宏处理器可以提供32个自由I/O,但是这个设计需要矩阵键盘,所以这个设计解决了一个非常重要的问题。3.2温湿度模块温湿度测量模块的引脚图和STM32的接口电路如图所示,其中SHT20工作在外部电源模式,STM32使用PA0和SHT20进行通信,如图3.5所示。当测温程序运行时,仅在一个1中的温度读数值,然后调用读取的程序的温度测量值。通过在读取数据时读取单片机单线接口、低电平和高电平。温湿度检测模块的外形及管脚排列如下3.2所示。图3.2温湿度检测模块3.3水位监测模块水位监视模块主要使用3个二极管的电流放大原理,当在液位高度将3个二极管的基板引导到正电极D时,在3个二极管的基板和发射器电极之间产生一定大小的电流。电源用于取得读取转换器。当液位高度将三个二极管基板引导至正电极时,模块主要使用三个二极管的电流放大原理。在三个二极管的底部和发射器电极之间产生一个大小的电流,在集电极和三个二极管的发射器电极之间产生几个电流。电阻产生的电流可以用来购买Ad转换器。图3.3水位监测模块3.4浑浊度检测模块浊度传感器TS-300B型测量洗涤水中的浊度(悬浮物的计数器),基于光学原理,传感器用于测量污水的不透明度或其他物质的浓度,并以特定波长接收发光二极管和光电二极管。KIE浊度传感器的工作原理:当光线穿过一定量的水时,光线的穿透量取决于该水中的脏物的量。当脏物的量增加时,穿透水样的光线随之减少,浊度传感器测量透过的光线量来计算洗涤水的浊度传感器将这些浊度测量值提供给洗衣机或洗碗机控制器,由洗衣机和洗碗机控制器决定各个洗涤周期的时间。这些判断基于净水的测量值(在洗涤周期开始时测量得)和洗涤结束时测量的洗涤水的测量值之间的比较。通过测量洗涤水的浊度,在洗涤不是很脏的衣物时,洗衣机可以只洗需要的时间,从而节省了能源,这样最终用户节省了能源图3.4浑浊度监测模块3.5Wifi模块接口WIFI模块与STM32之间的通信是采用232通信串行接口,RS-232使用差分信号的负逻辑+2v+6v+0,6v-2v表示1.RS232a2个儿子和4个儿子。在RS232通信网络中,通常使用主机通信模式,即与多个接收机的主机计算机。当连接到RS-232的通信链路时,每个接口的“A”和“B”两端很容易连接到一对火炬对。然而,收发器具有7+12v的公共模式电压范围(RS-232),网络常忘记仅在满足上述条件时才正常工作。通信的稳定性和可靠性,并促发进一步被破坏的界面e.2:emi问题:发送驱动部的输出信号的共同模式,部分是低抵抗反馈通道(“ben信号场”),不需要源端部反馈电路的必要。作为辐射形状和大天线的总线起到外部辐射电磁波的作用。。WiFi模块原理图如图3.5所示,ESP8266芯片通过串行通信方式与主控模块进行数据通信,MCU通过指令配置WiFi模块接入局域网。如果要实现主控模块与云平台建立连接,实现数据交互,还需要让WiFi模块烧录机智云提供的与ESP8266模组配套的固件GAgent。向WiFi模块烧录固件时需要将GPl00接地,完成后将GPl00引脚悬空,模块才能正常工作图3.5Wifi模块

4系统的软件设计程序是复杂的任务,需要用适当的措施和方法来整理复杂的任务。这个步骤可以总结为三个点。第一,分析系统控制要求,通过具体分析复杂问题来确定算法。通过确定合理的计算方法和适当的数据结构来确定开发过程的阶段,这是制作质量程序的关键。这个项目的目的是根据算法绘制进程图。程序的框架,为了减少发生错误的可能性,根据算法和分辨率步骤来制作程序的目的。程序形成有机的整体。程序:程序数据的理想方法是结构编程方法,结构编程被设计为适当地限制可用的控制结构类型的程序的使用。特别是使用转换指令(“或指令”)来控制程序的复杂性,确保前一阶段和下一阶段的顺序与执行过程兼容,使程序易于理解。(d)首先是主软件,根据主程序的要求单独设计并测试功能二次方案。然后,模块连接到主程序,主程序被测试,软件构成整个系统。4.1主程序系统软件采用stm32单片机作为主芯片进行设计,采用C语言进行编程,实现了储能监测的过程。通图4.1为正常状态下软件运行的程序流程图,系统上电之后首先进行初始化工作,随后采集温湿度、水位以及水的浑浊度,采集完这些信息之后,将这些信息进行打包,打包之后通过WIFI进行传输,用户通过手机APP即可查看测量的实时数据。图4.1主程序软件流程图4.2温湿度检测子程序温湿度测量程序主要功能是读出传感器的温度值。要正确地读出温度值必须严格遵守单总线器件的命令序列,否则单总线器件不会响应主机。温湿度传感器模块程序流程图如图4.2所示。开始开始发写入指令初始化发读取指令结束图4.2温湿度检测子程序流程图4.3Wifi传输子程序STM32通过串口和WIFI芯片进行通信,控制WIFI模块首先应确定串口的硬件连接,然后启动串口,将串口初始化。将存储区数据取出并由串口发送出去,所有数据发送完毕,等待PC机发送命令数据,最终获取数据并返回。图4.3数据传输子程序流程图宏处理器根据AT指令控制无线模块,接着是AT指令。文档中的所有命令都从“或”到“或”,返回文字的末尾。在风格的返回顺序之后紧接着返回<>。所有的T以<>格式或>>>>x>形式显示时,命令为“x”,命令支持一个以上的参数。例如,吃饭的顺序是关闭或激活波动函数,DCE返回接收字符。在DTE中,根据值n.m.可以选择参数,没有分配值的情况是默认值。参数控制:ATS<n>ⅱ[m]ding]形式的命令,进行记录指标n>和参数<m>评价。在命令AT中,参数是可选的。没有指定的值的情况下,是默认值。扩展指令:一般来说,扩展类别和应用程序根据操作控制格式进行分类。在命令语法中,可以在括号内找到默认值。订单参数需要可选择的参数。这些参数必须用天马来区分。没有双引号,可按惯例忽略选定字符串的特征或结果空间中的TA返回空间的特征。选择部分之一是,你不能看所有的命令,不分大写字母和大写字母。使用命令时,因为AT命令的数量被放入相同的命令行的项目中,所以可以删除命令开始时或开始时的单词,只在命令行中使用。作为分隔符(“Point”)(“Point”和“Points”),例如Ate1&腺苷酸;w+f+icf+cfun;W命令可以操作到355个字符。输入命令不会发生错误。连续执行多个命令时,需要对AT命令(例如返回OK、CME错误、CMS错误等)做出最后的响应,然后继续执行命令。在程序设计中,数据信息主要通过模块传输。使用的AT指令请参照下图。所发送的IP地址由AT+CMGS=“133”限定,当模块返回到文本模式模块时,所发送的信息从1a发送到符号末尾。图4.4无线模块AT指令数据点的设计是开发中最重要的一个环节,因此,数据点信息和装置的信号定义活动,APP的手机的数据格式,并调整控制,确保安全与可靠传输。数据点主要由四个部分构成。识别名,读取,写入类型。数据类型和数据长度:标识符名称跟踪程序语言变量的名称,以便定义设备和手机APP程序中的数据点变量。闹铃和故障:闹铃,闹铃,故障的种类只接收家庭警报控制器的数据,不能下载。写入类型支持警报控制器的数据通信和手机数据传输。相关信息的处理和统计,为了容易被设计了报警和故障类型:阅读文章的类型是ブールタイプ名单类型,类型包括数字类型和扩张,扩张类型是数据长可以定义和数据内容。。图4.5单片机控制wifi模块流程图

5系统测试5.1测试流程根据所协商的调整程序,根据电力检测之前的电力检测程序,根据硬件和软件,从测试开始:图5.1系统调试示意图整个设备按照流程图的顺序分别接受单机检测、高电检测、子模块功能的实现和总线的调节。硬件调整是为了保证硬件系统的正确性。根据原理焊接的材料一定能包装。因此,在调整软件单元和硬件之前,需要进行认证。这是最基本的要素,整个系统的正常运作也很重要。事前测试的目的是连接电路,电路短路,开放,确保了没有焊接,使用数字表的硬件,元件是否被正确地那边,特别是容量极端密封并没有确认。因为焊装人的安全受到危险的状况,例如安装电气之后有发生爆炸的可能性。电力测试后的测试还没有被确认。必须测定各D点的电压值的一致性。“考试,特别是包装系统的电源电路的正常动作,电源和瓣膜电路。该系统在电源电路的输入和输出系统的整合性和模块的测量结果只,主要测定分和电源电路的正常输出电压的测量,简单介绍了。数百万个,各模块化电路,输入和输出的检测精度,并拥有数百万的表计算机。比如,用于红外传感器,还应把传感器安排在差别的环境中,观察网络到的数据是否与相应的趋势划一;对于本系统,在不同的应用背景和环境下,判断其是否正常工作,满足功能需求。该单元的调节通常包括测试电路的每个点的电位,包括额外的信号,尤其是静态和动态的调节,而不是活动装置的静态操作点。确定在前面的输出或信号测试单元中使用的各种指示符是否符合信号的幅度、波形、相位关系、放大、频率等设计标准。将静态及动态测试结果与设计指标进行比较,详细分析后对电路及参数进行合理修正。当单元电路被调整时,不能确定组件电路的整体性能是否良好,因此必须调整整个电路。设计指标测量结果将确定问题和解决方案,并对电路及其参数进行修正,直至电路整体性能完全符合设计要求。5.2测试结果下面对系统进行实际测试。首先对系统进行上电,系统正常运转,如下图所示。图5.2系统上电通过手机APP,我们可以看出此时的测量信息,如图5.3所示。图5.3系统测试信息随后,我们将水位传感器和浑浊度传感器放入测试杯子中,如图5.4所示。图5.4测试杯子随后我们可以看出测试的数据相应发生了改变,如图5.5所示。图5.5测试数据

结论本文所设计水质检测传输网络系统以STM32单片机为控制核心,电路按照实际电路功能可划分为STM32系统处理器电路、温湿度传感器模块、水位监测模块、WIFI模块、浑浊度监测模块,并进行了单元电路的具体设计,通过具体的硬件电路设计,实现了系统所需要的基本功能。虽然主要任务已经完成,但设计A基本满足要求和目标。为了改善很多功能,需要进一步的研究和开发。未来的锂电池能量比更高,体型更便捷化,相应的储能监测系统更完善。在版面设计的过程中,制作过程中出现了很多问题。例如,在开始选择标题文件时,是STM32<STM32f1×.C>的标题文件。然后,因为需要使用宏处理器的内部资源,所以下载时,由于子文档和原子文档不同,可以从IP燃烧器下载标头文件。在制作索引的过程中有可能会发生问题。在文件夹中添加文件,使其能够使用。不那样的话,就会发生大问题。对于程序写入,使用中断协同作用的需要也遇到许多问题,例如,如果计时器被中断的执行时间相对较短,则喷枪被中断的时间将被中断。这是数据传输链的问题。在这期间,完成了这个主题的设计,为了评价这几个月的工作,特别在以下领域努力了。在设计模拟的时候,为了避免不必要的设计和节省时间,我明白了选择和理解设备的重要性。从理论的角度看,我们面临的许多问题在理论上是明确的,但并不像我们在实践中想的那么简单。我们需要几次考试。接近理论。在编程方面,有很多开发语言,为了开发选择了C语言。因为非常便携,能比较简单的模块化。开发软件,在主控芯片上下载程序。

参考文献[1]周建阳;陈家乐.《基于STM32四轴飞行器的设计》.钦州学院学报,2015.2[2]刘宝琦;黄雪峰;关禄君.《煤矿气体监测通讯系统研究》.通信世界.2016.5[3]黄京.《现代电子技术在煤矿智能管理系统中的应用研究》.煤炭技术,2014.2[4]丁玲玲.《基于单片机的瓦斯检测报警仪的研究和设计》.数字技术与应用,2016.[5]赵大成,贾海燕.手机短信收发的AT指令控制[J],信息工程大报.2004.02.[6]赖寿宏微型计算机控制技术.机械工业出版社,2000.5.[7]李国勇.何小刚.阎高伟.过程控制系统.电子工业出版社,2013.1[8]姜志海.单片机原理及应用.北京:电子工业出版社,2005.7.[9]夏露易,石宗义.电路原理图与电路板设计教程.北京希望电子出版,2002.6.[10]化成英,童诗白.模拟电子技术基础.北京:高等教育出版社,2001.1.[11]阎石.数字电子技术基础.北京:高等教育出版社,2008.5.[12]李鸿.用单片机控制手机发短信息.电子技术应用,2002(1).[13]李朝青.PC机与单片机数据通讯技术[M].北京航空航天大学出版社,2000.[14]李娜;牛晓飞.《基于STM32的智能家居无线激光报警系统》.激光杂志,2013.10[15]王艳林;李东.单片机原理及应用教学实践系统设计.教育教学论坛,2014.6[16]RealTimeBiometricsbasedVehicleSecuritySystemwithGPSandGSMTechnology.N.Kiruthiga,L.latha,S.Thangasamy.[17]GSMRysioSistemuTaikymoErdvinemsKoordinatemsNustatytiAnaliC8JonasSkeivalas;DaliusRadis;VidmantasLiutkauskas.

附录程序#include"bsp_uart.h"#include"gizwits_product.h"#include"common.h"#include"pwm.h"unsignedintgui10msCount=0;unsignedintgui2sCount=0;externunsignedchargucUartRcvData;externunsignedchargucdest_temprature;externunsignedchargucdest_humidity;externunsignedchargucyellow_light;externunsignedchargucgreen_light;externunsignedchargucred_light;unsignedcharack=0;svoidStart_I2c(){GPIO_SetBits(GPIOA,GPIO_Pin_4);/*发送起始条件的数据信号*/delay_us(30);GPIO_SetBits(GPIOA,GPIO_Pin_5);delay_us(150);GPIO_ResetBits(GPIOA,GPIO_Pin_4);/*发送起始信号*/delay_us(150);/*起始条件锁定时间大于4μs*/GPIO_ResetBits(GPIOA,GPIO_Pin_5);/*钳住I2C总线,准备发送或接收数据*/delay_us(60);}voidStop_I2c(){GPIO_ResetBits(GPIOA,GPIO_Pin_4);delay_us(30);/*发送结束条件的时钟信号*/GPIO_SetBits(GPIOA,GPIO_Pin_5);/*结束条件建立时间大于4μs*/delay_us(150);GPIO_SetBits(GPIOA,GPIO_Pin_4);}断发送位*/elseGPIO_ResetBits(GPIOA,GPIO_Pin_4);delay_us(30);delay_us(150);/*保证时钟高电平周期大于4μs*/GPIO_ResetBits(GPIOA,GPIO_Pin_5);}delay_us(60);AD8591_DataPin_Configure_Input();/*8位发送完后释放数据线,准备接收应答位*/delay_us(60);GPIO_SetBits(GPIOA,GPIO_Pin_5);delay_us(60);GPIO_ResetBits(GPIOA,GPIO_Pin_5);delay_us(60); AD8591_DataPin_Configure_Output();}AD8591_DataPin_Configure_Input();for(BitCnt=0;BitCnt<8;BitCnt++){delay_us(30);GPIO_ResetBits(GPIOA,GPIO_Pin_5);GPIO_SetBits(GPIOA,GPIO_Pin_5);/*置时delay_us(60);}GPIO_ResetBits(GPIOA,GPIO_Pin_5);AD8591_DataPin_Configure_Output();delay_us(60);return(retc);}elseGPIO_SetBits(GPIOA,GPIO_Pin_4);delay_us(90);GPIO_SetBits(GPIOA,GPIO_Pin_5);delay_us(150);/*时钟低电平周期大于4μs*/GPIO_ResetBits(GPIOA,GPIO_Pin_5);/*清时钟线,钳住I2C总线以便继续接收*/delay_us(60);}#definePCF85910x90//PCF8591地址unsignedchargucShuiwei=0;unsignedchargucHunzhuo=0;voidAdPro(void){ ISendByte(PCF8591,0x40);IRcvByte(PCF8591);//ADC0模数转换4 可调0-5vbatteryPowergucShuiwei=IRcvByte(PCF8591);//ADC0模数转换4 可调0-5vbatteryPower ISendByte(PCF8591,0x41); IRcvByte(PCF8591);gucHunzhuo=IRcvByte(PCF8591);//ADC1模数转换4 可调0-5vbatteryPower}voidShowCheLiangStatus(void){//OLED_ShowCheSu(0,0,0); //OLED_ShowCheSu(18,0,1); //OLED_ShowCheSu(36,0,2); OLED_ShowNum(54,0,gucUartRcvData,3,16); }voidLampDetailInfoShow(unsignedintuiLampNum){}externunsignedintguiDistance1;//到另一个设备的距离externunsignedintguiDistance2;//到本设备的距离unsignedintguiDistanceReal2=0;unsignedintguiDistanceReal1=0;#defineBITBAND(addr,bitnum)((addr&0xF0000000)+0x2000000+((addr&0xFFFFF)<<5)+(bitnum<<2))#defineRDATA PBin(9) //红外数据输入脚//红外遥控识别码(ID),每款遥控器的该值基本都不一样,但也有一样的.//我们选用的遥控器识别码为0#defineREMOTE_ID0 externu8RmtCnt; //按键按下的次数externvoidHourAdd(void);externvoidMinuteAdd(void);externvoidDayAdd(void);externvoidMonthAdd(void);externvoidYearAdd(void);externunsignedintguiYear;externunsignedchargucUartRcvData1[50];//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行????if(!DHT11_get_databit())//T!{//判断从机是否发出80us的低电平响应信号是否结束???while((!DHT11_get_databit()));//printf("DHT11answers.\r\n");//判断从机是否发出80us的高电平,如发出则进入数据接收状态while((DHT11_get_databit()));return1;}return0;}voidDHT11_get_data(void){u8temp;if(DHT11_start_sampling()){//printf("DHT11isreadytotransmitdata\r\n");//数据接收状态??????U8RH_data_H_temp=DHT11_read_byte();U8RH_data_L_temp=DHT11_read_byte();U8T_data_H_temp=DHT11_read_byte();U8T_data_L_temp=DHT11_read_byte();U8checkdata_temp=DHT11_read_byte();/*Datatransmissionfinishes,pullthebushigh*/DHT11_DataPin_Configure_Output();DHT11_set_databit(TRUE);//数据校验temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);if(temp==U8checkdata_temp){U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;//printf("DHT11tempature%d.%d?humidity%d.%d\r\n",U8T_data_H,U8T_data_L,U8RH_data_H,U8T_data_L);}else{}}else{}}typedefunsignedcharBYTE;unsignedcharCY;BYTEBUF[8];//接收数据缓存区unsignedintdis_data=65535;//变量unsignedintguiGuangzhaodu=0;#defineBH_1750_SCL_Clr()GPIO_ResetBits(GPIOB,GPIO_Pin_11)#defineBH_1750_SCL_Set()GPIO_SetBits(GPIOB,GPIO_Pin_11)#defineBH_1750_SCL_Get()GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)#defineBH_1750_SDA_Clr()GPIO_ResetBits(GPIOB,GPIO_Pin_10)#defineBH_1750_SDA_Set()GPIO_SetBits(GPIOB,GPIO_Pin_10)#defineBH_1750_SDA_Get()GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOB,&GPIO_InitStructure);}voidBH_1750_SDA_IN(void){GPIO_Init(GPIOB,&GPIO_InitStructure);}voidBH_1750_IO_Init(void){ GPIO_InitTypeDefGPIO_InitStructure;/*第一步:打开外设的时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOB,&GPIO_InitStructure);}voidDelay5us(){delay_us(5);}/**************************************起始信号**************************************/voidBH1750_Start(){ BH_1750_SDA_OUT();BH_1750_SDA_Set();//拉高数据线BH_1750_SCL_Set();//拉高时钟线delay_us(5);//延时BH_1750_SDA_Clr();//产生下降沿delay_us(5);//延时BH_1750_SCL_Clr();//拉低时钟线}/**************************************停止信号**************************************/voidBH1750_Stop(){ BH_1750_SDA_OUT();BH_1750_SDA_Clr();//拉低数据线BH_1750_SCL_Set();//拉高时钟线Delay5us();//延时BH_1750_SDA_Set();//产生上升沿Delay5us();//延时}/**************************************发送应答信号入口参数:ack(0:ACK1:NAK)**************************************/voidBH1750_SendACK(unsignedcharack){ BH_1750_SDA_OUT();//写应答信号if(ack) { BH_1750_SDA_Set(); } else { BH_1750_SDA_Clr(); }BH_1750_SCL_Set();//拉高时钟线Delay5us();//延时BH_1750_SCL_Clr();//拉低时钟线Delay5us();//延时}/**************************************接收应答信号**************************************/unsignedcharBH1750_RecvACK(){BH_1750_SDA_IN(); BH_1750_SCL_Set();//拉高时钟线Delay5us();//延时CY=BH_1750_SDA_Get();//读应答信号BH_1750_SCL_Clr();//拉低时钟线Delay5us();//延时returnCY;}/**************************************向IIC总线发送一个字节数据**************************************/voidBH1750_SendByte(BYTEdat){BYTEi; BH_1750_SDA_OUT();for(i=0;i<8;i++)//8位计数器{ if(dat&0x80) { BH_1750_SDA_Set();//送数据口 } else { BH_1750_SDA_Clr(); }dat<<=1;//移出数据的最高位BH_1750_SCL_Set();//拉高时钟线Delay5us();//延时BH_1750_SCL_Clr();//拉低时钟线Delay5us();//延时}BH1750_RecvACK();}/**************************************从IIC总线接收一个字节数据**************************************/BYTEBH1750_RecvByte(){BYTEi;BYTEdat=0;BH_1750_SDA_IN();for(i=0;i<8;i++)//8位计数器{dat<<=1;BH_1750_SCL_Set();//拉高时钟线Delay5us();//延时dat|=BH_1750_SDA_Get();//读数据BH_1750_SCL_Clr();//拉低时钟线Delay5us();//延时}returndat;}//*********************************#define SlaveAddress0x46//定义器件在IIC总线中的从地址,根据ALTADDRESS地址引脚不同修改voidSingle_Write_BH1750(unsignedcharREG_Address){BH1750_Start();//起始信号-Oui.Rotationd'uneaiguilledansletempsVoid-motorshangsheng(void){C:}UnsignedcharI;Unsignedchar-J;For(j=0;j<160;j+){C:}For(i=0;i<8;i+){C:}Setmotorval(phase[i]);DelayuMS(1);réglagedevitesse-Oui.-Oui.-Oui.Void-motorxiajiang(void){C:}UnsignedcharI;Unsignedchar-J;For(j=0;j<160;j+){C:}For(i=0;i<8;i+){C:}Setmotorval(phase[i]);DelayuMS(1);réglagedevitesse-Oui.-Oui.-Oui.//arrêterlarotationVoid-motorstop(void){C:}Setmotorval(0x00);-Oui.Unsigned=char=gucbaojing=0;Unsigned=char=gucbaojingcount=0;Voidleddprocess(){C:}If((Guiguangzhaodu<500)\\124\\124(Guiguangzhaodu>45000)){C:}GPIO^usetbits(gpiob,GPIO^upin^8);-Oui.Else{C:}GPIO\\uresetbits(gpiob,GPIO\\pin\\8);-Oui.F((u8t`UData\\h<15)\\124\(u8t\\uData\\H>45)){C:}GPIO^usetbits(gpiob,GPIO^upin^9);-Oui.Else{C:}GPIO\\uresetbits(gpiob,GPIO\\pin\\9);-Oui.F((u8rh\\uData\\h<35)\\124\(u8rh\\uData\\H>90)){C:}GPIO^usetbits(gpiob,GPIO^upin^6);-Oui.Else{C:}GPIO\\uresetbits(gpiob,GPIO\\pin\\6);-Oui.-Oui.-356f0Voidlightprocess(){C:}Tim\\usetcompare2(tim4,(gucgreen\\uLight-1)*30);/arrêtdesfeuxrougesTim\\usetcompare1(tim4,(gucred\\uLight-1)*30);/lampejauneTim\\usetcompare3(tim4,(gucyellow\\uLight-1)*30);/GreenLightSpray-Oui.ExternU8`u8t`UData'uH,u8t`UData'ul,u8rh`UData'uH,u8rh`UDataul,u8checkdata;Voidjiarejiashipro(){C:}F(gucdest\\uTemperature>u8t\\uData\\h){C:}GPIO\\usetbits(gpiob,GPIO\\u12);-Oui.Else{C:}GPIO\\uresetbits(gpiob,GPIO\\pin\\u12);-Oui.F(gucdest\\uHumanity>u8rh\\uData\\h){C:}GPIO\\usetbits(gpiob,GPIO\\U13);-Oui.Rotationd'uneaiguilledansletempsVoid-motorshangsheng(void){C:}UnsignedcharI;Unsignedchar-J;For(j=0;j<160;j+){C:}For(i=0;i<8;i+){C:}Setmotorval(phase[i]);DelayuMS(1);réglagedevitesse-Oui.-Oui.-Oui.Void-motorxiajiang(void){C:}UnsignedcharI;Unsignedchar-J;For(j=0;j<160;j+){C:}For(i=0;i<8;i+){C:}Setmotorval(phase[i]);DelayuMS(1);réglagedevitesse-Oui.-Oui.-Oui.//arrêterlarotationVoid-motorstop(void){C:}Setmotorval(0x00);-Oui.Unsigned=char=gucbaojing=0;Unsigned=char=gucbaojingcount=0;Voidleddprocess(){C:}If((Guiguangzhaodu<500)\\124\\124(Guiguangzhaodu>45000)){C:}GPIO^usetbits(gpiob,GPIO^upin^8);-Oui.Else{C:}GPIO\\uresetbits(gpiob,GPIO\\pin\\8);-Oui.F((u8t`UData\\h<15)\\124\(u8t\\uData\\H>45)){C:}GPIO^usetbits(gpiob,GPIO^upin^9);-Oui.Else{C:}GPIO\\uresetbits(gpiob,GPIO\\pin\\9);-Oui.F((u8rh\\uData\\h<35)\\124\(u8rh\\uData\\H>90)){C:}GPIO^usetbits(gpiob,GPIO^upin^6);-Oui.Else{C:}GPIO\\uresetbits(gpiob,GPIO\\pin\\6);-Oui.-Oui.-356f0Voidlightprocess(){C:}Tim\\usetcompare2(tim4,(gucgreen\\uLight-1)*30);/arrêtdesfeuxrougesTim\\usetcompare1(tim4,(gucred\\uLight-1)*30);/lampejauneTim\\usetcompare3(tim4,(gucyellow\\uLight-1)*30);/GreenLightSpray-Oui.ExternU8`u8t`UData'uH,u8t`UData'ul,u8rh`UData'uH,u8rh`UDataul,u8checkdata;Voidjiarejiashipro(){C:}F(gucdest\\uTemperature>u8t\\uData\\h){C:}GPIO\\usetbits(gpiob,GPIO\\u12);-Oui.Else{C:}GPIO\\uresetbits(gpiob,GPIO\\pin\\u12);-Oui.F(gucdest\\uHumanity>u8rh\\uData\\h){C:}GPIO\\usetbits(gpiob,GPIO\\U13); }Else{C:}GPIO\\uresetbits(gpiob,GPIO\\pin\\U13);-Oui.-Oui.\35endifVoidjiarejiashinit(void){C:}GPIO'uinitiativetype-GPIO'uinfrastructure;Premièreétape:Ouverturedel'horlogeexterne*/RCC\\apb2periphclockcmd(RCC\\uapb2periph\\gpiob,enable);GPIO\\uinfrastructure.gpio\\upin\\GPIO\\u12\\GPIO\\upin\\U13;GPIO\\uinfrastructure.gpio\\uSpeed=GPIO\\u10mhz;GPIO\\uinfrastructure.gpio\\umode=GPIOumode\\OUT\\PP;GPIO\\uinit(gpiob,&GPIO\\uinfrastructure);Return-Oui.Intmain(void){C:}U8keypre;U8=mode=0;Unsigned=char=ucreadflag=0;Delayuinit();OLED.Uinit();OLED\\uCLEAR();Debug\\UART\\uconfig();/WIFI\\9600Keyuinit();Jiarejiashinit();//OLED\\uCLEAR();//calcfebdays();//Remote\\uinit();/initialisationdelaréceptioninfrarouge/datatimeshow();//alert.u.ff;/tim3auCapuinit(9,7199);et/ou1mssynchronisationTim4\\PWM\(7999,9);/ondescarréesUserint();Gizwitsinit();/gizwitssetmode(wifi\\uAirlink\\umode);//init\\bh1750();/initialisationbh1750While(1){C:}Delay`UMS(10);Giztimerms();Giztimerms();Giztimerms();Giztimerms();Giztimerms();Giztimerms();Giztimerms();Giztimerms();Giztimerms();Giztimerms();Gui10mscount+;Userhandle();Gizwitshandle((datapoint\\UT*)&Currentdatapointpoint);//yuyinkongzhi();//hongwaitance();Key\\uProcess();F(0=gui10mscount%10){C:}//oledshow();-Oui.F(0==gui10mscount%100)//500msMission{C:}//runledshow();Dht11ugetuData();Adpro();-Oui.F(0==gui10mscount%100)//1SMission{C:}//datatimeupdate();-Oui.F(0=gui10mscount%2000).{C:}//Warninganddisconectproc();-Oui.-Oui.-Oui.

致谢本次毕业设计,不仅是对大学本科四年知识的一个系统复习应用,同时也是加强了动手制作能力与分析问题的能力。大学不仅仅是学习理论知识,更注重理论知识与实际应用的培养,更多更好的应用到生活中,给人们的生活带来更多的方便。在选题、设计、查阅参考文献、理解原理、动手制作、画仿真图、原理图等一系列工作中,综合考察了本专业解决复杂工程问题的能力。在本次系统设计中,同时考虑到成本,环境等因素的影响。尽管此设计中有许多任务和细节,但它们会使我将来变得更加认真,在整个设计理论成功之后,硬件操作仍存在一些缺陷。将来我们会努力学习并不断改进。首先,在设计该项目时,通过在正常时间的课程学习中获得的经验,我对这个项目的困难有一个大致的了解,我的生产能力可以充分发挥这一作用其次,在该项目的设计过程中,我们全面了解了相关信息,加强了大学的深入专业教学;第三,在实现该项目的过程中,我们基本完成了用于C-的应用的软件和硬件的设计。语言更适合编写调试程序,还学习了如何设置参数和使用某些组件的方法;第四,通过完成本设计,我的动手能力和问题分析能力得到了提高。寻找问题时,我会更全面,并且我有一些将来会努力工作的经验!感谢母校为我们提供了一个良好的学习环境,让我们努力学习,在这里陶冶情操。在此向我的论文指导老师送上最诚挚的感谢!老师不仅仅在学业上言传身教。而且本文更是多亏了他的忠告,从选题到方案的论证,从硬件设计到程序的编写,他都给了我莫大的帮助。滴水之恩,当涌泉相报。我只有在未来的研究中,坚持不懈的努力,争取多做出一些成就,来报答老师的恩情。另外,我要向所有帮助过我的同学致以真诚的谢意!在设计的过程中,遇到自己不能解决的问题时,是他们都给了我无私的帮助,让我度过难关。这个毕业设计也有你们的一份功劳,谢谢你们!

HYPERLINK如何给电脑重做系统给电脑重做系统,自己学学,可少花钱,哈哈[图]

一、准备工作:

如何重装电脑系统

首先,在启动电脑的时候按住DELETE键进入BIOS,选择AdvancedBIOSFeatures选项,按Enter键进入设置程序。选择FirstBootDevice选项,然后按键盘上的PageUp或PageDown键将该项设置为CD-ROM,这样就可以把系统改为光盘启动。

其次,退回到主菜单,保存BIOS设置。(保存方法是按下F10,然后再按Y键即可)

1.准备好WindowsXPProfessional简体中文版安装光盘,并检查光驱是否支持自启动。

2.可能的情况下,在运行安装程序前用磁盘扫描程序扫描所有硬盘检查硬盘错误并进行修复,否则安装程序运行时如检查到有硬盘错误即会很麻烦。

3.用纸张记录安装文件的产品密匙(安装序列号)。

4.可能的情况下,用驱动程序备份工具(如:驱动精灵2004V1.9Beta.exe)将原WindowsXP下的所有驱动程序备份到硬盘上(如∶F:Drive)。最好能记下主板、网卡、显卡等主要硬件的型号及生产厂家,预先下载驱动程序备用。

5.如果你想在安装过程中格式化C盘或D盘(建议安装过程中格式化C盘),请备份C盘或D盘有用的数据。

二、用光盘启动系统:

(如果你已经知道方法请转到下一步),重新启动系统并把光驱设为第一启动盘,保存设置并重启。将XP安装光盘放入光驱,重新启动电脑。刚启动时,当出现如下图所示时快速按下回车键,否则不能启

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论