基于STM32F103C8T6单片机的观赏鱼养护系统设计14000字论文_第1页
基于STM32F103C8T6单片机的观赏鱼养护系统设计14000字论文_第2页
基于STM32F103C8T6单片机的观赏鱼养护系统设计14000字论文_第3页
基于STM32F103C8T6单片机的观赏鱼养护系统设计14000字论文_第4页
基于STM32F103C8T6单片机的观赏鱼养护系统设计14000字论文_第5页
已阅读5页,还剩55页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于STM32F103C8T6单片机的观赏鱼养护系统设计根据对市场现在的分析和研究,本文提出了一套多功能的智能鱼以STM32F103C8T6单片机为核心,添加多个传感器,实现自动换水、自动喂食、温度检包括温度传感器、水位检测电路、喂食电路、换水电路等,可以对温数据进行存储和处理。第二部分是手机APP部分,通过无线WIFI与上位机通信,将相关通过传感器的相互作用和手机APP的远程操作,本系统能更好的实现对观赏养护,形成了一套可完成浑浊度检测、温度检测、自动换水、自2.2系统整体框架6-2.3主控模块的选型和论证 2.4无线遥控模块的选型和论证 2.5显示模块的选型和论证 3.1系统总体硬件电路图的设计 3.2STM32F103C8T6最小系统设计 3.5温度检测模块的设计 3.6水深检测模块的设计 3.8舵机模块的设计 3.9按键模块的设计 3.10水位控制模块的设计 4.2温度监测实现 4.3浑浊度监测实现 4.4喂食设计 21-4.5换水设计 4.7APP的设计 29- 5.3测温演示 31-5.4喂食演示 33-5.5换水演示 5.6浑浊度演示 37- 39- 6.2进一步开发的展望 第一章绪论现在物质生活已经逐渐丰富,人们对于生活的追求早已摆脱了酒足饭饱等简单的需求,现在的人们越来越追求精神生活的美满。大部分人对室内养鱼有着巨大的兴趣,但是鱼缸养鱼技术有着很大的学习成本,温度、湿度、喂食时间对鱼的成活都有着很大的影响,但大部分并没有那么多的学习时间去研究,这时候智能鱼缸的出现极大的拉低了鱼缸养鱼技术的学习成本,所以有更多的养鱼爱好者愿意购买一个智能鱼缸去检测自己鱼的生活状态,因此,在这样的背景下,本设计的完成了一款基于STM32芯片的智能鱼缸开发和设计。水族箱起初是为了公共场所所涉及的,随着经济的发展,科技的提高,水族箱成为了普通家庭的家居装饰,越来越多的家庭喜欢家里安排一个鱼缸去点缀自己的生活,是自己更多的去亲近自然。但很多人可能时间有限,无法对水族箱进行很好的维护,往往最后的针对智能水族箱的设计有很多,主要集中在水温控制,氧气控制,换水加水等相关系统。但产品的繁杂,且功能也各有不同,使得用户的挑选也变得困难,且如果自己进行多个功能的组装,无法形成有效的配合,也存在一定的资源浪费。给用户造成了多余的经济负担又无法达成其预期的效果。因此,在市场的需求催促下,一个集合多个功能的智能鱼缸的出现,成了用户们的迫切需求。本设计不仅解决了鱼类日常养护问题,同时对智能化家居进入百姓家中的发展有本文对市面上已经有的智能鱼缸装置进行了调研,发现了很多公司在智能鱼缸方面的研究已经非常的深入。下面,就是本文在调研了相关的文献之后,得到的一些研究现况。发展了多年的嵌入式技术如今已经十分成熟,而且用嵌入式技术配合传感器做成的智能鱼缸可以很好的实现温湿度的控制,对于水位的检测,浑浊度的检测有着很好的精度控制,加上无线技术的突破,现在的鱼缸能实现远程控制进行操作等。国外研究现状:国外的一个团队在2016年3月推出了一套智能鱼缸系统,该系统由监控器、插座控制器和对应的安卓app组成。该系统虽然把部分功能集成了起来,但集成化程度较低,且使用配置又及其繁琐,给用户的上手造成了很大程度的负担。此外,系统售价过于高昂,很多家庭购买可能需要很大考虑,故推广过程较为困难。(5)实时检测水位高低,超过上下限液晶提示,同时可通过手机和液晶屏观察水位高低通过手机输入指令或者按键的控制进行操作。技术指标:(1)温度检测的误差在±0.5度之间;(2)浑浊度通过两光敏电阻实现,将两光敏所得值相减取绝对值,如果值小于20为正常,大于20则液晶提醒换水;(3)自动喂食控制在24小时一次。一次投喂量4-5颗鱼食;(4)显示屏和移动端在进行相应操作以后都会及时更新目前的数据情况。主要创新点通过传感器和远程操作,实现更好的鱼类养殖。1.4论文组织结构本论文的组织结构包括:第一章阐明课题的研究背景,介绍课题的研究现状和来源,并概述设计(论文)的主第二章论文的方案分析和进行零件的选型辩证。第三章硬件的主要介绍和电路图。第四章软件的工作流程和设计,以及上位机的实现。第五章系统的实物调试及数据分析。第六章对系统未来的拓展和升级阐述。第二章系统方案分析此次课题所制作的智能鱼缸其主要功能应具有采集鱼缸内的温度、湿度、光照强度,能自己进行换水,喂食等基本操作,可以远程控制进行通信,系统监测到的温湿度数据、光照强度数据皆由WIFI模块传至APP上显示,且环境监测系统也需有个液晶显示器显示智能鱼缸基于STM32F103C8T6作为主控芯片,对各个电路模块进行操作以实现相应的功能,硬件电路模块主要包括:温度监测模块、水位检测模块、液晶显示模块、无线少了转换的步骤,所以使用起来较为方便,且体积小,精传感器测温范围在-55℃-+125℃之间,测温误差在上下一摄氏度之间,可以很好的完成(2)水位检测模块:本设计使用的是SS水深检测传感器模块,该传感器简单易用,发出的模拟电压较低,可以直接接入单片机引脚,利用单片机的ADC进行模数转换,完成水位的检测。该方案成本低廉的同时很好的完成了单片机的检测要(3)液晶显示模块:本设计采用TFT触摸彩屏1.44寸模块,其优点非常的明显,亮度、对比度展示效果好,但也有着高功耗的缺点。但对比于其所存在的质量上乘的优点,(4)无线WIFI通讯模块:本设计使用的是ESP8266-01无线WIFI模块,其超低功耗(5)浑浊度检测模块:本设计的浑浊度检测模块是利用两个光敏电阻完成的,将一个光敏电阻置于水面上方,一个光敏电阻置于水面下方,利用两个光敏电阻引起的电流的变化进行浑浊度的判定。(6)喂食模块:喂食模块是由一个SG90舵机完成的,预先将所要的食物置于喂食盒中,当达到预先设定的喂食时间,或者按键或上位机发出喂食指令以后,给舵机通电,打开阀门进行喂食。SG90舵机转速快、耗电小,质量轻盈,是很好的选择。(7)按键模块:这是人机交互的一种手段,通过按键控制,可以对发出换水,喂食,等指令,达到控制的多样化。(8)换水模块:整个换水模块由水泵,水位传感器和排水舵机组成。由排水舵机先将水排出,当水位感应器感应到水位排到一定程度以后关闭排水阀门,打开水泵注入新的水资源。本设计上采用的是一个5V水泵。(9)电源模块:给整个电路供电5V。本设计的硬件组成方案,如图2.1所示。排水一喂食水泵手机通讯一本设计在单片机芯片的选型上有两种选择,分别是MSP430芯片和STM32F103芯片。方案一:MSP430芯片MSP430系列单片机是美国某公司在1996年研发的一种混合处理器,有着16位超低功耗、精简指令集的特点,目前MSP430市场占有量大,型号多样。如果选择MSP430芯片,其强大的处理能力可以很好的控制和协调各个模块,不会出现对模块控制的延迟。而且MSP430芯片对尘埃的防范能力具有非常出色的表现,日常的使用可以很大程度的降低强大的处理能力及其各项优点伴随的其成本的高昂,相比于同类型的芯片的售价足足高了50%,因此在各项权衡和成本控制下,不得不放弃该芯片的选择。方案二:STM32F103芯片STM32F系列是一款32位ARM微控制器的产品,有着三种不同的闪存种类。虽然STM32F103芯片的处理能力不如MSP430芯片的强大,但此芯片的价格优势相采集温度、水位的数据、判断换水条件、接受按键、上位机指令、对方面也可以很好的完成这些任务。在大幅度降低成本是个很好的选择,自古以来,鱼和熊掌不可兼得,所以最后选择了STM32F103芯片作为伴随着科技的飞速发展,无线遥控模块已经是非常成熟的技术了非接触式的方法对被控目标发出指令,使得实施控制人掌控,目前无线遥控模块应用及其广泛,在工业控及。相比于以前的电缆连线的方法,无线遥控技术安装成本低廉线,无需大规模的地下工程,也不会占用空间上的资源,极大的提高红外载波的频率是38KHZ,理论的遥控距离在8到10米之间,但容易受障碍物的影响,如果中间有障碍物遮挡,那么遥控距离方案二:无线WIFI模块使用WIFI模块覆盖性强,传输距离远,使得智能鱼缸脱离的网线的布线麻烦性,提如果使用蓝牙模块进行本系统的无线数据传输,可以代替很多于WIFI模块,蓝牙模块对场景的要求比较高,必须是固定场景下餐能使用,也没有WIFI模块覆盖的范围广,蓝牙的短距离传输无法满足本设计的设计要求,要频繁的更换环境,或者频繁的移动,再考虑到目前每家每户基本都本设计为智能鱼缸,需要及时的显示鱼缸当前的状态及时显示模块也是及其重要的组成部分。所谓显示模块的加工传输给显示模块显示出来,本文选取的显示模块是TFT触摸彩屏1.44寸模块。第三章系统硬件设计系统的总体硬件由STM32核心芯片、TFT彩屏显示电路模块、无线控制模块、水深检测模块、温度监测模块、水泵控制模块、浑浊度检测电路、独立按键模块、舵机喂食模块以及舵机排水模块组成。本设计是基于嵌入式芯片完成对整个鱼缸系统的控制,使用的核心器件也就是本设计所完成的单片机部分的设计。如图3.1所示,芯片所具有的引脚已经全部展示出来了。后面的其它模块,都需要按照芯片手册,将其和本芯片进行交互,从而完成基于单片机的控制,指令信号的下达等动作。PA1/ADC12_1/TIMCH2-PB12/SPI2NSS/TM1_BKPA11/USBDMCAN_RXTIM1NC器F68921本设计为智能鱼缸,需要及时的显示鱼缸当前的状态及时的给使用者反馈信息,所以显示模块也是及其重要的组成部分。所谓显示模块,就是将传感器采集到的数据通过芯片的加工传输给显示模块显示出来,本文选取的显示模块是TFT触摸彩屏1.44寸模块。的PB15、PB14、PB13、PB12、PB11、PB10引脚。如图3.2所示。RESV3.3ESP8266是一款超低功耗的UART-WiFi透传模块,该模块功耗低,是一款专门为物体联网设计的WIFI模块。WIFI模块连接由STM32内部的SPI引脚控制,模块连接上将ESP8266的TXD、RXD12343.5温度检测模块的设计鱼缸对于温度的检测需要的是一种灵敏的、高精度DS18B20是常用的数字温度传感器,可以直接输使用起来较为方便,且体积小,精度高,有着众多的优点。该温度传感器测温范围在-DS18B20温度传感器温度转换的最大精度时间为750毫秒,用户可自定义报警设置,DS18B20温度传感器采用的单线接口方式,所以只需要将它的DQ引脚连接上芯片的PC13□,就能实现其和芯片的双向通讯,其他的1号引脚接地,3号引脚接电源即可。其电路图如图3.4所示。3213.6水深检测模块的设计本设计使用的是SS水深检测传感器模块,利用水平导线检测水滴大小进行水位的检测判断。该方案成本低廉的同时很好的完成了预期检测要求,符合设计需求。并且此模块输出电压为0~4.2V,而芯片的PA5引脚作为I/O输入最大电压为5.5V,所以我们可以直接将其连接在芯片上,通过芯片的ADC进行模数的转换。将取到的AD采样值转换到0-99的数之间作为水位深度值,水位深度值、值的计算公式如公式3.1所示。水位深度值=(AD采样值-200)*99/(450-200)(3.1)此模块也是比较容易连接的,将2号引脚和1号引脚分别接电源的正负极,3号引脚连接PA5,便可以把模拟信号传输给芯片。其电路图如图3.5所示。1十S1十S3.7浑浊度检测模块的设计本设计的浑浊度检测模块是利用两个光敏电阻完成的,将一个光敏电阻置于水面上方,一个光敏电阻置于水面下方,利用两个光敏电阻引起的电压的变化取其两者的差值进行浑浊度的判定。将取到的AD采样值转换到0-100的数之间作为电压值,电压值的计算公式如公式3.2电压值=99-AD采样值*99/4096(3.2)浑浊度=电压值1-电压值2(3.3)将光敏电阻上和一个10KQ的电阻进行串联,可以很方便地把输出电流转变为电压。因选用的光敏电阻亮阻为10K欧左右,故给其串联一个10K欧的电阻,然后将两组电路分别接入芯片的PA1和PA0引脚,获取模拟信号。其电路图如图3.6所示。舵机是一种位置伺服的驱动器,目前,被广泛应用于各种高档舵机的组成部分有外壳、电路板、马达、减速器和定位器构成本设计中,舵机的主要作用是打开排水阀门或者打开喂食阀门。SG90舵机转速快、度,扭矩为1.5kg/cm,无论是电压上还是温度上,都符合鱼缸正常环舵机的功率计算公式如3.4所示。在连接上,将1号引脚数据写入位连接单片机,2号、3号分别接入电源和接地,其电路图如图3.7所示。3.9按键模块的设计在本设计中总共使用了4个机械式独立按键,通过4个按键协同工作来完成指令的发3.10水位控制模块的设计本设计使用了一个5V的水泵,主要是完成换水任务的注水功能。由于本设计本身使故选择这个工作电压为4.5V,工作电流为0.18A,额定功率为0.91W的小水泵,该水泵可缸环境。因为在电路中存在一个IB=50mA时,其VBE=1.2V的三极管,所以至少要76Q的电阻,所以给其串联一个100Ω的电阻进行电路的保护。连接上将电阻段引脚接入PA8,其他引脚分别接地和接入电路,其电路图如图3.9所示。2R图3.9水泵控制电路连接图第四章系统软件设计如图4.1所示。逗西取度屋温否图4.1软件整体流程图DA-Test-STD.uvgui.AdministrADMINISTRATO..DA-Test-STD.uvgui.EaDA-Test-STD.uvgui.tDEventRecorderStub.Cmain.cCmy_board.cDstartup_stm32f10x_hd.c结尾的文件,都是其中的逻辑代码,.h则是定义了一些引脚,为库函数,大多是传感器厂家所提供的,直接调用即可。本设计选择的传感器是DS18B20防水型温度传感器。温度传感器的高速暂存存储器是9个字节组成,当要进行温度转换的时候,转换得到的温度值以二字节补码的形式放在高速缓存器的0和1字节。单片机可通过数据接口直到读到该数据,再对应温度进行计算,不同的符号对应读取到的数据不一样。温度传感器主要是采集鱼缸内水的温度,传递给芯片进行处理后再由芯片传输给液晶屏进行显示,给使用者提供一个参考。程序会先初始化温度传感器的IO□,接着去接收传感器传来的一个字节数据,将读取到的值写入芯片,由于DS18B20防水型温度传感器本身就是传递的数字信号,所以只要进行补码的转换就可以得到单片机需要的温度。其流程图如图4.3所示。开始开始结束本设计的浑浊度检测模块是利用两个光敏电阻完成的,将一个光敏电阻置于水面上方,一个光敏电阻置于水面下方,当两个光敏电阻的光照值产生差别时,会产生两个不同的电压,取两个电压的差值作为水浑浊度的判定。其水深监测工作流程如图4.4所示。被品品示油度本系统设计的浑浊度阈值为20,两个光敏电路差值大于20的时候液晶提示换水,如果小于20则正常显示浑浊度。光敏电阻组成的浑浊度检测电路生产的模拟电压输出需要通过使用AD转换器进行模数的转换,所以要想采集到光敏电阻的数据,首先要设置好ADC。初始化ADC,并设置好工作模式,设置完之后进行一次采样,将采样的值传递给转换函数进行转换,最后进行电压值的计算。ADC的部分代码如下。{RCC_ADCCLKConfig(RCC_PCLKfor(i=0;i<ArrayCount(PiGPIO_Pin_Init(Pins_ADC[i],GPIO_ADC_InitStructure.ADC_Mode=ADC_Mode_IndepeADC_InitStructure.ADC_ScanConvMode=enableDMA?ENABLE:ADC_InitStructure.ADC_ContinuousConvMode=enableDMA?ENABLE:ADC_InitStructure.ADC_ExternalTrigConv=tADC_Init(ADCx,&ADC_InitStruc{for(i=0;i<ArrayCount(Pi{ADC_RegularChannelConfig(ADCx,My_ADC_GetADCChannel(ADCx,Pins_ADC[i]),i+1,ADC_SampleTime_239Cycl}}//ch:通道值0~3u16My_ADC_GetValue(ADC_TypeDef*ADCx,u8ch)ADC_RegularChannelConfig(ADCx,ch,1,ADC_SampleTime_239CADC_SoftwareStartConvCmd(ADCx,ENwhile(!ADC_GetFlagStatus(ADCx,ADC_FLAG_returnADC_GetConversionValue(ADCx);}//ADC的值转换u8My_ADC_GetPercent(ADC_TypeDef*ADCx,u8ch,u8times,floatadcVlaueMin,floatadcValueMax){{}{}{percent=(percent-adcVlaueMin)*100/(adcValueMax-adcVlau}}floatMy_ADC_GetCurrent_ASC712(ADC_TypeDef*ADCx,u8ch,u8times,{floatvolt=My_ADC_GetVoltage(ADCx,ch,times,scale);{}{volt=(volt-Volt_ACS712_ZERO)/0}本设计的喂食设计分为两种情况,一种是手动喂食,由使用者进行按键操作或者通过上位机发出对应指令,芯片解析指令打开喂食阀门。另外一种是自动喂食,由使用者提前设置好喂食间隔,当达到固定的时间间隔,系统自动打开喂食舵机,完成喂食操作,同时本模块的使用流程如图4.5所示。是结束否舵机的驱动通过PWM实现,舵机的伺服系统主要由脉冲信号的宽度进行实现的,控制线主要传输脉冲信号,舵机的基准信号周期为20ms。当舵机接收到一个大于1.5ms的脉冲,输出轴会顺时针旋转一定角度。接收到的脉冲大于1.5ms时候,输出轴会逆时针旋转对应的角度。脉冲信号宽度及舵机转动角度关系如图4.6所示。输入信号脉冲宽度输入信号脉冲宽度(周期为20ms)舵机输出轴转角0.5ms曰-90 具体控制代码如下所示。{}{case(u32)TIM1:per=Pwm_Pcase(u32)TIM2:per=Pwm_Pcase(u32)TIM3:per=Pwm_P}}整个换水模块由水泵,水位传感器和排水舵机组成。由排水舵机先将水排出,当水位感应器感应到水位排到一定程度以后关闭排水阀门,打开水泵注入新的水资源。本设计上采用的是一个5V水泵。如图4.7所示。判断水位判断水位图4.7换水流程图此处的L和H为水位的低水位和高水位的设定,分别为10和70。系统收到换水指令以后会打开换水舵机,打开阀门将水排出,水位检测传感器协助换水。当水位传感器检测到水位低于L值以后,便会关闭排水阀门,同时打开水泵进行注水。当水位传感器检测到水位高于H值以后,系统将自动关闭水泵,停止注水,此时,整个换水流程便完成了。电路中水泵的控制是通过PWM的方式进行控制,程序上电的同时对PWM进行初始化,初始化TIM1定时器、TIM_CH通道和设定周期为2000,当水位降低到设置值时,因为本身的水泵的工作电压是4.5V的,所以需要给其设置45%的占空比进行电压的调整,通过PWM的方式可以更加精准的达到对水泵电路的控制。PWM的初始化代码。{}本设计的报警提示系统主要是对浑浊度模块和换水模块进行液晶提示报警。在浑浊度模块上,当系统检测到浑浊度超过了系统设计的预定值20时,会在液晶屏上提示“浑浊度过高,请换水”。该部分代码如下所示。{{}}MyLCD_Show(X_PLACE,yPlace+在换水模块中,整个换水过程都会有液晶提醒,提示当前换水步骤以及水位高低,主elseif(runStep==1){sprintf(dis0,"%s排水至<L",disO);}//发送数据elseif(runStep==2){sprintf(dis0,"%s加水至>H",disO);}//发送数据elseif(runStep==3){sprintf(disO,"%s换水完成!",disO);}//发送数据本设计的APP开发使用的是安卓系统,使用的编译器为IDEA。安卓系统是在Linux基础上开发的开源操作系统,现主要使用在手机上,作为移动端的主要操作系统,之所以选择安卓作为开发平台也是因为其开源的性质,使开发的APP可以很好的安装与手机上,而苹果系统的封闭性就无法提供这么高的便捷性。安卓系统的开发主要用JAVA语言,而JAVA的开发需要进行系统环境的搭建(图4.8),安装JDK来提供JAVA的编译,环境搭建完以后就可以开始创建开发工程。编辑系统变量编辑系统变量确定取消单片机和上位机的通讯用的是WIFI模块,所以主要使用的类为Socket类,而Socket类有一个子类为TcpClient,TcpClient类中封装了部分简单的通讯方法,调用这些方法我们可以较为方便的实现网络来连接、发送和接收流数据。所以开发主要使用TcpClient完成。软件的工作流程图如图4.9所示。息图4.9软件工作流程图TCP是面向连接的协议,服务器和客户端进行通信直接需要先进行连接的建立。因此,TCP的server需依次调用以下函数:listen():转换套接字状态从关闭转换为监听状态,是客户端的请求可以被监听。accept):它在监听到套接字的第一个请求后,创建一个新的连接套接字,并返回标志信号。通常情况下,服务器进程在accept调用中进入休眠(sleep)状态,等到下一次被唤醒。TCP连接使用三次握手来建立连接。connect():为一个套接字分配一个空闲的端口号,并尝试去建立一个新的TCP连接。TCP的交互流程图如图4.10所示。图4.10TCP交互流程图软件部分源码如下所示。//创建tcp连接,需要提供服务器信息publicstaticXTcpClientgetTcpClient(TargetInfotargetInfo){returngetTcpClient(targe}publicstaticXTcpClientgetTcpClient(TargetInfotargetInfoXTcpClientXTcpClient=TcpClientManager.getTcpClient(targetInfo);if(XTcpClient==null){XTcpClient=newXTcpClXTcpClient.init(targetInfo,tcpConnCoTcpClientManager.putTcpClient(}}publicstaticXTcpClientgetTcpClient(Socketsocket,TargetInforeturngetTcpClient(socket,targetInfo,null);}publicstaticXTcpClientgetTcpClient(Socketsocket,TaExceptionUtils.throwException("soc}XTcpClientxTcpClient=newXTcpClient(xTcpClient.init(targetInfo,connCxTcpClient.mSocket=xTcpClient.mClientState=ClientState.xTcpClient.onConnectSucprivatevoidinit(TargetInfotargetInfo,TcpCthis.mTargetInfo=tamClientState=ClientState.DiscomTcpClientListeners=newAif(mTcpConnConfig==null&&connConfig==null){mTcpConnConfig=newTcpConnConfig.Builder().create();mTcpConnConfig=connCo}第五章系统实物调试如图5.1所示,这是本设计初步通电时候的状态。可以看到,此时WIFI模块、水位检测传感器和液晶屏显示模块,都已经呈现相关的亮度以及闪现的状态,说明各个部件通电信号正常,可以正常使用。以WIFI模块为例,WIFI模块红灯长亮,蓝灯闪烁,说明WIFI已经处于可连接状态,此时可以使用手机连接上对应的WIFI,再通过APP就可以实现上位机对鱼缸的控制。从液晶屏显示可以看到此时系统已经采集到了鱼缸当前的基本状态信息,以及默认情况下自动喂食间隔时间。本系统的程序使用了KEIL软件对程序进行了仿真,仿真过程如图5.2所示,当点击程序下一步的时候,可以发现,寄存器数据会有相应的变换,以此说明此软件的程序运行正S8n8SceaDuletrtasl本设计的WIFI模块是ESP8266是一款超低功耗的UART-WiFi透传模块,该模块功耗低,是一款专门为物体联网设计的WIFI模块。ESP8266是一款使用广泛的WIFI模块,在智能家居,工业控制,电力电网,移动交通中都有它的身影。它先进的封装技术,保证了它有着更稳定的工作状态。如图5.3所示,将手机连接上系统的WIFI,然后打开APP,选择连接,就可以看到,在显示屏上的数据就被传送了过来,此时可以通过输入指令FEED或者WATER进行喂食操作或者换水操作。接收到的数据制作成表格(表5.2),再利用MATLAB画成了折线图如图5.4所示。水使验段1070时间s温度℃浑浊度1234567894从上到下依次为水温、水位和浑浊度变化折线图。从折线图中可以看出,当初始上电的时候温度,水位及浑浊度就已经被同步到这边的上位机,然后稍微改变一下各项传感器的条件,可以发现,上位机端都可以很好的实现数据的同步,数据的接受和发送的也同步的很好,基本满足对上位机的开发要求。自然界的水温不是恒定的,鱼对水温的要求也会发生变化。鱼儿在野生的环境里面,不管是在什么样的季节,它都会迅速的适应环境。随着温度高低变化,它自身都就会有调节的过程。现在人工培育繁殖的观赏鱼很多,但是这些鱼他们身体里面会有一个基因代码,有一定的抵抗温度的能力。对于家里养的观赏性鱼类,鱼缸的温度较为难以把控,夏天炎热的天气会提升鱼缸的温度,冬天寒冷的天气亦会对鱼缸的温度产生影响,所以一个能够灵敏反应温度变化的传感器及时的将鱼缸中的温度反馈给使用者是必要的。DS18B20是常用的数字温度传感器,可以直接输出数字信号,少了转换的步骤,所以使用起来较为方便,且体积小,精度高,有着众多的优点。该温度传感器测温范围在-55℃-+125℃之间,测温误差在上下一摄氏度之间,可以很好的完成鱼缸的温度检测功能。如图5.5所示,可以看到当手握住温度传感器的时候,液晶屏上的温度有着明显的变化,说明温度传感器是正常工作的,而且其灵敏程度是有保证的。看一组上位机收到的数据(表5.2),将上位机采集的数据收集到MATLAB中做成折线图5.6。时间s温度℃123456789可以看到当手握传感器以后温度有了明显的上升,且随着时间的增加,温度的上升程度由慢到快,说明设计使用的传感器工作正常,且灵敏度是符合要求的。鱼缸养鱼的对喂食的要求也是非常高的,养鱼一天要喂一到两次。虽然鱼类的耐饿性比较强,几天喂一次也能养得活,但如果在生长期没有提供足够的养分,鱼儿就会永远长不大了,变成老头鱼,看上去也不美观。所以最好天天给鱼喂食,每次要喂到七八分饱左右,但不能让它吃撑,长期吃得多容易患上肠炎,甚至会导致其死亡。所以本设计针对这样的情况也是设计了两种不同的喂食模式,手动喂食(如图5.7)和自动喂食(如图5.8)。手动喂食是通过APP发出喂食指令,系统接收到系统APP的指令以后打开喂食阀门,将食物置入鱼缸,然后再自动关闭阀门。盖盖热模式投食中.投食中清空接收清空接收自动发送1000自动喂食模式是通过芯片内部的定时器完成的,可以手动设置它的喂食间隔,当单片机读秒到计时结束以后,会自动打开喂食阀门进行喂食。可以使用一号按键选中“喂食间隔”,然后2号按键是时间减少,3号按键是时间增加,每次上下5秒钟。在观赏鱼的饲养过程中,最值得注意的就是水质问题。观赏鱼是非常需要稳定的水质,但鱼缸的水又不可能一直在稳定的水质条件下。为了

温馨提示

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

评论

0/150

提交评论