【《基于STM32单片机的净水器远程监控装置设计》12000字】_第1页
【《基于STM32单片机的净水器远程监控装置设计》12000字】_第2页
【《基于STM32单片机的净水器远程监控装置设计》12000字】_第3页
【《基于STM32单片机的净水器远程监控装置设计》12000字】_第4页
【《基于STM32单片机的净水器远程监控装置设计》12000字】_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第页共54页基于STM32单片机的净水器远程监控装置设计目录TOC\o"1-3"\h\u21682基于STM32单片机的净水器远程监控装置设计 1298251绪论 2100901.1研究背景及意义 228451.2研究现状及发展趋势 342041.3本论文的主要内容 3159302系统整体框架 4201762.1系统设计要求 455032.2系统设计思路 4176082.3设计方案介绍 599492.3.1稳压电路原理介绍 57702.3.2水温传感器介绍 5125032.3.3电导率传感器介绍. 6174662.3.4水流量传感器介绍 7185272.3.5PH传感器介绍 85652.3.6OLED显示屏介绍 9159572.3.7sim800c模块介绍 9224602.4本章小结 10169283硬件设计 11162133.1稳压电路设计 11128033.2STM32单片机控制器电路 11319403.3传感器电路设计 13202443.3.1水温传感器电路介绍 13121893.3.2电导率传感器电路介绍 13312383.3.3水流量传感器电路介绍 14162433.3.4PH传感器电路介绍 1418263.4OLED显示屏电路设计 1457323.5SIM800c模块短信电路设计 15274253.6本章小结 1512954程序设计 16204254.1开发环境简介 16172104.2整体程序设计框架 16221384.3传感器程序设计 17232194.3.1DS18B20温度传感器程序设计 17163934.3.2电导率传感器程序设计 18302594.3.3水流量传感器程序设计 19114254.3.4PH值传感器程序设计 2072374.4OLED显示程序设计 21316174.4.1OLED显示原理 21241954.4.2OLED显示程序设计 22209424.5SIM800c模块程序设计 2319614.6本章小结 24186455系统功能测试 25264435.1温度检测功能测试 2518985.2电导率检测功能测试 2641485.3PH值检测功能测试 27264505.4水流量检测功能测试 28180995.5SIM800c短信模块功能测试 3037935.6测试结论 3116366结论 311绪论研究背景及意义从改革开放后开始我国的经济就在高速发展,国民经济高速发展的同时伴随着大量工业污染物的排放,自然环境的迅速变化以及对自然资源的环境污染和毁坏。从20世纪70年代开始,随着长江源头环境污染的严重,周边自然环境也呈现了不断恶化趋势。荒漠化程度逐渐加重,草地退化更加严重,原来大量的水源也被北方大面积的黄沙所淹没。由于源头地自然环境的变化,直接导致了黄河文化洪水频繁、自然资源匮乏的严峻危机。而源头自然环境的进一步遭到损害,也严重影响着地方经济的发展,也是水污染对人类危害的明证,人们从此开始关注水的安全问题。伴随着自来水的广泛应用,人类也更多的采用了自来水,但是在我国自来水处理工艺中一直以来,,经过的基本都是常规操作如:混凝、沉降、过滤、杀菌等,但是水中的重金属离子在这些处理工艺处理下并不可以更深层次的去除,并且通过加杀菌剂杀菌消毒后也会使水源中出现大量含氯,因为这些都是对人类身体健康不利的物质。而且水管在通过近几十年的腐蚀,现在我国很多省市的城市供水管网采用的又是镀锌管,许多老旧管网中的水含有铁锈,而城市建设过程中也导致了水网的破坏,使水在运输过程中受到二次污染。因此人们对于净水器系统投入愈来愈多的关注,净水器广泛的应用于各个场所,如学校、家庭等。净水器是为了人们可以饮用更为纯净和优质的水而诞生,以前的人们更多关注水质的好坏,而现在人们更加关注水的温度、PH数值以及每日摄入的水量,这也预示着人们的生活水平在不断地提高。智能净水器的设计和应用的主要目标就是在于为人们能够实现饮水安全而诞生,而这样的一款净水器需要能够检测出多种水质的数据,以便人们更好的判断饮用水的安全。本课题设计的基于单片机的净水器远程监控装置,主要以单片机技术、传感器技术、GSM网络技术等为硬件体系,能够实现对于水质的水温、电导率、PH值、水流量等数据收集以及远程监测,系统的便捷和智能等优势,具有很强的实际应用推广意义。1.2研究现状及发展趋势随着水源头的影响导致了水质,而为了进一步的提高和改善饮水质量,人们就需要净水器这样的装置将水质进行二次净化。人们自己家中使用的自来水净水器是每家每户都需要必备的家用仪器,所以商业化市场也就非常之巨大。因此,为了提高饮水质量开发和应用家用净水器,确保人民身体饮水健康的客观需要,净水器检测装置具有广阔和长远的发展前景。20世纪50年代家用净水器出现,在一九七零年以后才开始普及。但目前,在发达国家中已经相当普遍,一般的家庭都采用自来水净水器。家用净水器由美国杜邦公司、日本日立公司等全球知名公司最先研发制造。但因为我国家用净水机的发展起步相对比较晚,直至20世纪80年代中期以后才有净水机产品出现,但都过于强调去除水中的污物,也缺乏注意到水体中的电导率和PH值,因此食用过多过酸或过碱式的饮用水,都会造成身体不好。现今的家用净水器生产水平成熟可靠,可以对水质中的有害物质及细菌有较强的物理吸附作用,并且国内的净水器从生产水平、制造工艺、净水效果、成本价格等方面都有优势,但都缺少水质检测功能。而随着人们健康意识和对饮水质量要求的不断提高,家用净水器在去除水中杂质的同时也要求能够检测到水质的相关数据,这样才能更直观的观察到水质的情况。而现今预计随着科学技术的进步、社会经济的发展,家用净水器将朝着净水介质功能更全、净化效果更好、使用更为方便并且能够远程监测的方向发展。1.3本论文的主要内容本论文在写作过程中,主要分为五个部分阐述了基于单片机的净水器远程监控装置设计内容,具体的研究内容如下所示:第一,先通过文章评论的方式,从基础理论上、实际研发情况上以及需求上对关于净水器远程控制设备的进行了详尽研究,针对净水器设备研发基础上的背景切入,重点研发内容等方面做出了说明,并从宏观角度奠定文章撰写的框架。第二,对基于单片机的净水器远程监控装置设计的系统整体框架进行了描述,该部分主要讲解了设计要求、设计思路、设计中使用到的各个传感器,液晶屏以及短信模块的分析介绍。通过对系统需求和总结设计的分析,明确了基于单片机的净水器远程监控装置设计和应用的可行性。第三,描述出了净水器远程监控系统的硬件电路模块设计介绍和各个传感器模块介绍、液晶屏显示模块介绍、GSM短信模块介绍的分析,在确定系统硬件设计总体结构及其思路的基础上,对设计装置的硬件元件进行了选择确定,并设计完成了智能净水器的各级硬件模块,主要包含:STM32单片机电路模块、稳压电路模块、传感器电路模块、OLED液晶显示屏电路模块、SIM800c模块短信电路模块电路等。第四,描述了系统软件程序模块的设计,重点对传感器模块程序设计、OLED液晶屏模块程序设计、SIM800c短信模块程序设计等进行了实现。第五,对于各个传感器模块以及SIM800C短信模块进行了系统应用测试,以保证装置系统在日常运行当中的实用性和可靠性。2系统整体框架2.1系统设计要求(1)液晶显示屏实时显示用水量(精度为0.1L)、PH值和电导率;(2)温度传感器检测温度,液晶显示温度;(3)将液晶显示的温度、用水量(精度为0.1L)、PH值和电导率每隔一分钟左右上传到手机短信。2.2系统设计思路通过相关专业论坛、专业网站、实时新闻等查询资料以及在指导老师的悉心指导下,对基于单片机的净水器远程监控装置的设计进行总结分析,作为本次整体系统设计的思路如下:(1)在家庭中,老人和小孩都需要饮用更健康的水以保证身心健康,并且在一些特别的病况药物的下,饮用偏酸或偏碱的水可能导致病况更加严重,因此实时检测水中成分是非常有必要的。(2)在学校中,学校师生的饮水安全时刻都牵动着每个人的心。有时水会长时间堆放在一个地方或水质混浊不清,都不能够饮用,为防止出现这样的事情,就非常有必要设计一种能够检测水质安全以及可以远程监察水质安全的净水器装置以避免上述情况发生。(3)传统的饮水器是只是采用一个水桶,一个加热器将水分为热水和冷水,并没有一定的对水质的检测功能。本次的研究就是要将饮用水中的温度、PH值、电导率、饮用水的用水量等信息呈现在饮用者的面前。使用STM32单片机为控制器,由各个模块电路连接各个传感器使其检测到的水质数据通过OLED液晶屏直观的看到水质数据,还可以使用SIM800c短信模块通过手机实时观察水质数据,这样就可以实现用水安全以及检测水质安全。综上所述:本文通过将净水器的研究以及对于传感器的各个因素:温度、电导率、水流量、PH值等方面的采集通过传感器上传单片机换算得出结果上传至OLED液晶屏得到直观看到水箱内的水质情况。如图2-1所示,整个系统由一个中央控制器和多个传感器、一个OLED液晶屏、一个SIM800c短信模块组成,使用稳压电路供给能源保证各个电路使用。传感器之间互不影响,温度、水质、PH值和水流量等数据通过各自传感器检测数据经过单片机的运算后得出数据上传OLED液晶屏以及通过SIM800c短信模块每隔一分钟上传手机短信,从而得到净水器远程检测效果。图2-1系统构架图2.3设计方案介绍2.3.1稳压电路原理介绍设计一个电路使用12V电源适配器,通过滤波电容以及稳压二极管实现单向导通,并且需要完成保护电源免受回流伤害。提供传感器、液晶显示屏、SIM800c短信模块以及单片机需要使用到的不同稳定电压。因此设计上要完成输入电压稳定,12V稳定电压转5V稳定电压以及转3.3V稳定电压,方可完成设计上需要。2.3.2水温传感器介绍水温传感器所使用的YL-47DHT11数字温湿度传感器,是一款带有已校准数字信号输出值的温湿度复合传感器。此传感器广泛应用的温湿度传感器技术和数字模块采集技术,以保证所采用设备拥有相当好的稳定性和较长时间的工作稳定性。它所使用的除了NTC式测量温度元器件和电阻式感湿元件之外,还连接了一种高性能的八位单片微式计算机。使该感应器的生产能够达到高速响应、抗干扰能力强、市场价格比高等优势。另外,在开发YL-47DHT11数字湿度感应器时,还在极为精密的湿度感应器校验室中进行了校准,以及将校准的系数以程序的形式储存在OTP内存中,这些校准系数当使用到温湿度传感器检测水温时即可调用。传感器接口为了更加便捷使用采用的是单线制串行接口,这可以减少体积、减少功耗,使得系统更为简易快捷集成化,并且信号的传输距离能够达到20米以上。DS18B20器件是一种采用了“一线总线”接口的温度传感器。设计者通过“一线总线”可快速实现组建传感器网络,从而令设计者的开发效率大大提升,它能根据实际需求通过不复杂的程序设计实现9~l2位的数字值直接读出被测物体的温度。其测温宽度范围可以达到负五十五摄氏度至正一百二十五摄氏度,精度可达到正负零点五摄氏度。被测温度直接以“一线总线”的数字方式传输,数字信号的使用使其提升了器件的抗干扰性。与一般的测温器件对比,它是一种不同于传统测温器件的低电压的特点,还包括微型体积、接口相对不复杂的数字式测温器件。它存在多种封装形式,可以工作在3—5.5V的电压范围,因而使设计者更有效率地开发使用。这里选择了单总线接口的DS18B20(实物如图2-2)作为本次设计的温度检测传感器。DS18B20器件内部的基本构成由:温度触发对比器TH和TL、高达64位ROM、一线接口、温度敏感元件相构成。由于DS18B20无需外围器件,测量范围和精度都满足本文设计条件。图2-2DS18B20实物图2.3.3电导率传感器介绍.在本次设计中检测水质电导率采用的是浊度传感器(实物如图2-4),浊度传感器的工作原理是利用光学原理,通过光传输到接收端水溶液中的散射率和透光率来判断浊度情况。传感器内部采用红外线对管,当装置放入水中时光线穿过水获取数据,将光的散射率和透光率传输至单片机。检测过程为当水质越污浊,接收端收到的光就越少;水质越清澈,接收端收到的光就越多,而光接收端把透过的光强度转换为对应的电流大小,透过的光少,电流就小,反之透过的光多,电流就大。浊度传感器模块将传感器输出的电流信号转换为电压信号,通过单片机进行模数数据转换处理。改进款模块具有数字量和模拟量输出接口。单片机A/D转换器将模拟量进行采样处理,以获知当前水的污浊度。该模块价格低廉、使用方便、测量精度高。浊度传感器模块的接口电路组成如2-3图所示。该模块通过3PinXH-2.54接头与浊度传感器进行连接。调节10K蓝色电位器的旋钮可以对数字量输出触发阈值进行调节。图2-3浊度传感器接口电路实物图模块引脚定义如下2-1表所示。表2-1浊度传感器模块引脚定义表序号引脚定义功能描述备注1VCC供电电压正极,5V不可使用3.3V2AO模拟信号输出输出电压范围0~5V3DO数字信号输出小于设定值输出高电平;大于设定值输出低电平4GND供电电压负极图2-4浊度传感器实物图2.3.4水流量传感器介绍本设计使用的水流传感器(实物如图2-5所示)要求相对比较高,名为电磁流量传感器(即为霍尔传感器),使用的主要由水流电磁转子、塑料阀体组件组成它装在进水端检测进水流量。其本身的抗干扰能力相对于其它产品较强,范围也较广,成本相对较低,因此采用此传感器。电磁式流量传感器[2]是一种速度式流量计。其工作原理为:当水流由输入端进入流过磁性叶轮使得磁性叶轮旋转,再由输出端输出传感器时,磁极旋转导致被推近内置的电磁元件,电磁元件被磁力运动打开,形成电信号传输;当磁极停止旋转时传感器电磁元件被关闭,停止电信号传输。电磁元件由于电磁效应输出电信号,使其输出的电磁脉冲频率与水流速度成正比,这样,原来可以根据电磁脉冲的信号来判断水流的速度和大小,并通过STM32单片机程序计算,将数据储存在本地,水流越快,输出频率越高,反之,水流越慢,电磁元件输出的脉冲频率越低。图2.5水流传感器实物图2.3.5PH传感器介绍PH传感器(实物如图2-6所示)是用来检测被测物中氢离子浓度并转换成相应的可用输出信号的传感器,通常由信号传输部分和化学检测部分构成。所使用的PH传感器的特点是:快速电缆接头、耐水、避免安装时电缆打结、使用寿命长、在有毒的离子水溶液中表现良好以及可以以各种方式安装。PH传感器常用来进行对溶液、水等物质的测量。其原理是:当一个参比电极和一个氢离子可逆指示电极同时浸入溶液中形成原电池时(参比电极的电位原理是恒定的,是目前已知的),因此在某个高温时就会形成一种感应电动势,而这种电动势和溶液的氢离子活性直接相关,和其他离子的存在关系不大。二十五摄氏度以下溶液中的氢离子活度约为1mol/千克,大气氢气压为1.0132*X05pa(1个大气压),而这时的氢电极就被叫做标准氢电极,它的电极电势为零。而根据这种标准氢电极能够衡量任何阴极的电势。图2-6PH传感器实物图2.3.6OLED显示屏介绍OLED,即有机发光二极管(OrganicLightEmittingDiode)。OLED具有响应速度快、面板灵活、工作温度范围广,自发光、无背光、高对比度、厚度薄、视角广、结构和工艺简单等优良特性。OLED显示屏特点:(1)0.96寸OLED有黄蓝,白,蓝三种颜色可选(2)分辨率为128*64(3)接口方式繁多:OLED裸屏的接口总共就有5种包括:6800、3线或4线的串行SPI接口方式、IIC接口方式、8080两种并行接口方式,这五种接口都是通过屏上的BS0~BS2来配置的。(4)两种接口的Demo板,接口分别为四针模式的IIC模块(如下图2-8所示),七针模式的SPI/IIC兼容模块(如下图2-7所示)。图2-7OLEDSPI/IIC兼容模块显示屏实物图图2-8OLEDIIC模块显示屏实物图此模块使用OLEDIIC模块显示屏作为装置显示屏,这样更有利于设计开发。2.3.7sim800c模块介绍本设计中选择用于发送短信的是SIM800C短信模块是一款高性能高性价比工业级的GSM/GPRS模块(开发板)。SIM800C短信模块性价比高,性能稳定,外观小巧,能满足客户的多种需求。SIM800C工作频率为GSM/GPRS850/900/1800/1900MHz,可实现语音、短信和数据信息的低功耗传输,尺寸为17.6*15.7*2.3mm,适用于各种紧凑型产品设计。它采用了SIMCOM的工业级四频850/900/1800/1900MHzSIM800芯片,可以实现语音、短信、数据和传真信息的低功耗传输。图2-9是SIM800C短信模块的实物图。图2-9SIM800C短信模块实物图2.4本章小结本章通过对设计功能的需求,进行了原理上和可行性的分析,从而确定了系统的整体设计思路。系统的稳压电路方式,通过对电源的滤波以及稳压,达到提供元器件所需要的5V电源以及单片机所需要的3.3V电源。通过了解各个传感器的功能、特点以及优缺点来确定设计中需要的传感器是否能够达到标准,从而完成水质的各个数据检测。通过介绍,了解了水质中数据采集的关键和稳压电路的工作原理和设计需求;本章节从设计要求中挖掘出元器件,经过理论的分析,为后面电路接口的设计提供了思路。3硬件设计通过第1章节的原理分析和论证,为了满足基于单片机的净水器远程监控装置设计的要求,本系统的硬件组成分为:系统电源模块、温度检测电路、水流量检测电路、PH值检测电路、电导率检测电路、OLED液晶屏显示模块、GSM短信模块以及中央控制器系统电路等。3.1稳压电路设计电路使用12V电源适配器通过滤波电容进行滤波从而到达稳定的电压,再经过稳压单向导通二极管使得电源单向导通防止电流回流烧毁电源,起到保护作用。再从12V转5V稳压芯片,使得电压变为5V稳压电源给与显示屏、GSM短信模块以及各个传感器电路提供电源。最后再经过一个稳压芯片稳压为3.3V给与单片机提供电源。图3-1为稳压电路图。图3-1稳压电路图3.2STM32单片机控制器电路本设计的中央控制器采用芯片为STM32F103RCT6的单片机。芯片拥有比较丰富的内部资源,是一款高速、低功耗、多种接口的处理器。增强型,32位基于ARM核心的带512K字节闪存的微控制器USB、CAN、多达112个快速I/O端口、11个定时器、3个ADC、13个通信接口,中央控制器主要负责运算PID算法控制恒流源输出电流能力,通过片内自带的ADC采样输出电流,以及对传感器取样数据进行分析,最后控制显示电路将数据显示给用户。图3-2为STM32F103RCT6核心电路图。图3-2STM32F103RCT6核心电路图STM32F103RCT6的技术特点:(1)带有丰富的接口资源,如:增强型,32位基于ARM核心的带512K字节闪存的微控制器USB、CAN、11个定时器、3个ADC、13个通信接口。(2)Cortex-M3核并内嵌闪存和SRAM。(3)内置闪存存储器。(4)FSMC(可配置的静态存储器控制器)和LCD并行接口。(5)低能耗。IO分配表如表3-1所示:表3-1STM32F103RCT6引脚分配表引脚名功能GPIOA4OLED显示屏SDAGPIOA5OLED显示屏SCLGPIOA9SIM800cTX2GPIOA10SIM800cRX2GPIOB11水温传感器接口GPIOA2水质传感器接口GPIOA1PH值传感器接口GPIOA0水流量传感器接口GPIOB0LED1GPIOB1LED23.3传感器电路设计传感器电路由四部分组成:温度检测电路、水流量检测电路、PH值检测电路、电导率检测电路。传感器与传感器之间相互不想影响,只有温度相差较大时,PH值会受到温度的影响。输入电路通过滤波、稳压从而达到传感器电路需要使用的5V稳定电压,从而使得传感器可以正常工作。3.3.1水温传感器电路介绍本次设计使用DS18B20芯片来对水质温度进行测温,接入5V稳压电源,连接单片机PB11口,传输数据至单片机运算。图3-3为水温传感器电路图。图3-3水温传感器电路图3.3.2电导率传感器电路介绍本次设计使用浊度传感器,浊度传感器将传感器输出的电流信号转换为电压信号,由一个微控制器处理AD转换数据。接入5V稳压电源,连接单片机PA2口,传输数据至单片机运算。图3-4为电导率传感器电路图。图3-4电导率传感器电路图3.3.3水流量传感器电路介绍该设计使用霍尔传感器,其中水流由传感器输入端流入使得磁性转子旋转,速度随流速变化,霍尔传感器输出相应的脉冲信号,控制器收到传感器上传的数据借以确定水的流量。传感器接入单片机接口PA2,接入5V稳压电源,传输数据至单片机运算。图3-5为水流传感器电路图。图3-5水流传感器电路图3.3.4PH传感器电路介绍本设计PH检测模块最重要的部分是检测水的PH值,可以简便地检测液体中的PH值,包含两部分:电极和信号传输器。电极插入待检测的水中,检测氢离子浓度,然后由内部电路转换为输出信号,输出到单片机上,然后单片机程序进行模数转换,计算出被测物中的PH值。传感器接入5V稳压电源,连接单片机PA1口,传输数据至单片机运算。图3-6为PH传感器电路图。图3-6PH传感器电路图3.4OLED显示屏电路设计根据OLED使用手册连接其引脚至中央控制器的相对应接口上,通过SPI协议传输数据。本次设计使用OLED液晶屏,接入5V稳压电源,液晶屏OLEDSDA口连接单片机PA4口,OLEDSCL口连接单片机PA5口传输数据至单片机运算。图3-7为OLED显示屏电路图。图3-7OLED显示屏电路图3.5SIM800c模块短信电路设计本次设计使用SIM800c短信模块,通过使用滤波电容以及稳压二极管提供稳定5V电源,模块RX2口连接单片机PA10口,模块TX2口连接单片机PA9口,将单片机收集到的数据经过短信的模式每隔一分钟上传手机。图3-8为SIM800c模块电路图。图3-8SIM800c模块电路图3.6本章小结本章从电源模块、STM32F103RCT6控制器模块、传感器电路设计模块、OLED显示屏电路设计、SIM800c模块短信电路设计模块讲解了整个设计的硬件安排。系统电源采用12V适配器通过两个滤波电容再由ss34稳压二极管单向导通做到保护电源不受损害,接入稳压芯片使得12V稳压为5V,提供电源给与传感器、短信模块以及显示屏。再将电源稳压为3.3v给单片机供电,主要提供给中央控制器及外围电路;采用的微控制器具有Cortex-M3内核可以作为本次设计的中央控制器,可以大大提高了系统的实时性。中央控制器在经过数据运算后将得到的数据上传到OLED液晶屏上,以及通过SIM800c模块短信实时发送短信至手机,从而达到设计要求。4程序设计本章主要介绍系统的软件设计思想,包括:整体程序设计框架、各个传感器子程序设计、OLED显示程序设计、SIM800C短信模块程序设计。4.1开发环境简介本次装置软件设计集成开发环境是由keiluvision5来提供并且进行设计,keiluvision5能够提供了一个面向嵌入式系统和单片机系统的完整开发方案。keiluvision5的界面和操作便利性得到了很大的提升和改进。在兼容性方面也很强大,可包容51全系列的单片机控制器产品、功耗极低的MSP430系列产品以及嵌入式平台的STM32系列单片机处理器。设计中使用的CortexM内核的微控制器应用程序(STM32F103RCT6控制器)提供了一个完整的C语言开发环境以及大量的中间库。keiluvision5软件首先要建立一个工程文件,随后分支建立第二级、第三级等子功能模块调用函数的.C文件和H文件,在主程序中实现库函数和功能模块函数之间的循环调用。编译方式的模块化在使得查找bug时更加容易,将错误范围缩小至一个函数中,从上至下每个函数都可执行下去且无出现任何bug和错误信息,则表示程序函数的编译完成,可生成HEX文件下载至控制器内,在硬件中调试设计装置是否出现错误或显示出错,在排除外在因素的情况下程序正常运行,传感器检测正常,即可完成系统的软硬件结合。4.2整体程序设计框架整体程序设计框架的设计思想是,初始化各模块:OLED显示模块初始化、传感器电路初始化、sim800c短信模块初始化。将传感器程序逐个检测是否能够实时上传数据,传感器连接单片机接口程序驱动运行,单片机程序运算后上传并且可以将数据显示至屏幕上。在sim800c短信模块上插入电话卡,在初始化完成后单片机输入传感器收集到并且通过单片机运算得到的数据后,由GSM短信模块每隔一分钟发送收集到的水质数据短信到手机上。从而到达设计要求。图4-1为此设计的整体程序流程图。图4-1整体程序流程图4.3传感器程序设计4.3.1DS18B20温度传感器程序设计DS18B20传感器的读写信号类别有:读L、读H、写L、写H、复位信号和应答信号。由主器件发送所有信号的请求,从器件做出响应,除了应答信号以外。DS18B20传感器的数据传输类型为低字节在前高字节在后。DS18B20读写时序简介:(1)写时序:因为是单总线器件,所以DS18B20写时序包括写L和写H两种时序。两种写时序在主器件将总线拉低时开始,所有写时序最短时间不低于60us,当出现两个互相无影响的写时序时,它们之间需要不低于1us的恢复时间。①写H时序:主器件发送低电平,持续2us,接着不再占用数据端口,持续60us。②写L时序:主器件发送低电平,持续60us,接着不再占用数据端口,持续2us。(2)读时序:主器件发出读请求时,从器件器响应主机,主器件开始读取数据,所以,在主器件发出请求命令后,主器件必须马上变为接收模式做好接收准备,以便能够读取从机发出的数据。DS18B20温度传感器程序流程图如图4-2所示。以下为温度传感器子程序编写: floatDS18B20_Read_Temp(void)//DS18B20读取温度 { uint8_tDS18B20_MS,DS18B20_LS; DS18B20_Init();//DS18B20初始化 Delay_us(1);//延时约1us DS18B20_Write_Data(0xCC);//写跳过ROM指令 DS18B20_Write_Data(0x44);//写温度转换指令 Delay_us(125);//延时约125us DS18B20_Init();//DS18B20初始化 Delay_us(1);//延时约1us DS18B20_Write_Data(0xCC);//写跳过ROM指令 DS18B20_Write_Data(0xBE);//写读暂缓器指令 DS18B20_LS=DS18B20_Read_Data();//读取低字节 DS18B20_MS=DS18B20_Read_Data();//读取高字节 TempData.UpdateState=TEMP_UPDATE_SUCCESS; TempData.temp=(DS18B20_MS*256+DS18B20_LS)*0.0625; if(TempData.temp<=-50||TempData.temp>50){ TempData.UpdateState=TEMP_UPDATE_NONE; TempData.temp=50; } returnTempData.temp; }图4-2DS18B20温度传感器程序流程图4.3.2电导率传感器程序设计电导率传感器通过浊度感应器模块,将电流信息转化为电压信息是传感器输出信号的主要方法,并利用单片机实现AD转换数据处理功能。改款的模块将具备模拟量与数值测量输入输出的接口。模拟量可利用单片机A/D转换器完成采样处理,以获得当前水的污浊量。将串行接口初始化,使用ADC进行数据上传并转换为数字量,再使用收集到的数字信息进行程序运行,上传单片微型计算机。电导率传感器程序流程图如4-3所示。图4-3电导率传感器程序流程图4.3.3水流量传感器程序设计水流量传感器使用霍尔流量开关涡轮流量计可以使得误差减小为10ml。将串口初始化,通过磁性转子转动的速度上传数据到达单片机水流量子程序运算,从而达到检测水流量的效果。以下为水流量传感器子程序编写。水流量传感器程序流程图如4-4所示。floatdriver_water_stream_getVal(void){floatval; if(global_stream_pluse_val>0) { if(global_stream_pluse_val%2){ val=(global_stream_pluse_val-1)/2; if(val>0){ val-=1; } }else{ val=global_stream_pluse_val/2; } val=val/450.0*1000; if(val*0.16<250){ val=val+val*0.154; }else{ val+=250; } returnval; } return0;}图4-4水流量传感器程序流程图4.3.4PH值传感器程序设计PH值检测最重要的是采集水质的PH值,为了能够更为方便地检测液体中的PH值,传感器采用的是只有电极以及传输器两部分的传感器,能够快速检测的同时还减少占用面积。首先,玻璃管检测水中的氢离子浓度,然后由内部电路转换为可输出的信号,输出到单片机。将串口初始化,ADC采集数据上传程序计算由传送至单片机程序,进而上传显示屏以及SIM800c短信模块。PH值传感器程序流程图如4-5所示。PH值换算程序:OLED_8X16_PRINTF(0,0,"PH:%03d.%01d",(uint8_t)Val->ph_val,(uint32_t)(Val->ph_val*10)%10);图4-5PH值传感器程序流程图4.4OLED显示程序设计4.4.1OLED显示原理OLED,即有机发光二极管(OrganicLightEmittingDiode)。OLED是自发光器件,也就是说它不需背光源。OLED显示屏的引脚定义如表4-1:表4-1OLED显示屏引脚定义引脚序列引脚名功能描述1GND电源地2VCC电源正(3~5.5V)3D0在SPI和通信中为时钟管脚4D1在SPI通信中为数据管脚5RES复位(低电平复位)6DC数据和命令控制管脚7CS片选管脚OLED作为一个显示屏少不了显存的存在,其使用的是SSD1306显存共为8KB大小,显示屏被SSD1306切成了8扇区。SSD1306将整个屏幕分成了64行,8行为一扇区,一扇区则有128个字节。SSD1306芯片的操作指令非常的多,这里仅介绍本文使用到的一些指令:(1)0X81:对比度设置指令。这个指令由0X81指令加上准备输入的对比度的值组成,且高字节为命令,低字节为设置值。(2)0XAE/0XAF:0XAE指令禁止显示;0XAF指令允许显示。(3)0X8D:该指令也由两个字节组成,且高字节为命令,低字节为设置值。(4)0XB0~B7:这个指令是选择哪一扇区。(5)0X00~0X0F:选择屏幕最初COLO位置的低四位。(6)0X10~0X1F:选择屏幕最初COLO位置的高四位。4.4.2OLED显示程序设计使用的是0.96寸4线7引脚SPI通信接口的OLED,只写OLED而不对其进行读操作。以下为OLED的SPI程序:voidOLED_Write_Byte(u8_tData,u8_tCom){ u8_ti; OLED_CS=0; OLED_DC=Com; for(i=0;i<8;i++) { OLED_SCLK=0; if(Data&0x80) OLED_SDIN=1; else OLED_SDIN=0; OLED_SCLK=1; Data<<=1; } OLED_CS=1;}OLED显示的程序流程图如图4-6所示:图4-6OLED显示程序流程图4.5SIM800c模块程序设计通过SIM800C模块可以实现短信的传输功能,将应用到的指令中有AT+CMGS。AT+CMGS:主要用来收发短信,在"GSM"字符集下,最大可以发送一百八十个字节的英文字符,在"UCS2"字符集下,最高可以发出七十个汉字(包括字符/数字)。当SIM八百C模块初始化后,可以检测卡是否插入成功,然后通过AT的不同指令对短讯模块的不断检测,将sms短信消息回调,并读取SIM卡ccid,最终短信传输完成。SIM800C模块程序流程图,如图4-7所示。以下为sim800_sms发送短信程序编写:staticintapp_sms_recv_callback(sms_message_paraType*para){if(para==NULL||para->message==NULL||\para->phone_n==NULL){return-1;}/*编辑短信404*/if(strlen((char*)para->message)<=0||\strstr((char*)para->message,"404")==NULL){return-1;} /*绑定新的电话号码*/if(strstr((char*)para->phone_n,"+86")&&\strlen((char*)para->phone_n)>=14){APP_DEBUG("addnewphonenum%s",para->phone_n); main_parameter_list.parameter_set(9,para->phone_n,\ strlen((char*)para->phone_n));}return0;}图4-7SIM800C模块程序流程图4.6本章小结本章根据系统整体框架的原理分析、数据计算和硬件设计编写相应的程序,通过稳压电路程序完成对于设计需要电压5V以及3.3V稳定输出。传感器提供数据输入,经过电路传输单片机程序数据运算实现水温、水质、PH值、水流量等数据上传,再由OLED液晶屏程序获取数据显示在屏幕上,以及由SIM800c短信模块程序接收数据信息同步每分钟上传到相对应的手机上。设计对于各个模块的功能进行相对应的调试验证。模块功能验证无误后,对各模块进行组合调试验证,以达到期望设计的结果。5系统功能测试5.1温度检测功能测试测试条件:分别使用温度为47摄氏度和28摄氏度的水,用于检测温度传感器的灵敏性,将温度传感器放入不同的水中检测,查看OLED液晶屏上显示的温度与实际使用的水温度是否相同。测试结果:检测温度由于受到外环境较冷影响,有上下1温度误差,但当装置处于室温状态下环境温度误差几乎为0。测试结果满足设计条件。测试结果图:如下5-1图,5-2图所示。图5-147摄氏度水检测图图5-228摄氏度水检测图5.2电导率检测功能测试测试条件:分别使用清水、肥皂水、含有泥沙的水检测水的电导率,查看OLED液晶屏上显示。测试结果:检测电导率与实际电导率相符合。测试结果图:如下5-3图、5-4图、5-5图所示。图5-3清水电导率检测图图5-4肥皂水电导率检测图

温馨提示

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

评论

0/150

提交评论