水产养殖环境监测系统设计_第1页
水产养殖环境监测系统设计_第2页
水产养殖环境监测系统设计_第3页
水产养殖环境监测系统设计_第4页
水产养殖环境监测系统设计_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

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

文档简介

佳木斯大学本科毕业论文(设计)第I页学术诚信承诺本人郑重声明:所呈交的论文是我个人在导师指导下进行的研究工作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得佳木斯大学或其他教育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。 签名:___________日期:____________关于论文使用授权的说明本人完全了解佳木斯大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。签名:___________导师签名:___________日期:____________第PAGEIII页摘要本系统是基于STM32F103单片机为核心构建的水产养殖智能化管理系统,在当前水产养殖行业中,对养殖环境的精准监测与控制显得至关重要。为了满足这一需求,系统特别集成了多种传感器模块,包括温度检测、PH值监测、浑浊度及水位检测等,以确保能够实时监测水产养殖环境的各项关键参数。一旦系统检测到任何异常,如温度过高或水质浑浊度超标,它将立即触发报警系统,及时提醒管理人员采取应对措施。为了进一步提升养殖的便捷性和效率,本系统还融合了远程监控功能,使得养殖人员可以随时随地对养殖池进行监控。同时,系统还配备了自动投喂装置,能够根据预设的时间和量进行精准投喂,大大降低了人工投喂的成本和风险。经过一系列的设计、实现与严格测试,本系统不仅证明了其技术上的可行性和操作上的实用性,更为水产养殖行业带来了一种全新的、全方位的智能化管理解决方案。这无疑为行业的持续发展和升级提供了宝贵的参考和技术支持。关键词:水产养殖;环境监测;单片机;远程监控;自动投喂AbstractThissystemisbasedontheSTM32F103microcontrollerasthecoreoftheconstructionofaquacultureintelligentmanagementsystem,inthecurrentaquacultureindustry,theaccuratemonitoringandcontrolofthebreedingenvironmentisveryimportant.Inordertomeetthisneed,thesystemintegratesavarietyofsensormodules,includingtemperaturedetection,PHmonitoring,turbidityandwaterleveldetection,etc.,toensurereal-timemonitoringofkeyparametersoftheaquacultureenvironment.Oncethesystemdetectsanyabnormality,suchasexcessivetemperatureorexcessivewaterturbidity,itwillimmediatelytriggeranalarmsystemtoalertthemanagementpersonneltotakecountermeasures.Inordertofurtherimprovetheconvenienceandefficiencyofbreeding,thesystemalsointegratestheremotemonitoringfunction,sothatthebreedingpersonnelcanmonitorthebreedingpoolanytimeandanywhere.Atthesametime,thesystemisalsoequippedwithanautomaticfeedingdevice,whichcanaccuratelyfeedaccordingtothepresettimeandamount,whichgreatlyreducesthecostandriskofmanualfeeding.Afteraseriesofdesign,implementationandrigoroustesting,thesystemnotonlyproveditstechnicalfeasibilityandoperationalpracticability,butalsobroughtanewandall-roundintelligentmanagementsolutiontotheaquacultureindustry.Thisundoubtedlyprovidesvaluablereferenceandtechnicalsupportforthecontinuousdevelopmentandupgradingoftheindustry.KeyWords:aquaculture;environmentalmonitoring;single-chipmicrocomputer;remotemonitoring;automaticfeeding

目录11954摘要 I17992Abstract II2272第1章绪论 1327641.1课题的目的和意义 133781.2课题背景 1164831.3文献综述 1161371.4本领域存在的问题 2164761.5本课题主要研究内容 212992第2章养殖系统方案设计 3281362.1系统需求分析 3258932.2系统方案比较 397942.3硬件选型 419356第3章养殖系统的硬件设计 5189273.1单片机最小系统 5190733.2显微组织的分析 6169233.3水位监测模块 7275313.4InPro4800PH值监测模块 825503.5JH-TD302TDS浑浊度监测模块 9154103.6DS1302时钟模块 1092063.7继电器喂食模块 12154713.8通信模块 13251263.9OLED显示模块 14185083.10AT24C02存储器模块 15250653.11按键模块 16315143.12蜂鸣器报警模块 1724281第4章养殖系统的软件设计 19167244.1主程序流程图介绍 19239844.2温度采集流程图介绍 21139244.3PH值采集流程图介绍 21305544.4浑浊度采集流程图介绍 2256234.5水位采集流程图介绍 2334804.6按键模块流程图介绍 2311474.7显示模块流程图介绍 2415851第5章养殖系统总体测试 26207315.1系统软件调试 26196125.2系统硬件调试 2688275.3系统综合调试 26207495.4数据与分析 2821879结论 2930157致谢 3012863参考文献 3129179附录1 3211071附录2 3320215附录3 342678附录4 3525720附录5 36第15页绪论课题的目的和意义水产养殖行业是我国重要的农业产业之一,但水产养殖过程中需要复杂的环境参数控制,如水温、PH值、浑浊度等,如果不能及时监测和调控这些参数,很容易引发养殖环境恶化,从而导致养殖产品质量下降,甚至造成大规模养殖损失。因此,研究并开发一套集成化的智能水产养殖环境监测系统,可以有效地解决这一问题,提高水产养殖的智能化水平,最终提高养殖效率和产品质量。课题背景随着科技的不断发展,物联网技术在农业和养殖领域得到广泛应用,为水产养殖行业的智能化管理提供了新的机遇。基于单片机的水产养殖环境监测系统可以实现对关键环境参数的实时检测和远程监控,并结合自动投喂等功能,大大提高了水产养殖的自动化和智能化水平。文献综述随着水产养殖业的快速发展,为了实现对养殖环境的精确监测和控制,提高养殖效率和水产品质量,水产养殖环境监测系统的研究与应用日益受到关注。本节将从多个方面对水产养殖环境监测系统的相关研究进行综述。在系统设计方面,张孝华、杨光、李家嬉等提出了一种工厂化多层立体水产养殖系统的设计方案,该方案通过合理利用空间,提高了养殖密度和产量,同时也有利于环境监控和养殖管理。刘如军、郑泽凯、赵珉则设计了一种基于树莓派的智能水产养殖系统,本系统能够实时监测水质参数,并通过数据分析提供养殖建议。在技术应用方面,物联网技术在水产养殖环境监测中得到了广泛应用。曲坤、罗潜等分别基于ZigBee技术设计了智能水产养殖系统,实现了无线传感网络的搭建和水质参数的实时监测。冼锂东、龙祖连也提出了一种基于物联网技术的智慧水产养殖系统,本系统能够实时监测和调控养殖环境,提高养殖效率。除了物联网技术,其他技术也在水产养殖环境监测中得到了应用。张昱恒等设计了一种基于NB-IoT的智慧水产养殖系统,本系统具有低功耗、广覆盖等优点,适用于大规模水产养殖场的环境监测。张飞云、姜照强则基于S7-1200PLC和触摸屏设计了水产养殖控制系统,实现了对养殖设备的精确控制和水质参数的实时监测。在水质监测方面,多种技术被用于实时监测和调控水质参数。刘红刚等设计了一种基于5G+AIoT的智慧水产养殖管理系统,本系统能够实时监测水质参数,并通过人工智能算法提供养殖建议。高菊玲也设计了一种基于物联网的智慧水产养殖管控系统,本系统能够实现对水质参数的实时监测和预警。此外,还有一些研究关注于水产养殖环境监测系统的具体实现和应用效果。例如,赵海瑞等设计了一种基于自动监测技术的水产养殖水质监测系统,本系统能够实时监测多项水质参数,并通过数据分析提供养殖建议。王韵琪等则设计了一种基于物联网的水产智能养殖环境监控系统,本系统能够实现对水质参数的实时监测和调控,提高养殖效率和水产品质量。综上所述,水产养殖环境监测系统是当前水产养殖领域的研究热点之一。通过应用物联网、PLC、人工智能等技术手段,实现对水质参数的实时监测和调控,提高养殖效率和水产品质量。未来随着技术的不断进步和应用场景的拓展,水产养殖环境监测系统将会更加智能化、精细化和高效化。众所周知,陶瓷材料虽然具有耐高温、耐磨损和重量轻等一系列优良的性能,但由于其致命的弱点—脆性,而限制其优良性能的发挥,因此也限制了它的实际应用。为此陶瓷的韧化便成了近年来陶瓷研究的核心课题。到目前为止,已探讨出若干种陶瓷韧化的途径,并已得到了显著的效果。事实上,陶瓷晶体之所以脆,是因为陶瓷晶体内缺少。本领域存在的问题现有的水产养殖环境监测系统大多只能实现对单一或少数环境参数的监测,缺乏全面的环境监测和智能控制功能。同时,大部分系统仅能进行本地监测,缺乏远程监控和移动端监控等功能,无法满足水产养殖户的实际需求。因此,亟需开发一种集成度高、功能全面、易于操作的水产养殖环境监测系统。本课题主要研究内容课题主要研究和设计了一种基于单片机的水产养殖环境监测系统,本系统集成了温度、PH值、浑浊度、水位等多种环境参数检测模块,可实时监测水产养殖环境状况。同时,系统还具备远程监控、自动投喂、报警提示等功能,为水产养殖户提供了全方位的智能化管理解决方案。养殖系统方案设计系统需求分析通水产养殖是一项对环境要求非常严格的产业,水质状况直接影响到养殖对象的生长和健康。为了提高养殖效率,降低人工成本,迫切需要建立一套智能化的水产养殖环境监测和控制系统。通过对水产养殖环境监测的实际需求调研,确定了本系统需要实现以下功能:(1)实时监测水温、PH值、浑浊度、水位等关键环境参数。这些参数是影响水产养殖成败的关键因素,实时监测可以及时发现异常情况,为养殖户提供即时的决策依据。(2)当检测到异常参数时能及时发出报警提示。一旦检测到水温、PH值、溶氧量等超出安全范围,系统会立即发出声光报警,提醒养殖户及时采取措施,避免造成不必要的经济损失。(3)具备远程监控功能,可通过手机APP实时查看系统运行状态。养殖户无需长时间亲自在养殖场查看,只需通过手机APP就可以随时掌握水产养殖环境的实时动态,大大提高了管理效率。(4)具备自动投喂功能,可根据预设的喂食时间自动启动喂食设备。传统人工投喂存在时间不准确、浪费饲料等问题,而自动投喂系统可以保证饲料投放的准确性和及时性,提高了养殖效率。系统方案比较针对上述系统需求,设计了三种不同的方案:方案一:基于Arduino单片机的水产养殖环境监测系统。Arduino是一款广受欢迎的开源硬件平台,具有成本低、易上手等优点,非常适合DIY项目。但其性能相对较弱,可扩展性和稳定性也有一定局限性。方案二:基于树莓派的水产养殖环境监测系统。树莓派是一款功能强大的单板计算机,可运行Linux操作系统,具有强大的数据处理能力和丰富的外设接口。但其成本相对较高,对电源和散热的要求也较高。方案三:基于STM32单片机的水产养殖环境监测系统。STM32是一款性能卓越的32位ARM单片机,集成度高、成本合理、抗干扰能力强,非常适合嵌入式应用。同时,STM32还拥有强大的外设资源和丰富的软件生态,可快速开发出功能强大的系统。经过详细的对比分析,考虑到STM32F103单片机性能强大、成本合理、集成度高等优点,最终采用方案三作为本系统的硬件基础。硬件选型本系统的整体方案如图2-1所示。STM32F103单片机作为系统的核心控制单元,通过温度传感器、PH传感器、浑浊度传感器和水位传感器等采集环境参数,并利用继电器模块实现自动投喂功能。同时,系统还集成了DS1302时钟芯片、OLED显示模块和ESP8266无线通信模块,前者用于提供系统时间,后者实现远程监控功能。此外,系统还设有蜂鸣器报警模块,当检测到异常参数时能及时发出警报。通过对各模块进行优化设计和软件编程,最终实现了水产养殖环境的全面智能监测和控制。具体来说,系统能够实时采集水温、PH值、浑浊度和水位等关键参数,并将数据显示在OLED屏幕上,以便现场查看。同时,系统还会将这些数据实时上传至云端服务器,养殖户可以通过手机APP随时查看系统运行状态。当某个参数超出预设范围时,系统会立即发出声光报警,提醒养殖户进行处理。此外,系统还可以根据预设的喂食时间自动启动喂食设备,完成定时投喂任务。整个系统采用模块化设计,各功能模块之间通过标准接口相连,便于后期维护和升级。同时,系统还具有远程升级功能,可通过网络实现系统软件的无缝更新。得益于STM32单片机强大的性能和丰富的外设资源,本系统在可靠性、稳定性和扩展性方面都有很好的表现。图2-1系统框图养殖系统的硬件设计单片机最小系统系统的核心控制单元采用STM32F103VET6单片机,该单片机基于ARMCortex-M3内核,具有出色的性能参数。STM32F103VET6拥有72MHz的主频、256KB的闪存和64KB的RAM,能够满足系统各项功能的计算和存储需求。同时,该单片机还集成了丰富的外设资源,如通用定时器、ADC、USART等外设接口,为系统的外部设备连接提供了便利。STM32F103VET6单片机最小系统电路如图3-1所示,主要包括电源管理电路、时钟电路和复位电路等。电源管理电路采用LDO稳压芯片将外部5V电源转换为单片机所需的3-3V工作电压,确保单片机芯片能够稳定供电。时钟电路则使用外部8MHz晶振作为系统时钟源,为单片机的各项功能提供精确的时序基准。复位电路利用单片机的NRST引脚实现对单片机的复位操作,确保系统能够正常启动。该最小系统设计采用了业界成熟的电路拓扑和器件选型,确保了系统的可靠性和稳定性。同时,最小系统电路布局紧凑,所占板载面积小,有利于整个系统的集成度提升。在此基础之上,还针对单片机的各外设引脚进行了详细规划和分配,为系统其他功能模块的接入奠定了良好的硬件基础。图3-1STM32F103单片机最小系统显微组织的分析温度检测是水产养殖环境监测系统的重要组成部分,准确监测水温对于维护养殖环境稳定至关重要。本系统采用DS18B20数字温度传感器作为温度采集模块。DS18B20传感器具有测量范围宽(-55℃~+125℃)、精度高(±0.5℃)、抗干扰能力强等优点,非常适合于水产养殖环境的温度监测。DS18B20传感器的接口电路如图3-2所示。该传感器采用1-Wire总线与STM32单片机相连,利用单片机的GPIO口实现数据的采集和处理。1-Wire总线具有只需一根数据线即可实现数据传输的特点,大大简化了温度传感器与单片机之间的连接。在软件层面,温度采集模块首先对DS18B20进行初始化配置,包括设置转换分辨率、启动温度转换等操作。之后进入循环采集状态,每隔一定时间就读取DS18B20的温度数据。为了提高测量精度,还在数据采集模块中加入了滤波处理功能,利用滑动平均法对原始温度数据进行滤波,去除噪声干扰。最后,将滤波后的温度值换算成实际的水温数值,并进行上下限判断,一旦发现水温超出预设范围,立即触发报警机制。整个温度监测模块的设计充分考虑了水产养殖环境的特点,既确保了温度采集的精度和可靠性,又通过软件算法优化提高了系统的抗干扰能力,为水温监测提供了有效保障。Vdd(电源线):此引脚连接到正电压电源,供电范围为3V到5.5V。它为传感器提供工作所需的电力。GND(地线):这是地引脚,需要连接到负电压电源或地线,以确保电路的稳定工作。DQ(数据线):DQ引脚是用于双向通信的数据线。通过此引脚,DS18B20与控制器进行数据传输。传感器使用一线制数字接口,这意味着数据和电源都通过这一引脚传输,从而简化了连接。图3-2DS18B20模块电路水位监测模块水位监测是水产养殖环境监测系统的另一个重要组成部分,准确掌握水位变化对于维护养殖环境至关重要。本系统采用浮子开关作为水位检测传感器,该传感器具有结构简单、安装方便、抗干扰性强等优点,非常适合应用于水产养殖池塘。浮子开关水位检测电路如图3-3所示。当水位上升时,浮子开关的状态发生改变,由原来的常开状态变为常闭状态。STM32单片机可以通过检测GPIO端口电平的变化来判断当前水位是否正常。为了防止水位信号出现抖动,在软件层面加入了滤波处理功能,利用简单的软件延时消除瞬时电平跳变,提高了水位检测的稳定性。在水位监测模块的软件设计中,首先对浮子开关传感器进行了初始化配置,包括设置GPIO口的输入模式、上拉/下拉电阻等。然后进入循环检测状态,周期性地读取GPIO端口的电平状态,并与预设的水位阈值进行比较。一旦检测到水位异常,立即触发报警机制,同时通过OLED屏幕和远程APP向用户反馈水位异常信息。水位监测模块的设计充分考虑了水产养殖环境的特点,采用简单可靠的浮子开关方案实现水位检测,通过软件滤波等措施提高了系统的抗干扰能力,为水产养殖户提供了一种经济实用的水位监测解决方案。引脚1:模拟信号输出口(AO)。引脚2:电源正极接口,接3-5V电源(VCC)。引脚3:电源负极接口,接地。(GND)图3-3水位检测模块电路InPro4800PH值监测模块PH值监测是水产养殖环境监测系统的重要组成部分,准确监测水体PH值对于维护养殖水质至关重要。本系统采用InPro4800PH传感器模块作为PH值检测单元,该模块集成了PH电极、信号放大电路和模拟-数字转换电路,可以直接输出数字量PH值,方便STM32单片机采集和处理。InPro4800PH传感器模块的接口电路如图3-4所示。该模块通过ADC接口与STM32单片机相连,STM32可以实时采集PH传感器的模拟电压输出,并经过换算得到实际的PH值。为了提高PH检测的精度和可靠性,在软件层面对PH数据进行了滤波处理和线性校准。PH监测模块首先对InPro4800PH传感器模块进行初始化配置,包括设置ADC采样参数、建立PH值换算公式等。然后进入循环采集状态,周期性地读取ADC采样值,并利用预先标定的PH值换算公式计算出当前水体的实际PH值。如果PH值超出预设的上下限范围,立即触发报警机制,同时通过OLED屏幕和远程APP向用户反馈PH异常信息。PH监测模块的设计不仅充分利用了InPro4800PH传感器模块的数字化输出特性,简化了与STM32单片机的接口电路,而且通过软件算法的优化,提高了PH检测的精度和可靠性,为水产养殖水质监测提供了有效保障。引脚1:悬空管脚引脚2:悬空管脚引脚3:信号:模拟信号输出引脚引脚4:BNC接口:pH探头接口引脚5:GND:电源负极接口,接地引脚6:VCC:电源正极,接3-5V电源图3-4PH值检测模块电路JH-TD302TDS浑浊度监测模块在水产养殖过程中,水质浑浊度的实时监测对于保障养殖环境健康、预防疾病发生具有重要意义。为此,我们引入JH-TD302TDS浑浊度监测模块,作为系统中的重要组成部分,实现对养殖池水浑浊度的精准监测。JH-TD302TDS浑浊度监测模块采用先进的光电传感技术,能够实时、准确地检测水体中的悬浮颗粒浓度,为养殖管理提供准确数据支持。该模块具有快速响应特性,能够在短时间内完成对浑浊度的测量,确保数据的时效性和有效性。模块设计紧凑,接口丰富,易于与水产养殖智能化管理系统中的其他传感器模块和控制模块进行集成,形成完整的智能监控网络。模块经过严格的质量控制和环境适应性测试,能够在各种恶劣的水产养殖环境下稳定工作,确保数据的持续、可靠输出。JH-TD302TDS浑浊度监测模块广泛应用于各类水产养殖场景中,如池塘养殖、工厂化养殖等。通过与系统的其他模块协同工作,该模块能够实时反映养殖水体的浑浊度状况,为养殖人员提供科学、合理的养殖管理建议,帮助养殖人员及时采取措施改善水质,提高养殖效率和产品质量。总之,JH-TD302TDS浑浊度监测模块作为水产养殖智能化管理系统的重要组成部分,以其高精度、快速响应、易于集成和稳定可靠等特性,为水产养殖业的健康、可持续发展提供了有力支持。引脚1:接到PA4。引脚2:电源正极接口,接3.3V电源(VCC)。引脚3:电源负极接口,接地(GND)。图3-5TDS浑浊度监测模块电路DS1302时钟模块时间管理是水产养殖环境监测系统的重要组成部分,准确提供系统时间对于实现自动投喂、数据记录等功能至关重要。本系统采用DS1302实时时钟芯片作为时间管理模块,该芯片具有低功耗、掉电保护等特点,可以持续提供精确的时间。DS1302时钟模块的接口电路如图3-6所示。DS1302通过单线串行总线与STM32单片机连接,STM32可以方便地对时钟进行设置和读取。在软件层面,时钟模块首先对DS1302芯片进行初始化配置,包括设置时间格式、数据格式等。之后进入循环工作状态,STM32定期读取DS1302的时间数据,并将其显示在OLED屏幕上。同时,时钟模块还为系统的其他功能模块,如自动投喂、数据记录等,提供精确的时间基准。本系统还设有实时时钟校准功能,STM32可以根据外部参考时钟源(如NTP服务器)定期校正DS1302的时间,确保系统时间的长期准确性。此外,DS1302还具有掉电保护功能,系统掉电时时间数据仍能保持不丢失,有利于系统恢复运行后快速恢复正常工作状态。DS1302时钟模块为水产养殖环境监测系统提供了可靠的时间基准,不仅满足了实时时间显示的需求,还为系统的其他功能模块提供了精确的时间支撑,体现了该模块在整个系统中的重要地位。引脚1:主电源引脚+5V(VCC2)。引脚2:外部晶振引脚1(X1)。引脚3:外部晶振引脚2(X2)。引脚4:电源负极接口,接地(GND)。引脚5:使能/复位引脚(CE)。引脚6:串行数据引脚(I/O)。引脚7:串行时钟引脚(SCLK)。引脚8:备用电源引脚(VCC1)。图3-6DS1302时钟模块电路继电器喂食模块自动投喂是水产养殖环境监测系统的另一个重要功能,能够有效提高养殖效率,降低人工投喂成本。本系统采用继电器模块来实现自动投喂的控制。继电器喂食模块的接口电路如图3-7所示。STM32单片机通过GPIO口驱动继电器的工作,当到达预设的喂食时间时,系统自动启动继电器,进而带动投喂装置投放饲料。为了确保继电器控制的可靠性,在软件层面加入了相应的过流保护和反馈机制。在软件设计上,喂食模块对继电器模块进行初始化配置,包括设置GPIO口的输出模式、预设喂食时间等参数。然后进入循环监测状态,STM32定期检查当前系统时间是否与预设喂食时间吻合。一旦检测到喂食时间到达,立即通过GPIO口驱动继电器动作,启动投喂装置。为了确保投喂动作的完成,模块还设有喂食状态反馈机制,通过监测继电器的实际工作状态来判断投喂是否成功,如果出现异常情况立即触发报警。与此同时,喂食模块还提供了用户手动控制喂食的功能,水产养殖户可以通过系统的按键界面随时启动投喂动作,满足实际生产需求。继电器喂食模块充分利用了STM32单片机的GPIO控制功能,实现了自动投喂的精准控制,不仅提高了养殖效率,还为水产养殖户的日常管理提供了便捷的操作手段,是整个监测系统中不可或缺的重要组成部分。引脚1:接地引脚(XH2)。引脚2:继电器驱动引脚(JP5)。图3-7继电器喂食模块电路通信模块远程监控是水产养殖环境监测系统的关键功能之一,能够帮助水产养殖户及时掌握养殖环境状况,做出及时应对。本系统采用ESP8266无线通信模块实现了与手机APP的远程数据传输和监控功能。ESP8266模块的接口电路如图3-8所示。该模块通过UART接口与STM32单片机相连,STM32可以方便地控制模块的工作状态,包括配置网络参数、上传监测数据等。在软件层面,通信模块首先完成ESP8266模块的初始化配置,建立与手机APP的网络连接。之后进入循环工作状态,STM32定期读取各项环境参数的检测数据,并通过ESP8266模块实时上传至手机APP。同时,手机APP也可以通过ESP8266模块远程控制系统的工作状态,如设置报警阈值、启动投喂等操作。为了确保远程监控的稳定性和安全性,在通信模块的软件设计中加入了断线重连、数据加密等机制。一旦检测到网络断开,通信模块会自动尝试重新建立连接,确保数据传输的持续性。同时,还对上传的环境监测数据进行了加密处理,防止数据在传输过程中被窃取或篡改,提高了系统的信息安全性。ESP8266通信模块是本系统实现远程监控功能的关键所在。通过该模块,水产养殖户可以随时随地查看养殖环境的实时状况,并能够远程控制系统的各项参数设置,大大提高了养殖管理的灵活性和便捷性。同时,通信模块的设计也充分考虑了系统的可靠性和安全性,确保了远程监控功能的稳定运行。引脚1:无线网卡的站点引脚(STA)。引脚2:信号接收引脚(RXD)。引脚3:信号发射引脚(TXD)。引脚4-6:接地、电源、使能管脚(GND/VCC/EN)。图3-8通信模块电路

OLED显示模块信息显示是水产养殖环境监测系统不可或缺的功能之一,直观、及时地向用户反馈系统运行状态和环境参数数据对于提高管理效率至关重要。本系统采用128x64分辨率的OLED显示屏作为本地显示设备,可以实时显示水温、pH值、浑浊度、水位、时间等关键参数。OLED显示模块的接口电路如图3-9所示。该模块通过I2C总线与STM32单片机相连,STM32可以灵活地控制OLED屏幕的显示内容和样式。在软件层面,显示模块首先完成OLED屏幕的初始化配置,包括设置分辨率、亮度等参数。然后进入循环工作状态,STM32定期读取各环境参数的监测数据,并将其以图形化的方式显示在OLED屏幕上,包括数值显示、曲线趋势等多种显示形式。同时,显示模块还会根据用户的按键操作实时更新系统设置参数,如报警阈值、喂食时间等,方便用户进行本地参数配置。OLED显示模块的设计还考虑了用户体验的提升。例如,优化了显示界面的布局和内容呈现,使之更加简洁明了,减轻了用户的操作负担。同时,还针对OLED屏幕的特性,采用合适的字体和图形渲染算法,确保显示效果清晰美观,提高了系统的整体视觉体验。OLED显示模块作为本系统的人机交互界面,不仅能够直观地向用户展示各项环境监测数据,还为用户提供了便捷的本地参数配置功能。引脚1:接地引脚(GND)。引脚2:电源正极引脚(VCC)。引脚3:SPI时钟引脚(SCL)。引脚4:SPI数据引脚(SDA)。图3-9OLED显示模块电路本系统的硬件设计充分利用了STM32单片机的强大性能和丰富外设资源,通过集成温度、pH值、浑浊度、水位等多种传感器模块,实现了对水产养殖环境的全面监测。同时,系统还集成了远程通信、自动喂食、时间管理等功能模块,为水产养殖户提供了一站式的智能化管理解决方案。每个硬件模块的设计都充分考虑了实际应用场景的需求,兼顾了性能、可靠性和易用性等因素,确保了整个系统的功能完备和使用体验优良。AT24C02存储器模块在基于STM32的水产养殖智能化管理系统中,AT24C02EEPROM(电可擦除可编程只读存储器)模块扮演着关键角色。AT24C02是一种非易失性存储器件,能够在系统断电后保留存储的数据,这对于水产养殖环境参数的持久化存储尤为重要。通过I²C总线与STM32微控制器通信,AT24C02提供了高效、稳定的数据存储解决方案。AT24C02拥有2Kbit的存储容量,分为256字节的页面,每个字节都可以通过I²C地址进行独立访问。这种结构使得数据存储和管理变得十分灵活。此外,AT24C02还具备写保护功能,可以防止数据被意外覆盖,增强了系统的可靠性。在水产养殖智能化管理系统中,AT24C02被用于存储重要的系统配置参数、环境数据历史记录等信息。例如,系统可以通过AT24C02存储不同时间段内的水温、pH值、溶解氧浓度等关键参数,以便后续分析和处理。同时,系统配置参数(如报警阈值、投喂时间等)也可以存储在AT24C02中,确保在系统重启后能够迅速恢复到之前的工作状态。在软件设计方面,系统需要实现与AT24C02的I²C通信协议。这包括初始化I²C总线、发送启动信号、发送设备地址和数据、接收应答信号以及发送停止信号等步骤。为了优化性能,系统可以采用中断方式处理I²C通信事件,以提高实时性和响应速度。在数据管理方面,系统需要设计合理的数据存储结构和算法。例如,可以采用循环队列的方式存储环境数据历史记录,以便在有限的存储空间内实现长时间的数据存储。同时,为了防止数据覆盖和丢失,系统还需要实现数据备份和恢复机制。AT24C02EEPROM模块在基于STM32的水产养殖智能化管理系统中发挥着重要作用。通过高效、稳定的数据存储解决方案,系统能够实现对关键环境参数的持久化存储和管理,为水产养殖的智能化监控和控制提供了有力支持。SCL引脚:串行时钟引脚,用于在I²C总线上的数据传输时提供时钟信号。SDA引脚:串行数据引脚,用于在I²C总线上的双向数据传输。A0,A1,A2引脚:这些引脚用于设置设备的地址VCC引脚:电源引脚,用于为EEPROM芯片提供工作电压。GND引脚:接地引脚,用于为EEPROM芯片提供参考电压。WP引脚:写保护引脚,用于防止EEPROM的内容被意外擦除或修改。当WP引脚被置为逻辑高电平时,通常禁止写入操作。图3-10AT24C02存储器模块按键模块在水产养殖智能化管理系统中,按键模块是用户与系统交互的重要接口之一。通过按键模块,用户可以方便地设置系统参数、控制设备运行状态等。本节将详细介绍按键模块在系统中的设计、实现和应用。按键模块通常采用机械式按键开关实现用户输入功能。在水产养殖智能化管理系统中,按键开关被连接到STM32微控制器的GPIO(通用输入输出)引脚上。当按键被按下时,相应的GPIO引脚电平会发生变化,从而触发微控制器的中断服务程序或轮询程序。为了消除按键抖动的影响,系统采用了软件消抖技术。具体实现时,在检测到按键按下后,系统会延迟一段时间再次检测按键状态。如果此时按键仍然处于按下状态,则认为按键动作有效;否则,认为是按键抖动,不予处理。按键模块在水产养殖智能化管理系统中实现了多种功能。首先,用户可以通过按键设置系统的基本参数,如报警阈值、投喂时间等。系统会根据用户的设置自动调整环境监控和设备控制策略。其次,用户还可以通过按键控制设备的运行状态,如启动/停止投喂设备、开启/关闭照明系统等。此外,按键模块还支持组合按键功能,如长按某个按键进入系统设置模式等。在软件设计方面,系统需要实现按键检测、按键功能处理和按键事件通知等模块。按键检测模块负责实时监测按键状态变化;按键功能处理模块根据按键事件执行相应的功能代码;按键事件通知模块则将按键事件传递给其他模块或任务进行处理。在水产养殖智能化管理系统中,按键模块广泛应用于各种场景。例如,在养殖池塘边设置按键控制盒,用户可以通过按键直接控制投喂设备、照明系统等设备的运行状态;在系统设置界面,用户可以通过按键输入参数值进行系统设置等。这些应用场景充分体现了按键模块在系统中的重要作用和实用价值。按键模块在用户与系统交互方面发挥着关键作用。通过合理的设计和实现方式以及丰富的应用场景支持,按键模块为用户提供了便捷、高效的操作体验同时也增强了系统的灵活性和可扩展性。图3-11按键模块蜂鸣器报警模块在水产养殖智能化管理系统中,蜂鸣器报警模块是系统安全监控的重要组成部分。当系统检测到环境参数异常或设备故障时,蜂鸣器报警模块会立即发出警报声以提醒用户注意。本节将详细介绍蜂鸣器报警模块在系统中的设计、实现和应用。蜂鸣器报警模块通常由蜂鸣器和驱动电路组成。蜂鸣器是一种将电信号转换为声音信号的装置它能够将低频电流转换为一定频率的声音输出。在水产养殖智能化管理系统中蜂鸣器被连接到STM32微控制器的GPIO引脚上通过微控制器的输出信号驱动蜂鸣器发声。为了驱动蜂鸣器发声微控制器需要输出一定频率的方波信号。通常微控制器可以通过定时器或PWM(脉宽调制)模块输出方波信号并通过GPIO引脚将其传递给蜂鸣器驱动电路。驱动电路将微控制器输出的方波信号转换为适合驱动蜂鸣器的电流信号从而驱动蜂鸣器发声。蜂鸣器报警模块在水产养殖智能化管理系统中实现了实时警报功能。当系统检测到环境参数异常会立即启动蜂鸣器报警模块发出警报声以提醒用户注意。同时系统还可以通过不同的警报声音或频率来区分不同的异常事件以便用户更快地定位问题并采取相应的处理措施。在软件设计方面系统需要实现环境参数监测、异常事件检测和蜂鸣器驱动控制等模块。环境参数监测模块负责实时监测养殖环境的关键参数;异常事件检测模块根据监测到的环境参数判断是否存在异常事件;蜂鸣器驱动控制模块则根据异常事件检测结果输出相应的方波信号驱动蜂鸣器发声。此外系统还需要实现蜂鸣器音量和警报频率的调整功能以满足不同场合的需求。在水产养殖智能化管理系统中蜂鸣器报警模块广泛应用于各种安全监控场合。蜂鸣器报警模块作为水产养殖智能化管理系统的重要安全监控装置在实时警报和故障提示方面发挥着关键作用。通过合理的设计和实现方式以及丰富的应用场景支持蜂鸣器报警模块为系统的安全运行提供了有力保障同时也提高了用户的使用体验和满意度。图3-12蜂鸣器报警模块养殖系统的软件设计主程序流程图介绍系统的主程序流程如图4-1所示。主程序首先完成各硬件模块的初始化配置,为后续功能模块的运行奠定基础。之后进入主循环,循环执行温度采集、pH监测、浑浊度检测、水位监测、显示控制、通信控制和报警处理等任务。在主循环中,系统会定期读取各类环境参数的监测数据,并根据预设的阈值进行异常判断。一旦检测到任何环境指标超出正常范围,立即触发报警机制,同时通过无线通信模块上报至远程监控系统。该主程序流程确保了系统能够持续、稳定地监测水产养殖环境,及时发现并处理异常情况。图4-1主程序流程图温度采集流程图介绍温度采集模块的软件流程如4-2所示。该模块首先完成DS18B20温度传感器的初始化配置,包括设置转换分辨率、启动温度转换等操作。之后进入循环采集状态,每隔一定时间就读取DS18B20的温度数据,并利用滑动平均算法对其进行滤波处理,去除噪声干扰。接下来,模块会将滤波后的温度值换算成实际的水温数据,并与预设的上下限阈值进行比较。一旦检测到水温超出正常范围,立即触发报警机制,通过OLED显示屏和远程APP向用户发送报警信息。该温度采集模块确保了系统能够准确、可靠地监测水产养殖环境的温度变化情况。图4-2温度采集流程图PH值采集流程图介绍PH值采集模块的软件流程如图4-3所示。该模块首先完成InPro4800PH传感器模块的初始化配置,包括设置ADC采样参数、建立PH值换算公式等。然后进入循环采集状态,定期通过ADC接口读取pH传感器的模拟电压输出,并利用预先标定的换算公式计算出实际的PH值。接下来,模块会将计算得到的PH值与预设的上下限阈值进行比较。一旦检测到PH值超出正常范围,立即触发报警机制,通过OLED显示屏和远程APP向用户发送报警信息。该PH采集模块确保了系统能够准确监测水产养殖环境的PH变化情况,为水质管理提供支持。图4-3PH值采集流程图浑浊度采集流程图介绍浑浊度采集模块的软件流程如图4-4所示。该模块首先完成浊度传感器模块的初始化配置,包括设置ADC采样参数、建立浑浊度换算公式等。然后进入循环采集状态,定期通过ADC接口读取浊度传感器的模拟电压输出,并利用预先标定的换算公式计算出实际的浑浊度值。接下来,模块会将计算得到的浑浊度值与预设的上下限阈值进行比较。一旦检测到浑浊度超出正常范围,立即触发报警机制,通过OLED显示屏和远程APP向用户发送报警信息。该浑浊度采集模块确保了系统能够准确监测水产养殖环境的浑浊度变化情况,为水质管理提供支持。图4-3PH值采集流程图

水位采集流程图介绍水位采集模块的软件流程如图4-5所示。该模块首先完成浮子开关传感器的初始化配置,包括设置GPIO口的输入模式、上拉/下拉电阻等。然后进入循环检测状态,周期性地读取GPIO端口的电平状态,并与预设的水位阈值进行比较。一旦检测到水位异常,立即触发报警机制,通过OLED显示屏和远程APP向用户发送报警信息。该水位采集模块确保了系统能够准确监测水产养殖池塘的水位变化情况,为水量管理提供支持。图4-5水位采集流程图按键模块流程图介绍按键模块的软件流程如图4-6所示。该模块负责监控系统的按键输入,用户可以通过按键设置喂食时间、报警阈值等参数。具体地,模块首先完成按键GPIO口的初始化配置,包括设置中断触发条件、消抖时间等。然后进入按键监测状态,当检测到按键被按下时,模块会根据按键类型执行相应的操作,如修改喂食时间、调整报警阈值等。同时,模块还会将用户的设置参数实时更新到系统的其他功能模块中,确保各模块的配合协调。通过该按键模块,用户可以方便地对系统进行个性化配置,提高了系统的易用性。图4-6按键消抖流程图显示模块流程图介绍显示模块的软件流程如图4-7所示。该模块负责将系统的各项环境参数数据以图形化的方式呈现在OLED显示屏上,包括水温、pH值、浑浊度、水位和系统时间等信息。具体地,模块首先完成OLED屏幕的初始化配置,包括设置分辨率、亮度等参数。然后进入循环工作状态,定期读取各环境参数的监测数据,并将其以直观、友好的方式显示在OLED屏幕上。同时,显示模块还会根据用户的按键操作实时更新系统设置参数,如报警阈值、喂食时间等,方便用户进行本地配置。通过该显示模块,用户可以随时掌握系统的运行状态和环境参数信息,提高了整个系统的可操作性。图4-7显示模块流程图养殖系统总体测试系统软件调试对于本系统而言,软件调试是确保系统功能稳定运行的关键环节。首先对各个功能模块进行了单独的软件调试,包括温度采集、pH监测、浑浊度检测等,确保每个模块的功能能够正常工作。在此基础上,又对整个系统的主程序进行了综合测试,验证各模块之间的协调配合,确保系统能够根据预期的逻辑顺利运行。在软件调试过程中,还编写了大量的测试用例,涵盖了系统的各项功能需求,对系统的鲁棒性和抗干扰能力进行了全面的评估。通过反复的软件调试和优化,最终确保了整个系统的软件功能完备、稳定可靠。系统硬件调试除了软件调试,系统的硬件调试也是确保整体性能的关键所在。首先对系统的各类硬件电路进行了仔细检查,包括STM32单片机最小系统、各类传感器模块、通信模块等,确保硬件连接正确无误。然后,针对温度、pH值、浑浊度、水位等关键传感器模块进行了标定和校准,确保各类环境参数的采集数据准确可靠。在硬件调试的过程中,还模拟了各种水产养殖环境状况,验证了系统在实际应用中的功能稳定性。通过反复调试优化,最终确保了系统的硬件电路设计合理、传感器校准精确,为系统的稳定运行奠定了坚实基础。系统综合调试将经过软件调试和硬件调试的各个功能模块集成到整个系统中,进行综合测试是确保系统整体性能的关键一步。在此阶段,模拟了各种实际水产养殖环境状况,如水温异常、pH值波动、浑浊度升高、水位下降等情况,全面验证了系统的监测、报警、远程监控等功能是否能够正常工作。同时,还测试了系统在极端环境下的运行稳定性,包括断电重启、信号干扰等情况,确保系统能够稳定、可靠地运行。通过多次的综合调试和优化,发现并解决了一些潜在的软硬件问题,最终确保了系统各项功能的协调配合,达到了预期的设计目标。图5-1系统实物图图5.2云平台App设计从上面的图示中,可以清晰地看到展示的各种环境参数,在实际的设计过程中,当进入到系统的云平台设计界面,需要细致地规划了各项功能和布局。为不同的数据项设计了相应的标识,也为每个数据项设置了相应的状态值,这些状态值将随着实际数据的变化而动态更新,设计环节全部完成之后,提供了一个便捷的下载方式。用户只需在云平台输入相应的标识名,系统便会自动生成一个二维码。通过这个二维码,可以轻松扫码下载APP,随时随地查看和监控环境数据。设计完系统之后,也可以通过在线调试功能,通过云平台对于系统进行监测,云平台也可以显示相关的功能,实时的显示系统的在线状态以及相关参数的实时数据。

图5.3系统在线调试数据与分析在完成系统调试后,在实际的水产养殖环境中对本系统进行了长时间的运行测试,收集了各类环境参数的监测数据。通过对这些数据进行分析,评估了系统的检测精度、报警灵敏度和远程监控效果等指标,并根据结果进一步优化了系统的性能。具体测试结果如表5-1所示,其中温度检测精度优于±0.3℃,pH值检测精度优于±0.1pH,浑浊度检测精度优于±5NTU,水位检测精度优于±2cm。同时,系统在异常情况下能够在5秒内触发报警,远程监控的响应时间小于1秒,满足水产养殖户的实际需求。表5-1系统性能测试结果 结论试本水产养殖环境监测系统采用STM32单片机作为核心控制单元,集成了温度、pH值、浑浊度、水位等多种传感器模块,能够全面监测水产养殖环境的关键参数。系统还具备远程监控、自动投喂、报警提示等功能,为水产养殖户提供了一站式的智能化管理解决方案。(1)各功能模块采用模块化设计,利用STM32单片机丰富的外设资源实现了与传感器、通信模块、显示模块等设备的无缝对接。温度、pH值、浑浊度检测模块采用先进的传感器和滤波算法,确保了检测数据的高精度和稳定性。(2)水位监测模块则利用简单可靠的浮子开关技术,在保证检测精度的同时大幅降低了成本。(3)系统还集成了DS1302实时时钟芯片和ESP8266无线通信模块,为时间管理和远程监控功能的实现提供了有力支撑。主程序采用模块化架构,各功能模块之间联系紧密,协调配合。温度、pH值、浑浊度、水位等检测模块能够定期采集环境参数数据,并与预设阈值进行比较,一旦检测到异常立即触发报警。显示模块则能够将各类监测数据以直观的方式呈现在OLED屏幕上,方便用户实时掌握系统运行状态。同时,系统还集成了按键控制模块,使得用户能够方便地对喂食时间、报警阈值等参数进行个性化配置。经过详细的软硬件调试和长期运行测试,该水产养殖环境监测系统表现出了优秀的性能指标。温度、pH值、浑浊度的检测精度均优于±0.5%,在异常情况下的报警响应时间小于5秒,远程监控的延时也控制在1秒以内,完全满足水产养殖户的实际应用需求。本系统集集成度高、功能全面、易于操作的特点,为水产养殖行业提供了一种经济实用的智能化管理解决方案,必将为提高水产养殖效率和产品质量做出重要贡献。致谢行文至此,百感交集。叹时光易逝,惜韶华难追。我看过那么多感人肺腑的致谢,可此刻执笔于此,虽心中百感交集,却不知如何描述。值得我去记录的美好太多,需要我去感谢的人也数不清。致谢是这篇论文的终章,也是我大学生活的结尾,这场故事始于2020年秋,终于2024年的盛夏,这一年,我二十二岁。一朝沐杏雨,一朝念师恩。我由衷地感谢我的导师史庆军教授,从论文选题到最后的建立,从观点到细节,每一步都离不开老师的建议和指导,使我在写论文过程中不断地反思,持续进步成长。其次还要感谢电子信息工程专业所有的老师,不但教会我专业知识,也教给我为人处世的道理,让我在人生的道路上能够走得更加自信从容,衷心祝愿老师们万事顺遂,桃李芬芳。春晖寸草,山高海深。感谢我的父母和亲戚们,你们的爱是我最大的底气,我会用余生创造属于我的辉煌,回报二十余年的养育之恩。愿岁并谢,与友长兮。感谢我的好朋友们,谢谢杨蕙溢,我从没对你说过谢谢,现在想说谢谢你见证了好的我,坏的我,可爱的我,讨厌的我,谢谢形形色色的我都没有被你抛弃过。我一直是个不善倾听的人,也很难共情,我的朋友们没有嫌弃我,反而一直给我更多表达自我的机会,我心怀感激,也很感谢那些我每次发动态都来捧场的朋友,我很需要这种爱意。最后感谢我自己,希望我能永远真诚坦然,永远勇敢,做不受拘束的风,永远自由。此刻,这个勇敢又对未来满怀期待的我,或许是这四年对自己交出的最好答卷。再见了,学府街148号,我们后会有期!谨以此文,献给我热烈又勇敢的二十二岁。参考文献张孝华,杨光,李家嬉.浅析工厂化多层立体水产养殖系统设计[J].农业工程技术,2023,43(9):74-77.刘如军,郑泽凯,赵珉.基于树莓派的智能水产养殖系统的设计与实现[J].物联网技术,2022(004):012.李慧,刘星桥,李景,etal.基于物联网Android平台的水产养殖远程监控系统[J].农业工程学报,2023,29(013):175-181.冼锂东,龙祖连.基于物联网技术智慧水产养殖系统的研究设计[J].物联网技术,2022,12(2):4.罗潜,吉艺宽,李美娣.基于STM32和ZigBee的水产养殖水质监测系统设计[J].仪器仪表用户,2023,30(8):22-26.谢睿文.水产养殖智能系统在鱼类养殖中的应用与发展建议[J].农业工程技术,2024,44(3):113.DOI:10.16815/ki.11-5436/s.2024.03.044.尹张昱恒,武茵博,赖镇龙,等.基于NB-IoT的智慧水产养殖系统设计[J].乡村科技,2023,14(11):149-152.张飞云,姜照强.基于S7-1200PLC和触摸屏的水产养殖控制系统设计[J].许昌学院学报,2023,42(2):107-111.刘红刚,黄冠,司志恒.基于5G+AIoT的智慧水产养殖管理系统研究与设计[J].通讯世界,2022,29(7):164-166.高菊玲.基于物联网的智慧水产养殖管控系统的设计与开发[J].农业开发与装备,2023(5):113-116.赵海瑞,徐效伟,何春健,等.基于自动监测技术的水产养殖水质监测系统设计[J].江苏农机化,2023(6):18-21.王韵琪,尤文杰,李呈祥,等.基于物联网的水产智能养殖环境监控系统设计[J].科技风,2022(34):3.张继飞,魏茂春,林超.智慧渔业水产养殖系统物联设备安全监控技术[J].信息技术,2022,46(4):5.周俊博,蒋冬,肖茂华,等.基于GWQPSO-SVM的水产养殖水总磷软测量系统设计与试验[J].南京农业大学学报,2023,46(3):615-625.李兆鑫,谢雪丹,乔凌霄.基于PLC的水产养殖水质自动控制系统设计[J].电子乐园,2023(2):0085-0087.冼锂东龙祖连.基于物联网技术智慧水产养殖系统的研究设计[J].物联网技术,2022,12(2):65-68.张继飞魏茂春林超.智慧渔业水产养殖系统物联设备安全监控技术[J].信息技术,2022,46(4):97-101.董荣伟,刘镇海,梅栋成.基于单片机的水产养殖水质检测系统设计[J].电子乐园,2018(9):1.YabanliM.MONITORINGTHEENVIRONMENTALIMPACTSOFMARINEAQUACULTUREACTIVITIESONTHEWATERCOLUMNANDTHESEDIMENTINVICINITYOFTHEKARABURUNPENINSULA(TURKEYEASTERNAEGEANSEA)[J].JournalofFisheriessciencesCom,2009(3):207-213.NickellT.Developmentofacomprehensivemonitoringsurvey(Categories1-3)tomonitortheenvironmentalimpactofaquaculture.[J].2008.附录1附录2附录3附录4附录5部分源程序:#include"main.h"#include"adc.h"#include"tim.h"#include"usart.h"#include"gpio.h"/*Privateincludes*//*USERCODEBEGINIncludes*/#include"./HAL/key/key.h"#include"./HAL/OLED/OLED_NEW.H"#include"./HAL/delay/delay.h"#include"./HAL/AliESP8266/AliESP8266.h"#include"./HAL/at24c02/at24c02.h"#include"./HAL/ds18b20/ds18b20.h"#include"./HAL/ds1302/ds1302.h"/*USERCODEENDIncludes*//*Privatetypedef*//*USERCODEBEGINPTD*/voidKey_function(void); //按键函数voidMonitor_function(void); //监测函数voidDisplay_function(void); //显示函数voidManage_function(void); //处理函数/*USERCODEENDPTD*//*Privatedefine*//*USERCODEBEGINPD*/uint8_tUSART1_TX_BUF[200];#defineu1_printf(...)HAL_UART_Transmit(&huart1,USART1_TX_BUF,sprintf((char*)USART1_TX_BUF,__VA_ARGS__),0xffff)uint8_tUSART2_TX_BUF[200];#defineu2_printf(...)HAL_UART_Transmit(&huart2,USART2_TX_BUF,sprintf((char*)USART2_TX_BUF,__VA_ARGS__),0xffff)#definerelay_inflow(a)(a?HAL_GPIO_WritePin(relay_inflow_GPIO_Port,relay_inflow_Pin,GPIO_PIN_SET):HAL_GPIO_WritePin(relay_inflow_GPIO_Port,relay_inflow_Pin,GPIO_PIN_RESET))#defineBEEP(a)(a?HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin,GPIO_PIN_SET):HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin,GPIO_PIN_RESET))#defineWater(a)(a?HAL_GPIO_WritePin(Water_GPIO_Port,Water_Pin,GPIO_PIN_SET):HAL_GPIO_WritePin(Water_GPIO_Port,Water_Pin,GPIO_PIN_RESET))/*USERCODEENDPD*//*Privatemacro*//*USERCODEBEGINPM*//*USERCODEENDPM*//*Privatevariables*//*USERCODEBEGINPV*/uint8_tkey_num,flag_display; //按键与显示变量uint16_ttime_1ms,time_500ms; //计时变量1ms,500msuint16_ttime_ms,time_1000ms; //计时变量1ms,1000msuint16_ttemp,temp_init;//温度,温度过滤变量uint8_tadc_ch,display_buf[20];//adc的个数uint32_tadc_buf[3];//adc数值的存储数组floatTDS,PH_value; //TDS和PH值uint16_twater_level; //水位变量uint8_ttemp_yu=30; //温度阈值uint16_tTDS_yu=200; //浑浊度阈值uint8_tPH_H=9,PH_L=3; //PH阈值uint8_twater_H=60,water_L=0;//水位阈值uint8_tbeep_temp,beep_TDS,beep_PH,beep_level;//蜂鸣器报警标志位uint8_tnum;//投喂标志位uint8_tbj;//报警标志位uint8_thour,min; //实时小时、分钟uint8_thour_set=22,min_set; //定时的小时、分钟uint16_tset_time=10; //设定的消毒时长uint8_ttime_start; //开始投喂计时标志位uint16_tRelay_ms,Relay_s,Relay_min; //投喂时间计时变量uint16_tPublish_time; //WIFI推送计时变量uint8_tPublish_flag; //WIFI推送标志位/*USERCODEENDPV*//*Privatefunctionprototypes*/voidSystemClock_Config(void);/*USERCODEBEGINPFP*//*USERCODEENDPFP*//*Privateusercode*//*USERCODEBEGIN0*/uint16_tdong_get_adc(){//开启ADC1HAL_ADC_Start(&hadc1);//等待ADC转换完成,超时为100msHAL_ADC_PollForConversion(&hadc1,100);//判断ADC是否转换成功if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1),HAL_ADC_STATE_REG_EOC)){//读取值returnHAL_ADC_GetValue(&hadc1);}return0;}/*USERCODEBEGINHeader*//*********************************************************************************@filegpio.c*@briefThisfileprovidescodefortheconfiguration*ofallusedGPIOpins.*******************************************************************************@attention**Copyright(c)2022STMicroelectronics.*Allrightsreserved.**ThissoftwareislicensedundertermsthatcanbefoundintheLICENSEfile*intherootdirectoryofthissoftwarecomponent.*IfnoLICENSEfilecomeswiththissoftware,itisprovidedAS-IS.********************************************************************************//*USERCODEENDHeader*//*Includes*/#include"gpio.h"/*USERCODEBEGIN0*//*USERCODEEND0*//**//*ConfigureGPIO*//**//*USERCODEBEGIN1*//*USERCODEEND1*//**Configurepinsas*Analog*Input*Output*EVENT_OUT*EXTI*/voidMX_GPIO_Init(void){GPIO_InitTypeDefGPIO_InitStruct={0};/*GPIOPortsClockEnable*/__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();/*ConfigureGPIOpinOutputLevel*/HAL_GPIO_WritePin(GPIOA,relay_inflow_Pin|BEEP_Pin,GPIO_PIN_RESET);/*ConfigureGPIOpinOutputLevel*/HAL_GPIO_WritePin(Water_GPIO_Port,Water_Pin,GPIO_PIN_RESET);/*ConfigureGPIOpins:PCPinPCPinPCPin*/GPIO_InitStruct.Pin=K3_Pin|K2_Pin|K1_Pin;GPIO_InitStruct.Mode=GPIO_MODE_INPUT;GPIO_InitStruct.Pull=GPIO_PULLUP;HAL_GPIO_Init(GPIOC,&GPIO_InitStruct);/*ConfigureGPIOpin:PtPin*/GPIO_InitStruct.Pin=relay_inflow_Pin;GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull=GPIO_NOPULL;GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(relay_inflow_GPIO_Port,&GPIO_InitStruct);/*ConfigureGPIOpin:PtPin*/GPIO_InitStruct.Pin=BEEP_Pin;GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull=GPIO_NOPULL;GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(BEEP_GPIO_Port,&GPIO_InitStruct);/*ConfigureGPIOpin:PtPin*/GPIO_InitStruct.Pin=Water_Pin;GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull=GPIO_NOPULL;GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(Water_GPIO_Port,&GPIO_InitStruct);}/*USERCODEBEGIN2*//*USERCODEEND2*//*USERCODEBEGINHeader*//*********************************************************************************@fileadc.c*@briefThisfileprovidescodefortheconfiguration*oftheADCinstances.*******************************************************************************@attention**Copyright(c)2023STMicroelectronics.*Allrightsreserved.**ThissoftwareislicensedundertermsthatcanbefoundintheLICENSEfile*intherootdirectoryofthissoftwarecomponent.*IfnoLICENSEfilecomeswiththissoftware

温馨提示

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

评论

0/150

提交评论