基于单片机的智能鱼缸控制系统设计_第1页
基于单片机的智能鱼缸控制系统设计_第2页
基于单片机的智能鱼缸控制系统设计_第3页
基于单片机的智能鱼缸控制系统设计_第4页
基于单片机的智能鱼缸控制系统设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

摘要 XXXII4智能鱼缸控制系统的软件设计4.1软件介绍Keil5是由德国Keil公司推出的ARM嵌入式系统集成开发环境,支持多种芯片架构和开发工具链,可满足从8051至ARM系列的绝大部分单片机和微控制器的软件开发需求。它提供了方便实用的图形化用户界面、完善的源代码编辑窗口和强大的编辑功能,支持C/C++、汇编等多种程序设计语言。Keil5集成了多种编译器和调试器,通过其项目管理功能,可以自动生成与目标CPU相关的软件开发文件。开发者只需在新建工程时简单地选择编译器类型和目标芯片型号,Keil就会自动关联对应的编译器和链接器,从而快速配置开发环境。Keil5内建了RTX实时操作系统内核,为多任务、实时控制类嵌入式系统的开发提供了极大的支持和便利。开发者可以基于该RTOS内核创建任务、信号量、消息队列等实时对象,轻松实现任务调度、进程同步和资源共享等功能。图4.1Keil_5软件界面4.2软件程序的设计4.2.1温度检测子程序在主程序的定时中断中调用温度检测子程序。子程序首先利用单总线协议发出相应读取时序,读取DS18B20内部的温度值。然后与预先设定的高低温阈值进行比较,判断当前温度是否处于合理区间,若温度过高(如>30℃),则启动排水、补水操作降温,同时串口打印警告信息。若温度过低(如<22℃),则通过控制继电器通断,启动加热棒对水体加热。若温度正常,则不做操作。无论哪种情况,均需将测量到的实时温度值显示在LCD上。同时,温度子程序需要设置一个延时计数器,避免检测操作过于频繁。图4.2温度检测逻辑流程图部分代码如下: DS18B20_Init(); //DS18B20初始化 LED_Init(); Adc_Init(); //ADC初始化 KEY_Init(); while(1) { Key_process(); if(moshi==0) { if(t!=calendar.sec) { t=calendar.sec; time_buf[0]=calendar.w_month/10+0x30; time_buf[1]=calendar.w_month%10+0x30; time_buf[2]='-'; time_buf[3]=calendar.w_date/10+0x30; time_buf[4]=calendar.w_date%10+0x30; time_buf[5]=''; time_buf[6]=calendar.hour/10+0x30; time_buf[7]=calendar.hour%10+0x30; time_buf[8]=':'; time_buf[9]=calendar.min/10+0x30; time_buf[10]=calendar.min%10+0x30; time_buf[11]=':'; time_buf[12]=calendar.sec/10+0x30; time_buf[13]=calendar.sec%10+0x30; time_buf[14]='\0'; LCD_Show(0,0,time_buf); } temperature=DS18B20_Get_Temp(); //获取温度 temp_n=temperature/10; temp_buf[0]=temperature/100+0x30; temp_buf[1]=temperature/10%10+0x30; temp_buf[2]='.'; temp_buf[3]=temperature%10+0x30; temp_buf[4]='\0'; LCD_Show(3,1,temp_buf); //显示温度4.2.2水位检测子程序水位检测操作需要在主程序中设置专门的中断服务程序,时刻监控关键状态,当检测到电位器滑动端接地电阻最大值时,即判断为水位过低。此时立即启动加水继电器,控制水泵向鱼缸内补充水源,直至水位升至中位状态。当检测到电阻最小值时,即判断为水位过高,有溢出危险。此时立即启动排水继电器,将多余的水体排出,直至水位降至中位。其余电阻值则视为中水位状态,无需操作。在每次水位发生变化时,都需将水位状态值显示在LCD显示屏上,以便用户监控。流程图如图4.3所示。图4.3水位子序流程图部分代码如下: if((sw_1==0)&&(sw_2==1)&&(JDQ_2==0)) //最低水位 { JDQ_1=0; JDQ_2=1; } if((sw_1==1)&&(sw_2==0)&&(JDQ_1==0)) delay_ms(20); } elseif(moshi==1)LCD_ShowNmber(6,1,temp_l,2); elseif(moshi==2)LCD_ShowNmber(6,1,temp_h,2); elseif(moshi==3)LCD_ShowNmber(6,1,Turb_h,4); elseif(moshi==4) { set_time_buf[1]=hour_1/10+0x30; set_time_buf[2]=hour_1%10+0x30; LCD_Show(5,1,set_time_buf); delay_ms(70); set_time_buf[2]=''; LCD_Show(5,1,set_time_buf); delay_ms(70); }4.2.3显示子程序流程LCD12864显示程序利用Timer4的PWM波形产生对应的行列坐标扫描信号。在SDRAM中先存放需要显示的数据(包括文字、符号等)以点阵的形式,在定时器中断中不断刷新显示内容。通过ASCII码和点阵字库的转换,可以在LCD上显示各种运行数据和提示文字。主界面需要实时显示温度、浑浊度、水位、系统工作状态等信息。设置界面可通过按键切换,显示温度阈值设置、喂食时间设置等内容。图4.5显示子程序流程图部分代码如下:temperature=DS18B20_Get_Temp(); //获取温度 temp_n=temperature/10; temp_buf[0]=temperature/100+0x30; temp_buf[1]=temperature/10%10+0x30; temp_buf[2]='.'; temp_buf[3]=temperature%10+0x30; temp_buf[4]='\0'; LCD_Show(3,1,temp_buf); //显示温度 adcx0=Get_Adc_Average(ADC_Channel_0,20); //读取浑浊度 Tur_ad=(float)adcx0/4096*3.3; Tur_ad=-865.68*Tur_ad+2181.3; Tur_Value=(int)Tur_ad; LCD_ShowNmber(3,2,Tur_Value,4); //显示浑浊度4.2.4按键程序流程本系统共设置6个独立按键,分别控制系统启停、温度阈值设置、浑浊度阈值设置、喂食时间设置、手动投食和手动换水等功能。按键检测程序分为两部分:状态扫描和功能执行。(1)状态扫描主程序中设置一个定时中断,周期性调用按键扫描子程序。该子程序使用查询法,轮流检查每个按键IO口的电平状态。如果某个IO口被拉低,则认为对应按键被按下,在按键状态变量中记录下来。(2)功能执行主程序中还设置了一个按键检测循环,不断检查按键状态变量组的值。如果发现某个按键状态变为按下,则根据该按键的功能调用相应的子程序执行特定操作,例如:系统启停按键:切换系统的总运行状态标志位温度设置按键:进入温度设置界面,UP/DOWN调节阈值浑浊度设置按键:进入浑浊度设置界面,UP/DOWN调节阈值喂食时间设置:显示当前设置时间,UP/DOWN调整小时、分钟手动投食按键:控制步进电机转动,执行一次投食动作手动换水按键:立即执行一次排水、加水操作所有按键产生的操作,均需在LCD显示相应的状态信息。按键扫描和控制流程采用硬件查询和软件扫描相结合的方式,避免资源占用过多。按键流程图如图4.5所示。图4.6软件去抖流程图部分代码如下:{ u8t=0; u8t1=0; t=KEY_Scan(0); //得到键值 t1=KEY_Scan(1); //得到键值 if(t==KEY0_PRES) { moshi++; if(moshi>10)moshi=1; if(moshi==1) { LCD_Clear(); LCD_Show(1,1,"温度下限:"); } elseif(moshi==2)LCD_Show(1,1,"温度上限:"); elseif(moshi==3)LCD_Show(1,1,"浊度上限:"); elseif((moshi==4)||(moshi==5)) { LCD_Show(1,1,"定时时间"); set_time_buf[0]=':'; set_time_buf[1]=hour_1/10+0x30; set_time_buf[2]=hour_1%10+0x30; set_time_buf[3]=':'; set_time_buf[4]=min_1/10+0x30; set_time_buf[5]=min_1%10+0x30; set_time_buf[6]='\0'; }

5智能鱼缸控制系统实物制作图5.1展示了本系统的关键硬件材料。为了确保硬件电路的稳定性和性能,我们进行了周密的测试流程。图5.1硬件材料图在硬件电路的测试环节,我们采用了万用板与插件相结合的方式,对每一个电路细节进行了严格的检查。利用万用表,我们精确地判断了元器件的正反极性,确保电路连接的正确性。图5.2展示了使用万用表精细检测元件正负极的过程,这是电路测试中不可或缺的一步,它确保了电路连接无误,为后续的焊接工作奠定了坚实的基础。图5.2万用表检测元件正负极进入焊接阶段,我们深知这一步骤的重要性及潜在风险。图5.3记录了焊接过程中的一些关键瞬间。由于焊接时产生的热量会传递到元器件上,因此操作时必须格外小心,以防因过热而损坏硬件。我们的团队成员均经过专业培训,能够确保每一步操作都精准可靠。图5.3焊接过程为了实现系统所需的功能,各个器件之间需要通过细线进行精确连接。图5.4展示了复杂而精细的布线过程,这不仅要求技术人员具备高超的技艺,更需要对整个系统的电路设计有深入的理解。图5.4布线过程经过一系列精细的焊接和布线工作,我们得到了如图5.5所示的焊接结果。电路板的背面展示了我们的工艺水平和对细节的极致追求。图5.5焊接结果焊接完成后,我们进行了严格的质量检测。图5.6显示了短路和断路检测的过程,这是确保电路功能正常的重要步骤。只有经过这一步的检测,我们才能确认电路板是否能够实现预期的功能,并确保在后续使用过程中的稳定性和安全性。如果发现短路或断路问题,我们会立即进行修复,以确保每一个电路板都达到最高的质量标准。图5.6短路断路检测

6智能鱼缸控制系统运行与调试6.1软件硬件调试完成了系统硬件电路和软件程序编写之后,我们进行了严格的实物调试,以检验系统的实际运行效果。在万用板上构建原理图设计电路,对各模块的工作进行了验证。如对温度传感器、浓度传感器的读数准确性、LCD显示效果以及继电器的驱动能力等进行了测试。发现LCD偏移和闪烁情况,并通过增加滤波电路予以解决。将所有模块焊接在专门设计的电路板上,并将编译了的程序下载至开发板。通过串口打印、示波器波形显示以及实物操作,观察了各子程序的执行过程。这个阶段出现了一些异常和细节问题,如步进电机的启动绕行、温度检测延时计算错误等,都通过软硬件的相应调整而得以解决。最后,对整个系统进行了长时间、多工况的压力测试,模拟各种极端情况,考察其行为的正确与否。经过数个小时的高温、低温、污浊水质等特殊环境测试,系统运行平稳,达到了设计要求,控制效果令人满意。6.2实物展示如图6.1所示,经过无数次调试和修正,最终我们完成了智能鱼缸控制系统的全部设计工作。图5.1系统实物图单片机连接电源并按下总开关,单片机核心板的有电显示灯就会亮,单片机开始运行。显示屏显示日期、时间、温度和浊度等一些参数。如图5.2所示:图5.2通电显示图按下喂食按钮,步进电机通过传动杆带动顶部投食口的开启,使投食装置将鱼食均匀投放入缸。喂食时间、温度阈值等参数都可以通过菜单设置,方便实用。通过这个智能化系统,可以实现自动投食、自动换水、自动调节养鱼最合适温度。可以最大程度减轻人工劳动,实现鱼缸养殖的智能自动化管理,极大提高了效率。如图6.3所示:图6.3排水功能图当实测温度高于设置的温度上限或水质浑浊度高于设置的浑浊度上限时,系统会立即通过排水、加水等途径自动调节,并显示报警信息。如图6.4和6.5所示:图6.4排水功能图图6.5供水功能图当实测温度低于设置的温度下限时,系统会立即通过加热设备进行加热,并显示报警信息。如图6.6所示:图6.6加热功能图结论结论结论通过以上设计工作,基本实现了一个基于单片机的智能鱼缸控制系统。该系统能够自动检测水温、水质浓度、水位等关键参数,并根据设定阈值,自主决策并执行相应的控制操作,包括加温、降温、换水、投食等。同时,系统还提供了丰富的人机交互接口,用户可以方便地调节各项参数设置。系统的主要创新之处在于:(1)融合了温度检测、水质检测、水位检测等多种监测手段,提供全方位环境监控,保证了鱼类生存环境的舒适性;(2)实现了供水、排水、加温制冷、投食等多种智能控制功能,极大程度自动化了鱼缸的日常管理操作;(3)集成了人机交互界面,使得用户能够方便地设置各项控制参数和管理选项;(4)系统硬件采用低功耗、低成本的设计方案,有利于产品的推广和普及。该系统不仅给养殖爱好者带来了智能化便利,且整个设计思路和技术方案也可借鉴应用到其他领域的自动化控制系统之中。当然,本设计也存在一些不足,例如:(1)功能还需更加完善,后续可考虑增加远程监控、视频记录等更多辅助功能;(2)人机交互方式仅局限于按键和LCD显示,未来可以采用手机APP、语音控制等更现代化的方式;(3)系统尚未加入人工智能算法,未来可借助大数据分析和机器学习优化系统的控制策略。总的来说,通过这个设计实践,不仅掌握了嵌入式系统开发的流程和方法,更重要的是培养了动手能力、综合解决问题的能力,为今后的工作和学习奠定了良好基础。智能鱼缸控制系统只是自动化技术在宠物养殖领域的一个尝试,未来还会在其他领域继续实践和探索,为社会创造更多有价值的智能产品。毕业设计参考文献参考文献吴海青何满塘周朝阳郭晗贺泱钤王立功.基于STM32单片机的智能鱼缸控制系统设计[J].机械工程与自动化,2022(6):158-160.李龙,唐思均,李玮.基于单片机的智能鱼缸控制系统的设计[J].科技展望,2016,26(007):191-191.DOI:10.3969/j.issn.1672-8289.2016.07.166.吕杰,梁鉴明.一种基于STM32单片机的智能鱼缸控制系统设计[J].现代信息科技,2020,4(20):5.DOI:10.19850/ki.2096-4706.2020.20.004.马骁轩.基于单片机的智能鱼缸自动控制系统设计[J].[2024-03-20].殷佳琪.基于单片机控制的鱼缸水循环系统设计[J].黑龙江科技信息,2020,000(029):98-99.丁惠忠.观赏鱼缸智能控制系统的设计[D].苏州大学[2024-03-20].DOI:10.7666/d.y1304038.杨雨生,吴丽波,龙玥彤,等.基于单片机的智能生态鱼缸的设计[J].湖北农机化,2019(12):1.DOI:CNKI:SUN:HBJH.0.2019-12-052.孙悦,王震,向垚.基于51单片机的智能鱼缸系统[J].中国科技信息,2018.DOI:CNKI:SUN:XXJK.0.2018-13-018.赵宗景.基于物联网的远程可控可通信水族箱的设计实现[D].河北北方学院[2024-03-20].DOI:CNKI:CDMD:2.1017.275258.郝海燕李梦琪李瑾玥龚杰.基于单片机的智能鱼缸控制系统设计[J].内江科技,2022,43(3):49-50.黎涛,金亚玲.基于单片机的智能鱼缸温度控制系统的设计[J].湖北农机化,2019(12):1.DOI:CNKI:SUN:HBJH.0.2019-12-051.任浩,汪俊,王毅,等.基于51单片机的智能生态鱼缸设计[J].黑龙江科技信息,2018,000(008):174-175.邱义.基于STM32的智能鱼缸远程控制系统设计[J].信息技术与信息化,2020(10):3.DOI:10.3969/j.issn.1672-9528.2020.10.073.孔得丰.基于ATmega64智能鱼缸控制系统的设计[J].信息与电脑,2019(12):4.DOI:CNKI:SUN:XXDL.0.2019-12-032.王燕平.基于蓝牙技术的智能鱼缸控制系统设计[J].电子技术(上海),2021(003):000.殷佳琪.基于单片机控制的鱼缸水循环系统设计[J].科学技术创新,2020(29):2.DOI:CNKI:SUN:HLKX.0.2020-29-042.李湘,李东来,张大伟.基于C51的智能鱼缸系统设计[J].湖北农机化,2021(11):2.DOI:10.3969/j.issn.1009-1440.2021.11.071.陈帅华.基于物联网的智能鱼缸投食系统设计[J].科学咨询,2021,000(012):82.朱炯健,张喜洋,杨树辉,等.基于STM32的远程无线智能鱼缸控制系统设计[J].科技风,2019(6):1.DOI:CNKI:SUN:KJFT.0.2019-06-052.王馨萱.基于单片机的鱼缸温度控制系统设计[J].电子测试,2019(15):3.附录A谢辞谢辞在此,我衷心感谢刘光辉老师在课题设计过程中给予的悉心指导和关心支持。老师的专业知识和宝贵经验为我指明了前进的方向,使我能够顺利地完成这个设计课题。老师严谨务实的作风和严格要求激励着我不断进步,老师的谆谆教诲将伴随我终生。同时,我也由衷感谢同学们之间的互帮互助、海纳百川的学习氛围。在这个充满活力和创新的环境中,我们相互鼓舞、共同成长。同学们的热情分享和真诚互动让我获益匪浅,使我不仅掌握了专业知识,更重要的是培养了团队合作精神。正是朋友们的支持和鼓励,让我能够圆满完成这个设计课题。最后,我要深深感谢家人的无私付出和无条件支持。正是家人的关爱与理解,给予了我坚实的后盾,让我能够全身心地投入到课题设计中。家人的鼓励是我前进的动力,他们的期望是我奋斗的目标。没有家人的支持,我就无法取得今天的成绩。我将时刻铭记家人的养育之恩,努力奋斗,回报他们的期望。最后,我希望通过这个课题设计,能够为智能自动化控制技术在更多领域的应用做出理论和实践层面的有益探索,为产业的发展贡献自己的一份力量。让我们保持虚心好学的态度,在今后的发展道路上再接再厉,为国家的繁荣昌盛贡献自己的青春力量!附录B附录A原理图: 毕业设计附录B部分源程序:#include"delay.h"#include"sys.h"#include"usart.h"#include"key.h"#include"timer.h"#include"rtc.h"#include"adc.h"#incl

温馨提示

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

评论

0/150

提交评论