基于STM32单片机的植被虫害监测反馈系统设计_第1页
基于STM32单片机的植被虫害监测反馈系统设计_第2页
基于STM32单片机的植被虫害监测反馈系统设计_第3页
基于STM32单片机的植被虫害监测反馈系统设计_第4页
基于STM32单片机的植被虫害监测反馈系统设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

基于STM32单片机的植被虫害监测反馈系统设计摘要农,天下之大业也。在农业生产管理中,病虫害是一个难题,随着智慧农业的发展,以物联网、大数据为核心的虫害测报系统应运而生,颠覆了传统农业,作为智慧农业中不可或缺的重要部分,物联网农业病虫害监测系统发挥着至关重要的作用。本次主要设计一种基于物联网的植被虫害检测反馈系统。基于STM32单片机通过光敏模块对植被虫害进行监测并在Android平台上利用C语言设计。采用手机端作为上位机系统可实时显示植被虫害情况,并通过温湿度传感器进行温湿度监控以对植被环境进行分析,当系统监测到虫类生物将状况通过WIFI通信的方式将警告信息发送至手机端使用户及时根据情况对虫害进行处理。有效的完成了对于虫害监测的处理。关键词:STM32单片机;虫害检测;WIFI通信;物联网技术

目录TOC\o"1-3"\u1绪论 11.1研究目的及意义 11.2国内外研究现状 11.3主要研究内容 32系统总体结构 42.1设计方案 42.2功能需求分析 42.2.1技术路线 42.2.2预期结果 42.3总体方案设计 52.4单片机型号选择 62.5硬件选择 62.5.1温湿度传感器 62.5.2光敏电阻 62.5.3显示模块 62.5.4WIFI模块 73系统的硬件部分设计 83.1系统总体设计 83.2系统的主要功能模块设计 93.2.1温湿度采集模块设计 93.2.2光照强度采集模块设计 113.2.3显示模块设计 123.2.4WIFI模块设计 133.3本章小结 144系统的软件设计 154.1系统总体流程图 154.2上位机界面设计 164.3上位机软件的设计 174.4本章小结 195系统测试 205.1系统实物图 205.2测试目的 205.3测试原理 205.4显示功能测试 215.5温湿度监测功能测试 215.6报警功能测试 225.7上位机测试 246总结与展望 256.1总结 256.2展望 25参考文献 26致谢 28附录 29附录A源代码 29附录B相关电路图 36 保定理工学院本科毕业设计1绪论1.1研究目的及意义农,天下之大业也。在农业生产管理中,病虫害是一个很重要的课题,农业病虫害不仅会导致农作物产量的降低,还会对社会造成不可估量的经济损失,要是想保证农作物的产量,关键就是要好做好病虫害监测和防治的工作。随着智慧农业的发展,以物联网、大数据为核心的虫害测报系统也应运而生,颠覆了传统的农业,成为了智慧农业中不可或缺的重要部分,其中物联网农业病虫害监测系统在这方面发挥着至关重要的作用。因此本课题是设计一种基于STM32单片机的植被虫害检测反馈系统,对植被虫害进行远程监控减少农业生产的损失。1.2国内外研究现状在2022年,国内的研究人周鑫等人在《基于Sentinel-2AMSI特征的毛竹林刚竹毒蛾危害检测》中为了快速、准确地检测毛竹林刚竹毒蛾(PantanaphyllostachysaeChao)危害,基于Sentinel-2AMSI数据分析不同刚竹毒蛾危害等级下毛竹林像元光谱的变化,从叶损量、绿度、含水率等多个维度选择对刚竹毒蛾危害具有响应能力的22个Sentinel-2AMSI光谱衍生指标;[1]经单因素方差分析(ANOVA)以及递归特征消除法(Recursivefeatureelimination,RFE)优选后,得到可用于刚竹毒蛾危害识别的10个遥感特征,包括LAI、RVI、NDMVI、EVI、NDVI705、NDVI783、RegVI1、RegVI2、GVMI和NDWI;将上述指标作为自变量,虫害等级作为因变量,建立基于XGBoost模型的刚竹毒蛾危害检测模型。研究发现,Sentinel-2AMSI数据波段6、7、8、8a对刚竹毒蛾危害具有较强的响应能力;红边与近红外波段参与构建的指数有效反映了竹林的受害情况;XGBoost模型对刚竹毒蛾危害识别的总精度为83.70%,对不同刚竹毒蛾危害等级的识别精度依次为94.72%、72.06%、79.77%、92.41%。因此,利用ANOVA-RFE筛选Sentinel-2AMSI光谱特征建立的XGBoost虫害检测模型,具有较高的识别精度,可为毛竹林刚竹毒蛾危害遥感监测提供技术支持。[2]在同年,刘立波等人的团队在《基于注意力和视觉语义推理的枸杞虫害检索》中针对传统作物虫害检索模态单一的问题,将注意力与视觉语义推理相结合,对常见的17种枸杞虫害进行图文跨模态检索研究。首先利用FasterR-CNN+ResNet101实现注意力机制来提取枸杞虫害图像局部细粒度信息;接着,引入视觉语义推理,建立图像区域连接并采用图卷积网络(GCN)进行区域关系推理来增强区域表示;[3]然后,进一步进行全局语义推理,选择具有判别性的特征,过滤掉不重要的内容,以捕获更多的关键语义信息;最后通过模态交互深入挖掘枸杞虫害图像和文本不同模态间的语义关联。在自建的枸杞虫害数据集上,采用平均准确率均值(MAP)作为评价指标对所提方法进行对比实验和消融实验。实验结果表明,图检文和文检图的平均MAP值达到了0.522,与8种主流方法相比提升了0.048~0.244,具有更好的检索效果。在2019年AhmetBayram的团队在《Dcis-Jasmonetreatmentsaffectmultiplesuckinginsectpestsandassociatedpredatorsincotton》天然植物防御诱导子的外源诱导是一种替代的害虫防治方法。这样的部署不仅提供了对食草动物的抵抗力,也吸引了它们的天敌。[21]2012年和2013年在大田条件下,研究了不同剂量的植物防御激发子cis-jasmone(CJ)(25、50、100克/公顷处理的对照)对共现吸浆棉、陆地棉GossypiumhirsutumLinnaeus、不同饲养行会害虫(烟粉虱、棉蚜、埃马斯卡蚜虫)及其捕食者(中间蓟马,白蛉,七星瓢虫)的影响。CJ处理,与不同植物生长阶段一致,每个生长季进行。在CJ喷施的棉株上,有翅蚜的丰度低于未处理的对照。同样,与未处理对照植株相比,无论试验剂量如何,处理棉株上烟粉虱的总体丰度均较低。在最低CJ剂量(25g/ha)处理的植株上,蝉蜕丰度最低。CJ处理对捕食性蓟马A.intermedius的引诱效果明显;在100g/haCJ处理的植株中,其丰度最高。2012年,在100g/hCJ处理的植物上检测到了最高数量的C.carnea,而2013年没有这种剂量特异性的吸引。CJ处理对七星瓢虫和扁桃蚜丰度无显著影响。使用的不同CJ剂量对棉株和棉花产量均无药害作用。现就CJ在棉花病虫害治理中可能的部署进行讨论。在同R.V.Beldhadi的研究团队在《InfluenceofbiochemicalparametersintheplantstreatedwithPGRsonsuckinginsectpestspopulationinBtcotton》他们的试验在温室和田间条件下研究了生长调节剂、茉莉酸和水杨酸对Bt棉棉叶飞虱棉叶蝉bigutulla(Ishida)、棉蚜瓜蚜(Glover)和棉蓟马Thripstabaci(林德曼)种群的影响。[20]结果表明,在温室和田间条件下,用JA和SA溶液预处理的植物中这些害虫的种群数量减少,表明这些生长调节剂对这些刺吸式害虫种群有负面影响。此外,相关性研究表明,叶蝉、蚜虫和蓟马的种群数量与处理植物叶片中的总糖、酚类和单宁含量呈负相关,但害虫种群数量与叶片中的还原糖呈正相关。

1.3主要研究内容本次主要设计了一种机与STM32单片机的植被虫害监测反馈系统,主要是分为了两个部分:一是利用昆虫本身的特征进行监测;二是将警报信息发送至上位机中。1.对昆虫本身的特征进行监测首先制作一片涂抹了有色病虫诱剂的发光源,之后通过光敏电阻对上面的虫害覆盖情况进行监测,当光强超过了使用者事先预定的阈值时就代表存在足够量的害虫,需要进行治理。而没有超过预定的光强阈值就代表不存在足够量的害虫,尚不需要治理。2.对将警报信息发送至上位机当系统监测到足够量的害虫后,需要向使用者发出警报进行提示。首先使用了OLED显示屏实时显示各个传感器监测到的数据,这些数据将用于对虫害的情况进行分析。本设计采用了手机端作为系统的上位机,当触发虫害的警报后就会通过WIFI通信的方式将警报信息发送到手机端进行报警。同时各个传感器实时监测到的数据也可以实时的在手机端进行查看。实现的功能如下:1.系统实时显示传感器采集到的信息;2.系统可通过昆虫本身特征识别虫类生物情况;3.系统检测到存在虫害,将状况发送到手机端,发送手机端警告信号并提示。2系统总体结构2.1设计方案文献研究法。通过查阅文献来获得研究资料,对系统设计中所涉及到的相关内容进行研究,初步构想系统要实现的功能及其运用的技术并搜集相关资料,作为系统设计的素材。功能分析法。功能分析法是社会科学用来分析社会现象的一种方法。本系统通过功能分析法,对软件的各项功能进行具体分析,从而明确开发目标。定性分析法。通过对文献的研究,运用归纳和演绎、分析与综合以及抽象与概括等方法,深入了解软件和硬件开发的相关技术,从而熟悉系统中各个功能模块之间的关系,掌握系统的工作原理及其本质,确定开发流程。经验总结法。希望通过已有的每一块功能的结合进行总结,设计出一套优良的系统,并规范的编写程序。2.2功能需求分析2.2.1技术路线1.硬件部分需要单片机STM32F103c8t6、光敏模块、WIFI通信模块、OLED屏幕;2.软件平台程序用keil5;3.画原理图用AD;4.编程语言用C语言;2.2.2预期结果作品展示,完成一个基于物联网的植被虫害检测反馈系统,并且该设计能实现的功能如下:本次主要设计了一种机与STM32单片机的植被虫害监测反馈系统,主要是分为了两个部分:一是利用昆虫本身的特征进行监测;二是将警报信息发送至上位机中。1.对昆虫本身的特征进行监测首先制作一片涂抹了有色病虫诱剂的发光源,之后通过光敏电阻对上面的虫害覆盖情况进行监测,当光强超过了使用者事先预定的阈值时就代表存在足够量的害虫,需要进行治理。而没有超过预定的光强阈值就代表不存在足够量的害虫,尚不需要治理。2.对将警报信息发送至上位机当系统监测到足够量的害虫后,需要向使用者发出警报进行提示。首先使用了OLED显示屏实时显示各个传感器监测到的数据,这些数据将用于对虫害的情况进行分析。本设计采用了手机端作为系统的上位机,当触发虫害的警报后就会通过WIFI通信的方式将警报信息发送到手机端进行报警。同时各个传感器实时监测到的数据也可以实时的在手机端进行查看。实现的功能如下:1.系统实时显示传感器采集到的信息;2.系统可通过昆虫本身特征识别虫类生物情况;3.系统检测到存在虫害,将状况发送到手机端,发送手机端警告信号并提示。系统结构图如下:WIFIWIFI单片机上位机温湿度传感器光敏元件OLED图1.3系统结构框图2.3总体方案设计1.理论知识准备阶段,理解设计课题,认真研究课题所涉及到的内容,能够较好的掌握有关题目的知识;2.确定系统各个模块,理清各个模块之间的关系,收集相关得到软硬件资料;3.规划课题,确定系统组成结构,勾画出大体系统框架并在结构框架的基础上提出原理框图;4.利用软件完成硬件电路部分设计并画出各部分电路图,将系统部件通过接口电路集合在一起,并画出电路图;5.根据系统控制过程完成软件设计的部分,绘制出主流程图;6.进行模拟仿真,检查系统是否能够按照要求实现控制功能,整理论文。2.4单片机型号选择主控制芯片选择STM32F103C8T6,STM32F103C8T6单片机与普通51单片机相比有以下几个特点:1.同样晶振的情况下,速度是普通51单片机的8~12倍;2.有8路10位AD3、多了两个定时器,带PWM功能、有SPI接口。STM32系列的单片机是一款高性能,功能强大的系列单片机。该系列单片机也常常被用于要求低成本、高性能和低功耗的嵌入式应用程序,其在功耗和集成方面想比其他单片机也展现出良好的性能。而由于其便捷的工具和简单的结构并且结合了强大的功能性,在业界相当受欢迎。2.5硬件选择2.5.1温湿度传感器温湿度采集模块负责采集周围环境中的温湿度数据,基于价格成本、精度高低、使用方便等等方面,最终决定采用DHT11传感器。[5]其具有响应快、抗干扰能力强等优点。DHT11传感器通过测量介质中的温度和湿度,将其转换为电信号输出。2.5.2光敏电阻光照采集模块使用型号为LXD5516的光敏电阻,光敏采用半导体材料制作,利用内光电效应工作的光电元件。它在光线的作用下其阻值往往变小,这种现象称为光导效应,因此,光敏电阻又称光导管。2.5.3显示模块0.96寸4针OLED屏模块是一种显示屏模块,它包括一个0.96英寸的OLED显示屏和4个引脚。这种OLED屏幕模块通常用于嵌入式系统和小型电子设备中,可以显示文本、图像和其他类型的信息。由于其小尺寸和低功耗,它们也常用于智能手表、健康追踪器和其他便携式设备之中。此类模块通常会使用SPI或I2C接口进行通信,并且支持多种分辨率和颜色模式。2.5.4WIFI模块ESP8266是一个完整且自成体系的WIFI网络解决方案,能够搭载软件应用,或通过另一个应用处理器卸载所有WIFI网络功能。ESP8266在搭载应用并作为设备中唯一的应用处理器时,能够直接从外接闪存中启动。内置的高速缓冲存储器有利于提高系统性能,并减少内存需求。另外一种情况是,无线上网接人承担WIFI适配器的任务时,可以将其添加到任何基于微控制器的设计中,连接简单易行,只需通过SPVSDIO接口或中央处理器AHB桥接口即可。ESP8266强大的片上处理和存储能力,使其可通过GPIO口集成传感器及其他应用的特定设备,实现了最低前期的开发和运行中最少地古用系统资源。ESP8266高度片内集成,包括天线开关balun电源管理转换器,因此仅需极少的外部电路,且包括前端模块在内的整个解决方案在设计时将所PCB空间降到最低。装有ESP8266的系统表现出来的领先特征有:节能VoIP在睡眠/唤醒模式之问的快速切换、配合低功率操作的自适应无线电偏置、前端信号的处理功能、故障排除和无线电系统共存特性为消除蜂窝蓝牙/DDR/LVDS/LCD干扰。ESP8266的主要特征有:1.802.11b/g/n2.Wi-FiDirect(P2P)、soft-AP3.内置TCP/IP协议栈4.内置TR开关、balun、LNA、功率放大器和匹配网络5.内置PLL、稳压器和电源管理组件6.802.11b模式下+19.5dBm的输出功率7.支持天线分集8.断电泄露电流小于10uA9.内置低功率32位CPU:可以兼作应用处理器10.SDIO2.0、SPI、UART11.STBC、1x1MIMO、2x1MIMO12.A-MPDU、A-MSDU的聚合和0.4us的保护间隔13.2ms之内唤醒、连接并传递数据包14.待机状态消耗功率小于1.0mw(DTIM3)3系统的硬件部分设计3.1系统总体设计本次主要设计了一种机与STM32单片机的植被虫害监测反馈系统,主要是分为了两个部分:一是利用昆虫本身的特征进行监测;二是将警报信息发送至上位机中。1.对昆虫本身的特征进行监测首先制作一片涂抹了有色病虫诱剂的发光源,之后通过光敏电阻对上面的虫害覆盖情况进行监测,当光强超过了使用者事先预定的阈值时就代表存在足够量的害虫,需要进行治理。而没有超过预定的光强阈值就代表不存在足够量的害虫,尚不需要治理。2.对将警报信息发送至上位机当系统监测到足够量的害虫后,需要向使用者发出警报进行提示。首先使用了OLED显示屏实时显示各个传感器监测到的数据,这些数据将用于对虫害的情况进行分析。本设计采用了手机端作为系统的上位机,当触发虫害的警报后就会通过WIFI通信的方式将警报信息发送到手机端进行报警。[6]同时各个传感器实时监测到的数据也可以实时的在手机端进行查看。实现的功能如下:1.系统实时显示传感器采集到的信息;2.系统可通过昆虫本身特征识别虫类生物情况;3.系统检测到存在虫害,将状况发送到手机端,发送手机端警告信号并提示。

总体架构图如下:发出警报信息显示温湿度采集模块光敏电阻WiFi模块显示模块阈值修改数据接收发出警报信息显示温湿度采集模块光敏电阻WiFi模块显示模块阈值修改数据接收图3.1.1温湿度采集模块流程图3.2系统的主要功能模块设计3.2.1温湿度采集模块设计本设计使用的通信方式是在两端采用单总线串行输出数据的方法。在硬件部分主要是将DHT11传感器引脚与选择的单片机引脚进行连接。将DHT11传感器的VCC引脚连接到单片机的3.3v电源引脚,GND引脚连接到单片机的地引脚,DATA引脚连接到单片机任意的一个数字IO口,这样就完成了硬件之间的连接。而通过数据引脚对温湿度传感器的操作就可以得到传感器监测到的数据。[8]获得的四十位数据为别为湿度高八位、湿度第八位、温度高八位、温度低八位、校验位,之后分别对应湿度和温度的二进制数据通过主控芯片转换为十进制后就获得了当前的温湿度情况。本设计使用型号为STM32F103C8T6的STM32单片机作为主控芯片,通过软件设计和硬件设计,成功地实现了基于DHT11传感器的温湿度传感器。通过串口传输,我们就可以实时地监测环境中的温度和湿度变化。而根据后续测试结果表明,该传感器具有较高的精度和稳定性,可以满足实际应用需求。主控芯片获取温湿度代码如下:u8DHT11_Read_Data(u8*temp,u8*humi){ u8buf[5]; u8i; DHT11_Rst(); if(DHT11_Check()==0) { for(i=0;i<5;i++)//读取40位数据 { buf[i]=DHT11_Read_Byte(); } if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]) { *humi=buf[0]; *temp=buf[2]; } }elsereturn1; return0; }开始温湿度采集模块流程图如图3-2-1.开始单片机初始化单片机初始化 否初始化成功初始化成功 是温湿度数据采集温湿度数据采集结束结束图3.2.1温湿度采集模块流程图3.2.2光照强度采集模块设计光照强度采集模块是本设计利用昆虫虫害本身的特征进行监测的重要部分,主要负责进行对周围光强的采集和将采集的数据发送到主控芯片中。当采集到的光强大于上位机设定好的阈值时就对用户发出警告。在硬件部分中首先将光敏电阻的OUT引脚连接至主控芯片的PA0引脚,其余两根引脚分别连接主控芯片的3.3v电源引脚和GND引脚。这样就可以实现将当前光照强度发送至主控芯片的功能和利用主控芯片对光照强度进行分析监测当前虫害情况的功能。主控芯片会获得从光照强度传感器传递代表光照强度的八位二进制数据,将其转换为十进制数,就得到了当前的光照强度。开始开始单片机初始化单片机初始化初始化成功初始化成功采集光照强度采集光照强度光强超过阈值 是光强超过阈值报警打开是报警打开 否报警关闭报警关闭结束结束图3.2.2光照强度采集模块流程图主控芯片获取光照数据如下:While(1){ HAL_Delay(100); HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc,100); adc=(uint16_t)HAL_ADC_GetValue(&hadc);HAC_ADCC_Stop(&hadc);While(CDC_Transmit_FS(buf,strlen(buf)));}3.2.3显示模块设计本模块采用I2c与主控芯片进行连接,该模块有4个引脚,分别为VCC、GND、SCL和SDA。VCC是电源引脚,首先将其连接到主控芯片的3.3v引脚用于提供模块的电源。GND是地引脚,将其连接到主控芯片的负极电源上。SCL是时钟引脚,连接到时PB3引脚。SDA是数据引脚,用于传输数据。[10]需要连接到PB4引脚。这样便完成了显示模块的设计。显示模块会实时接受着主控芯片中各个传感器的数据并将其显示在屏幕上。根据后续测试可以正常接受数据并显示监测到各项数据。开始开始初始化初始化初始化成功初始化成功写控制字写控制字写数据写数据显示显示结束结束图3.2.3显示模块流程图显示模块代码如下:voidOLED_Clear(void){ u8i,n; for(i=0;i<8;i++) { OLED_WR_Byte(0xb0+i,OLED_CMD); OLED_WR_Byte(0x00,OLED_CMD); OLED_WR_Byte(0x10,OLED_CMD); for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA); }}voidOLED_On(void){ u8i,n; for(i=0;i<8;i++) { OLED_WR_Byte(0xb0+i,OLED_CMD); OLED_WR_Byte(0x00,OLED_CMD); OLED_WR_Byte(0x10,OLED_CMD); for(n=0;n<128;n++)OLED_WR_Byte(1,OLED_DATA); }}3.2.4WIFI模块设计这个模块负责下位机和上位机的连接。对于周围环境的数据采集,通过WIFI模块上传发送到上位机。本系统网络传输需求采用Esp8266WIFI模块来完成。在硬件方面首先将VCC和GND引脚分别连接3V3和GND引脚,之后将接收引脚RX连接PA2,输出引脚TX连接PA3,RST引脚连接至PA1,EN连接3V3电源。这样就可以做到将收集到的周围环境数据发送至上位机。在这个过程中首先会将创建套接字,随后将数据打包为UDP数据报发送至制定IP的端口。完成将单片机发送的警报信息传递至上位机,在上位机显示数据和在出现虫害时对用户进行提醒。WIFI模块部分代码如下:USART_DeInit(USART2);USART_InitStructure.USART_BaudRate=bound;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_Init(USART2,&USART_InitStructure);开始开始初始化初始化初始化成功 否初始化成功WIFI是否连接 WIFI是否连接向上位机发送数据向上位机发送数据结束结束图3.2.4WIFI模块流程图3.3本章小结本章详细描写了下位机各个模块的硬件设计和在整体中的作用。利用光敏电阻的变化,通过主控芯片的监控完成了下位机中对于病虫害的监测。温湿度传感器完对于周围环境的数据的采集工作。以及通信使用的WIFI模块。4系统的软件设计4.1系统总体流程图当单片机初始化成功后,会采集温湿度传感器和光敏电阻的数据并通过主控芯片对光照强度进行判断,并将这些数据和警告信息发送到上位机上。当光照强度高于阈值的时,代表在当前环境下存在一定数量的害虫,系统则会自动开启报警模式;当照强度低于阈值的时,代表当前环境下没有害虫,植被较为安全。系统会保持解除报警模式状态。开始开始单片机初始化单片机初始化初始化成功 否初始化成功 是采集温湿度采集光照强度 采集温湿度采集光照强度数据显示数据显示光强超过阈值光强超过阈值报警打开报警打开报警关闭报警关闭结束结束图4.1系统总体流程图4.2上位机界面设计上位机会接收WIFI模块传输的各项数据,当单片机初始化成功后,用户就点击安装在上位机上的app进入启动页面。在安卓端的页面开发主要依靠AndroidXML文件进行,数据页面采用线性布局。[11]单击开启服务器后通过UDP协议进行通信。用户可以根据情况自行设定光照阈值,也可以看到下位机监测到的温度、湿度、光照强度、虫害警报等数据。将数据显示至上位机屏幕代码如下:@SuppressLint("HandlerLeak")privateclassMyHandleextendsHandler{privatefinalWeakReference<MainActivity>mActivity;publicMyHandle(MainActivityactivity){mActivity=newWeakReference<MainActivity>(activity);}@OverridepublicvoidhandleMessage(Messagemsg){MainActivityactivity=mActivity.get();if(activity!=null){switch(msg.what){case1:result=msg.obj.toString();receive.append(result);Log.i("UI","接收到信息并显示(字符形式)");break;

}

}

}}

上位机监测页面如图4.2.1所示。上位机流程图如图4.2.2所示。图4.2.1上位机监测页面开始开始接口接受数据 接口接受数据显示数据信息显示数据信息结束结束图4.2.2上位机流程图4.3上位机软件的设计上位机软件的实现过程如下,使用XML文件进行上位机的页面设计,使用TextView来显示接受到的数据。在上位机通过java中的SocketAPI创造了一个接口,这个接口会对下位机的WIFI模块的端口进行监听。当接收到下位机传递的数据后就会在app上显示。[12]当用户需要对光强警报的阈值进行调整时,就可以在上位机软件中输入确定的阈值,这个值会通过接口发送至下位机并替代下位机中光强阈值的数值。获取WIFI服务代码如下:@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.bind(this);run1=true;handler.postDelayed(task,1000);WifiManagerwifiManager=(WifiManager)getSystemService(Context.WIFI_SEEVICE)if(!wifiManager.isWifiEnabled()){wifiManager.setWifiEnabled(true);}WifiInfowifiInfo=wifiManager.getConnectionInfo();intipAddress=wifiInfo.getIpAddress();ip=intToIp(ipAddress);Log.d(TAG,"onCreate:ip"+ip);}

APP模块设计流程图如图4.3.1所示。开始开始单片机初始化单片机初始化初始化成功 否初始化成功 是WIFI连接WIFI连接连接成功 否连接成功设定阈值 是设定阈值数据传输到下位机数据传输到下位机结束结束图4.3.1APP模块设计流程图4.4本章小结本章对该设计的上位机进行了探讨,根据所需的功能建立出了软件的整体框架,描写了上位机各个板块的构成。分别对界面设计、移动端服务程序、上位机与下位机交互服务程序进行了模块化设计,使得后续的修改能更加轻易。经过本章后,系统初步做到了目标要求。5系统测试5.1系统实物图系统实物如图所示。图5.1系统实物图5.2测试目的对于本设计的测试分为上位机和下位机的测试。其中下位机测试主要是为了确保各个部件及线路的稳定性,确保在应用的时候不会出现因硬件不稳定或线路老化出现问题。上位机测试主要是为了确保代码部分没有出现一些预料之外的问题,数据在传输中没有出现错误,仍可以显示正确数据。5.3测试原理测试用例需要包括欲测试的功能、应输入的数据和预期的输出结果。测试数据应该选用少量、高效的测试数据进行尽可能完备的测试;其目标是:设计一组发现某个错误或某类错误的测试数据,测试用例应覆盖方面:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常使用。具体过程如下:1.对各个模块实现的功能进行检测,确认是否能够完成。2.对各个传感器的精度进行检查,确定数据的准确性。3.检查上位机的数据与下位机的数据,避免因代码出现的数据错误。4.检查每个部件的线路连接是否存在短路问题。5.4显示功能测试当单片机初始化成功后,主控芯片就会采集各个传感器的数据并在显示屏上显示出来,屏幕显示的数据从上至下分别为:温度信息T、湿度信息H、光照强度M、当前的光照强度GZ、当前的报警状态GZW以及用户定义的光照强度报警阈值GZYZ。在这里检测显示模块是否能正常显示数据,传感器监测的数据是否正确,用户设定的阈值是否一致。显示屏如图5-3-1所示。图5.4.1显示屏实物图经测试,显示模块显示功能正常,显示数据无误。5.5温湿度监测功能测试 当单片机初始化成功后,会采集温湿度传感器的数据并发送至显示模块、WiFi模块。在这里检查温湿度传感器的线路连接是否存在短路问题,温湿度的监测值精度是否够高。温湿度传感器如图5-5-1所示。温湿度监测值如图5-5-2所示。温湿度监测值对比图如5-5-3所示。图5.5.1温湿度传感器实物图图5.5.2温湿度监测值图5.5.3温湿度对比图通过上图中的对比,可以确定该传感器具有足够的精度,可以满足实际中的应用需求。5.6报警功能测试报警功能是该设计最重要的部分,因此这部分的测试也相当重要。当单片机初始化成功后,主控芯片就会采集光敏电阻的数据,当发光源上的诱剂覆盖部分减少时就会使光照强度高于设定的阈值从而触发警报,使得GZW数值变为1,代表着触发了警报;而当光照强度低于阈值的时,代表周围没有足够量的害虫,GZW变为0,表示没有触发警报系统会保持解除报警模式状态。光敏电阻如图5-6-1所示。触发警报如图5-6-2所示。上位机手机端的警报如图5-6-3所示。图5.6.1光敏电阻实物图图5.6.2触发警报实物图经测试,报警功能未存在问题,上位机的数据显示正常。

5.7上位机测试 在对上位机的测试中主要是要检查上位机能否正常接收数据,接收的数据是否没有出现错误。以及设置光照阈值功能是否能够正常使用。上位机数据如图5.7所示。图5.7上位机数据

6总结与展望6.1总结系统软件的调试过程并不是一帆风顺,在调试过程中总是出現了一些错误。但在老师的辅导下,我总算发现了问题,并纠正了设计中的不合理的地方。设计方案中的问题和解决方法主要包含下面一些层面。1.在功率模块模拟仿真过程中,发现调试输出值一直达不上设计规定。查验了基本原理错误后,发现电路板焊接时出现了一些技术问题,于是重新进行焊接。2.应用仿真软件,发现存在错误代码。然后调整,发现在启用程序流程时,单片机没有正常复位,在程序流程中添加复位程序流程后才获得准确的結果。3.在模拟测试时,一直提醒端口号P0存有逻辑错误。尽管不危害效果的输出,但在具体印刷制版过程中确实会危害电源电路。之后通过调研发现,数据信息发送错误代码表明时,未能分辨忙碌情况。之后在制定中添加忙碌情况分辨后,系统软件工作中一切正常,数据信息口也没有提醒逻辑错误。6.2展望我国作为一个农业大国,随着智慧农业不断的落进和物联网飞速的发展,病虫害防治一定会愈发受到重视。本文采用了利用害虫本身的特征对虫害进行监测,因为存在成本和时间等一系列问题,本设计依然有很多可以进一步开发的地方。首先是本设计因时间的限制,缺少了在植被中进行的实验,在数据中可能存在一定的缺失。其次是对于周围环境监测的传感器数量比较少,可能对于周围环境数据的采集有所缺失,之后有机会可以对这两个方面进行完善补充。

参考文献[1]崔发开.物联网技术在农业病害虫监测方面的应用[J].农业工程技术,2022,42(18):28-29.DOI:10.16815/ki.11-5436/s.2022.18.007.[2]陈忠杰,温莉,郭其.粮食储藏虫害检测技术浅析[J].粮食加工,2021,46(06):74-76.[3]陶明,齐龙,郭子淳,黄家怿,李慎磊,李英.田间农作物病虫害检测技术研究进展与展望[J].现代农业装备,2021,42(03):1-5.[4]王林惠,兰玉彬,刘志壮,岳学军,邓述为,郭宜娟.便携式柑橘虫害实时检测系统的研制与试验[J].农业工程学报,2021,37(09):282-288.[5]黄旭影,许章华,王小平,杨旭,居为民,胡新宇,李凯,陈芸芝.刚竹毒蛾危害下的毛竹叶片光谱特征及虫害等级检测研究[J].光谱学与光谱分析,2021,41(04):1253-1259.[6]周博,代雨婷,李超,王俊.花龄期棉花虫害的电子鼻检测[J].农业工程学报,2020,36(21):194-200.[7]代雨婷,周博,王俊.电子鼻技术在棉花早期棉铃虫虫害检测中的应用[J].农业工程学报,2020,36(03):313-320.[8]许章华,黄旭影,林璐,王前锋,刘健,陈崇成,余坤勇,周华康,张华峰.基于Fisher判别分析与随机森林的马尾松毛虫害检测[J].光谱学与光谱分析,2018,38(09):2888-2896.[9]吴雅茹,赵家奇,胡祖庆.基于高光谱的设施黄瓜蚜虫虫害检测及其预测模型[J].陕西农业科学,2018,64(08):80-83.[10]李翠玲,姜凯,马伟,王秀,孟志军,赵学观,宋健.基于高光谱的番茄叶片斑潜蝇虫害检测[J].光谱学与光谱分析,2018,38(01):253-257.[11]万毅,蒋智鑫,张锐敏,杨建文.基于电子鼻的新疆温室大棚白粉虱虫害的算法分析与研究[J].电子世界,2019(07):86-87.[12]叶云,赵小娟,姜晟.基于深度学习的荔枝虫害识别技术的应用与实现[J].中国农业信息,2022(04):30-37.[13]张正辉.水稻田主要虫害远程监测识别装备研发[D].山东农业大学,2022(01).[14]赵楠.基于深度学习的害虫监测方法与系统研究[D].浙江大学,2022(02).[15]李虎,熊伟.基于多源信息融合的粮仓虫害监测系统设计[J].南方农机,2020(12):144-145.[16]曾勇,刘贝迪,曾永国,黄信.多杀霉素在广东地区平房仓虫害防治中的应用[J].粮食科技与经济,2022(06):95-97.[17]王晓梅,井慧玲.林业病虫害无公害防治技术[J].现代农业科技,2020(08):114.[18]常新.农林业病虫害及气象信息远程监测系统[D].北京工业大学,2020(06).[19]RibaniAnisa,TaurisanoValeria,UtzeriValerioJoe,FontanesiLuca.HoneyEnvironmentalDNACanBeUsedtoDetectandMonitorHoneyBeePests:DevelopmentofMethodsUsefultoIdentifyAethinatumidaandGalleriamellonellaInfestations[J].VeterinarySciences,2022,9(5).[20]MacDougallSamantha,BayansalFatih,AhmadiAli.EmergingMethodsofMonitoringVolatileOrganicCompoundsforDetectionofPlantPestsandDisease[J].Biosensors,2022,12(4).[21]AbbaspourGilandehYousef,AghabaraAbdollah,DavariMahdi,MajaJoeMari.FeasibilityofUsingComputerVisionandArtificialIntelligenceTechniquesinDetectionofSomeApplePestsandDiseases[J].AppliedSciences,2022,12(2).[22]MaittiAbhik,Chakravarty ,Debashish,BiswasKousik,HalderArpan.Developmentofamassmodelinestimatingweight-siseparticlesizedistributionusingdigitalimageprocessing[J].InternationalJournalofMiningScienceandTechnology,2017.27(03):435-443.[23]JihyukPark,SungsikYoon,Tea-HyunKwon,KyoungsooPark.Assessmentofspeckle-patternqualityindigitalimagecorrelationbasedongrayintensityandspecklemorphology[J].OpticsandLasersinEngineering,2017,91:62-72.[24]AgriculturalInternetofThingsandDecisionSupportforPrecisionSmartFarming[M].ElsevierInc.:2020-01-01.

附录附录A源代码#include"sys.h"#include"delay.h"#include"oled.h"#include"tim.h"#include"port.h"#include"app.h"#include"adc.h"#include"esp8266.h"#include"dht11.h"#include"usart.h" intmain(void){ delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级 system_Time_Init(9,7199);USART1_Config(115200); sys_gpio_init();adc_init();DHT11_Init(); OLED_Init(); //初始化OLED OLED_Clear();OLED_ShowString(0,0,"nihao",12); ESP8266_Init(115200);while(1) { app(); } }#include"dht11.h"#include"delay.h"u8temperature,humidity;//复位DHT11voidDHT11_Rst(void) { DHT11_IO_OUT(); //SETOUTPUT DHT11_DQ_OUT=0; //拉低DQ delay_ms(20); //拉低至少18ms DHT11_DQ_OUT=1; //DQ=1 delay_us(30); //主机拉高20~40us}u8DHT11_Check(void) { u8retry=0; DHT11_IO_IN();//SETINPUT while(DHT11_DQ_IN&&retry<100)//DHT11会拉低40~80us { retry++; delay_us(1); }; if(retry>=100)return1; elseretry=0;while(!DHT11_DQ_IN&&retry<100)//DHT11拉低后会再次拉高40~80us { retry++; delay_us(1); }; if(retry>=100)return1; return0;}u8DHT11_Read_Bit(void) { u8retry=0; while(DHT11_DQ_IN&&retry<100)//等待变为低电平 { retry++; delay_us(1); } retry=0; while(!DHT11_DQ_IN&&retry<100)//等待变高电平 { retry++; delay_us(1); } delay_us(40);//等待40us if(DHT11_DQ_IN)return1; elsereturn0; }u8DHT11_Read_Byte(void){ u8i,dat; dat=0; for(i=0;i<8;i++) { dat<<=1; dat|=DHT11_Read_Bit(); } returndat;}u8DHT11_Read_Data(u8*temp,u8*humi){ u8buf[5]; u8i; DHT11_Rst(); if(DHT11_Check()==0) { for(i=0;i<5;i++)//读取40位数据 { buf[i]=DHT11_Read_Byte(); } if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]) { *humi=buf[0]; *temp=buf[2]; } }elsereturn1; return0; }u8DHT11_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //使能PG端口时钟 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //PA4端口配置 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); //初始化IO口 GPIO_SetBits(GPIOB,GPIO_Pin_0); //PE11输出高 DHT11_Rst();//复位DHT11 returnDHT11_Check();//等待DHT11的回应}#ifdef OS_CRITICAL_METHOD //OS_CRITICAL_METHOD定义了,说明要支持UCOSII #definedelay_osrunning OSRunning //OS是否运行标记,0,不运行;1,在运行#definedelay_ostickspersec OS_TICKS_PER_SEC //OS时钟节拍,即每秒调度次数#definedelay_osintnesting OSIntNesting //中断嵌套级别,即中断嵌套次数#endif//支持UCOSIII#ifdef CPU_CFG_CRITICAL_METHOD //CPU_CFG_CRITICAL_METHOD定义了,说明要支持UCOSIII #definedelay_osrunning OSRunning //OS是否运行标记,0,不运行;1,在运行#definedelay_ostickspersec OSCfg_TickRate_Hz //OS时钟节拍,即每秒调度次数#definedelay_osintnesting OSIntNestingCtr //中断嵌套级别,即中断嵌套次数#endif//us级延时时,关闭任务调度(防止打断us级延迟)voiddelay_osschedlock(void){#ifdefCPU_CFG_CRITICAL_METHOD //使用UCOSIII OS_ERRerr; OSSchedLock(&err); //UCOSIII的方式,禁止调度,防止打断us延时#else //否则UCOSII OSSchedLock(); //UCOSII的方式,禁止调度,防止打断us延时#endif}//us级延时时,恢复任务调度voiddelay_osschedunlock(void){ #ifdefCPU_CFG_CRITICAL_METHOD //使用UCOSIII OS_ERRerr; OSSchedUnlock(&err); //UCOSIII的方式,恢复调度#else //否则UCOSII OSSchedUnlock(); //UCOSII的方式,恢复调度#endif}voiddelay_ostimedly(u32ticks){#ifdefCPU_CFG_CRITICAL_METHOD OS_ERRerr; OSTimeDly(ticks,OS_OPT_TIME_PERIODIC,&err); //UCOSIII延时采用周期模式#else OSTimeDly(ticks); //UCOSII延时#endif}//systick中断服务函数,使用ucos时用到voidSysTick_Handler(void){ if(delay_osrunning==1) //OS开始跑了,才执行正常的调度处理 { OSIntEnter(); //进入中断 OSTimeTick(); //调用ucos的时钟服务程序 OSIntExit(); //触发任务切换软中断 }}#endif voiddelay_init(){#ifSYSTEM_S

温馨提示

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

评论

0/150

提交评论