




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
潍坊科技学院本科生毕业设计(论文)-PAGEIV-ADDINCNKISM.UserStyle目录摘要 IAbstract II1引言 11.1研究背景及意义 12宠物管理系统原理 22.1宠物管理系统原理架构 22.2宠物管理系统各功能模块原理 22.2.1主控微处理器部分 22.2.2电源部分 32.2.3调试及外扩接口部分 32.2.4人机交互及功能设置部分 42.2.5存储器部分 42.2.6传感器数据采集部分 42.2.7系统执行功能部分 82.3宠物管理系统总体执行流程 93宠物管理系统的硬件设计 103.1宠物管理系统硬件电路功能介绍 103.1.1供电电路 103.1.2微处理器最小系统电路 113.1.3参数数据存储电路 143.1.4USB转TTL-UART电路 143.1.5按键电路 153.1.6LED灯电路 153.1.7光敏电路 163.2DHT11温湿度数据采集电路 164宠物管理系统的软件设计 184.1宠物管理系统微处理器底层驱动配置 184.2STM32CubeMX硬件底层配置 194.3生成底层驱动代码 244.4智能宠物管理系统功能代码设计 254.4.1Keil-MDK5软件使用简介 254.4.2系统的用户逻辑代码实现 265智能宠物管理系统的调试 275.1温湿度传感器调试 275.2定时器调试 275.3串口数据调试 286结论 30参考文献 31附录A设计电路原理图 32附录BPCB板设计图 34附录C程序 35致谢 43-PAGE31-引言研究背景及意义当今社会,随着人们生活水平日益提高,人们在物质生活得到满足的情况下,对精神生活的追求也日益丰富,就如现在小区中的宠物越来越多,宠物的饲养可以调节人们的心情,可以丰富人们的日常生活,饲养宠物凭借其不可替代的消遣新乐趣,在城市居民生活中应运而生。日常生活中宠物的饲养,闲暇时间可以带着宠物一起散散步,锻炼一下身体,给工作后的闲暇时间增添一些乐趣和放松,人们日常中对宠物的饲养,诸如宠物狗的饲养,需要喂食,需要喂水,需要根据气温的变化对宠物进行冷热补偿,需要对宠物的居所通风换气,需要对宠物的居所进行光照强度的调节等,这些事情大多数都需要人为的操作,这样一方面会占据人们的时间和精力,另一方面由于人的惰性和其他事情的干扰导致有时候会遗忘,导致对宠物的照料不及时,这些都是宠物饲养中的遇到的问题,也是令许多宠物饲养者较为纠结的事情。随着科技的进步,智能化逐渐走进人们的日常生活,这也就为宠物的智能化饲养提供了方向。能够实现对宠物的智能化管理,这将会极大的节省人们的工作量,对于宠物饲养的智能化主要体现在如下几个方面,可以根据宠物的生活习性定时喂水,根据宠物居的光线强度动态的补光,能够定时的对宠物居进行的通风换气等,以上也是本次课题的意义和目的所在。MACROBUTTONAcceptAllChangesInDocAndStopTracking宠物管理系统原理在本章中,我们将介绍宠物管理系统的总体架构,各部分功能模块的基本原理。宠物管理系统原理架构图2-1宠物管理系统原理本系统的总体架构包含如下部分:5.0V及3.3V供电部分,主控微处理器STM32F103C8T6,调试功能接口,存储器部分,传感器信息采集部分,串口通信部分,控制执行部分以及扩展接口功能。宠物管理系统各功能模块原理在本节中,将介绍各个功能模块的原理及模块的实现过程。主控微处理器部分主控微处理器是整个系统的核心部分,本次课题采用的是意法半导体(ST)的STM32F103C8T6微控制器,此控制器是基于ARM®32的微处理器,采用Cortex-M3内核,是目前市场性价比较高的一款微处理器。此微处理器在系统中的主要功能有:微处理器接收传感器原始数据,并对数据进行加工处理,根据用户定义的协议帧进行组装数据。微处理器的硬件定时器实现精准定时,实现对相应事件或任务的精确执行,如定时10分钟读取一次湿度传感器的数值。微处理器通过通用输入输出(GPIO)接口的数字功能,实现对可执行器件(如继电器,微型水泵)的控制。微处理器将常用非易失数据存储到EEPROM中,并且在需求的时候从EEPROM中取出数据,进行相关操作。电源部分电源供给部分实现的主要功能为整个系统提供电源,本系统中包含两种电源,即5.0V和3.3V电源,其中5.0V电源是由USB接口直接引入的电源,此电源引出5路接口,以方便接诸如5.0V的继电器,供接外部器件使用。电源5.0V经过电源转换芯片XC6201P332MR,输入3.1~6.0V(本系统的输入为5.0V),输出电压为3.3V,最大输出电流为250mA,本系统采用两路电源转换芯片,以保证外接电路模块的可靠供电。调试及外扩接口部分本系统采用SWD(即serialwiredebug)调试接口(VCC,SWDIO,SWCLK,GND),此种相对于其他模式,诸如串口,JATG模式的优势在于:串口模式可以下载程序,但是不便于调试,对于工程中的变量的变化无法定位及观察,也就无法预知数据的变化过程,无法得知程序的运行过程;相对于JTAG模式来说,可以节省较多的管脚空间,对于本系统的主控制器在管脚数量较少的情况下显得尤为重要,虽然JTAG调试模式有较快速读的优势,通常这种优势在较大或者庞大工程中明显,对于论文的轻量级代码SWD模式已经绰绰有余,所以采用SWD模式是较好的折中方案。对于其他管脚,采取外引的模式,将管脚引出以便于接传感器或者执行器件使用,方便灵活开发。人机交互及功能设置部分人机交互部分我们采用的是串口(USART),串口作为工程开发人员,尤其是嵌入式开发人员,是开发者与硬件进行信息交互的重要通道,同时这种信息交互接口也是在众多接口中,协议较为简单,使用较为灵活,效果较为明显的一种接口。我们论文项目中部分参数的设置也是通过串口进行设置的,同时很多提示信息也是由串口输出的。按键也是本系统预留的输入方式,按键可以进行一些简单的设置,如每按一次按键甲累计数值加一,就可以设置湿度值;每按一次按键乙可以实现数值累计加一,温度值减一,从而实现简单的输入控制。存储器部分存储器部分的功能主要是存储时常使用且需要保存的数据,断电后不易失,上电后可以读取,本文采用的EEPROM是AT24C02,此款芯片的容量是2K-bit,计256-Byte,内容分为32页,每页8-Byte。有一个8-Byte页写缓冲器。有一个专门的写保护功能WP,当WP管脚连接到Vcc上时,开启写保护,所有的内容写保护只能读;当连接到GND时关闭写保护功能。AT24C02采用IIC总线接口读写数据,遵从IIC协议。总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,由于A0、A1和A2可以组成000~111八种情况,即通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上,通过进行不同的配置进行选择器件。传感器数据采集部分DHT11数字温湿度传感器是一款集温度湿度一体的复合型数字信号传感器,传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接,它所采用的专用数字模块采集技术和温湿度传感技术,具有极高的可靠性与卓越的稳定性,同时此款传感器还具有响应快、抗干扰能力强等优点。温湿度传感器都在极为精确的湿度校验室中进行了温湿度校准,校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号,处理数据的过程中再调用这些校准系数,使其达到较精确的数据输出。温湿度传感器采用单线制串行接口,4针单排引脚封装,具有系统集成快捷,体积小,功耗低,信号传输距离远(信号传输距离可达20米以上)等特点。图2-2温湿度传感器(1)DHT11引脚说明表2-SEQ表\*ARABIC\s11DHT11引脚说明(2)接口说明连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。图2-3DHT11接口(3)电源引脚DHT11的供电电压为3.0V-5.5V。传感器上电后,要等待1秒左右的等待时间以滤除不稳定状态,在等待滤除不稳定态期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。(4)串行接口(单线双向)DATA端口采用单总线数据格式,用于微处理器与DHT11之间的通讯和同步,一次通讯时间为4ms左右。微处理器从DHT11获得的数据格式分为小数部分和整数部分。当前小数部分现读出为零,小数部分用于以后扩展。操作流程如下:一次完整的数据帧传输为40-bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时的校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。采集数据后转换到低速模式。图2-4输出高电平总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低的持续时间必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。图2-5输出低电平总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1,格式见下面图示。如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常。当最后1bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示:图2-6数字0信号表示数字1信号表示:图2-7数字1信号表示系统执行功能部分(1)三色LED灯发光二极管是半导体二极管的一种,可以把电能转化成光能。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。发光二极管的反向击穿电压大于5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过二极管的电流。限流电阻R可用下式计算:R=(E-UF)/IF式中E为电源电压,UF为LED的正向压降,IF为LED的正常工作电流。发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外线到红外线不同颜色的光线,光的强弱与电流有关。发光二极管还可分为普通单色发光二极管、高亮度发光二极管、超高亮度发光。三色LED的概念三色LED由两个不同颜色的管芯组成,有共阳、共阴接法,故为散引脚。当两个管芯各自亮时呈现两色,当两个管芯一起亮时则为混色,所以称为三色LED。三色发光二极管是将3种不同颜色的LTC4151CMS%23PBF管芯封装在一起,也分为共阴极和共阳极两种。(2)对于散热风扇,我们采用两线制的微型散热风扇来演示,这种散热风扇只有两根线,一般用红线和黑线来表示,红色表示电源正、黑线表示电源负,接上合适的电压,风扇就会转动,而且是全速转动。宠物管理系统总体执行流程宠物管理系统启动后,根据用户所养宠物的不同设定好温湿度值,以满足宠物对舒适度的需求。室温传感器DHT11实时采集室内温度,微处理器以用户所需的采样频率(即每隔多长时间采集一次温湿度值)读取温湿度传感器的温湿度值,并将读取的温湿度值与预设的温湿度值进行比较。如果温度值高于阈值,则打开风扇,以实现给宠物降温效果。根据宠物对水量的不同需求,定时开启喂水装置,对宠物进行喂水。微控制器采集光敏传感器的数值,并将所读取的光照强度值与所设阈值进行比对,如果光照强度值小于所设阈值,则打开LED灯进行补光。在程序设计方面,我们才用了freeRTOS操作系统,采用了多任务处理方式,将温湿度数据采集,定时喂水,光照强度采集等功能都放到任务重执行,任务的调度等都交由操作系统去实现,保证了业务功能执行的实时性和可靠性,同时简化了用户对程序执行过程的管理,极大的方便了用户对程序操作。宠物管理系统的硬件设计在本节中主要介绍硬件功能的介绍,硬件功能电路实现,对于硬件电路的设计,我们使用的是AltiumDesignerV10,主要是设计了系统的原理图和PCB版图。对于硬件电路图的设计,主要有以下流程:原理图器件库的建立,PCB器件的封装库的建立,原理图器件的连接,PCB板图的布线,生成BOM表并根据BOM表购买焊接器件,制板,焊接电路板,调试电路板。宠物管理系统硬件电路功能介绍在本节中宠物管理系统的硬件电路主要包含:供电电路,微处理器最小系统,存储电路,光敏传感器电路,TTL-UART转USB电路,SWD调试及外扩电路接口,按键电路等。供电电路图3-SEQ图\*ARABIC\s11供电电路在供电电路中,我们采用了两路XC6201P332MR电源处理芯片,采用SOT23-5封装,电源输入为3.1V-6.0V,我们输入电源为5.0V,VSS端接地,输出为3.3V,输出电流单路最大为250mA,同时我们在输出端加了10uF和100nF的电容用于电源滤波,10uF电容对于滤除低频干扰有较好作用,但对于高频干扰,电容呈现感性,阻抗很大,无法有效滤除,因此再并一个100nF的电容滤除高频分量,因此,此两种电容可以有效的滤除电源的低频和高频成分,实现电源的稳定输出。微处理器最小系统电路图3-SEQ图\*ARABIC\s12微处理器最小系统电路微处理器最小系统电路,我们采用STM32F103C8T6微处理器,此款微处理器主要硬件功能:Cortex-M3内核,64K-Bytes闪存存储器,LQFP-48封装等。微处理器功能包含:CRC计算单元(CRC),电源控制(PWR),备份寄存器(BKP),小容量、中容量和大容量产品的复位和时钟控制(RCC),互联型产品的复位和时钟控制(RCC),通用和复用功能I/O(GPIO和AFIO),中断和事件,DMA控制器(DMA),模拟/数字转换(ADC),数字/模拟转换(DAC),高级控制定时器(TIM1和TIM8),通用定时器(TIMx),基本定时器(TIM6和TIM7),实时时钟(RTC),独立看门狗(IWDG),窗口看门狗(WWDG),灵活的静态存储器控制器(FSMC),SDIO接口(SDIO),USB全速设备接口(USB),控制器局域网(bxCAN),串行外设接口(SPI),I2C接口,通用同步异步收发器(USART),USBOTG全速(OTG_FS),以太网(ETH):具有DMA控制器的介质访问控制(MAC),器件电子签名,调试支持(DBG)。我们本次课题用到的功能包含:小容量、中容量和大容量产品的复位和时钟控制(RCC),通用和复用功能I/O(GPIO和AFIO),中断和事件,DMA控制器(DMA),模拟/数字转换(ADC),通用定时器(TIMx),通用同步异步收发器(USART),串行外设接口(SPI)等。存储器和总线构架,系统构架,在小容量、中容量和大容量产品中,主系统由以下部分构成:四个驱动单元:─Cortex™-M3内核,DCode总线(D-bus)和系统总线(S-bus)─通用DMA1和通用DMA2四个被动单元─内部SRAM─内部闪存存储器─FSMC─AHB到APB的桥(AHB2APBx),它连接所有的APB设备如图3-3所示。图3-SEQ图\*ARABIC\s13图3-SEQ图\*ARABIC\s14时钟电路时钟部分,我们采用8MHz的贴片陶瓷晶振,封装为5032,匹配电容为两个封装为0603的20pF的电容,作用是在外部所接电容为匹配电容的情况下,振荡频率才能保证在标称频率附近的误差范围内。图3-SEQ图\*ARABIC\s15调试接口电路调试接口电路,接口尺寸为XH2.54,,采用STM32F103C8T6微处理器的SWD功能的调试接口,SWD接口的较串口下载程序的优势是可以很直观的调试代码,观察数据的变化,追踪程序代码的运行过程,是程序开发的必要工具。同时,较JTAG模式的优势在于可以节省大量的管脚,对于此款的48管脚的微处理器而言,管脚资源在不是很丰富的情况下,SWD是很有优势的选择,只需SWDIO和SWCLK两个管脚。当然,其与JTAG相比,JTAG调试速度要快很多,这也是SWD与JTAG相比的一个劣势,但是我们当前的工程一般相对较小,这种差别不明显。所以说SWD是一种比较折中,相对有优势的一种调试接口。参数数据存储电路图3-SEQ图\*ARABIC\s16数据存储电路数据存储电路,本部分电路使用的是AT24C256芯片,256K-Byte,采用2-wires的通信方式(SDA和SCL),其中SDA为双向数据/地址线,SCL为时钟信号线,传输时钟脉冲信号,为保证数据的可靠传输,在SCL和SDA线上接4.7K的上拉电阻,数据/时钟空闲状态时候可靠上拉到3.3V高电平,设备硬件地址选择管脚A2、A1、A0采用默认状态,即接地。WP写保护端口我们设置接地(GND)即取消写保护,当WP接到高电平(3.3V)时,则打开写保护,不可以向芯片写入数据。芯片采用3.3V供电。USB转TTL-UART电路图3-SEQ图\*ARABIC\s17USB转TTL-UART电路在电路中我们采用CH340G芯片,实现USB接口与微处理器的USART串口进行电平转换。CH340G芯片采用12MHz封装为5032的贴片晶振,匹配电容为20pF,同时,5.0V接入的USB电源经过10uF和100nF的低频和高频滤波电容,滤除高低频率的纹波电压。按键电路图3-SEQ图\*ARABIC\s18按键电路在按键电路中,RST按键电路是复位电路,同时也是程序下载后电路的启动电路。PA0和PA8是两路普通按键电路,接10K的下拉电阻,实现电平在默认状态下的可靠接地。LED灯电路图3-SEQ图\*ARABIC\s19LED灯电路在电路中,设计了两路LED指示灯,通过1K的限流电阻接地,接微处理器的PB0和PB1管脚,这两个管脚同时也兼具定时器的PWM功能,既可以做指示灯又可以做PWM,演示PWM的效果。光敏电路图3-SEQ图\*ARABIC\s110光敏电路光敏电路中我们采用了10K的限流电阻,同时在光敏并联一个100nF的电容,此电容起到滤波功能,实现电平信号的可靠采样。光敏主要实现ADC功能,采集光照强度值。DHT11温湿度数据采集电路图3-SEQ图\*ARABIC\s111DHT11温湿度数据采集电路电路功能主要是利用微处理器的GPIO端口实现单总线接口模式,DHT11的数据端口接4.7K上拉电阻,上拉电阻的作用是实现数据可靠接电源(DHT11静默状态下是高电平),滤波电容的作用滤除电源杂波保证的电平的稳定,实现电路电平信号的可靠传输,。宠物管理系统的软件设计图4-1宠物管理系统在本系统中,软件实现的主要功能是:系统开启后,微处理器采集光照强度值与预设的光照值对比,如果低于所设光照强度值则开启补光灯进行补光处理;根据DHT11所测的温湿度值与所设温度值进行比较,如果采集温湿度值高于所设温度值,则打开风扇进行降温处理;根据不同宠物对喂水的不同所设的参数,微处理器定时给宠物喂水。宠物管理系统微处理器底层驱动配置对于STM32F103C8T6的底层硬件的配置,我们采用意法半导体(ST)推出的STM32CubeMX软件对底层进行配置,此软件的优势在于:(1)可以省去繁琐而重复的底层硬件寄存器参数的配置,用户通过图形化界面对各种硬件进行参数的选择,使得对底层参数的配置加大的简化,并且配置过程直观形象。(2)此软件可以生成底层硬件的驱动代码,而无需用户自己添加对寄存器的配置代码。(3)此软件可以组织各种生成文件的文件归档,使得文件结构层次清晰明了,节省了用户对各种文件的组织工作。STM32CubeMX软件主要由以下三部分组成。(1)Java的运行环境(此软件依赖Java环境编写)(2)STM32CubeMX各种版本应用软件(软件不支持向下兼容,即新版本不支持旧版本)(3)各种微处理器的系列库,如en.stm32cubef1,用户用到哪种系列的微处理,就可以在STM32CubeMX软件中添加,这样可以减少不必要器件库对个人主机内存的占用。图4-2STM32CubeMX软件STM32CubeMX硬件底层配置关于微处理器的硬件底层参数配置,我们主要进行以下工作:(1)复位和时钟控制(RCC)的HighSpeedClock(HSE)选择Crystal/CeramicResonator(陶瓷晶振),在时钟树中,外部时钟HSE我们选择8MHz,PLL选择9倍频,SystemClockMUX选择PLLCLK,AHBPrescaler选择1分频,HCK选择72MHz,APB1选择2分频,APB2选择1分频。时钟树的优势在于,可以省去繁琐的时钟寄存器的代码模式的配置,软件可以生成对各种时钟寄存器的配置工作。图4-3复位和时钟控制的选择(2)SYS系统调试:debug的模式我们选择SerialWire串行数据线模式,即SWD模式,对于时钟软件默认的是滴答定时器SysTic,但是由于我们使用操作系统,SysTic的时钟不是很精确和稳定,我采用单片机的硬件定时器作为系统的时钟源,这样做的优势是时钟精确,并且时钟相对较为稳定,保证系统的稳定性和实时性,此课题中我们选择TIM4作为系统的时钟源(这也是操作系统推荐的模式)。图4-4SYS系统调试(3)硬件定时器我们选择TIM2,设置时钟源为InternalClock,我们采用的硬件的定时为100ms,设置参数为Configuration-->TIM2中Prescaler(分频)为7200-1,CounterPeriod(AutoReloadRegister)计数周期为1000-1,此处的计算公式为:Tout=((arr+1)*(psc+1))/FHCLKarr:CounterPeriod值,此处为1000-1psc:Prescaler分频参数值,此处为7200-1FHCLK:TIM2的输入时钟频率(单位为MHz)。Tout:TIM2溢出时间(单位为s)。同时开启中断NVICSetting-->TIM2globalinterrupt√图4-5硬件定时器设置(4)串口选择USART1,Mode选择Asynchronous(异步模式),对于串口参数的设置我们采用接收DMA模式即USART1_RX,Mode采用Circular,数据方向为外设到内存,数据宽度为字节宽度。数据从外部设备进入微处理器后,微处理器不再以中断方式打断当前任务接收数据,而是直接由外设进入微处理器的内存,极大的释放了微处理对外部低速数据接收耗时,同时也提高了接收数据的稳定性。图4-6串口选择温湿度传感器(单总线)接口关于DHT11温湿度传感,我们使用微处理器GPIO即可,DHT11的时序我我们采用模拟的方式,管脚模式(即GPIO
Mode)我们选择的是开漏模式(Output
Open
Drain),以实现电平的匹配。图4-7温湿度传感器(DHT11)接口(6)光敏传感器(ADC)接口关于ADC的设置,我们采用的是ADC的持续转换模式,保证数据转换的连续性,采用ADC的DMA模式,使用DMA1_Channel1,使ADC转换数据可以不经过微处理器的中断,直接由ADC的外设接口将转换的数据送到内存中去,节省了微处理器频繁中断处理ADC数据,我们可以直接在内存中得到ADC转换后的数据,数据宽度为word(32-bit)。图4-8光敏传感器管脚使能图4-9光敏传感器参数配置图4-10光敏传感器DMA参数配置(7)水泵的控制,我们使用PB5管脚,由PB5管脚输出高低电平控制继电器,PB5高电平打开继电器后水泵上水,PB5低电平关闭继电器后水泵停止抽水。图4-11水泵控制(8)使能freeRTOS操作系统,在操作系统中,我们新建三个任务以便于操作系统任务执行,使用操作系统的优势是可以将任务的运行,任务的就绪,任务的阻塞,任务的挂起等状态交由任务调度器管理,用户将主要精力用在应用逻辑层面的操作,节省了用户时间和精力,同时,操作系统在后台的调度和切换,保证程序的实时性和稳定性。在我们所建任务中主要执行:定时器开启喂水控制,空气温湿度传感器数据采集,水泵及相应继电器的开启,串口数据的收发等。图4-12使能freeRTOS操作系统生成底层驱动代码在上节中,我们通过STM32CubeMX的图形化界面设计软件配置好了底层硬件的设置参数,在本节中我们就可以生成底层硬件的驱动代码。图4-13生成底层代码如图4-14所示图4-14生成底层代码利用软件生成的底层驱动代码,文件结构清晰简洁,层次分明,在文件管理方面给用户提供了很好的架构体系,为用户节省了大量的宝贵时间。用户可以在左侧的文件夹下添加用户文件,在右侧的任务中添加应用逻辑的编写。智能宠物管理系统功能代码设计在章中,我们主要实现对编程软件的介绍,对系统应用层代码的编写实现。Keil-MDK5软件使用简介本节将介绍MDK5软件,MDK源自德国的KEIL公司,是RealViewMDK的简称。在全球MDK被超过10万的嵌入式开发工程师使用。目前最新版本为:MDK5.20,该版本使用uVision5IDE集成开发环境,是目前针对ARM处理器,尤其是CortexM内核处理器的最佳开发工具。MDK5向后兼容MDK4和MDK3等,以前的项目同样可以在MDK5上进行开发(但是头文件方面得全部自己添加),MDK5同时加强了针对Cortex-M微控制器开发的支持,并且对传统的开发模式和界面进行升级,MDK5由两个部分组成:MDKCore和SoftwarePacks。其中,SoftwarePacks可以独立于工具链进行新芯片支持和中间库的升级。如图4.2.1所示:图5-SEQ图\*ARABIC\s11MDK5组成在MDK5安装完成后,要让MDK5支持STM32F407的开发,还要安装STM32F407的器件支持包:Keil.STM32F4xx_DFP.2.6.0.pack(STM32F4系列的器件包)。这个包以及MDK5.20安装软件,开发板的使用软件为Keil5MDK版本为5.20。系统的用户逻辑代码实现本节内容,详见附录C中的代码实现结论通过本次课题很好的熟悉了一个工程项目的设计流程,熟悉了器件的选型,电路板的设计,再此过程中将以前学过的模电数电课程有了更好的理解和使用,实现了知识的融会贯通,同时新学习了硬件画图软件的使用方法和开发设计流程,在此过程中学会了使用新的软件的方法和技能。此工程项目的开发过程中,熟悉了工程开发的整体流程和各部分应注意的问题,使得对于工程项目的开发有了更深入的了解,为将来踏入工作中实现真正的项目开发打下了一定的基础。此工程中,对于软件代码的编写,在很大程度上对C语言编程有了更深入的认识与理解,进一步熟悉了C语言的使用方法和使用场景,同时进一步熟悉了C语言代码的调用及模块化编程理念。参考文献[1]唐龙,范燕,浅析智能宠物饲养箱的研发,现代畜牧科技,期刊,2018.12.10[2]贾文玉,一种宠物笼的设计与试验,甘肃畜牧兽医,期刊,2018.05.30[3]朱悦嘉,基于多温度传感器的智能宠物笼设计与试验,信息记录材料,期刊,2018.01.15[4]田崇峰,赵中营,蒋其友,刘庆新,戴有华,基于WiFi的智能宠物笼监测系统的设计与试验,电脑与电信,期刊,2017.04.10.[5]田崇峰,赵中营,刘庆新,戴有华,一种智能宠物笼的设计与试验,电脑与电信,期刊,2017.03.10[6]严冬.基于IOS平台的智能宠物视频监护系统的设计与实现,江苏大学,硕士论文,2016.04.01[7]蒋一明,从专利视角分析宠物智能监控技术的发展现状,电视技术,期刊,2017.10.17.[8]靳海英,多功能智能宠物喂养系统的设计开发,现代制造技术与装备,期刊,2019.12.15[9]SarahValentin;;ElenaArsevska;;SylvainFalala,PADI-web:Amultilingualevent-basedsurveillancesystemformonitoringanimalinfectiousdiseases,ComputersandElectronicsinAgriculture,Elsevierjournal,2020.02.18[10]NewcomerDerek;;ChopraIshveen,Evaluationofwasteanestheticgassurveillanceprogramandisofluraneexposuresduringanimalandhumansurgery.Journalofoccupationalandenvironmentalhygiene,PubMed期刊,2019.07.23设计电路原理图PCB板设计图-PAGE39-程序#include"bsp_adc.h"app_adcTypea_adcType;uint32_tapp_adcAverage(app_adcType*a_adcType){ uint8_tadc_cnt=0; for(adc_cnt=0;adc_cnt<ADC_SUM_NUM;adc_cnt++) { a_adcType->adc_sum+=a_adcType->adc_dmaBuff[adc_cnt]; } a_adcType->adc_average=a_adcType->adc_sum/ADC_SUM_NUM; a_adcType->adc_sum=0; returna_adcType->adc_average;}voidapp_adcAverage(app_adcType*a_adcType){ uint8_tadc_cnt=0; for(adc_cnt=0;adc_cnt<ADC_TOTAL_NUM-1;) { a_adcType->adc_sum2+=a_adcType->adc_dmaBuff[adc_cnt++]; a_adcType->adc_sum4+=a_adcType->adc_dmaBuff[adc_cnt++]; } a_adcType->adc_average2=a_adcType->adc_sum2/ADC_SUM_NUM; a_adcType->adc_average4=a_adcType->adc_sum4/ADC_SUM_NUM; a_adcType->adc_sum2=0; a_adcType->adc_sum4=0;}#include"bsp_dht11.h"bsp_dht11Typeb_dht11T={ .Tips={"ERROR!"},};#definePORT_DQ GPIOB#definePIN_DQ GPIO_PIN_11#defineDQ_0() (HAL_GPIO_WritePin(PORT_DQ,PIN_DQ,GPIO_PIN_RESET))#defineDQ_1() (HAL_GPIO_WritePin(PORT_DQ,PIN_DQ,GPIO_PIN_SET))#defineDQ_IS_LOW() (HAL_GPIO_ReadPin(PORT_DQ,PIN_DQ)==GPIO_PIN_RESET)staticuint8_tDHT11_ReadByte(void);voidDHT11_Init(void) //voidbsp_InitDHT11(void){ DQ_1();}/*********************************************************************************************************** 函数名:DHT11_ReadData* 功能说明:复位DHT11。拉低DQ为低,持续最少480us,然后等待* 形参:无* 返回值:0失败;1表示成功**********************************************************************************************************/uint8_tDHT11_ReadData(bsp_dht11Type*_pDTH){ //1.MCU拉低QD持续时间大于18ms,然后释放QD=1 uint8_ti; uint8_tk; uint8_tsum; //1.主机发送起始信号,DQ拉低时间>18ms DQ_0(); bsp_DelayMS(20); DQ_1(); bsp_DelayUS(15); for(k=0;k<10;k++)//2.等待DQ电平变低(超时100us) { if(DQ_IS_LOW()) { break; } bsp_DelayUS(10); } if(k>=10) { gotoquit; /*超时无应答,失败*/ } /*3.等待DQ电平变高(超时100us)*/ for(k=0;k<10;k++) { if(!DQ_IS_LOW()) { break; } bsp_DelayUS(10); } if(k>=10) { gotoquit; /*超时无应答,失败*/ } /*4.等待DQ电平变低(超时100us)*/ for(k=0;k<10;k++) { if(DQ_IS_LOW()) { break; } bsp_DelayUS(10); } if(k>=10) { gotoquit; /*超时无应答,失败*/ } /*读40bit数据*/ for(i=0;i<5;i++) { _pDTH->Buf[i]=DHT11_ReadByte(); } bsp_DelayUS(100); /*计算校验和*/ sum=_pDTH->Buf[0]+_pDTH->Buf[1]+_pDTH->Buf[2]+_pDTH->Buf[3]; if(sum==_pDTH->Buf[4]) { _pDTH->Temp =_pDTH->Buf[2]; /*温度整数部分*/ _pDTH->Hum =_pDTH->Buf[0]; /*湿度整数部分*/ return1; }quit: return0;}/*********************************************************************************************************** 函数名:DHT11_ReadByte* 功能说明:向DHT11读取1字节数据* 形参:无* 返回值:无**********************************************************************************************************/staticuint8_tDHT11_ReadByte(void){ /* 写数据时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CHTS 20032-2023隧道用绝缘管型母线
- T/CHES 52-2021水质氰化物的测定连续流动分析分光光度法
- T/CGCC 71-2022乳清蛋白杂粮果蔬粉
- T/CGCC 26-2018食品用酒精保鲜剂
- T/CEMIA 027-2022片式电阻用背电极浆料规范
- T/CECS 10292-2023多孔建筑材料保水曲线测定半透膜法
- T/CECS 10286-2023变阶预制混凝土板
- T/CECS 10003-2017供暖器具用屏蔽式循环泵
- T/CCS 051-2023露天矿山自卸车无人驾驶系统总体要求
- T/CCS 028-2023基于地理信息系统的工作面截割模板自动生成系统技术要求
- 中国真正丹道理法及工程次第阐真
- 2022年四川省成都市中考英语试卷及答案
- 商务英语写作实践智慧树知到答案章节测试2023年中北大学
- 新年春节廉洁过年过廉洁年端午节清廉文化中秋节廉洁过节优秀课件两篇
- GB/T 10920-2008螺纹量规和光滑极限量规型式与尺寸
- 认知宇宙飞船之星际探索
- 皮肤病理知识学习整理课件整理
- 人工智能课件213产生式表示法
- 空调维保质量保障体系及措施方案
- 建筑桩基技术规范2018
- 信息隐藏与数字水印课件(全)全书教学教程完整版电子教案最全幻灯片
评论
0/150
提交评论