养鸡场的智能控制系统方案_第1页
养鸡场的智能控制系统方案_第2页
养鸡场的智能控制系统方案_第3页
养鸡场的智能控制系统方案_第4页
养鸡场的智能控制系统方案_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

..天津职业技术师范大学TianjinUniversityofTechnologyandEducation毕业设计专业:应用电子技术教育班级__应电0914–31学生__曹烨玲指导高凤友副教授二〇一四年六月..天津职业技术师范大学本科生毕业论文养鸡场智能控制系统设计DesignofFarmsIntelligentControlSystem专业__应用电子技术教育学生__曹烨玲指导高凤友副教授学院:电子工程学院2014年6月摘要随着社会的不断进步,科学技术的不断提高,智能化已经逐渐占领市场,比如智能家居、智能温室大棚、智能机器人等,自动化、机械化、智能化的设备已逐渐代替了传统的体力劳作成为新型的劳动力,这种劳动力使人们的生活更加便利,也在一定程度上减少了人们的工作量,节约了大量时间。所以养鸡场的智能控制就体现了智能化的优势,它通过控制、监测鸡场内环境的温湿度、明亮程度、以及水和料的有无,来帮助我们更好的管理鸡场,提高了生产效率,均衡了市场禽类的销售。本设计以ARM芯片STM32作为系统的主控芯片,外围电路有包块温室度检测模块、AD采光模块、红外检测模块、报警模块、料袋检测模块、换气模块。主要功能是通过检测场内的温湿度,看看是不是适合鸡成长,温度以及湿度过高时可以开通风口〔打开换气风扇对其进行降温排湿;养鸡场喂食和添水是一个量很大的工作,所以针对这种情况添加了半自动喂食饮水功能,水盆的水没有满时会自动加满,当料袋子没有料时报警提示,让主人换料袋〔这种喂料方式不是适合所有形式的鸡场;当然,小鸡作为一个活的动物,难以避免会飞出或者跳出所呆区域,当出现这种情况时,红外报警防护就开启了,提醒主人有鸡飞出,及时抓取放回原处。关键词:STM32;采光温湿度;红外检测;报警系统ABSTRACTWiththecontinuousprogressofsociety,scienceandtechnology,continuousimprovementandintelligenthasgraduallydominatethemarket,suchassmarthome,smartgreenhouse,intelligentrobots,automation,mechanization,intelligentdeviceshasgraduallyreplacedthetraditionalmanuallabortobecomethenewlabor,thislaborforcetomakepeople'slivesmoreconvenient,butalsoreducestheworkloadofthepeopletosomeextent,savingalotoftime.Sointelligentcontrolchickenfarmembodiesanintelligentadvantagebycontrolling,monitoringthetemperatureandhumiditywithinthefarmenvironment,brightdegree,aswellasthepresenceorabsenceofwaterandmaterials,tohelpusbettermanagefarmstoimproveproductionefficiency,balancingthesalesmarketpoultry.TheSTM32ARMchipdesignasthesystemmasterchipperipheralcircuitshavemassgreenhousedetectionmodule,ADlightingmodule,infrareddetectormodule,alarmmodule,bagdetectionmodule,ventilationmodule.Themainfunctionistodetectthetemperatureandhumidityinside,seeifitissuitableforchickengrowth,theventscanbeopenedwhenthetemperatureandthehumidityistoohigh<openventilationfan>itscoolhumidity;farmfeedingandTimisanamountofwateralotofwork,soforthissituationaddssemiautomaticfeedingwaterfeaturewillautomaticallyfillthebasinwhenwaterisnotfull,thebagwhenthematerialisnomaterialalarm,sothattheownerchangebag<thisisnotthewayfeedingsuitableforallformsoffarms>;course,chickenasaliveanimal,wouldinevitablyflyorstayoutofthearea,whenthishappens,itopenstheprotectiveinfraredalarm,toremindtheownerachickenflying,crawlbackinplaceinatimelymanner.Keywords:STM32;lighting;temperatureandhumidity;infrareddetection;alarmsystem..目录1引言11.1智能鸡场发展背景11.2设计的目的及意义11.3发展现状及未来发展前景2发展变化21.3.2发展现状21.3.3未来发展前景32方案设计42.1方案论证42.1.1CPU主控芯片的设计42.1.2电源的选择42.1.3自动喂水方案选择52.1.4喂食装置选择6报警电路的选择6温湿度检测原件的选择62.1.7显示模块73硬件电路设计83.1系统整体说明83.2STM32控制电路93.2.1STM32硬件电路93.3电源电路103.3.1直流稳压电源的基本组成103.3.25v直流稳压电源103.3.3电源总体电路图113.4温湿度测量113.4.1引脚说明11单总线接口123.5压力传感器123.5.1应变效应讲解123.5.220kg传感器和HX711电压采集讲解133.6继电器电路143.7光电耦合器选择143.8驱动三极管的选择154软件设计164.1养鸡场控制系统主流程图164.2STM32底层驱动164.3按键程序174.3报警电路软件设计185调试过程205.1硬件调试205.2软件调试205.3温湿度、光照调试20总结22参考文献23附录一24附录二25致谢34..1引言1.1智能鸡场发展背景现在人们的生活水平稳步提高,肉类产品成为人们生活中不可缺少的食品,并且也是大部分人最喜欢吃的传统肉食品。导致现在肉食品的市场需求大,并且对肉食类的产品的质量要求高,致使我国生肉食鸡发展快速,而传统的养鸡方法落后,效率低,所以大批大型的养殖户引进新设备,智能管理鸡场。随着科学技术的不断发展,越来越多的领域已经迈向全自动化。早在多年前的鸡场就已经趋向自动化,科技进步。传统的养鸡场,全靠人工喂食、饮水,工作量极大,并且生产效率不高,质量相对来说比较低,并且容易引发疾病。现在的鸡舍引进新设备,大量的减少了工人们的工作量,通过智能控制鸡舍的温湿度,做好排风换气的工作,让鸡生长在一个适合的生活环境,晚间或者是太暗的时候开启照明灯,以便鸡们更好的进食等。自动喂食、饮水,为用户减少工作时间,并且减少劳动力,提高了工作和生产效率。智能鸡场帮助人们更好的管理鸡场,使产量和质量更上一层楼,跟的上时代的需求,解决市场的供不应求。1.2设计的目的及意义我国经济发展迅猛,人们生活质量提高,对肉食类产品的安全性提出了强烈要求,所以对禽类的环境的改善和疾病的抑制已经成为社会所关注的热点。过去养殖者花费大量的人力物力对鸡进行喂食、饮水,以及怎样使用疫苗和用药控制群鸡发病上,虽然没有什么爆发性的疾病,但是鸡的生产质量提不上去,生产效率也不是很高,经济效益低下,在现在的市场竞争中难以生存。这种情况的主要原因是鸡长期生长在不良的环境中,鸡的抵抗力下降,导致鸡群发病率高,死亡率也相对增加,增重也相对下降。通过智能控制鸡舍的环境,既能改善鸡生存环境,又提高了对疾病的抵抗力,还节省了不必要的药物费用,提高了生产效率。所以越来越多的饲养场采用先进的智能控制装置,在工作实践中对传统鸡舍进行了环境控制方面的改造和翻新,具体舍内温度、湿度、光照等内环境,以及环境的控制系统。这样通过智能检测,可以跟好的帮助饲养员一起管理鸡场,提高生产效率,降低成本,提高回扣,同时也促进了科技的发展。1.3发展现状及未来发展前景1.3.1发展变化过去的养殖都是人工养殖,像有些大型的养鸡场,他们雇大批人对鸡进行喂食、饮水。鸡舍的一个重要环节是要保持鸡舍的温度适中,通风效果良好,当时设备不先进,用温度计来查看鸡舍的温度,根据温度计显示来调节室内的温度,方法比较笨,养殖效率不高,鸡的质量也提不上去,同时耗费了大量的人力物力,降低了生产成本。随着科技的发展,智能设备逐渐登上舞台,鸡舍室内的温湿度通过传感器检测测的,直接读取数值。甚至有的通过设置合理的温湿度,当室内温度过高或者是过低时〔也就是温度超过设置的温度值时会报警提示,及时通知工作人员,对温度进行调整。当然现在的通风口设置也不再是在墙壁上凿个窟窿进行通风,而是安装智能通风风扇,温湿度过高时,风扇自行的进行排风,这样可以更好的对鸡舍进行降温和交换新鲜空气,这样工作人员可以把大量的精力投入到别的地方去。鸡舍环境很正要,但是最大量的工作是对鸡进行喂食,和饮水,人工喂食工作量很大,并且耗费时间。现在有大批智能设备涌入市场,可以方便轻松的喂食、饮水,节省了大量的劳动力,提高了生产效率。另外,规模养殖生产成本高,社会投资大,一般这种大型的养鸡场才会安装喂食饮水设备和温湿度智能检测。而中小型鸡场可能由于资金问题还是处于自己人工养殖状态,为了改变现状,我设计的智能养鸡场相对来说价格便宜,但是稳定性有可能不能与大型设备相比。1.3.2发展现状现在大型养鸡场一般采用机械化设备进行自主喂食饮水〔但是在喂食的过程中需要有人在旁边把料规整好,且需要手动开始。并且某些小型的养鸡场由于资金不足,只安装了自动饮水装置,节省了部分时间和劳动力。普遍的养鸡场都有安装温湿度检测,但是并不智能,需要通过人去读取才知道是不是要对室内温度进行调整,而且几乎所有的鸡场夜间都想需要打开灯,方便鸡夜间进食,但是并不智能,需要工作人员去操作。鸡舍有通风口是必须的,良好的生长环境利于鸡的成才,降低了鸡的疾病,但是大部分通风口都是在鸡舍的上方或者在墙壁上凿开一个窟窿,严冬天时还需要封死,直至鸡舍的味道实在是不利于鸡生长时才开启一点,但是温度也会相应的下降。鸡到成年时比较活泼,经常乱飞,有时飞离活动区域,或者是走出鸡舍,造成不必要的麻烦,更糟糕的是如果工作人员没有看到,可能会造成不必要的损失。1.3.3未来发展前景现在和过去的国家情况对比可见,人们对肉蛋质的需求逐渐增加,同时对鸡肉的品质提出了更高的要求。尤其近几年,我国的养鸡业发展比较快,养鸡的竞争将更加激烈。过去的鸡舍都是通过人工进行查看温湿度,以及光照情况,而现在的智能鸡舍基本趋于自动化,可以自动检测以及自行处理温湿度度过高或过低的情况,提高了鸡肉的产量和质量。添加了自动饮水及喂食装置,方面了鸡农的养殖,节省了时间及体力,可以更好的培养鸡群,提高养鸡业的产量和质量。有鸡跑出活动区域,报警提示,及时抓取,避免造成经济损失和不必要的麻烦。在未来的养殖业中,智能化将逐步取代人工,走上时代的舞台。2方案设计本系统基于温室度检测模块、AD采光模块、红外检测模块、报警模块、料袋检测模块、换气模块,在中央处理器的协调下,实现智能鸡场控制。在AD采光模块、红外检测模块、报警模块、喂食、饮水以及换气模块上都有多个方案可供选择,最终综合考虑,选择了一个最佳最合适的方案。2.1方案论证2.1.1CPU主控芯片的设计A.方案一:采用AT89S52作为CPU,AT89S52是一种高性能、低功耗的8位微控制器单片机,8K字节在系统可编程Flash存储器,拥有1000次的擦写周期等功能,在普通单片机编程中甚得同学们的喜爱,一般入门都是用AT89S52。B.方案二:采用STM32作为主控芯片,在嵌入式领域STM32芯片介于低端和高端之间他相对于普通的8/16位机有更多的芯片上外设,更先进的内核构架,可以运行uC/OS等实时操作系统;相对与可运行Linux操作系统的高端CPU,其成本低,实时性强且STM32具有开发速度快、易于阅读、维护成本低等优点。相对于普通的单片机〔如51单片机、STC单片机等,STM32发展空间更大,且后便于以后的维护和更新。通过上述方案一和方案二的比较,方案二更适合本次设计。2.1.2电源的选择A.方案一:化学电源化学电源一般是已经是成品的电源,如干电池、手机电池〔锂离子电池、电动车上的电池〔铅酸蓄电池等。这种电池便宜、小巧、且放电时间比较长,但这些只能用于耗电量比较少的设备。B.方案二:线性直流稳压电源<LPS>线性直流稳压电源是指调整管工作在线性状态下直流稳压稳压电源。线性稳压电源首先要经过变压器,把市电变成幅度小的交流电,然后经过整流电路,把交流电变成幅度稳定的脉动直流电,经过整流后的电压脉动大,再在整流桥后面加入滤波电路,把脉动直流电变成平滑的直流电压。此电压稳定,能持续供电。考虑到设计的需要和结合实际情况,鸡舍智能控制装置需要长期供电,并且一般不会移动,位置固定,所以选择比较笨重的线性直流稳压电源供电。即选择方案二。2.1.3自动喂水方案选择A.方案一:采用乳头饮水系统,原理简单,就像小孩的奶瓶,有吸力时就会有水流出,具体装置如图所示:图2-1饮水装置B.方案二:采用水盆式饮水装置,可多个鸡围绕水盆饮水,当水饮完后自动添满,具体装置如下图所示:图2-2中型饮水装置通过两个方案的比较,方案一更具专业化,且水一般不会溅出,而方案二体积大,一次可以提供十几只鸡的饮水,价格也比较便宜但是由于水是从上面流出而添满水盆,比较容易溅出,造成鸡舍的潮湿,所以采用方案一。2.1.4喂食装置选择A.方案一:采用机械化喂食装置,这种装置可以一次性喂食所有的鸡笼,简单,方便但是价格比较贵,不是所有的鸡舍都能安装这种装置。图2-3机械喂食装置B.方案二:用压力传感器检测料袋,当料袋的重量小于500克时,报警提示,及时更换料袋。通过两个方案的比较,由于方案一价格昂贵,且适合笼装鸡或者是蛋鸡的养殖,而方案二方法简单,价格便宜,所以选择方案二。2.1.5报警电路的选择A.方案一:采用蜂鸣器报警,蜂鸣器报警电路结构简单,原理易懂,且元器件容易查找,程序简洁,适合做简单的提示报警。B.方案二:采用ISD1820语音报警,语音报警方便简洁,可以让人直接、明了的知道发生了什么事,ISD1820是一款比较通用的报警设备,他可以先录制自己要提示的内容,当有突发情况时,是PLAY按键为低,即可报警。程序跟方案一一样的简洁,由于本设计要用到两种报警,所以方案一和方案二都选用。温湿度检测原件的选择A.方案一:采用18b20数字温度计,它是单总线器件,温度测量的范围一般在-55℃到+125℃之间,并且电路简单,体积小,但是只能测试温度不能测试湿度。B.方案二:采用DHT11数字温湿度传感器,DHT11传感器包含一个电阻式感湿元件和一个NTC测温元件。并且是单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗。因为鸡场规模一般不是很小,并且温湿度要一起检测,及温湿度传感器不应设置在一处,并且距离会比较长,鉴于实际情况考虑,选择DHT11温湿度传感器。2.1.7显示模块A.方案一:采用1602液晶显示,1602LCD显示的内容是16x2,可以显示两行的16字符液晶显示模块〔显示字符和数字。B.方案二:128X64是一种4/8位并行,二线或三线串行接口,以各种各样的方式,内部包含一个GB,简化汉字点阵图形液晶显示模块;与分辨率为128×64显示,内置8192×1616个字符,和128个16×8的ASCII字符集。使用这种方法,灵活的模块接口简单,方便的操作指令,可构成全中文人机交互图形界面。你可以显示8×4线16×16点阵字符。C.方案三:Nokia3310/5110液晶的驱动控制器为PCD8544,它可以驱动48行*84列的图形显示,51,通过三个方案的比较5110液晶性价比高,LCD1602可以显示32个字符,而Nokia5110可以显示15个汉字,30个字符。Nokia5110裸屏仅8.8元,LCD1602一般15元左右,LCD12864一般50~70元。所以选择方案三。3硬件电路设计3.1系统整体说明养鸡场智能控制系统首先通过检测场内的温湿度,看看是不是适合鸡成长,温度以及湿度过高时可以开通风口〔打开换气风扇对其进行降温排湿;因为养鸡场需要小鸡快速的成长,所以晚上也让鸡进食,所以晚上需要打开灯〔不需要太亮根据算好的距离安排日光灯;养鸡场喂食和添水是一个很大量的工作,在此针对这种情况我们也添加了自动添水功能,当料袋子没有料时报警提示,让主人换料袋〔这种喂料方式不是适合所有形式的鸡场;当然,小鸡作为一个活的动物,难以避免会飞出或者跳出所呆区域,当出现这种情况时,红外报警防护就开启了,提醒主人有鸡飞出,及时抓取。本设计以ARM芯片STM32作为系统的主控芯片,外围电路有包块温室度检测模块、AD采光模块、红外检测模块、报警模块、料袋检测模块、换气模块。其中料袋检测是用压力传感器实现检测的。系统框图如下:图3-1鸡场智能控制系统框图3.2STM32控制电路3.2.1STM32硬件电路图3-2STM32F103单片机引脚本仪器的主控芯片采用意法半导体〔ST公司生产的高性能单片机STM32F103,该款单片机使用高性能的ARMCortex-M332位的RISC内核,工作频率最高72MHZ,内置高速存储器,丰富的增强IO口设计和并联的两条外设总线APB,芯片包括两个12位的AD转化器ADC,3个通用16位定时器和1个PWM〔脉宽调制定时器,包含标准和先进的通信接口,多大3个IIC接口和SPI接口,3个USART接口,1USB接口和1个CAN接口。STM32应用于很多场合电机驱动和应用控制医疗和手持设备警报系统,视频对话PC游戏机外设本设计中采用的是STM32F103RBT6,选用此芯片就是看到其丰富的IO口对于我这个需要很多接口的设计来说,省去了很大一部分硬件电路的设计,再就是STM32以72M的速度处理时可以在软件滤波时提高整个设计的响应速度,从而保证精度的情况下提高了扫描速度,而且对于显示来说,提高了屏幕的刷新速度,能够快速的刷新数据。3.3电源电路3.3.1直流稳压电源的基本组成线性直流稳压电源大多采用电源变压器,将交流220V市电变为交流低压,然后经过整流,滤波得到直流低压后提供给稳压电路作稳压处理。直流稳压电源组成框图及各部分电路波形如图3-3所示,其主要组成部分为电源变压器、整流电路、滤波电路、稳压电路等。图3-3组成框图及各部分电压波形1、电源变压器:将交流电220v市电变压成12V的交流电。2、整流电路:整流的过程是将12V的交流电变成脉动直流电。3、滤波电路:滤波电路将整流后的脉动直流电变成平滑的直流电。4、稳压电路:稳压后的电压稳定,在此次设计中采用7805稳压。5v直流稳压电源系统组成框图如3-4:图3-4系统组成框图220V的交流电经过变压器,把交流电网电压整成本要求的交流电压。经过变压器之后的交流电通过整流桥,变成直流电压,但是经过整流桥的直流电压脉动比较大,需要给他加上滤波电路,经过滤波后得到稳定的直流电压值,使直流电压更加稳定。7812集成稳压块,表示输出稳压成正固定电压12V,在7812集成稳压块后面接如7805,7805可以直接将12V电压值稳压成正电压5V,并且稳压后的电流可以达到2A。3.3.3电源总体电路图图3-5电源电路图上图就是本次设计中的电源模块,把市电经过稳压电路变成12V交流电,然后经过整流桥,把交流电变成脉动直流电,通过滤波电路把脉动的直流电虑成平滑的直流电,最后经过稳压芯片稳成所需要的固定电压值5V。3.4温湿度测量3.4.1引脚说明表3-1DHT11引脚说明表Pin名称注释1VDD供电3.3-6VDC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,电源负极1VDD:DHT11所需要的供电电压是3.3-6V。当传感器加上电后,需要等待1秒的时间,不要进行任何操作,越过不稳定状态。电源引脚VDD、GND之间要接入一个0.1uf的电容,用它来去耦滤波。2DATA:串行数据引脚,单总线结构。一次可以传输40bits数据。单总线接口DATA采用单总线数据格式,用于微处理器与DHT110之间的通讯和同步,一次通讯时间5ms左右,数据传输为40bit,高位先出。数据格式:40bit数据=16bit湿度数据+16bit温度数据+8bit校验和例子:接收40bit数据如下:0000001010001100000000010101111111101110湿度数据温度数据校验和末8位=校验和=湿度高8位+湿度低8位+温度高8位+温度低8位例如:00000010+10001100+00000001+01011111=11101110湿度=65.2%RH温度=35.1℃当温度低于0℃时温度数据的最高位置1。例如:-10.1℃表示为10000000011001013.5压力传感器3.5.1应变效应讲解电阻应变式传感器是一种利用电阻应变效应,将各种力学量转换为电信号的结构型传感器。直流电桥的特点是信号不会受各元件和导线的分布电感及电容的影响,抗干扰能力强,但因机械应变的输出信号小,要求用高增益和高稳定性的放大器放大。下图为一直流供电的平衡电阻电桥,接直流电源E:图3-6压力传感器结构原理图当电桥输出端接无穷大负载电阻时,可视输出端为开路,此时直流电桥称为电压桥,即只有电压输出。当忽略电源的内阻时,由分压原理有:〔3-1=〔3-2当条件满足R2·R4==R1·R3时,即〔3-3=0,即电桥平衡。式〔3-3称平衡条件。应变片测量电桥在测量前使电桥平衡,从而使测量时电桥输出电压只与应变片感受的应变所引起的电阻变化有关。若差动工作,即R1=R-△R,R2=R+△R,R3=R-△R,R4=R+△R,按式〔3-2,则电桥输出为<3-4>3.5.220kg传感器和HX711电压采集讲解1、20kg传感器满量程输出电压=激励电压*灵敏度2.0mv/v。例如:供电电压是3.3v乘以灵敏度2.0mv/v=满量程6.6mv。相当于有20Kg重力产生时候产生6.6mV的电压。2、HX711对3.3V电压采集概述:711模块A通道带有128倍信号增益,可以将10mV的电压放大128倍,然后采样输出24bitAD转换的值,单片机通过指定时序将24bit数据读出。3、AD最大值计算:在3.3V的供电电压下20Kg的传感器最大输出电压是3.3v*2mv/V=6.6mV经过128倍放大后,最大电压为6.6mV*128=844.8mV经过AD转换后输出的24bit数字值最大为:422.4mV*224/3.3V≈42949674、将采集值转化为重量值假设重力为AKg,〔x<20Kg,测量出来的AD值为y20Kg传感器输出,发送给AD模块儿的电压为AKg*6.6mV/20Kg=0.33AmV经过128倍增益后为128*0.33A=42.24AmV转换为24bit数字信号为42.24AmV*224/3.3V=214748.3648A所以y=214748.3648A/100=2147.483648A因此得出A=y/2147.483648Kg≈y/2.15g所以得出程序中计算公式Weight_Shiwu=<unsignedint><<float>Weight_Shiwu/2.15+0.05>;3.6继电器电路图3-7继电器驱动电路原理分析:主控制器通过IO口控制光电耦合器中的内部发光元件来实现光敏三极管的简洁控制,当IO口输入高电平时,内部发光元件发光,当内部光敏三极管感应到光信号时,内部三级管导通,由于外部驱动三极管的基极电平被光敏三极管拉低,使得外部驱动三极管Q导通,使得Q的Uce接近于0,12V的Vcc经过限流电阻驱动继电器闭合,由于光电耦合器由于电流太小不能直接驱动继电器线圈,所以三极管Q的作用除了开关的功能还起到了电流放大的作用。3.7光电耦合器选择图3-8光电耦合器原理图光电耦合器的作用是将主控电路与继电器电路分离,防止继电器矩阵切换的高压大电流信号混入主控制电路,影响系统的稳定性。光电耦合器采用平时常见的PC817,PC817具有响应速度快,价格便宜的优势,广泛用应于需要隔离的继电器控制电路中。3.8驱动三极管的选择图3-98550外形图驱动用三极管采用小功率的PNP型三极管8550,8550能够提供最大500mA的电流,功耗625mW,最大集射极电压25V,足以驱动普通的小功率继电器。4软件设计如果说硬件是一个设计的身躯,那么可以说软件就是设计的灵魂,两者相辅相成,软件主要是根据硬件的构架进行设计,看看硬件所使用的模块,软件相应的做出调整,跟模块进行通信,建立人机交互。同时用户可以更好的控制模块,做出理想的设计。第四章内容主要讲解重要模块的软件设计。4.1养鸡场控制系统主流程图图4.1是本设计的主流程图,首先我对单片机进行初始化,等单片机进入运行状态后,开始扫描按键,对鸡舍温湿度进行设计〔鸡在不同的生长阶段有不同的环境要求,等准备程序做完后,读取数据,分析,计算,最后根据数据进行判断是否在正常的生活环境中,如温度太高或者是湿度太高,就开启换气装置,包括如果感觉鸡舍内二氧化碳浓度高也可自行开启启风唤起装置,再者判断料袋是否没有料了,如果没有进行报警,提示及时更换新的。图4-1程序主流程图4.2STM32底层驱动STM32在使用前需要进行一些设置,这里主要设置晶振的设置、PLL的设置、端口的设置、看门狗的设置、中断设置。PLL倍频:此款单片机内置PLL倍频,并支持高达100M的时钟周期,要选用高频率的始终可以使用PLL倍频,将低频率的外部时钟源升高,但在使用前必须进行设置,主要设置倍频数及源频率的来源。选择时钟源:在使用系统时钟源时,一般在启动时进行选择,一般复位时的时钟是8MHz的RC振荡器,之后可以设置成所需要的外部的4~16MHz时钟。当然当外部时钟失效时,会被隔离,并且会同时产生中断。看门狗的关闭:STM32系统内置看门狗,一般在溢出时复位,看门狗一半在复位时自动打开,要想正常使用看门狗,就要先对看门狗进行设置,当然再此我们一般用不到看门狗,所以关闭看门狗即可。设置端口:STM32在使用GPIO端口时需要对端口进行设置,可以设置成输出<推拉或开路>和输入<带或不带上拉或下拉>以及AD采集等其他功能;大电流通过的功能是GPIO的每个管脚都具备的。设置中断:STM32使用外部中断时,和与AT89S52单片机一样,需要配置外部中断寄存器或者是库函数。STM32的中断源相对来说较多,需要进行单独设置。4.3按键程序对按键进行实时扫描,判断是否有按键按下,当检测到有按键按下时,对按键进行处理,如果按键E按下,开启起风换气装置,对鸡舍进行放风,使空气保持清新。按键A按下后,进入温湿度设置界面的程序,并且对温湿度进行设置,进入温湿度设置函数后再次进行按键扫描,判断按键B是否有按下,如果按键B按下的话,选择需要的设置端,C按下在选择端的上面对数值进行加操作,D按下,在选择端的上面对数值进行减操作,图4.3为按键流程图:图4-2按键流程图4.3报警电路软件设计本设计中有两个地方需要报警提示,一是热释电红外检测电路,当检测到人体时,会发出报警,提示人们有外人进入或者是鸡离开活动区域。二一个是料袋检测报警电路,当料袋空了时报警提示,及时更换料袋避免鸡缺食。流程图设计如下图:图4-3报警电路流程图5调试过程5.1硬件调试首先将传感器模块通过串口连接到计算机,用串口调试助手查看传感器模块是否可以正常工作,若数据显示正确,用单片机进行数据处理,排风装置接电查看是否能正常工作。电源部分做成后用万用表检查,输出电压是不是我们所需要的电压。5.2软件调试1、温湿度软件调试:读取温湿度传感器的值,并且对数据进行处理,然后通过串口发送到电脑上观察数据,并且与实际温度进行对比,看看是否正确。2、光敏电阻调试:AD读取光敏值,开始不要盖住光敏进行检测,通过串口发送数据到电脑观察,正常光照的电压值,用布或者手盖住光敏,观察数据,一般正常光照>2.9v,黑天时电压一般比较小。3、热释电红外:读取热释电红外的值,高电平说明没有人经过,但出现低电平时说明有鸡外出。5.3温湿度、光照调试鸡在不同的生长时期需要的温湿度不同,根据需要设置温湿度。可以自行设置温湿度的标准,当超过规定值时,打开通风口或者开启加热装置,对其进行降温或者是升温。下面是鸡的参照标准:1、温度:鸡的生长环境很重要,尤其是温度。雏鸡在1~3天需要的环境温度是37℃,4~7天的温度是35℃,在这以后每周降温2℃直到21℃。2、湿度:湿度也是鸡生长环境正要的因素。小鸡在前10天中适合的温湿度是65%-70%;鸡的生长迅速,在10天后鸡的粪便增多,且呼吸加重,极其容易潮湿,湿度需要控制在50%-55%,记得不要小于40%。3、通风:一般的鸡舍都会设置通过封口,改善鸡室内的温湿度和空气质量,在开启通风口时,温度应该多设置1~2度,然后智能开启窗口,进行通风。

4、光照:白天,鸡可以进行正常的生活,但是夜间由于鸡的眼力不好晚间基本看不清,所以需要开启照明装置,方便夜间进食,一般第一周23-24小时/天,目的是为了让雏鸡尽快熟悉环境,便于饮水,采食。之后的可以适当把灯光调暗。表4-1温度参照表时间笼养平养1-3天35-37℃37℃4-7天34-36℃35℃2周龄33-35℃33℃3周龄31-33℃31℃4周龄29-31℃29℃5周龄27-29℃27℃6周龄25-27℃25℃表4-2光照参照表1-3日龄每天24小时光照,强度为20~30Lux4-14日龄每天减少1小时直到13小时15-21日龄每天减少0.5小时直到9.5小时4周龄每天9小时光照5-15周龄每天8小时光照16-18周龄每周增加0.5小时〔周初加到11小时19周龄每周增加0.5小时〔周初加到16小时恒定强度为10-20Lux总结看着自己的毕业设计,我想说,我终于把你做出来了,虽然花了一个学期的时间,但是值得。在做毕设之前总认为毕设不难,应该用不了多长时间就可以完成,但是当我真正去做的时候才知道毕设不仅很难,并且很麻烦,在做毕设的时候要阅读大量的文献,来寻求自己所需要的,还要将自己所学的知识融会贯通在一起。这次毕设,我真真知道了什么是书到用时方恨少呀,自己需要学习的东西还太多,以前总是认为自己学的还行,可以自己动手做,由于过高的估计了自己的能力,并且开始作毕设的时间有点晚,导致最后自己有点手忙脚乱。我这次的设计是智能鸡场控制系统,在制作的过程中碰到很多问题,在焊接电路时,由于设计还不完整,所以有一部分电路没有在主控板上,不过经过多次的设计,最终还是比较满意的,软件调试时碰到的问题最多,程序编写存在的漏洞,有时会耗费很长时间来查找、调试。不过通过努力和指导老师高老师的耐心指导,解决了所有问题,再次感谢高老师对我的帮助。参考文献[1]刘火良、杨森编著.STM32库开发实战指南[2]STM32F10xxx参考手册[3]32位基于ARM微控制器STM32F101xx与STM32F103xx固件函数库[4]JeanJ.labross.嵌入式实时操作系统us/os-Ⅱ[5]JeanJ.labross.嵌入式实时操作系统us/os-Ⅲ基于STM32微控制器[6]JosephYiu.TheDefinitiveGuidetotheARMcortex-M3[7]JeanJ.labross.嵌入式实时操作系统us/os-Ⅲ[8]刘波文、孙岩.嵌入式实时操作系统us/os-Ⅱ经典实例基于STM32处理器[9]任哲.嵌入式实时操作系统us/os-Ⅱ原理及应用[10]孙建民、杨清梅.传感器技术[11]康华光.电子技术基础模拟部分〔第四版.高等教育出版社,2004[12]康华光.电子技术基础数字部分〔第四版.高等教育出版社,2004[13]吉野新治.传感器电路设计手册[14]胡向东.传感器与检测技术[15]谭浩强.C语言程序设计附录一图a最小系统电路图b风扇驱动电路附录二温湿度程序#include"DHT11.h"/**函数名:DHT11_GPIO_Config*描述:配置DHT11用到的I/O口*输入:无*输出:无*/voidLED_GPIO_Config<void>{ /*defineaGPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDefGPIO_InitStructure; /*setupGPIOA's外设时钟*/ RCC_APB2PeriphClockCmd<RCC_APB2Periph_GPIOB,ENABLE>; /*selectedwillcontrolGPIOAio*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /*setIOrateis50MHz*/ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/*GPIO_InitStructureisstructure,useitinitialiseGPIOA*/ GPIO_Init<GPIOB,&GPIO_InitStructure>; }voidKey_GPIO_Config<void>{ /*defineaGPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDefGPIO_InitStructure; /*setupGPIOA's外设时钟*/ RCC_APB2PeriphClockCmd<RCC_APB2Periph_GPIOA,ENABLE>; /*selectedwillcontrolGPIOAio*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; /*setIOrateis50MHz*/ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/*GPIO_InitStructureisstructure,useitinitialiseGPIOA*/ GPIO_Init<GPIOA,&GPIO_InitStructure>; }voidFeng_GPIO_Config<void>{ /*defineaGPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDefGPIO_InitStructure; /*setupGPIOA's外设时钟*/ RCC_APB2PeriphClockCmd<RCC_APB2Periph_GPIOA,ENABLE>; /*selectedwillcontrolGPIOAio*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /*setIOrateis50MHz*/ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/*GPIO_InitStructureisstructure,useitinitialiseGPIOA*/ GPIO_Init<GPIOA,&GPIO_InitStructure>; }voidDHT11_GPIO_Config<void>{ /*定义一个GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDefGPIO_InitStructure; /*开启GPIOD的外设时钟*/ RCC_APB2PeriphClockCmd<RCC_APB2Periph_GPIOB,ENABLE>; /*选择要控制的GPIOD引脚*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; /*设置引脚模式为通用推挽输出*/ GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /*设置引脚速率为50MHz*/ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; /*调用库函数,初始化GPIOD*/ GPIO_Init<GPIOB,&GPIO_InitStructure>; /*拉高GPIOD12 */ GPIO_SetBits<GPIOB,GPIO_Pin_13>; }/**函数名:DHT11_Mode_IPU*描述:使DHT11-DATA引脚变为输入模式*输入:无*输出:无*/staticvoidDHT11_Mode_IPU<void>{ GPIO_InitTypeDefGPIO_InitStructure; /*选择要控制的GPIOD引脚*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; /*设置引脚模式为浮空输入模式*/ GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; /*调用库函数,初始化GPIOD*/ GPIO_Init<GPIOB,&GPIO_InitStructure>; }/**函数名:DHT11_Mode_Out_PP*描述:使DHT11-DATA引脚变为输出模式*输入:无*输出:无*/staticvoidDHT11_Mode_Out_PP<void>{ GPIO_InitTypeDefGPIO_InitStructure; /*选择要控制的GPIOD引脚*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; /*设置引脚模式为通用推挽输出*/ GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /*设置引脚速率为50MHz*/ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; /*调用库函数,初始化GPIOD*/ GPIO_Init<GPIOB,&GPIO_InitStructure>; }staticuint8_tRead_Byte<void>{ uint8_ti,temp=0; for<i=0;i<8;i++> { /*每bit以50us低电平标置开始,轮询直到从机发出的50us低电平结束*/ while<DHT11_DATA_IN<>==Bit_RESET>; /*DHT11以27~28us的高电平表示"0",以70us高电平表示"1", 通过检测60us后的电平即可区别这两个状态*/ Delay_us<6>;//延时60us if<DHT11_DATA_IN<>==Bit_SET>//60us后仍为高电平表示数据"1" { /*轮询直到从机发出的剩余的30us高电平结束*/ while<DHT11_DATA_IN<>==Bit_SET>; temp|=<uint8_t><0x01<<<7-i>>;//把第7-i位置1 } else //60us后为低电平表示数据"0" { temp&=<uint8_t>~<0x01<<<7-i>>;//把第7-i位置0 } } returntemp;}uint8_tRead_DHT11<DHT11_Data_TypeDef*DHT11_Data>{ /*输出模式*/DHT11_Mode_Out_PP<>;/*主机拉低*/DHT11_DATA_OUT<LOW>;/*延时18ms*/Delay_ms<18>;/*总线拉高主机延时30us*/DHT11_DATA_OUT<HIGH>;Delay_us<3>;//延时30us /*主机设为输入判断从机响应信号*/DHT11_Mode_IPU<>;/*判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行*/if<DHT11_DATA_IN<>==Bit_RESET>//T!{ /*轮询直到从机发出的80us低电平响应信号结束*/ while<DHT11_DATA_IN<>==Bit_RESET>; /*轮询直到从机发出的80us高电平标置信号结束*/ while<DHT11_DATA_IN<>==Bit_SET>; /*开始接收数据*/ DHT11_Data->humi_int=Read_Byte<>; DHT11_Data->humi_deci=Read_Byte<>; DHT11_Data->temp_int=Read_Byte<>; DHT11_Data->temp_deci=Read_Byte<>; DHT11_Data->check_sum=Read_Byte<>; /*读取结束,引脚改为输出模式*/ DHT11_Mode_Out_PP<>; /*主机拉高*/ DHT11_DATA_OUT<HIGH>; /*检查读取的数据是否正确*/ if<DHT11_Data->check_sum==DHT11_Data->humi_int+DHT11_Data->humi_deci+DHT11_Data->temp_int+DHT11_Data->temp_deci>returnSUCCESS;else returnERROR;}else { returnERROR; }}/*************************************ENDOFFILE******************************/B、压力程序#include"YALI.h"voidHX711_GPIO4_Config<void>{ /*定义一个GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDefGPIO_InitStructure; /*开启GPIOD的外设时钟*/ RCC_APB

温馨提示

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

评论

0/150

提交评论