基于STM32养殖场环境监测系统的设计与实现_第1页
基于STM32养殖场环境监测系统的设计与实现_第2页
基于STM32养殖场环境监测系统的设计与实现_第3页
基于STM32养殖场环境监测系统的设计与实现_第4页
基于STM32养殖场环境监测系统的设计与实现_第5页
已阅读5页,还剩41页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

需求分析2.1需求概述本小节的主要内容是基于STM32养殖场环境监测系统的技术需求和非技术需求。2.1.1技术需求在设计和实现基于STM32养殖场环境监测系统时,技术需求非常重要,直接影响到系统的性能、稳定性和可用性。技术方面的需求包含充分的利用STM32微控制器特性、传感器技术、数据采集与传输以及用户界面和报警系统的设计。为了保证基于STM32养殖场环境监测系统可以满足预期的目标和性能,对以下几点需求和实现是非常重要的,这样系统才可以有效的发挥其作用,保证养殖场环境的稳定与动物的健康。①主控芯片:要充分利用STM32微控制器的高效能还有它的低功耗特性,确保系统能有长时间的运行能力,STM32是一种强大的微控制器,它不仅可以提供稳定可靠的运行环境而且还可以保持相对较低的功耗,还可以让系统加长使用寿命。②传感器技术:本系统中传感器用于记录一系列的实时数据,如温度、湿度和有害气体浓度等,高质量的传感器能准确检测环境变化,提供可靠的数据。③数据的采集与传输:收集到的数据需要通过稳定的通信网络发送到手机APP,这涉及到WiFi无线传输技术,数据传输需要快速、可靠,以减少数据丢失和延迟。④用户界面和报警系统:用户界面应直观,方便养殖人员分析数据。报警系统对于及时响应环境的变化至关重要,如温湿度过高或有害气体浓度超标时,蜂鸣器自动发出响声。2.1.2非技术需求除了技术方面的需求,非技术方面的需求也非常重要,这些需求会直接关系到系统的用户体验、安全、法律合规性、可持续性、对环境的影响等。①用户体验:系统的操作方便是非常重要的,尤其是针对那些非技术背景的用户。系统设计的简单明了,操作流程方便清晰以及提供全部的用户操作方式,这可以帮助用户能够快速使用并且可以熟练的操作系统,以便更好地实现养殖环境监测和管理。②法律合规性:我们必须根据地区法律,系统处理的个人数据或与个人相关的数据必须符合相应的数据保护法规,除此之外我们也必须遵循特定于养殖业的法规和标准。③可持续性:随着养殖技术的不断发展,系统需要具备一定的可扩展性,以便能够灵活的应对新的需求和挑战。④环境影响:确保最大限度地减少系统对环境的影响,使用环保材料和优化能源消耗可减轻环境负担,从而支持可持续发展目标。⑤低功耗和高效能:系统设计应考虑到能效,尤其在WiFi模块的使用上,确保低功耗和长期稳定运行。⑥准确性:系统需要提供相对准确的传感器数据,如温度、湿度、气体浓度等,以确保生长环境符合标准。⑦成本效益:系统设计需要考虑成本效益,确保在满足功能要求的同时控制成本。⑧维护和升级:确保系统的组织结构便于日常维护和后续技术升级。2.2系统框图在系统设计阶段,需要明确养殖场环境监测系统的功能需求和整体结构。以STM32作为核心处理单元,构建系统时需要考虑到传感器、通信模块和电源之间的连接和控制,建立合理的系统框架,可以确保各个模块之间的协作和数据的有效传输。本系统的系统框图如图2.1所示。图2.1系统框图2.2.1硬件部分本系统采用了STM32F103C8T6微控制器作为整个系统的主控芯片,MQ135有害气体传感器、DHT11温湿度传感器和火焰传感器对养殖场环境进行实时监测,监测数据随后被传输到STM32微控制器进行处理,然后系统通过OLED显示屏实时显示采集到的数据,如果数据异常蜂鸣器将发出响声,同时系统利用WiFi模块进行数据的无线传输,硬件组件框图如图2.2所示。图2.2硬件组件框图2.2.2软件部分软件部分主要由KeilMDK5和AndroidStudio组成,在KeilMDK5中,实现了对传感器的数据采集,这些数据经过STM32F103C8T6单片机的处理后,通过WiFi模块无线传输给手机APP。AndroidStudio用于创建手机APP,该应用程序的界面能够展示各个传感器收集到的数据、蜂鸣器和喷淋装置(喷淋装置用LED灯模拟)的状态以及可以对喷淋装置(喷淋装置用LED灯模拟)和蜂鸣器进行控制。2.3系统功能基于STM32养殖场环境监测系统包括硬件和软件两个部分,如表2.1所示。表2.1软硬件功能表软硬件功能DHT11温湿度传感器实时采集动物生存环境中的温湿度数据信息MQ135有害气体传感器实时采集动物生存环境中的有害气体浓度数据火焰传感器检测是否有火灾发生,若检测到火灾,则喷淋装置喷水(喷淋装置用LED灯模拟,LED灯打开则为喷水)OLED显示屏对采集到的数据信息进行展示WiFi模块进行数据的无线传输蜂鸣器温湿度、有害气体、火灾异常时蜂鸣器发出响声手机APP通过WiFi模块将收集到的数据传输到手机APP上以供查看2.4所用技术本小节的主要内容是基于STM32养殖场环境监测系统的开发工具/语言以及开发平台。2.4.1开发工具/语言KeilMDK5:Keil是一家提供嵌入式系统开发工具的公司,其主要产品是KeilMDK软件套件,该套件集成了多种仿真器和调试器,可与硬件开发板连接,对系统进行实时监控和调试。本系统Keil软件用于对STM32F103C8T6单片机进行编写并对程序控制,可以实现对传感器的数据采集处理以及通信。AndroidStudio:AndroidStudio是用于创建Android应用程序的集成开发环境。通过AndroidStudio,开发人员可以轻松地用Java、Kotlin和其他语言编写代码,创建用户界面,进行调试和优化。本系统采用AndroidStudio软件和Kotlin语言编写APP,用户可以查看数据,及早发现不良环境因素。C语言:C语言接近硬件的操作、高效性能和广泛的平台兼容性,是嵌入式编程的首选语言之一,在本系统中首先明确系统需要监测的环境参数,如温度、湿度、气体浓度等,确定所需要的硬件,如传感器、微控制器等,然后使用C语言编写代码,实现对各传感器的数据读取,紧接着在开发环境中进行代码编译和调试,测试程序在硬件上的运行情况,确保传感器数据的读取和处理,最后根据测试结果对代码进行优化,提高系统的稳定性和效率。Kotlin语言:Kotlin是一种与Java可互操作的静态类型编程语言,由JetBrains开发,2017年被谷歌宣布为Android官方编程语言之一。在本系统中首先在AndroidStudio中创建新项目时选择Kotlin作为开发语言,然后使用AndroidStudio内置的界面设计工具,实现界面元素数据展示板,用于展示温度、湿度、气体浓度等环境参数,紧接着使用Kotlin语言编写APP的业务逻辑,实现与传感器的数据通信。2.4.2开发平台Windows平台:它广泛应用于个人电脑、笔记本电脑和服务器等设备,本系统的所有软件设计和开发工作都是在Windows平台上完成的,这包含KeilMDK5对STM32F103C8T6微控制器进行编写以及AndroidStudio对APP进行编写等,它为用户提供了丰富的功能和服务。3系统设计3.1主芯片模块本系统采用STM32F103C8T6单片机作为主控模块,实物图如图3.1和图3.2所示,它是一款流行的单片机,属于STM32系列,它具有多种低功耗模式,可根据需求进行灵活配置以实现节能,适用于各种嵌入式系统应用。图3.1STM32F103C8T6单片机正面图3.2STM32F103C8T6单片机背面STM32F103C8T6单片机的原理图如3.3所示,它集成了丰富的外设,包含通用定时器、串口通信接口、模拟数字转换器、数字模拟转换器、通用并行接口等,在工作时,它通过加载程序代码到Flash存储器中,并配置相应的寄存器和外设参数来实现特定功能,可以实现各种嵌入式应用。在设计和开发过程中,充分了解其工作原理,合理利用其特点和功能特性,可以加快项目开发的完成速度,满足应用要求。图3.3STM32F103C8T6单片机原理图3.2硬件设计本小节对基于STM32养殖场环境监测系统的硬件进行了设计,包括各类传感器、OLED显示屏、WiFi模块以及蜂鸣器。3.2.1温湿度传感器本系统使用DHT11温湿度传感器,其实物图如图3.4所示,可以在3.3V和5V的供电电压下正常工作。它通过结合微控制器,可以方便地获取环境温湿度数据,适合用于各种嵌入式系统和物联网项目中进行温湿度监测。图3.4DHT11温湿度传感器DHT11温湿度传感器的原理图如图3.5所示,它的工作原理分为两个部分,一是温度测量,DHT11内置一个用于测量环境温度的热敏电阻,当前的温度通过测量电阻值的变化来获取的;二是湿度测量,湿度是通过湿度敏感电容器测量,空气越潮湿,电容值越高,空气越干燥,电容值越低,DHT11通过感应电容值的变化来测量空气的相对湿度。图3.5DHT11温湿度传感器原理图3.2.2有害气体传感器本系统采用MQ135有害气体传感器,实物图如图3.6所示,该传感器可检测空气中多种有害气体,如丁烷、二氧化碳等,适用于养殖场、家庭、办公室、工业设施等场所,监测空气中有害气体的浓度,保护人们的健康和安全。图3.6MQ135有害气体传感器有害气体传感器的原理图如图3.7所示,MQ135有害气体传感器的工作原理主要是化学吸附、电导率的变化和信号的输出,先解释一下化学吸附,MQ135传感器的核心是一个小的金属氧化物敏感层,当传感器在一定温度下工作时,敏感层的表面吸收空气中的气体分子,紧接着,吸附在敏感层表面的气体分子会引发电导率的变化,这是由于气体分子与敏感层表面的化学反应,导致材料的电导性质发生变化,其导电性主要依赖于电子的数量,在清洁空气中,敏感层表面的氧气分子会捕获自由电子,形成负离子,从而降低材料的电导率。当有害气体存在时,这些气体分子会与表面的氧负离子反应,释放出被捕获的电子,增加材料的电导率。然后是信号输出,传感器的电导率变化会转换为电压或电流的变化,通过电路处理后,可以输出模拟或数字信号,这些信号可以由微控制器等设备读取,并转换成气体浓度的读数。图3.7MQ135有害气体传感器3.2.3火焰传感器本系统采用火焰传感器,实物图如图3.8所示,它是一种用于检测火焰存在的设备,火焰传感器通常具有快速响应、高灵敏度和稳定性的特点,能够快速准确地检测到火焰信号,它能够通过感测火焰的光谱特征或者热量变化来判断是否存在火焰。图3.8火焰传感器火焰传感器的原理图如图3.9所示,火焰传感器通常用于检测火焰是否存在,并在检测到火焰时可以及时采取其他措施,它的工作原理是基于火焰产生的光谱特征和光敏元件的感受性,先解释一下光敏元件,火焰传感器通常采用光敏元件,例如光敏电阻或光敏二极管,这些元件对火焰产生的光谱具有高度的敏感性。火焰发出的光谱包含具有特定强度和频率特性的可见光和红外光,光敏元件可以接收这些光谱并产生相应的电信号。紧接着是光信号检测,当火焰存在时,火焰产生的光会照射到光敏元件上,光敏元件吸收光能,产生电子激发或电阻变化等效应。然后是电信号输出,在这里电激励或光敏元件电阻的变化被转换成电信号,可以是电压或电流信号,显示火焰的强度或存在的程度。然后是信号处理,传感器内部的电路将接收到的电信号进行放大和处理,这有助于提升传感器的灵敏度和稳定性。最后输出触发,根据处理后的信号,传感器会触发警报和启动喷淋装置(喷淋装置用LED灯模拟)。图3.9火焰传感器原理图3.2.4OLED显示屏本系统采用0.96寸OLED显示屏,实物图如图3.10所示,小型有机发光二极管(OLED)显示屏通常使用3.3V或5V电源,具有低功耗的特点,适用于各种电子产品,而且视角宽广,可从各种角度观察清晰的显示内容。图3.10OLED显示屏OLED显示屏的原理图如图3.11所示,工作原理基于电流通过有机材料时所产生的电致发光效应。OLED由机发光层、电子传输层等材料组成,这些有机材料有半导体特性,能够在电流通入时发光。接着是电子注入,当向发光二极管的两端施加外部电压时,电子从负极流向正极,电子通过电子注入被注入有机发光层,电子空穴同时被注入正极。然后是电荷复合,电子和空穴在有机发光层相遇,形成键释放能量。最后是发光,当分子从激发状态回到基本状态时,会释放出光子,产生可见光。图3.11OLED显示屏原理图3.2.5WiFi模块本系统采用WiFi模块的型号为ESP8266-01S,实物图如图3.12所示,它搭载了高度集成的WiFi芯片,支持802.11b/g/n标准,可以通过串口进行控制和配置,具有强大的处理能力和存储容量,它也可以实现智能设备之间的无线连接,将设备连接到APP进行数据传输。图3.12WiFi模块WiFi模块的原理图如图3.13所示,它是一种用于无线网络通信的设备,它通常用于连接设备到WiFi网络,实现无线数据传输。WiFi模块的工作原理包括几个方面,如射频信号传输、网络协议处理等。首先介绍射频信号传输,WiFi模块通过射频天线与WiFi设备通信。其次是WiFi模块内置射频调制解调器,可将数字数据转换为射频信号进行传输,并将接收到的射频信号解调为数字数据。然后是网络协议处理,WiFi模块包含网络协议处理功能,负责数据聚合、路由和传输,TCP/IP协议栈通过WiFi模块与其他网络设备通信,实现数据传输和交换。然后是WiFi连接管理,WiFi模块通过扫描周围的WiFi网络,并与选择的网络建立连接,连接建立成功后,WiFi模块就可以在网络上发送数据。最后是安全性,WiFi模块还包括安全性功能,如加密和身份验证,用于保护数据传输的安全性。图3.13WiFi模块原理图3.2.6蜂鸣器本系统采用无源蜂鸣器,实物图如图3.14所示,无源蜂鸣器也称为压电蜂鸣器或压电陶瓷蜂鸣器,是一种简单且常用的声音发生器,它不含有内部振荡器,需要外部电源通过微控制器的输出端口输入到无源蜂鸣器,以此让蜂鸣器产生声音,产生的声音通过无源蜂鸣器的外部声孔输出到环境中。在本系统中当蜂鸣器检测到温湿度、有害气体、火灾状况异常时蜂鸣器发出响声。图3.14蜂鸣器蜂鸣器的原理图如图3.15所示,本系统采用PWM(脉冲宽度调制)信号控制无源蜂鸣器,将PWM输出引脚连接到无源蜂鸣器,PWM信号的高低电平变化会导致无源蜂鸣器的振动,PWM信号的频率决定每秒钟产生多少脉冲,进而决定音调,频率越高,脉冲越多,音调越高。PWM信号的占空比表示高电平寿命与总周期时间的比值,占空比的设置影响信号器产生声音的响度,增大占空比会增大声音的响度,减小占空比会减小声音的响度,占空比在PWM信号中非常重要,直接影响信号器控制应用产生信号的平均功率和效果,通过调整PWM信号的占空比,可以实现精确的设备控制。图3.15蜂鸣器原理图3.3软件设计本小节是基于STM32养殖场环境监测系统的软件设计,其主要内容包括主程序设计和手机APP设计。3.3.1主程序设计①温湿度传感器以下是DHT11温湿度传感器的工作流程和工作流程图,如图3.16所示。初始化:此传感器在开始测量之前需要进行初始化,以确保其处于最佳工作状态。启动信号发送:微控制器向传感器发送启动信号,从而激活传感器开始对温湿度进行测量。数据采集:在接收到信号后,传感器立即开始采集数据,其内部元件对周围环境的温湿度进行监测,并将这些物理量转换成数字信号。数据传输:采集完成后,传感器将测量到的数据传输给微控制器。数据处理和应用:微控制器接收到传感器采集到的数据并进行处理,然后将数据实时显示在OLED显示屏和手机APP中,如果检测到任何异常的温湿度数据,蜂鸣器发出响声。图3.16DHT11温湿度传感器工作流程图以下是温湿度传感器的部分代码设计,如图3.17所示,该代码用于读取和处理来自DHT11温湿度传感器的数据,并根据读取结果更新报警状态,先调用函数读取温湿度数据,数据读取成功后检查温湿度是否异常,如果异常,则更新报警状态,如果失败,则显示错误信息,系统进入无限循环。图3.17温湿度传感器部分代码②有害气体传感器以下是MQ135有害气体传感器的工作流程和工作流程图,如图3.18所示。预热阶段:此传感器在使用之前需要进行预热,这是为了确保其性能稳定和准确性。检测气体浓度:当传感器预热完成后,它就开始接收来自周围环境的气体浓度,MQ135有害气体传感器内部有一个特定的化学敏感元件,通常是氧化锡。电信号输出:内部电路将会测量传感元件的电阻变化,然后转换成对应的电信号。数据处理及应用:电信号经过STM32的处理,通常会转换为有害气体浓度数据,检测到的数据信息将会被显示在OLED显示屏和手机APP上,若数据异常,则蜂鸣器发出响声。图3.18MQ135有害气体传感器工作流程图以下是MQ135有害气体传感器的部分代码设计,如图3.19所示,这段代码的功能是读取MQ135有害气体报警状态并更新系统状态。先是通过调用函数来读取当前的有害气体浓度,然后判读有害气体浓度是否异常,如果浓度异常,相应的报警状态会被设置,如果浓度正常,则清除气体报警状态。图3.19有害气体传感器部分代码③火焰传感器以下是火焰传感器的工作流程和工作流程图,如图3.20所示。光信号:光感应元件一旦捕获到光信号后会将其转换为对应的电信号。信号放大:内部电路通常会对接收到的光信号进行放大和处理,以提高信号的灵敏度和稳定性。信号分析:对放大后的信号进行分析,以确定信号是否达到火焰传感器的标准。触发输出:如果检测到火焰信号超过了标准,传感器会触发相应的输出,包括蜂鸣器发出响声以及喷淋装置(喷淋装置用LED灯模拟)自动打开。重置或复位:火焰信号消失后,传感器通常会进入重置或复位状态,此时传感器可重新开始监测火焰信号。图3.20火焰传感器工作流程图以下是火焰传感器的部分代码设计,如图3.21所示,这段代码的主要功能是读取火灾检测传感器报警状态并更新系统状态以及根据火灾报警状态打开喷淋装置(用LED灯模拟),先是检查火焰传感器是否检测到火焰,如果检测到火焰,系统状态将更新以设置火灾报警,蜂鸣器立即发出响声,喷淋装置将立即打开(喷淋装置用LED灯模拟,LED灯打开则为喷水),LED灯也可以通过手机APP控制,如果没有检测到火灾,则清除火灾报警状态。图3.21火焰传感器部分代码④OLED显示屏以下是OLED显示屏的工作流程和工作流程图,如图3.22所示。图像数据输入:通过外部设备传输到OLED显示屏的控制电路。像素点控制:接收图像数据后,控制电路根据图像内容和显示要求控制每个像素点。电荷注入:控制电路根据像素控制信息向每个像素点发送电压信号。电子-空穴复合:在有机发光层内部,电子与空穴在相遇并且融合的时候将会共同释放出能量,激活有机发光层中的分子。发光:当分子从激发态返回到基态的时候,释放光子并产生可见光。图像输出:发出的光穿过透明电极,在OLED屏幕表面产生图像。刷新:当图像数据发生变化时,控制电路会更新相应的像素控制信息,以改变每个像素点的亮度和颜色值,从而更新显示内容。图3.22OLED显示屏工作流程图以下是OLED显示屏的部分代码设计,如图3.23所示,这段代码负责更新并在OLED屏幕上显示环境监测系统的当前状态,它先是显示气体、湿度和温度的当前读数,这些值分别在OLED屏幕的不同行上显示,使用函数将数据转化为可读的文本格式显示出来,然后使用一个switch语句来判断系统的当前报警状态,并根据这个状态设置一个对应的报警信息字符串,这些报警状态包括正常状态、温度过高、湿度过高、气体浓度过高、火灾报警,以及它们的各种组合,每种状态都有一个对应的描述字符串,最后选定的报警状态信息被格式化并显示在OLED屏幕上,这样用户可以一目了然地看到当前的环境参数和系统的报警状态。图3.23OLED显示屏部分代码⑤WiFi模块以下是WiFi模块的工作流程和工作流程图,如图3.24所示。开机和初始化:通电后,要经过上电和初始化过程,在这一过程中,模块要配置其硬件和软件组件。扫描可用网络:手机上扫描可用WiFi,然后进行连接。选择网络:设备根据扫描结果选择要连接的目标网络。建立连接:在连接建立期间,模块会与目标网络进行身份验证过程,以确保连接的安全性和合法性,身份验证成功后,WiFi模块与目标网络建立起连接,并分配给模块一个IP地址。数据传输:当建立连接后,WiFi模块获取到的数据信息将无线传输到手机APP上。图3.24WiFi模块工作流程图以下是WiFi模块的部分代码设计,如图3.25所示,这段代码通过WiFi将环境监测到的数据上传到手机APP。先是检查定时计数器是否达到了预设的上传间隔,一旦计数器满足条件,将执行数据上传的操作,上传的数据包括当前的温度、湿度、气体浓度,以及与火灾检测相关的阈值和状态,这些信息被格式化为一个字符串,如果WiFi连接的linkid为0,通常表示已经建立连接,则调用函数来上传格式化后的数据,完成上传后,计数器重置为0,等待下一次上传周期。图3.25WiFi模块部分代码⑥蜂鸣器无源蜂鸣器的工作流程相对简单,首先,必须有一个电源、一个来自微控制器的外部电气输入信号、一个电子设备的输出端口、一个传感器或其他触发电气信号以产生声音的来源。电信号输入接收完成后,无源蜂鸣器内部的被激发振动,膜片的振动引起周围空气振动,形成声波,产生可听到的声音。最后,产生的声音通过无源蜂鸣器的声孔输出到周围环境中,声音的音调和音量取决于输入电信号的频率和幅度。其工作流程图,如图3.26所示。图3.26蜂鸣器工作流程图以下是蜂鸣器部分的代码设计,根据状态打开蜂鸣器报警,如图3.27所示,首先是判断当前状态是否正常,如果状态不正常则蜂鸣器将发出响声,如果状态正常则蜂鸣器关闭响声,除此之外,蜂鸣器也可以用手机APP控制。图3.27蜂鸣器部分代码⑦闪灯任务这段代码是一个周期性任务,用于控制LED灯的闪烁,以及设置一个状态变量。当灯持续闪烁时,意味着系统处于正常状态,代码如图3.28所示。图3.28闪灯任务3.3.2手机APP设计本系统的手机APP功能主要是通过WiFi模块无线传输温湿度和有害气体传感器实时监测到的数据并且在数据发生异常时蜂鸣器发出响声时可以通过手机APP查看,可以在报警状态那一栏上可以看到有报警三个字,还有就是在火焰传感器监测到有火焰的情况下手机APP喷淋状态那一栏上显示正在喷淋以及在火灾报警和报警状态上显示有报警,还有一个功能就是在手机APP上可以控制喷淋装置(用LED灯模拟)和蜂鸣器的开与关,手机APP的主界面如图3.29所示。图3.29手机APP主页面本段代码中的InspectorData是一个数据类,用于表示某种检测器的数据。它包含了多个属性,例如温度、湿度、二氧化碳浓度、二氧化碳浓度阈值、火灾检测值等,代码如图3.30所示。图3.30数据类本段代码是采集设备上传数据json转InspectorData对象工具类,这两个组件在一起工作时,可以使得从传感器接收到的json数据被有效地转换为具体的Kotlin对象,使用InspectorData类可以方便地处理和访问这些数据,代码如图3.31所示。图3.31数据json转InspectorData对象工具类绑定界面控件,用于显示温度、湿度、二氧化碳浓度、火警状态、报警状态,并控制喷淋装置(用LED灯模拟)和蜂鸣器,代码如图3.32所示。图3.32绑定界面控件这段代码是一个在Kotlin中编写的匿名线程,主要用于建立和服务器的网络连接,并从该连接中获取输入和输出流,代码如图3.33所示。图3.33与服务器建立连接新开网络线程连接到单片机建立的服务器不断读取数据,然后接收信息更新界面,并将这些数据显示在手机APP的上,如图3.34所示。图3.34网络线程连接设置控件点击事件回调函数,实现控制命令下发,当界面上的控件被点击时,操作系统会调用这个回调方法,在这里读取控件状态并新开线程将喷淋装置的命令下发给单片机,如图3.35所示。图3.35喷淋装置命令下发设置控件点击事件回调函数,实现控制命令下发,当界面上的控件被点击时,操作系统会调用这个回调方法,在这里读取控件状态并新开线程将蜂鸣器的命令下发给单片机,如图3.36所示。图3.36蜂鸣器命令下发服务器地址和端口如下,地址是无线模块默认的,端口自己设置的空闲端口,如图3.37所示。图3.37服务器地址和端口3.4系统流程图本系统首先对软硬件进行初始化,然后通过温湿度和有害气体传感器对养殖场当前的养殖环境进行实时数据采集,采集到的数据通过OLED显示屏实时显示采,如果采集到的数据存在异常情况则蜂鸣器发出响声,同时系统通过火焰传感器进行火灾检测,如果检测到火灾,则蜂鸣器发出响声同时喷淋装置自动喷水(喷淋装置用LED灯模拟,LED灯打开则为喷水),这些数据将通过WiFi模块无线传输到手机APP上,本系统流程图如图3.38所示。图3.38系统流程图4系统测试4.1测试目的基于STM32养殖场环境监测系统的设计与实现进行测试的目的是为了验证系统的功能和性能。这包含保证所有关键功能,温湿度、有害气体浓度和火焰的实时监测以及蜂鸣器、喷淋装置(用LED灯模拟)、OLED显示屏、WiFi模块和手机APP是否完好。通过以上测试,可以验证系统是否按照设计要求运行。4.2测试范围本次主要测试了DHT11温湿度传感器、MQ135有害气体传感器和火焰传感器的实时监测功能,确保监测到的数据能够正常显示到OLED显示屏和通过WiFi模块将监测到的数据无线传输手机APP上并且在发生数据异常时蜂鸣器能否正常发出响声以及在发生火灾时喷淋装置(用LED灯模拟)是否能正常开启。4.3功能测试本小节是基于STM32养殖场环境监测系统的功能测试,其主要内容包括硬件测试和软件测试。4.3.1硬件测试通电测试是电子制造和维修领域中一个关键的步骤。通电测试的核心目的在于确认各个传感器模块以及整个系统是否按照设计正常工作以及在接入电源之后的功能性与安全性。通电测试可以帮助早期发现制造缺陷或组装错误,还可以确保设备的安全性。总的来说,通电测试是确保电子设备安全、可靠和符合标准的重要环节,对于保障产品质量和用户安全至关重要,本系统的硬件通电测试结果如表4.1所示。表4.1硬件通电测试结果序号硬件测试情况1STM32F103C8T6单片机成功通电,正常运行2温湿度传感器成功通电,正常运行3有害气体传感器成功通电,正常运行4火焰传感器成功通电,正常运行5蜂鸣器成功通电,正常运行6OLED显示屏成功通电,正常运行7WiFi模块成功通电,正常运行测试完成后将下载器与电脑连接,仔细检查接口是否牢固,然后观察下载器的指示灯和STM32F103C8T6单片机是否通电成功,若通电成功,则下载器和单片机上的指示灯亮起,如图4.1所示。图4.1通电测试4.3.2软件测试①代码测试在KeilMDK5里面运行代码,测试代码是否存在报错情况,若没有报错则把代码通过下载器下载到STM32单片机里,如图4.2所示。图4.2代码测试②WiFi模块当电源连接成功后,打开手机的WiFi设置界面,在界面中,仔细浏览可用的WiFi网络列表,搜索WiFi模块对应的网络名称,找到后点击该网络名称进行连接,在输入密码后,手机将尝试与WiFi模块建立连接,连接成功后手机上将会显示“已连接”,如图4.3所示。图4.3WiFi连接当手机成功连接到WiFi模块后,我们将会有20秒的时间打开手机APP,打开手机APP后,它会自动检测到已连接的WiFi模块,并开始无线连接,如图4.4所示。如果未能在20秒以内成功连接,则需要重新开始连接流程。图4.4连接等待时间③有害气体传感器有害气体传感器通过检测气体与其本身的敏感材料相互作用时的电阻变化,来判断空气中是否存在有害气体,然后将实时监测到的有害气体浓度传送给微控制器。本次测试测量了当前环境中的二氧化碳浓度,然后把二氧化碳浓度显示在OLED显示屏上,当浓度超过设定的阈值时,蜂鸣器发出响声、OLED显示屏上将显示>GasHigh,测试结果如图4.5所示。图4.5有害气体测试有害气体浓度通过WiFi模块实时将数据传输到手机APP上,我们可以在手机APP上查看有害气体浓度的变化,当浓度超过设定的阈值时,蜂鸣器发出响声,同时我们可以在手机APP的报警状态那一栏上看到有报警,如图4.6所示。图4.6手机APP上显示气体浓度的变化④温湿度传感器温湿度传感器将实时监测到的温度传送到微控制器上,并将采集到的数据显示在OLED显示屏上,当温度超过设定的阈值时,蜂鸣器将发出响声,OLED显示屏上将显示>TempHigh,温度测试如图4.7所示。图4.7温度测试温度通过WiFi模块将数据传输到手机APP上,我们可以在手机APP上查看温度的变化,当温度异常时,蜂鸣器发出响声,同时我们可以在手机APP的报警状态那一栏上看到有报警,如图4.8所示。图4.8手机APP上显示温度的变化温湿度传感器实时将监测到的湿度传送到微控制器上,并将实时采集到的数据显示在OLED显示屏上,当湿度超过设定的阈值时,蜂鸣器将发出响声,OLED显示屏上将显示>HumiHigh,湿度测试如图4.9所示。图4.9温度测试湿度通过WiFi模块实时将数据传输到手机APP上,我们可以在手机APP上查看湿度的变化,当湿度超过设定的阈值时,蜂鸣器发出响声,同时我们可以在手机APP的报警状态那一栏上看到有报警,如图4.10所示。图4.10手机APP上显示湿度的变化⑤火焰传感器火焰传感器将实时监测当前环境中是否存在火灾情况,如果出现火灾情况蜂鸣器将立即发出响声并且喷淋装置(用LED灯模拟)将自动打开,OLED显示屏上显示>FireAlarm,测试结果如图4.11所示。图4.11火焰测试火灾是否存在将通过WiFi模块实时将数据传输到手机APP上,当发生火灾时,蜂鸣器发出响声,同时我们可以在手机APP的喷淋状态那一栏上看见正在喷淋,火灾报警和报警状态那一栏上看到有报警,如图4.12所示。图4.12手机APP上的变化⑥喷淋装置(用LED灯模拟)在检测到火灾时,喷淋装置将会自动开始喷水,以便控制或扑灭火势。本系统的喷淋装置开关可以在手机APP上手动操作,允许养殖人员在必要时手动激活或关闭喷淋装置,手动激活测试结果如图4.13所示。图4.13LED灯手动打开状态测试手动激活后,测试关闭喷淋装置,测试结果如图4.14所示。图4.14LED灯手动关闭状态⑦蜂鸣器在检测到温湿度、有害气体浓度以及火灾异常时,蜂鸣器将自动发出响声,本系统蜂鸣器的开与关可以在手机APP上手动操作,这便于养殖人员在蜂鸣器出现误报或者其它情况时可以更好的控制蜂鸣器,测试结果如图4.15所示。图4.15蜂鸣器手动打开状态测试手动打开后,测试手动关闭,测试结果如图4.16所示。图4.16蜂鸣器手动关闭状态⑧传感器实时将监测到的数据传送到微控制器上,如果两项数据同时发生异常情况,例如二氧化碳浓度和湿度同时异常,蜂鸣器将会立即发出响声,OLED显示屏上将显示G&HHigh,测试结果如图4.17所示。图4.17二氧化碳浓度和湿度过高二氧化碳浓度和湿度将通过WiFi模块实时将数据传输到手机APP上,当浓度和湿度异常时,蜂鸣器发出响声,同时我们可以在手机APP的报警状态那一栏上看到有报警,如图4.18所示。图4.18手机APP上显示的变化⑨如果三项数据同时发生异常情况,传感器实时将监测到的湿度传送到微控制器上,例如温度、湿度和二氧化碳浓度同时异常,蜂鸣器将会立即发出响声,OLED显示屏上将显示G&H&THigh,测试结果如图4.19所示。图4.19有害气体浓度和温湿度过高二氧化碳浓度和温湿度将通过WiFi模块将数据传输到手机APP上,当浓度和温湿度异常时,蜂鸣器发出响声,同时我们可以在手机APP的报警状态那一栏上看到有报警,如图4.20所示。图4.20手机APP上显示的变化4.4测试心得以下是我遇到的一些问题及其解决办法:①手机APP和WiFi模块可以通信,然后没法控制单片机的灯,最后检查来检查去发现是单片机串口接收代码有问题,模块接收到数据后会发送\r\n+IPD,0,数据长度,数据内容\r\n,而原来的串口接收以\r\n为结束,导致这完整的一帧数据被截断只识别到前面的\r\n,认为是空数据,所以一直没法控制,后面改成串口空闲中断接收就可以了。②温湿度老是读取错误,这个是连接问题,最后决定把温湿度牢牢焊接在板子上。③客户端退出或无客户端连接时单片机程序卡顿,最后发现是单片机没判断客户端是否连接,一直无脑发送,导致发送错误,卡超时了。后面改成空闲中断后,在大循环里加上判断客户端在线掉线的代码,然后客户端掉线或未连接时不发送数据就不卡顿了。④蜂鸣器驱动不起来,声音很弱。询问店家发现这个是无源蜂鸣器,需要用PWM驱动,经过一番查找资料终于驱动起来了。⑤用调试助手可以和WiFi模块通信,但是自己的APP发送,模块收到一堆无意义字符,经检查发现,是发送前把字符串给编码了,Python发送前需要调用字符串的encode方法转换成字节数组发送,后来发现,Kotlin里encode方法只会返回对象引用,所以收到的是一堆看起来无意义的对象引用字符串,后面一番查找资料和调试改成Kotlin方式,用"ledon".toByteArray()就可以了。5总结与展望5.1总结基于STM32养殖场环境监测系统的设计与实现是一个综合性的工程,涉及到硬件设计、传感器应用以及数据处理与展示等多个方面,本系统的宗旨是为了帮助养殖场的管理者实时监测养殖环境中的关键参数,提高养殖效率。在本文中,第一章介绍了研究目的及意义,并且分析了国内外的研究现状,第二章介绍了技术需求和非技术需求、系统框图、系统功能以及所用到的技术,第三章介绍了主芯片模块、硬件设计、主程序设计、手机APP设计以及系统流程图,第四章对整个系统进行了测试。养殖场环境监测系统的设计首先需要明确监测的参数,本系统监测的参数包含温湿度、有害气体浓度以及是否发生火灾,基于这些参数,选择了相应的传感器模块,并将这些传感器与STM32微控制器进行连接。同时,为了方便用户查看数据,用户可以在OLED显示屏和手机APP上实时监测数据,若监测到的温湿度数据、有害气体数据异常蜂鸣器将会发出响声,发生火灾时蜂鸣器和喷淋装置(喷淋装置用LED灯模拟)将会同时响应。在硬件设计方面,我决定使用STM32F103C8T6微控制器作为系统的主控制单元,其稳定性和性能都能够满足系统的要求。同时,我们选择了合适的温湿度、有害气体和火焰监测传感器模块,并将它们连接到STM32F103C8T6微控制器上,以实现实时数据采集。在软件设计方面,采用了C语言编程,利用STM32的开发环境进行开发,实现了传感器数据的实时采集、数据的实时显示以及在采集到的数据发生异常时蜂鸣器将发出响声。在系统实现过程中,也遇到了各种各样的挑战和问题,但是最终克服了这些问题,并成功实现了养殖场环境监测系统,该系统能够实时监测养殖周围环境中的温湿度、有害气体浓度以及火灾情况,一旦出现数据异常情况蜂鸣器将立即发出响声,让养殖人员采取行动,确保养殖场环境的稳定和安全。5.2展望随着社会经济的不断发展,基于STM32养殖场环境监测系统未来也将不断发展,变得更加智能、便捷,并且将不断引入新的技术来提升系统的性能和功能,以满足养殖场日益增长的需求。以下是几点展望:①扩展功能:结合先进的传感器技术,可以更详细地监测动物健康和行为模式,进一步提高养殖的质量和效率。②大数据和分析:通过分析历史数据和实时数据,可以预测未来的环境变化,及时做出调整,甚至在问题发生前进行预防。③可持续发展与环保:未来的环境监测系

温馨提示

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

评论

0/150

提交评论