养鸡场的智能控制系统 - 图文

更新时间:2024-05-17 18:02:01 阅读量: 综合文库 文档下载

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

天津职业技术师范大学

Tianjin University of Technology and Education

毕 业 设 计

专 业: 应用电子技术教育 班级学号: 应电0914 – 31 学生姓名: 曹烨玲 指导教师: 高凤友 副教授

二〇一四年六月

天津职业技术师范大学本科生毕业论文

养鸡场智能控制系统设计

Design of Farms Intelligent Control System

专业班级:应用电子技术教育 学生姓名:曹烨玲 指导教师:高凤友 副教授 学 院:电子工程学院

2014 年 6 月

摘 要

随着社会的不断进步,科学技术的不断提高,智能化已经逐渐占领市场,比如智能家居、智能温室大棚、智能机器人等,自动化、机械化、智能化的设备已逐渐代替了传统的体力劳作成为新型的劳动力,这种劳动力使人们的生活更加便利,也在一定程度上减少了人们的工作量,节约了大量时间。所以养鸡场的智能控制就体现了智能化的优势,它通过控制、监测鸡场内环境的温湿度、明亮程度、以及水和料的有无,来帮助我们更好的管理鸡场,提高了生产效率,均衡了市场禽类的销售。

本设计以ARM芯片STM32作为系统的主控芯片,外围电路有包块温室度检测模块、AD采光模块、红外检测模块、报警模块、料袋检测模块、换气模块。主要功能是通过检测场内的温湿度,看看是不是适合鸡成长,温度以及湿度过高时可以开通风口(打开换气风扇)对其进行降温排湿;养鸡场喂食和添水是一个量很大的工作,所以针对这种情况添加了半自动喂食饮水功能,水盆的水没有满时会自动加满,当料袋子没有料时报警提示,让主人换料袋(这种喂料方式不是适合所有形式的鸡场);当然,小鸡作为一个活的动物,难以避免会飞出或者跳出所呆区域,当出现这种情况时,红外报警防护就开启了,提醒主人有鸡飞出,及时抓取放回原处。

关键词:STM32;采光温湿度;红外检测;报警系统

ABSTRACT

With the continuous progress of society, science and technology, continuous improvement and intelligent has gradually dominate the market, such as smart home , smart greenhouse, intelligent robots , automation, mechanization , intelligent devices has gradually replaced the traditional manual labor to become the new labor , this labor force to make people's lives more convenient , but also reduces the workload of the people to some extent , saving a lot of time . So intelligent control chicken farm embodies an intelligent advantage by controlling , monitoring the temperature and humidity within the farm environment , bright degree , as well as the presence or absence of water and materials , to help us better manage farms to improve production efficiency , balancing the sales market poultry .

The STM32 ARM chip design as the system master chip peripheral circuits have mass greenhouse detection module , AD lighting module , infrared detector module , alarm module , bag detection module , ventilation module. The main function is to detect the temperature and humidity inside , see if it is suitable for chicken growth , the vents can be opened when the temperature and the humidity is too high ( open ventilation fan ) its cool humidity ; farm feeding and Tim is an amount of water a lot of work , so for this situation adds semiautomatic feeding water feature will automatically fill the basin when water is not full , the bag when the material is no material alarm, so that the owner change bag ( this is not the way feeding suitable for all forms of farms ) ; course , chicken as a live animal , would inevitably fly or stay out of the area , when this happens , it opens the protective infrared alarm , to remind the owner a chicken flying , crawl back in place in a timely manner .

Keywords: STM32; lighting; temperature and humidity; infrared detection; alarm system

目录

1 引言.................................................................................................................... 1

1.1智能鸡场发展背景.................................................................................. 1 1.2设计的目的及意义.................................................................................. 1 1.3发展现状及未来发展前景...................................................................... 2

1.3.1发展变化....................................................................................... 2 1.3.2 发展现状...................................................................................... 2 1.3.3 未来发展前景.............................................................................. 3

2 方案设计............................................................................................................ 4

2.1 方案论证................................................................................................. 4

2.1.1 CPU主控芯片的设计 .................................................................. 4 2.1.2 电源的选择.................................................................................. 4 2. 1. 3 自动喂水方案选择.................................................................... 5 2. 1. 4 喂食装置选择............................................................................ 6 2.1.5报警电路的选择........................................................................... 6 2.1.6温湿度检测原件的选择............................................................... 7 2.1.7 显示模块...................................................................................... 7

3 硬件电路设计.................................................................................................... 8

3.1 系统整体说明......................................................................................... 8 3.2 STM32控制电路 .................................................................................... 9

3.2.1 STM32硬件电路 ......................................................................... 9 3.3 电源电路............................................................................................... 10

3.3.1 直流稳压电源的基本组成........................................................ 10 3.3.2 5v直流稳压电源..................................................................... 10 3.3.3 电源总体电路图........................................................................ 11 3.4 温湿度测量........................................................................................... 11

3.4.1 引脚说明.................................................................................... 11 3.4.3单总线接口................................................................................. 12 3.5 压力传感器........................................................................................... 12

3.5.1 应变效应讲解............................................................................ 12 3.5.2 20kg传感器和HX711电压采集讲解 ................................... 13 3.6继电器电路............................................................................................ 14

I

3.7 光电耦合器选择................................................................................... 14 3.8 驱动三极管的选择............................................................................... 15 4 软件设计.......................................................................................................... 16

4.1 养鸡场控制系统主流程图................................................................... 16 4.2 STM32底层驱动 .................................................................................. 16 4.3 按键程序............................................................................................... 17 4.3 报警电路软件设计............................................................................... 18 5 调试过程.......................................................................................................... 20

5.1硬件调试................................................................................................ 20 5.2软件调试................................................................................................ 20 5.3温湿度、光照调试................................................................................ 20 总结...................................................................................................................... 22 参考文献.............................................................................................................. 23 附录一.................................................................................................................. 24 附录二.................................................................................................................. 25 致 谢.............................................................................................................. 34

II

天津职业技术师范大学2014 届本科毕业设计

1 引言

1.1智能鸡场发展背景

现在人们的生活水平稳步提高,肉类产品成为人们生活中不可缺少的食品,并且也是大部分人最喜欢吃的传统肉食品。导致现在肉食品的市场需求大,并且对肉食类的产品的质量要求高,致使我国生肉食鸡发展快速,而传统的养鸡方法落后,效率低,所以大批大型的养殖户引进新设备,智能管理鸡场。

随着科学技术的不断发展,越来越多的领域已经迈向全自动化。早在多年前的鸡场就已经趋向自动化,科技进步。传统的养鸡场,全靠人工喂食、饮水,工作量极大,并且生产效率不高,质量相对来说比较低,并且容易引发疾病。现在的鸡舍引进新设备,大量的减少了工人们的工作量,通过智能控制鸡舍的温湿度,做好排风换气的工作,让鸡生长在一个适合的生活环境,晚间或者是太暗的时候开启照明灯,以便鸡们更好的进食等。自动喂食、饮水,为用户减少工作时间,并且减少劳动力,提高了工作和生产效率。智能鸡场帮助人们更好的管理鸡场,使产量和质量更上一层楼,跟的上时代的需求,解决市场的供不应求。

1.2设计的目的及意义

我国经济发展迅猛,人们生活质量提高,对肉食类产品的安全性提出了强烈要求,所以对禽类的环境的改善和疾病的抑制已经成为社会所关注的热点。过去养殖者花费大量的人力物力对鸡进行喂食、饮水,以及怎样使用疫苗和用药控制群鸡发病上,虽然没有什么爆发性的疾病,但是鸡的生产质量提不上去,生产效率也不是很高,经济效益低下,在现在的市场竞争中难以生存。这种情况的主要原因是鸡长期生长在不良的环境中,鸡的抵抗力下降,导致鸡群发病率高,死亡率也相对增加,增重也相对下降。通过智能控制鸡舍的环境,既能改善鸡生存环境,又提高了对疾病的抵抗力,还节省了不必要的药物费用,提高了生产效率。所以越来越多的饲养场采用先进的智能控制装置,在工作实践中对传统鸡舍进行了环境控制方面的改造和翻新,具体舍内温度、湿度、光照等内环境,以及环境的控制系统。这样通过智能检测,可以跟好的帮助饲养员一起管理鸡场,提高生产效率,降低成本,提高回扣,同时也促进了科技的发展。

1

天津职业技术师范大学2014 届本科毕业设计

1.3发展现状及未来发展前景

1.3.1发展变化

过去的养殖都是人工养殖,像有些大型的养鸡场,他们雇大批人对鸡进行喂食、饮水。鸡舍的一个重要环节是要保持鸡舍的温度适中,通风效果良好,当时设备不先进,用温度计来查看鸡舍的温度,根据温度计显示来调节室内的温度,方法比较笨,养殖效率不高,鸡的质量也提不上去,同时耗费了大量的人力物力,降低了生产成本。随着科技的发展,智能设备逐渐登上舞台,鸡舍室内的温湿度通过传感器检测测的,直接读取数值。甚至有的通过设置合理的温湿度,当室内温度过高或者是过低时(也就是温度超过设置的温度值时)会报警提示,及时通知工作人员,对温度进行调整。当然现在的通风口设置也不再是在墙壁上凿个窟窿进行通风,而是安装智能通风风扇,温湿度过高时,风扇自行的进行排风,这样可以更好的对鸡舍进行降温和交换新鲜空气,这样工作人员可以把大量的精力投入到别的地方去。鸡舍环境很正要,但是最大量的工作是对鸡进行喂食,和饮水,人工喂食工作量很大,并且耗费时间。现在有大批智能设备涌入市场,可以方便轻松的喂食、饮水,节省了大量的劳动力,提高了生产效率。

另外,规模养殖生产成本高,社会投资大,一般这种大型的养鸡场才会安装喂食饮水设备和温湿度智能检测。而中小型鸡场可能由于资金问题还是处于自己人工养殖状态,为了改变现状,我设计的智能养鸡场相对来说价格便宜,但是稳定性有可能不能与大型设备相比。 1.3.2 发展现状

现在大型养鸡场一般采用机械化设备进行自主喂食饮水(但是在喂食的过程中需要有人在旁边把料规整好,且需要手动开始)。并且某些小型的养鸡场由于资金不足,只安装了自动饮水装置,节省了部分时间和劳动力。普遍的养鸡场都有安装温湿度检测,但是并不智能,需要通过人去读取才知道是不是要对室内温度进行调整,而且几乎所有的鸡场夜间都想需要打开灯,方便鸡夜间进食,但是并不智能,需要工作人员去操作。鸡舍有通风口是必须的,良好的生长环境利于鸡的成才,降低了鸡的疾病,但是大部分通风口都是在鸡舍的上方或者在墙壁上凿开一个窟窿,严冬天时还需要封死,直至鸡舍的味道实在是不利于鸡生长时才开启一点,但是温度也会相应的下降。 鸡到成年时比较活泼,经常乱飞,有时飞离活动区域,或者是走出鸡舍,造成不必要的麻烦,更糟糕的是如果工作人员没有看到,可能会造成不必要的损失。

2

天津职业技术师范大学2014 届本科毕业设计

1.3.3 未来发展前景

现在和过去的国家情况对比可见,人们对肉蛋质的需求逐渐增加,同时对鸡肉的品质提出了更高的要求。尤其近几年,我国的养鸡业发展比较快,养鸡的竞争将更加激烈。过去的鸡舍都是通过人工进行查看温湿度,以及光照情况,而现在的智能鸡舍基本趋于自动化,可以自动检测以及自行处理温湿度度过高或过低的情况,提高了鸡肉的产量和质量。添加了自动饮水及喂食装置,方面了鸡农的养殖,节省了时间及体力,可以更好的培养鸡群,提高养鸡业的产量和质量。有鸡跑出活动区域,报警提示,及时抓取,避免造成经济损失和不必要的麻烦。在未来的养殖业中,智能化将逐步取代人工,走上时代的舞台。

3

天津职业技术师范大学2014 届本科毕业设计

2 方案设计

本系统基于温室度检测模块、AD采光模块、红外检测模块、报警模块、料袋检测模块、换气模块,在中央处理器的协调下,实现智能鸡场控制。在AD采光模块、红外检测模块、报警模块、喂食、饮水以及换气模块上都有多个方案可供选择,最终综合考虑,选择了一个最佳最合适的方案。

2.1 方案论证

2.1.1 CPU主控芯片的设计

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)

线性直流稳压电源是指调整管工作在线性状态下直流稳压稳压电源。线性稳压电源首先要经过变压器,把市电变成幅度小的交流电,然后经过整流电路,把交流电变成幅度稳定的脉动直流电,经过整流后的电压脉动大,再在整流桥后面加入滤波电路,把脉动直流电变成平滑的直流电压。此电压稳定,能持续供电。

考虑到设计的需要和结合实际情况,鸡舍智能控制装置需要长期供电,并且一般

4

天津职业技术师范大学2014 届本科毕业设计

不会移动,位置固定,所以选择比较笨重的线性直流稳压电源供电。即选择方案二。 2. 1. 3 自动喂水方案选择

A.方案一:采用乳头饮水系统,原理简单,就像小孩的奶瓶,有吸力时就会有水流出,具体装置如图所示:

图2-1 饮水装置

B.方案二:采用水盆式饮水装置,可多个鸡围绕水盆饮水,当水饮完后自动添满,具体

装置如下图所示:

图2-2 中型饮水装置

5

天津职业技术师范大学2014 届本科毕业设计

通过两个方案的比较,方案一更具专业化,且水一般不会溅出,而方案二体积大,一次可以提供十几只鸡的饮水,价格也比较便宜但是由于水是从上面流出而添满水盆,比较容易溅出,造成鸡舍的潮湿,所以采用方案一。 2. 1. 4 喂食装置选择

A.方案一:采用机械化喂食装置,这种装置可以一次性喂食所有的鸡笼,简单,方便但是价格比较贵,不是所有的鸡舍都能安装这种装置。

图2-3 机械喂食装置

B.方案二:用压力传感器检测料袋,当料袋的重量小于500克时,报警提示,及时更换料袋。通过两个方案的比较,由于方案一价格昂贵,且适合笼装鸡或者是蛋鸡的养殖,而方案二方法简单,价格便宜,所以选择方案二。 2.1.5报警电路的选择

A.方案一:采用蜂鸣器报警,蜂鸣器报警电路结构简单,原理易懂,且元器件容易查找,程序简洁,适合做简单的提示报警。

B.方案二:采用ISD1820语音报警,语音报警方便简洁,可以让人直接、明了的知道发生了什么事,ISD1820是一款比较通用的报警设备,他可以先录制自己要提示的内容,当有突发情况时,是PLAY按键为低,即可报警。程序跟方案一一样的简洁,由于本设计要用到两种报警,所以方案一和方案二都选用。

6

天津职业技术师范大学2014 届本科毕业设计

2.1.6温湿度检测原件的选择

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×16 16个字符,和128个16×8的ASCII字符集。使用这种方法,灵活的模块接口简单,方便的操作指令,可构成全中文人机交互图形界面。你可以显示8×4线16×16点阵字符。

C.方案三:Nokia3310/5110液晶的驱动控制器为 PCD8544,它可以驱动48行*84列的图形显示,5110液晶的工作电压为2.7-3.3V,通过三个方案的比较5110液晶性价比高,LCD1602可以显示32个字符,而Nokia5110可以显示15个汉字,30个字符。Nokia5110裸屏仅8.8元,LCD1602一般15元左右,LCD12864一般50~70元。所以选择方案三。

7

天津职业技术师范大学2014 届本科毕业设计

3 硬件电路设计

3.1 系统整体说明

养鸡场智能控制系统首先通过检测场内的温湿度,看看是不是适合鸡成长,温度以及湿度过高时可以开通风口(打开换气风扇)对其进行降温排湿;因为养鸡场需要小鸡快速的成长,所以晚上也让鸡进食,所以晚上需要打开灯(不需要太亮根据算好的距离安排日光灯);养鸡场喂食和添水是一个很大量的工作,在此针对这种情况我们也添加了自动添水功能,当料袋子没有料时报警提示,让主人换料袋(这种喂料方式不是适合所有形式的鸡场);当然,小鸡作为一个活的动物,难以避免会飞出或者跳出所呆区域,当出现这种情况时,红外报警防护就开启了,提醒主人有鸡飞出,及时抓取。

本设计以ARM芯片STM32作为系统的主控芯片,外围电路有包块温室度检测模块、AD采光模块、红外检测模块、报警模块、料袋检测模块、换气模块。其中料袋检测是用压力传感器实现检测的。系统框图如下:

图3-1 鸡场智能控制系统框图

8

天津职业技术师范大学2014 届本科毕业设计

3.2 STM32控制电路

3.2.1 STM32硬件电路

图3-2 STM32F103单片机引脚

本仪器的主控芯片采用意法半导体(ST)公司生产的高性能单片机STM32F103,该款单片机使用高性能的ARM Cortex-M3 32位的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的速度处理时可以在软件滤波时提高整个设计的响应速度,从而保证精度的情况下提高了扫描速度,而且对于显示来说,提高了屏幕的刷新速度,能够快速的刷新数据。

9

天津职业技术师范大学2014 届本科毕业设计

图3-8光电耦合器原理图

光电耦合器的作用是将主控电路与继电器电路分离,防止继电器矩阵切换的高压大电流信号混入主控制电路,影响系统的稳定性。光电耦合器采用平时常见的PC817,PC817具有响应速度快,价格便宜的优势,广泛用应于需要隔离的继电器控制电路中。

3.8 驱动三极管的选择

图3-9 8550外形图

驱动用三极管采用小功率的PNP型三极管8550,8550能够提供最大500mA的电流,功耗625mW,最大集射极电压25V,足以驱动普通的小功率继电器。

15

天津职业技术师范大学2014 届本科毕业设计

4 软件设计

如果说硬件是一个设计的身躯,那么可以说软件就是设计的灵魂,两者相辅相成,软件主要是根据硬件的构架进行设计,看看硬件所使用的模块,软件相应的做出调整,跟模块进行通信,建立人机交互。同时用户可以更好的控制模块,做出理想的设计。第四章内容主要讲解重要模块的软件设计。

4.1 养鸡场控制系统主流程图

图4.1是本设计的主流程图,首先我对单片机进行初始化,等单片机进入运行状态后,开始扫描按键,对鸡舍温湿度进行设计(鸡在不同的生长阶段有不同的环境要求),等准备程序做完后,读取数据,分析,计算,最后根据数据进行判断是否在正常的生活环境中,如温度太高或者是湿度太高,就开启换气装置,包括如果感觉鸡舍内二氧化碳浓度高也可自行开启启风唤起装置,再者判断料袋是否没有料了,如果没有进行报警,提示及时更换新的。

图4-1 程序主流程图

4.2 STM32底层驱动

STM32在使用前需要进行一些设置,这里主要设置晶振的设置、PLL的设置、端口的设置、看门狗的设置、中断设置。

PLL倍频:此款单片机内置PLL倍频,并支持高达100M的时钟周期,要选用高频率的始终可以使用PLL倍频,将低频率的外部时钟源升高,但在使用前必须进

16

天津职业技术师范大学2014 届本科毕业设计

行设置,主要设置倍频数及源频率的来源。

选择时钟源:在使用系统时钟源时,一般在启动时进行选择,一般复位时的时钟是8MHz的RC振荡器,之后可以设置成所需要的外部的4~16MHz时钟。当然当外部时钟失效时,会被隔离,并且会同时产生中断。

看门狗的关闭:STM32系统内置看门狗,一般在溢出时复位,看门狗一半在复位时自动打开,要想正常使用看门狗,就要先对看门狗进行设置,当然再此我们一般用不到看门狗,所以关闭看门狗即可。

设置端口:STM32在使用GPIO端口时需要对端口进行设置,可以设置成输出(推拉或开路)和输入(带或不带上拉或下拉)以及AD采集等其他功能;大电流通过的功能是GPIO的每个管脚都具备的。

设置中断:STM32使用外部中断时,和与AT89S52单片机一样,需要配置外部中断寄存器或者是库函数。STM32的中断源相对来说较多,需要进行单独设置。

4.3 按键程序

对按键进行实时扫描,判断是否有按键按下,当检测到有按键按下时,对按键进行处理,如果按键E按下,开启起风换气装置,对鸡舍进行放风,使空气保持清新。按键A按下后,进入温湿度设置界面的程序,并且对温湿度进行设置,进入温湿度设置函数后再次进行按键扫描,判断按键B是否有按下,如果按键B按下的话,选择需要的设置端,C按下在选择端的上面对数值进行加操作,D按下,在选择端的上面对数值进行减操作,图4.3为按键流程图:

17

天津职业技术师范大学2014 届本科毕业设计

图4-2 按键流程图

4.3 报警电路软件设计

本设计中有两个地方需要报警提示,一是热释电红外检测电路,当检测到人体时,会发出报警,提示人们有外人进入或者是鸡离开活动区域。二一个是料袋检测报警电路,当料袋空了时报警提示,及时更换料袋避免鸡缺食。流程图设计如下图:

18

天津职业技术师范大学2014 届本科毕业设计

图4-3 报警电路流程图

19

天津职业技术师范大学2014 届本科毕业设计

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小时/天,目的是为了让雏鸡尽快熟悉环境,便于饮水,采食。之后的可以适当把灯光调暗。

20

天津职业技术师范大学2014 届本科毕业设计

表4-1 温度参照表

时间 1-3天 4-7天 2周龄 3周龄 4周龄 5周龄 6周龄 笼养 35-37℃ 34-36℃ 33-35℃ 31-33℃ 29-31℃ 27-29℃ 25-27℃

表4-2 光照参照表

平养 37℃ 35℃ 33℃ 31℃ 29℃ 27℃ 25℃

1-3日龄 4-14日龄 15-21日龄 4周龄 5-15周龄 16-18周龄 19周龄 每天24小时光照,强度为20~30Lux 每天减少1小时直到13小时 每天减少0.5小时直到9.5小时 每天9小时光照 每天8小时光照 每周增加0.5小时(周初加)到11小时 每周增加0.5小时(周初加)到16小时恒定 强度为10-20Lux 21

天津职业技术师范大学2014 届本科毕业设计

总结

看着自己的毕业设计,我想说,我终于把你做出来了,虽然花了一个学期的时间,但是值得。在做毕设之前总认为毕设不难,应该用不了多长时间就可以完成,但是当我真正去做的时候才知道毕设不仅很难,并且很麻烦,在做毕设的时候要阅读大量的文献,来寻求自己所需要的,还要将自己所学的知识融会贯通在一起。这次毕设,我真真知道了什么是书到用时方恨少呀,自己需要学习的东西还太多,以前总是认为自己学的还行,可以自己动手做,由于过高的估计了自己的能力,并且开始作毕设的时间有点晚,导致最后自己有点手忙脚乱。

我这次的设计是智能鸡场控制系统,在制作的过程中碰到很多问题,在焊接电路时,由于设计还不完整,所以有一部分电路没有在主控板上,不过经过多次的设计,最终还是比较满意的,软件调试时碰到的问题最多,程序编写存在的漏洞,有时会耗费很长时间来查找、调试。不过通过努力和指导老师高老师的耐心指导,解决了所有问题,再次感谢高老师对我的帮助。

22

天津职业技术师范大学2014 届本科毕业设计

参考文献

[1] 刘火良、杨森编著.STM32库开发实战指南 [2] STM32F10xxx参考手册

[3] 32位基于ARM微控制器STM32F101xx与STM32F103xx固件函数库 [4] Jean J.labross. 嵌入式实时操作系统us/os-Ⅱ [5] Jean J.labross. 嵌入式实时操作系统us/os-Ⅲ ----基于STM32微控制器

[6] Joseph Yiu.The Definitive Guide to the ARM cortex-M3 [7] Jean J.labross.嵌入式实时操作系统us/os-Ⅲ

[8] 刘波文、孙岩.嵌入式实时操作系统us/os-Ⅱ经典实例

----基于STM32处理器

[9] 任哲.嵌入式实时操作系统us/os-Ⅱ原理及应用 [10] 孙建民、杨清梅.传感器技术

[11] 康华光.电子技术基础模拟部分(第四版). 高等教育出版社,2004 [12] 康华光.电子技术基础数字部分(第四版). 高等教育出版社,2004 [13] 吉野新治.传感器电路设计手册 [14] 胡向东.传感器与检测技术 [15] 谭浩强.C语言程序设计

23

图a 最小系统电路

天津职业技术师范大学2014 届本科毕业设计

图b 风扇驱动电路

附录一

24

天津职业技术师范大学2014 届本科毕业设计

附录二

a、 温湿度程序

#include \/*

* 函数名:DHT11_GPIO_Config * 描述 :配置DHT11用到的I/O口 * 输入 :无 * 输出 :无 */

void LED_GPIO_Config(void) {

/*define a GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure; /*set up GPIOA's 外设时钟*/

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); /*selected will control GPIOA io*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*set IO rate is 50MHz */

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*GPIO_InitStructure is structure,use it initialise GPIOA */ GPIO_Init(GPIOB, &GPIO_InitStructure); }

void Key_GPIO_Config(void) {

/*define a GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure; /*set up GPIOA's 外设时钟*/

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); /*selected will control GPIOA io*/

25

天津职业技术师范大学2014 届本科毕业设计

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /*set IO rate is 50MHz */

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*GPIO_InitStructure is structure,use it initialise GPIOA */ GPIO_Init(GPIOA, &GPIO_InitStructure); }

void Feng_GPIO_Config(void) {

/*define a GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure; /*set up GPIOA's 外设时钟*/

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); /*selected will control GPIOA io*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*set IO rate is 50MHz */

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*GPIO_InitStructure is structure,use it initialise GPIOA */ GPIO_Init(GPIOA, &GPIO_InitStructure); }

void DHT11_GPIO_Config(void) {

/*定义一个GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure;

/*开启GPIOD的外设时钟*/

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); /*选择要控制的GPIOD引脚*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;

26

天津职业技术师范大学2014 届本科毕业设计

/*设置引脚模式为通用推挽输出*/

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引脚变为输入模式 * 输入 :无 * 输出 :无 */

static void DHT11_Mode_IPU(void) {

GPIO_InitTypeDef GPIO_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引脚变为输出模式 * 输入 :无 * 输出 :无

27

天津职业技术师范大学2014 届本科毕业设计

*/

static void DHT11_Mode_Out_PP(void) {

GPIO_InitTypeDef GPIO_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); }

static uint8_t Read_Byte(void) { {

/*每bit以50us低电平标置开始,轮询直到从机发出 的50us 低电平 结束*/

while(DHT11_DATA_IN()==Bit_RESET);

/*DHT11 以27~28us的高电平表示“0”,以70us高电平表示“1”,

通过检测60us后的电平即可区别这两个状态*/

uint8_t i, temp=0; for(i=0;i<8;i++)

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

28

天津职业技术师范大学2014 届本科毕业设计

}

}

return temp; }

uint8_t Read_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();

29

天津职业技术师范大学2014 届本科毕业设计

/*主机拉高*/

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) return SUCCESS; else } else }

/*************************************ENDOFFILE******************************/ B、压力程序 #include \

void HX711_GPIO4_Config(void) {

/*定义一个GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure; /*开启GPIOD的外设时钟*/

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); /*选择要控制的GPIOD引脚*/ /*设置引脚模式为通用推挽输出*/

GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPU;

/*设置引脚速率为50MHz */ /*调用库函数,初始化GPIOD*/

30

return ERROR;

{ }

return ERROR;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

天津职业技术师范大学2014 届本科毕业设计

GPIO_Init(GPIOA, &GPIO_InitStructure); }

static void HX711_GPIO4_IN_Config(void) {

/*定义一个GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); }

static void HX711_GPIO4_OUT_Config(void) {

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); }

void OUT_GPIO_Config(void) {

/*define a GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure; /*set up GPIOA's 外设时钟*/

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); /*selected will control GPIOA io*/

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

/*set IO rate is 50MHz */

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*GPIO_InitStructure is structure,use it initialise GPIOA */ GPIO_Init(GPIOA, &GPIO_InitStructure);

31

天津职业技术师范大学2014 届本科毕业设计

}

void SCK_SCE(void) {

GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_SET); }

void SCK_CLEAR(void) {

GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_RESET); }

u16 ReadCount() {

u16 count; u8 i;

HX711_GPIO4_OUT_Config(); GPIO_SetBits(GPIOA,GPIO_Pin_4); Delay_us(1);

//增益128

SCK_CLEAR(); count=0;

HX711_GPIO4_IN_Config(); if(hx711_dout()==Bit_RESET) { {

SCK_SCE(); count=count<<1; } }

32

// while(hx711_dout);

for(i=0;i<24;i++)

SCK_CLEAR();

count++;

if(hx711_dout())

天津职业技术师范大学2014 届本科毕业设计

SCK_SCE(); }

Delay_us(1); SCK_CLEAR(); return(count);

33

天津职业技术师范大学2014 届本科毕业设计

致 谢

大学的最后时刻,随着我的这次毕业设计的完结而到来。首先我要感谢的是天职师大,感谢师大让我汲取师者的精髓,在学术的瀚海里感悟学问的真谛,为我增添了无尽的力量。我最该感谢的就是我的指导老师高老师,可以说,没有高老师的殷殷教导就没有这篇论文。我的导师在看待问题上的多方位、全面的眼界让我觉得望尘莫及;在治学态度上的严谨、细致让我受益匪浅;在指导学生的认真、耐心让我感动不已。我庆幸自己遇到了高老师,是他成就了我的大学,我将铭记于心。

其次我要感谢实验室里的同学,在编程和调试系统过程中,是他们和我一起分析问题,断的给予我鼓励,不断地给予我坚定的信念,同时也帮我完善了很多欠缺的部分。

最后我还要感谢我的家人,因为在整个设计过程中,经常沉浸在设计的环境里,很少和他们沟通,也很少帮助他们干什么,但是,他们一直在默默的支持我,在生活上对我更加的关心。所以在这里谢谢他们。

“三人行,必有我师焉。”毕业后,我会将这些宝贵的人生经验运用到以后的生活和工作中。

34

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

Top