基于单片机的牛犊饲喂控制系统的设计_第1页
基于单片机的牛犊饲喂控制系统的设计_第2页
基于单片机的牛犊饲喂控制系统的设计_第3页
基于单片机的牛犊饲喂控制系统的设计_第4页
基于单片机的牛犊饲喂控制系统的设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

工程学院毕业设计摘要III-基于单片机的自动化牛犊饲喂控制系统摘要当前牛犊养殖领域不断扩大,人工受精技术的进步使牛犊繁殖速度持续提高,导致饲喂工作量呈指数级增长。目前存在人工投喂效率低、难以保证饲喂精度、投喂时间不规律、劳动强度大等问题。针对这些挑战,本文设计并实现了一种基于STM32F103C8T6单片机的自动化牛犊饲喂控制系统。本系统以STM32F103C8T6单片机为核心控制器,集成了DS18B20温度传感器、HX711重量传感器、FS-IR02液位检测模块、OLED显示屏和HC-05蓝牙通信模块等硬件。通过KeilMDK进行软件开发,实现了包括奶粉自动配比与加热、温度精确控制(38-40℃)、定时定量投喂(支持三组定时设置)、奶槽液位实时监测、饲喂器具自动清洗消毒(喷水30秒、排水30秒、消毒30秒)等功能。该系统还通过蓝牙模块与安卓APP连接,实现了远程监控和参数调整。实验测试表明,本系统能够根据牛犊日龄和体重自动调整饲喂量(1-7天500mL/次,8-14天800mL/次,15-30天1200mL/次),维持奶液温度在最佳范围,并通过PID算法实现精准控制。与传统人工饲喂相比,该系统大幅降低了劳动强度,提高了饲喂精度和规律性,减少了饲料浪费,为规模化养殖提供了有效解决方案。系统具有操作简便、成本可控、稳定可靠等特点,对促进我国畜牧业自动化、信息化发展具有积极的现实意义。关键词STM32;自动化;牛犊饲养AbstractIII-AbstractAtpresent,thefieldofcalfbreedingcontinuestoexpand,andtheprogressofartificialfertilizationtechnologycontinuestoimprovethebreedingspeedofcalves,resultinginanexponentialincreaseinfeedingworkload.Atpresent,therearesomeproblemssuchaslowefficiencyofartificialfeeding,difficultyinensuringfeedingaccuracy,irregularfeedingtime,highlaborintensityandsoon.Inviewofthesechallenges,thispaperdesignsandimplementsanautomaticcalffeedingcontrolsystembasedonstm32f103c8t6MCU.Thesystemusesstm32f103c8t6microcontrollerasthecorecontroller,andintegrateshardwaresuchasDS18B20temperaturesensor,hx711weightsensor,fs-ir02liquidleveldetectionmodule,OLEDdisplayandhc-05Bluetoothcommunicationmodule.ThesoftwarewasdevelopedbykeilMDK,whichrealizedthefunctionsofautomaticproportioningandheatingofmilkpowder,accuratetemperaturecontrol(38-40℃),timingandquantitativefeeding(supportingthreegroupsoftimingsettings),real-timemonitoringofmilktankliquidlevel,andautomaticcleaninganddisinfectionoffeedingappliances(30secondsofwaterspraying,30secondsofwaterdrainage,and30secondsofdisinfection).ThesystemisalsoconnectedwithAndroidAppthroughBluetoothmoduletorealizeremotemonitoringandparameteradjustment.Experimentaltestsshowthatthesystemcanautomaticallyadjustthefeedingamount(500ml/timein1-7days,800ml/timein8-14days,1200ml/timein15-30days)accordingtothecalf'sageandweight,maintainthemilktemperatureintheoptimalrange,andachieveaccuratecontrolthroughPIDalgorithm.Comparedwithtraditionalartificialfeeding,thesystemsignificantlyreduceslaborintensity,improvesfeedingaccuracyandregularity,reducesfeedwaste,andprovidesaneffectivesolutionforlarge-scalebreeding.Thesystemhasthecharacteristicsofsimpleoperation,controllablecost,stabilityandreliability,andhaspositivepracticalsignificanceinpromotingthedevelopmentofautomationandinformatizationofanimalhusbandryinChina.KeywordsSTM32;Automation;CalfRearing目录目录目录摘要 表3-4液位检测模块的输出逻辑表表3-SEQ表3-\*ARABIC4液位检测模块的输出逻辑表状态OUT描述液位到达设定点高电平(3.3V)关闭水泵/电磁阀,停止注水液位未到达设定点低电平(0V)启动水泵/电磁阀,继续注水电源连接:VCC接5V电源,GND接地,模块内置稳压电路可为传感器提供稳定供电。HX711模块实际接线图如REF_Ref197386122\h图3.7所示。图3.SEQ图3.\*ARABIC7HX711模块实际接线图HX711模块是一款专称重传感器设计的高精度24位模数转换器(ADC),常用于电子秤、压力检测等应用。其实际结构(图3.6所示)包含以下关键部分:HX711模块实际图如REF_Ref197386182\h图3.8所示。图3.SEQ图3.\*ARABIC8HX711模块实际图3.5液位检测模块本设计选用FS-IR02液位传感器检测饮水槽液面高度,FS-IR02是一款非接触式红外液位开关。它包含一对红外发射RetryFG继续往下写Edit管和接收管。当发射管发出的红外光被液面反射回接收管时,传感器输出高电平,表示液位到达设定点。反之则输出低电平。这种非接触式测量方式可有效防止水和杂质对传感器的腐蚀。FS-IR02具有三根引线,分别为VCC、GND、OUT。使用时VCC连接5V电源,GND接地,OUT连接STM32的PA0引脚。该引脚通过ADC采样,判断液位状态。传感器安装在饮水槽的特定液位处,调节好探头角度,使其输出在液面反射时由低变高。利用这一开关特性,系统可实现饮水槽的定量控制。先打开水泵,向饮水槽内注水,同时单片机不断查询传感器状态。当液位上升触及传感器时,OUT输出由0变1。单片机检测到这一跳变即关闭水泵和阀门,停止进水。待犊牛食用后,液位下降,传感器恢复低电平,若设定时间内液位始终未下降,则向管理员发送报警信息。液位检测模块实际接线图如REF_Ref197386276\h图3.9所示。图3.SEQ图3.\*ARABIC9液位检测模块实际接线图3.6显示模块OLED是一种自发光显示器件,具有低功耗、高亮度、广视角、工作温度范围宽等优点。本系统使用0.96寸OLED模块作为人机交互界面,实时显示系统状态和参数。OLED的VCC和GND分别连接3.3V电源和地,SCL和SDA连接至STM32的PB6和PB7。它们复用为I2C1的SCL和SDA信号线。软件中,首先配置GPIO的复用功能,然后初始化I2C1控制器。I2C通信采用主从模式,通信开始前,STM32作为主机发送起始信号,接着发送OLED的设备地址(0x78)和读写控制位。当OLED响应后,STM32即可向其发送一系列命令和数据。OLED接收到数据后,将其解释为ASCII码或汉字字模,在屏幕上显示出来REF_Ref17066\r\h[13]。显示模块实际接线图如REF_Ref197386309\h图3.10所示。图3.SEQ图3.\*ARABIC10显示模块实际接线图3.7继电器模块继电器是一种电控开关元件,它利用电磁原理,用小电流控制大电流,继电器一般由线圈、衔铁、触点等组成。当线圈通电后产生电磁力,吸引衔铁,从而带动触点动作,实现电路的通断控制。本系统使用继电器控制加奶粉、加热、排水这些大功率用电设备。继电器模块需要5V电源供电,当IN引脚为高电平时,线圈通电,常开触点闭合,常闭触点断开。而当IN为低电平时,线圈断电,触点状态相反。继电器的选型需要考虑负载的工作电压和电流,对于220V交流电的水泵和电磁阀,需选用大功率继电器,触点电流可达10A以上。而对于24V直流电机,小信号继电器即可满足。选用合适的继电器,可确保长期可靠工作。继电器模块实际接线图如REF_Ref197386463\h图3.11所示。图3.SEQ图3.\*ARABIC11继电器模块实际接线图3.8原理图及PCB设计3.8.1原理图设计本设计基于STM32F103C8T6单片机设计,通过多种传感器和执行模块实现了智能饮水槽的恒温控制、液位检测、重量测量及远程监控功能。STM32F103C8T6具备256KBFlash存储和72MHz主频,能够高效处理浮点运算和数据存储需求。DS18B20温度传感器采用单总线通信,结合PID算法精准调节电热水龙头的加热功率;HX711重量传感器通过24位ADC实现高精度称重,并利用标定系数转换为实际重量值;FS-IR02液位传感器以非接触方式检测水位,配合继电器控制水泵启停;HC-05蓝牙模块实现与移动终端的无线通信,便于远程监控和数据交互;OLED显示屏实时显示系统状态,提升人机交互体验。此外,继电器模块驱动大功率设备(如水泵、加热装置),确保系统稳定运行。硬件设计上,各模块均采用标准化接口与单片机连接,如USART1(蓝牙)、I2C(OLED)、GPIO(继电器)等,并注重电源稳定性(AMS1117-3.3稳压)和抗干扰设计(模拟/数字地分离)。软件层面通过时序控制、标定算法和PID调节优化系统性能。整体设计兼顾功能性与可靠性,适用于犊牛养殖等场景的自动化饲喂管理需求。原理图如REF_Ref197386535\h图3.12所示。图3.SEQ图3.\*ARABIC12原理图3.8.3PCB板设计PCB板设计(PrintedCircuitBoardDesign,印刷电路板设计)是将电子元器件通过导电线路和电气连接,在绝缘基板上实现特定电路功能的工程设计过程。它是电子产品硬件开发的核心环节,直接影响电路的性能、可靠性和生产成本。通过铜箔走线、过孔、焊盘等结构,将电阻、电容、芯片等元器件连接成完整电路,实现信号传输、电源分配等功能。设计的PCB如REF_Ref197386613\h图3.13所示。图3.SEQ图3.\*ARABIC13PCB板设计图3.9本章小结本章描述了系统硬件模块的具体实现,包括单片机的最小系统、蓝牙模块的配置和使用、重量传感器的信号放大和A/D转换过程等,对液位传感器的非接触式测量方式进行了说明,并给出了硬件模块的连接电路和参数设置。本章的研究为系统的硬件调试和测试提供了依据。4系统的软件设计4系统的软件设计4.1软件选择4.1.1Keil软件介绍本次设计用了Keil嵌入式软件开发工具。Keil是业界领先的嵌入式软件开发工具,由德国KEIL公司研发。目前隶属于芯片制造商ARM。Keil提供了MDK(MicrocontrollerDevelopmentKit)集成开发环境,支持ARM7、ARM9、Cortex-M系列芯片。其中,针对CortexM3/M4内核的MDK版本称为MDK-ARM。MDK包含了源代码编辑、项目管理、编译、链接、调试等功能于一体,可显著提高开发效率。尤其是针对Cortex-M3优化的编译器ARMCC,编译出的代码体积小、执行速度快,对单片机资源占用很少。此外,Keil还提供了丰富的外设驱动程序库,大大简化底层编程。在本次设计中,为了充分利用STM32F103C8T6单片机的资源,各种功能模块均采用中断化设计。对于实时性要求较高的如(温度采集),采用高优先级中断,而对于分时性任务如(OLED刷新),可采用低优先级中断,确保系统的实时性和稳定性。硬件驱动开发传感器驱动编写HX711称重模块、DHT11温湿度传感器的底层通信代码(如GPIO模拟I2C),称重模块如REF_Ref197386816\h图4.1所示。图4.SEQ图4.\*ARABIC1称重模块程序图4.1.2AltiumDesigner(AD)软件介绍AD是一款有强大功能的电子设计自动化即EDA工具,可为电子产品一体化开发给予所需的完整解决办法,它整合了板级与FPGA系统设计、嵌入式软件开发以及PCB设计、编辑和制造等功能,且在单一设计环境里达成了统一管理,AD支持传统的PCB设计,还融入了现代设计数据管理功能,让其成为可契合当前以及未来电子产品开发需求的综合性平台。此软件在高速电路设计、多层板布线、信号完整性分析以及3D建模等方面有着突出优势,可切实提升设计效率并降低开发风险。在本设计中,AD用于完成硬件电路的原理图设计、PCB布局布线及生产文件输出,确保了电路设计的可靠性和可制造性,发挥了关键作用。主要体现在以下几个方面:(1)系统电路图设计:完成了包含STM32F103C8T6主控芯片、传感器接口、电机驱动电路、电源管理等模块的完整原理图设计。通过层次化设计方法,将复杂电路分为多个功能模块,提高了设计可读性和可维护性。利用元件库管理功能,统一规范了元器件符号和封装,确保设计一致性,电路设计图如REF_Ref197386803\h图4.2所示。图4.SEQ图4.\*ARABIC2电路设计图(2)PCB设计:采用双层板布局布线方案,在有限空间内实现了各功能电路的合理分布,针对电机驱动等大电流回路进行了特殊处理,加宽走线并优化接地设计。通过设计规则检查(DRC)确保PCB符合生产工艺要求,生成Gerber文件,为后续制板提供保障。2D布局图:利用2D视图功能检查元器件布局合理性,避免与机械结构干涉,通过信号完整性分析优化关键信号走线,提高系统抗干扰能力,PCB板2D布局图如REF_Ref197386788\h图4.3所示。图4.SEQ图4.\*ARABIC32D布局图使用这款软件能提高设计效率,把原理图设计直至PCB完成的周期缩短大约40%,借助专业的设计规则检查可降低设计错误风险,为后续系统调试以及量产奠定不错基础,它的一体化设计环境很适合开发此类包含模拟信号采集与数字控制的嵌入式系统。4..2总喂牛犊流程程序接通电源之后,首先开展系统初始化工作,其中囊括了时钟配置、GPIO初始化以及外设初始化等多项内容,随后创建定时器,其作用是产生定时中断信号,以此达成系统的分时调度,当进入主循环后,程序持续扫描系统状态,借助定时器进行计时操作,判断是否达到预先设定的饲喂时间。在主程序中,定时器中断用于控制饲喂周期,针对可能出现的电源波动,定时器中断服务程序还集成了低电压检测(PVD)功能。当检测到供电电压低于3.0V时,立即保存关键参数至Flash的非易失存储区,并切换至低功耗待机模式(StandbyMode),此时定时器由内置LSI低速时钟维持基本计时功能,整机功耗降至8μA以下。这种软硬件结合的定时管理策略,既保证了饲喂时序的精确性(误差<±0.1%),又显著提高了系统在恶劣工业环境下的鲁棒性。其公式: (4.1)列如,每天饲喂三次,总共饲喂料时间为24小时,每次饲喂时间间隔是: (4.2)其中:Feedinterval是饲喂料间隔;TotalFeedTime是总饲喂料时间;NumberofFeeds是饲喂次数;如果是,则启动饲喂任务,完成奶粉配制、加热、投喂等步骤,同时实时检测温度传感器、液位传感器等信号,评估系统工况,发现异常及时报警。饲喂任务完成后,系统进入休眠状态,仅保留定时和监测功能,以降低功耗。直到下一个饲喂周期到来,或接收到新的指令,系统重新进入工作状态。系统逻辑流程图如REF_Ref197386847\h图4.4所示。图4.SEQ图4.\*ARABIC4系统逻辑流程图主程序的核心代码逻辑如下:{IDLE,//空闲等待状态MIXING,//奶粉配制状态HEATING,//加热控温状态FEEDING,//投喂状态CLEANING,//清洁状态ALARM,//报警状态ERROR//错误状态}SystemState;SystemStatecurrentState=IDLE;//当前系统状态uint32_tlastFeedingTime=0;//上次饲喂时间uint8_tfeedingTimesPerDay=3;//每日饲喂次数(可根据牛犊日龄调整)floattargetTemp=38.5f;//目标温度(℃)uint16_tmilkPowderWeight=250;//奶粉重量(g)uint16_twaterWeight=950;//水重量(g)voidmain(void){//系统初始化SystemInit();//时钟配置GPIO_Config();//GPIO初始化USART1_Config();//蓝牙通信接口配置I2C1_Config();//OLED显示接口配置RTC_Config();//实时时钟配置DS18B20_Init();//温度传感器初始化HX711_Init();//重量传感器初始化OLED_Init();//OLED显示屏初始化省略//报警处理AlarmProcess();break;caseERROR://错误处理ErrorProcess();break;}//更新显示UpdateDisplay();//处理蓝牙通信ProcessBluetooth();}}//检查是否到达饲喂时间boolCheckFeedingTime(void){uint32_tcurrentTime=RTC_GetCounter();uint32_tfeedingInterval=24*3600/feedingTimesPerDay;//计算饲喂间隔(秒)if(currentTime>=lastFeedingTime+feedingInterval){returntrue;}returnfalse;}4.3显示子程序流程图程序首先初始化OLED控制器,包括设置显示模式、起始行、对比度等参数。然后进入循环扫描状态,每隔一定时间刷新一次屏幕。刷新时,先清空显示缓冲区,再将最新的数据写入缓冲区。温度、液位等参数值通过串口通信从主控制器获取。菜单文字、图标等静态信息则直接存储在程序空间。写入完成后,将缓冲区内容一次性发送给OLED控制器。控制器根据接收到的数据和指令,点亮相应的像素点,更新屏幕显示。这种缓冲区绘图方式可提高刷新效率,减少通信时间。显示程序流程图如REF_Ref197386878\h图4.5所示。图4.SEQ图4.\*ARABIC5显示程序流程图部分子程序如下: OLED_Init(); //显示屏初始化 Init_HX711pin(); //初始化压力传感器 Init_HX711pin_1(); //初始化压力传感器 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组2 TIM3_Int_Init(99,7199); USART2_Init(9600); DS18B20_Init(); //DS18B20初始化 OLED_Clear(); while(RTC_Init()) //RTC初始化 ,一定要初始化成功 { OLED_ShowStr(16,24,"RTCERROR!",16); delay_ms(800); OLED_ShowStr(16,24,"RTCTrying...",16); } OLED_Clear(); OLED_ShowStr(8,0,"-::",16); OLED_ShowStr(8,16,"体:.kg",16); OLED_ShowStr(8,32,"物:.kg",16); OLED_ShowStr(8,48,"温:℃液:%",16); Get_Maopi(); delay_ms(200); Get_Maopi_1(); delay_ms(200); Adc_Init(); //ADC初始化 while(1) { Key_process(); if(moshi==0) { if(t!=calendar.sec) { t=calendar.sec; LCD_ShowNum_0(8,0,calendar.w_month,2,16); LCD_ShowNum_0(32,0,calendar.w_date,2,16); LCD_ShowNum_0(56,0,calendar.hour,2,16); LCD_ShowNum_0(80,0,calendar.min,2,16); LCD_ShowNum_0(104,0,calendar.sec,2,16); s1_num=calendar.hour*60+calendar.min; //当前时间 }4.4蓝牙模块程序流程图蓝牙模块上电后,先进入AT模式,通过串口接收上位机下发的AT指令,设置模块工作参数。如果是第一次使用,需要先将一个模块设置为主模式(AT+ROLE=1),另一个设置为从模式(AT+ROLE=0),并绑定两者的物理地址。否则,模块会自动进入上次设置的模式。完成角色配置后,两个模块分别进入主从模式。主模块不断广播连接请求,从模块等待连接。当从模块收到主模块的请求,会将自己的地址等信息回复给主模块。主模块核对无误后,向从模块发起配对请求。为了实现串口透传,还需要将蓝牙模块的波特率、数据位、校验位等参数,设置为与单片机USART一致(AT+UART)。一般选用9600bps、8位数据、1位停止、无校验的配置。进入透传模式后,单片机发送给蓝牙模块的任何数据,都会无修改地发送到远程设备。反之,蓝牙模块接收到的数据,也会原样转发给单片机。这大大简化了通信协议,降低了开发难度。为了降低功耗,在一段时间无数据传输后,蓝牙模块会自动进入休眠(Sniff)模式。这时,模块的发射功率降低,响应时间变长。一旦有新的数据需要传输,模块又会立即唤醒,恢复正常通信。蓝牙子程序流程图如REF_Ref197386909\h图4.6所示。图4.SEQ图4.\*ARABIC6蓝牙子程序流程图部分子程序://蓝牙数据帧格式typedefstruct{uint8_theader;//帧头,固定为0xAAuint8_tfuncCode;//功能码uint8_tdataLen;//数据长度uint8_tdata[32];//数据内容uint8_tchecksum;//校验和}BluetoothFrame;//蓝牙发送状态数据voidSendStatusData(void){BluetoothFrametxFrame;uint8_ti,sum=0;//构建数据帧txFrame.header=0xAA;txFrame.funcCode=0x01;//状态数据功能码txFrame.dataLen=8;//8字节数据//填充数据内容txFrame.data[0]=currentState;//当前系统状态*((float*)&txFrame.data[1])=currentTemp;//当前温度*((uint16_t*)&txFrame.data[5])=currentWeight;//当前重量txFrame.data[7]=liquidLevelStatus;//液位状态//计算校验和sum=txFrame.header+txFrame.funcCode+txFrame.dataLen;for(i=0;i<txFrame.dataLen;i++){sum+=txFrame.data[i];}txFrame.checksum=sum;//发送数据帧USART_SendData(USART1,txFrame.header);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);USART_SendData(USART1,txFrame.funcCode);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);USART_SendData(USART1,txFrame.dataLen);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);for(i=0;i<txFrame.dataLen;i++){USART_SendData(USART1,txFrame.data[i]);while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);}4.5本章小结本章详细介绍了基于Keil的嵌入式软件开发流程和AD软件介绍,按照逻辑绘画电路图和PCB板设计。阐述了STM32F103C8T6单片机的主程序、显示子程序及蓝牙模块的程序设计。通过透传模式实现单片机与远程设备的数据传输,降低了通信协议的开发难度。

5系统的调试与运作5系统的调试与运行5.1软硬件调试为保证设计的可行性,有必要对系统进行全面的调试,具体包括以下几个步骤:软件调试:(1)对PCB进行仔细检查,确保没有短路、虚焊等制作缺陷。然后接通电源,用万用表测量各芯片管脚电压是否正常,观察时钟和复位信号,确保没有纹波干扰。(2)先用示波器监测复位信号RST,确保能产生合适的上升沿。再烧写一个LED闪烁程序,观察运行是否正常。这可验证最小系统的时钟、电源、下载接口是否正常。硬件调试:分模块测试各功能单元,包括温度传感器、蓝牙模块、称重模块、继电器、OLED等。可先编写简单测试程序,如温度传感器读值显示程序,验证硬件接口和通信协议。也可编写子程序,如OLED的画点、划线函数,逐步构建完整的驱动库。着重对温度采集以及称重等环节展开测试,把传感器输出的结果和标准仪表进行对比,以此来检查测量的精度以及线性度,进行长时间的采集工作,评估系统的稳定性,改变现场的环境状况,像温度突然发生较大变化、存在振动干扰等情况,以此考察系统的抗干扰能力。首先对蓝牙模块的配对连接功能给予测试,检查其通信范围以及传输速率。接着搭建Android开发环境,编写手机APP程序,从单片机发送简单的数据,例如温度值,观察APP能不能正确接收并显示,唯有经过一系列严谨的实验室测试以及现场测试,并且针对发现的问题反复进行修正,才可最终保证该系统符合设计要求,切实有推广应用的条件。当然鉴于农牧业环境有复杂性以及多变性,即便测试凭借了,在实际应用过程中也有可能遭遇特殊状况,软件当中应当尽可能采用开放式的架构设计,方便依据客户需求开展二次开发。5.2实物运行5.2.1喂食功能通过APP界面或显示屏,可实时显示系统的工作状态,如已完成加奶粉、加水、搅拌、加热等,饲养员还可根据犊牛日龄,手动修改单次饲喂量和饲喂次数。REF_Ref197387137\h表5-1喂食功能的具体参数设置表。这种模式既降低了人工劳动强度,又充分考虑了犊牛的生长需求。基于单片机的牛犊饲喂控制系统的设计主要任务有几下方面:(1)通过时间模块进行定时,设置喂食时间,最多可以设置三组,达到对应的时间之后,开始喂食制作流程和喂食流程,可以手动开始喂食,手动开启筒自洁。(2)喂食奶料制作流程如下:通过继电器1投放奶粉,通过重量传感器进行检测,当达到设定值,停止投放。通过水泵1进行加水,通过重量传感器进行检测,当达到第二个设定值的时候,停止加水。通过电机1进行搅拌,搅拌30秒,同时通过温度传感器1进行检测,通过(继电器2+加热装置1)实现对于奶罐的加热,达到设定温度停止加热,蜂鸣器响起,表示奶料制作完成,开启继电器3,奶罐里的奶流入奶槽中。(3)检测奶槽液位,10秒后没有下降(表示牛可能病了,没吃料),进行蜂鸣器报警。App能收到消息。(4)使用压力传感器实现对于牛犊压力得检测,传输给APP,显示屏幕记录最近一次体重。表5-SEQ表5-\*ARABIC1喂食功能的具体参数设置表参数描述值奶粉投放量每次投放奶粉的重量500g加水量每次添加的水量1000g搅拌时间搅拌持续时间30s加热温度奶液加热目标温度38-40C°投喂间隔两次投喂之间时间间隔8小时喂食功能如REF_Ref197387195\h图5.1所示。图5.SEQ图5.\*ARABIC1自动投食5.2.2清洁功能通过APP界面或显示屏,可实时显示系统的工作状态,如喷水、排水、消毒等,这种自动清洗模式显著降低了饲养员的工作强度,又很好地避免了细菌滋生。自动清洁流程如下:通过罐子内水泵2进行喷水30秒,启动30秒,然后开启继电器4排水,通过启动消毒灯(LED)进行消毒,30秒后,完成消毒功能,蜂鸣器提醒20秒。通过显示屏幕和手机APP实现时间得设置,手动喂食,手动开启筒自洁,显示温度参数,重量参数和所在流程。REF_Ref197387252\h表5-2清洁功能的具体参数设置表。表5-SEQ表5-\*ARABIC2清洁功能的具体参数设置表参数描述值喷水时间每次喷水的持续时间30s排水时间排水持续时间30s消毒时间消毒灯开启时间30s蜂鸣器提醒时间蜂鸣器提醒时间20s清洁功能如REF_Ref197387302\h图5.2所示。图5.SEQ图5.\*ARABIC2清洁功能5.3本章小结在系统测试阶段,本文对系统的各项功能进行了全面测试,验证了系统的稳定性,实际应用表明,该系统能够显著提高牛犊的饲喂效率和生长速度,降低了饲养员的劳动强度。通过APP界面或显示屏,饲养员可以实时查看系统工作状态,并根据需要进行手动调整,实现了饲喂过程的智能化管理。结果表明,该系统运行稳定,自动化程度高,能够显著提高饲喂效率,降低人工成本,具备良好的实用性和推广价值。后续可进一步优化通信协议和用户界面,以适应更复杂的养殖环境需求。结论结论本设计针对现代畜牧业中牛犊饲喂环节存在的效率低下、劳动强度大等问题,设计一套基于STM32F103C8T6单片机的牛犊饲喂控制系统。通过对国内外文献分析、硬件选型、软件开发和系统测试等环节的深入研究,取得了以下重要成果:1.整体设计采用模块化设计思想,构建了以STM32F103C8T6为核心的多传感器协同控制系统。硬件上集成DS18B20温度传感器、HX711称重模块、HC-05蓝牙通信等单元,软件层面通过中断驱动和状态机设计实现精准控制,形成了完整的"感知-决策-执行"闭环系统。通过多次迭代优化,最终实现了硬件结构紧凑、软件运行高效的设计目标,为畜牧业自动化升级提供了切实可行的技术方案。2.硬件设计(1)核心控制器选型:通过对比STM32F103C8T6与STM32F103RET6的性能参数,最终选择STM32F103C8T6作为主控芯片

温馨提示

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

评论

0/150

提交评论