基于STM32平台的户外环境监测系统设计_第1页
基于STM32平台的户外环境监测系统设计_第2页
基于STM32平台的户外环境监测系统设计_第3页
基于STM32平台的户外环境监测系统设计_第4页
基于STM32平台的户外环境监测系统设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

第一章绪论1.1研究目的及意义随着电子技术的迅猛发展,环境监测的方法也不断改进,尤其是以计算机系统为基础的环境监测手段更加方便、快捷,广泛适用于农业温室控制和日常家庭生活等。随着社会的不断发展,人们对农产品的需求越来越高,传统能也生产方式已经远不能满足社会的需要,而随之诞生的现代农业技术愈来愈受到人们的青睐,温室大棚就是其中一种.我们知道,农作物的生长受到光照、温度、湿度和压强等多重因素的共同作用,而温室可以借助计算机系统模拟植物生长的气候条件,提供最佳的生长环境以避免因外界恶劣气候等不利因素的影响,进而提高农作物的产量.此外,室内空气质量对人们的日常生活也产生了重要影响,适宜的温湿度能给人舒适感,而有害气体的散发却严重损害人体健康。因此,如何控制室内温度、湿度、气压等影响空气质量的因素显得至关重要。而传感器技术的发展为我们解决这个问题找到了突破口,我们可以运用单片机配合传感器实时采集环境数据并进行处理实现自动控制。随着无线技术的不断发展,人们生活水平的不断提高,国内市场“物联网”领域多种多样,而环境问题显得尤为重要。无论是在舒适的环境下工作、娱乐,亦或是在农场、林场、花苑、生态植被等环境下试验、评估,大多数还是通过人工来监测环境各项参数,也有部分是通过智能化检测和控制。但实际应用并不理想,由于受到无线传输距离的限制,对于空气温湿度、气体浓度、土壤温湿度、光照等参数,大多数都是在较小的范围内进行测量,并且在数据采集时效性、稳定性上表现较差,无法通过便捷的操作来观测、调控各类敏感参数。1.2国内外研究现状1、国内外现状国外对于环境监测技术的研究较早,就温室控制而言,始于20世纪70年代.从组合仪表,采集、记录、控制待监测地信息到80年代末的分布式控制系统再到目前正在研发当中的基于计算机的数据采集的综合控制系统。历经四十多年的发展,环境监测测控制技术日新月异,研制自动化、微型化、无人化的智能监测控制系统成为各国追求的目标。在日本,凭借其先进的计算机技术,将各种植物生长发育不同阶段所需要的环境因素编写成计算机程序,对温室环境因素进行相应的调节,当某一因素发生变化时(如光照),在计算机的控制之下其他因素(如湿度、温度、CO2浓度等)随之作出适当的修正或调整,始终保持各个环境因素为最佳配合状态,另外,为实现播种、浇灌、喷药等作业的自动化,日本还研制了蔬菜塑料大棚。在荷兰,花卉生产技术非常先进,借助计算机系统对玻璃温室进行精确控制。由英国伦敦大学农学院发明的温室计算机遥控技术实现了远程监控和控制,可以监测和遥控50km以外温室的温度、湿度、光照和CO2浓度等影响作物生长的环境因素。在蔬菜、花卉等农作物的生长和发育阶段,美国和荷兰还利用差温管理技术对其进行控制,生产出了适合社会需求的产品。韩国在温室安装的自动控制装置可以控制温室的光照等环境因子,但其表现并不尽如人意,人们往往需要依据经验才能实现控制。在现代科技农业的发展过程中,以色列走在了世界的前列,它拥有一体化智能温室控制系统,配套监控系统软件平台及其他先进设备,使其有限的农业资源得到充分发挥。当前,节约能源、降低成本成为国外发展温室控制的重要目标,对设备的自动化提出更高要求,控制因子由调控单因子转向多因素综合调控。就室内温室环境监测而言,在早期人们采用实验分析室内环境状况,由于数据分析需要一段时间,所以这种方式实时性较差。随着传感器技术和信息处理技术的发展,室内环境监测的手段步入了一个崭新的时代,监测系统更加智能化,实时性大大提高。2、国内研究现状及研究方向我国研究环境监测系统的起步较晚,就温室控制技术而言,始于20世纪80年代,那时生产水平不高,技术设备比较落后,对环境监测的研究能力有限,更多的需要从国外引进相关设备,再加上研究经费太高,对使用者的素质要求较高,因此大规模推广使用很难实现。在吸收、借鉴国外先进技术的基础上,我国研究环境监测的相关工程人员逐渐掌握了这种技术。随后,从欧美等国家引进的连栋温室,把原有的独立单间温室,用科学的手段、合理的设计、优秀的材料将原有的独立单间模式温室连起来,连栋温室是温室的一种升级存在.在当时,工程人员只盲目关注温室设备,对温室管理、裁培技术的挖掘、研究和开发没有给予足够的重视,再加上设备能耗高,管理不善,最终导致企业亏损,甚至倒闭。目前国内现在对环境监测还停留在传统的人工环境监测方法,几乎还基于单片机终端监测很少具有实时通信功能。产品的现场安装受使用环境所限,环境应用适用性差,测控手段单一。很难进行远距离的监控和报警。我国环境监测工作是随着人们对环境保护认识的深化和环保工作的需要逐步发展起来的。有了前车之鉴,“九五”初期,我国又从以色列进口温室技术供相关的工程技术人员学习和使用,并在北京建立示范农场。从90年代中后期开始,我国开始自主研制环境控制系统,钻研温室栽培和管理等技术,温室大棚不仅数量增加,而且相关配套设施和材料的质量也有所提升。1995年以后,我国相继研发了温室环境计算机监控系统、工控机管理系统、智能温室系统、和蔬菜大棚监控系统等一列环境监控系统,在温室控制技术上,我国取得了不少成果。1.3主要工作采用意法半导体公司的STM32F103C8T6和乐鑫科技的ESP8266芯片。并且配合Android客户端APP可以有效的采集多个传感器数据和信息分析,并置设报响声的系统,数据超过设定的数值,就可以利用响声系统或远程提醒操作人员进行调控。该系统综合了嵌入式处理技术、传感器技术、无线网络通信等技术,可以对系统的监控和控制。研究方法:在离线情况下先进行传感器读取实验,实现了所需要数据采集和处理,再接入物联网;采用模拟技术进行程序编制与调试;研究采用问卷法、经验总结法、个案研究法、比较研究法和文献法。主要解决的问题:学习使用STM公司的开发软件,比如STM32CUDEMX,STM32IDE。ARMCortex-M3单片机的学习,包括基础外设和操作系统。ARMMDK软件的环境变量配置,编程和仿真的使用。物联网协议,HTTPS,MQTT的使用,GET和POST等。PCB设计,需要把整个系统进行整合。第二章户外环境监测系统整体设计方案2.1设计任务使用STM32F103C8T6和乐鑫科技的ESP8266芯片。连接腾讯云IoT,并且配合Android客户端可以有效的采集多个传感器和信息分析,分析等信息,并置设报响声的系统,数据超过设定的数值1.检测和控制系统方案设计,主要介绍了系统的设计过程和实现的主要功能。课题的设计要求,先初步设计出系统框架,再在功能的基础上,进行下一步的具体设计。2.系统硬件电路搭建先介绍了主要芯片的选择,然后设计了系统整体硬件方案并针对各个模块进行详细介绍,分析各部分的功能及设计过程。最后简单介绍了电路PCB版图设计。3.系统硬件驱动程序先介绍了系统整体软件设计。接着介绍了软件开发环境ARM-MDK(KEIL)的配置,在此基础上,对主控制器及各个硬件模块进行驱动设计。4.Android应用软件的设计先对Android系统进行简要介绍,然后叙述了如何搭建Android开发平台。在前两者的基础上,对应用程序进行设计。分两部分介绍,其一描述了整体设计框架,其二具体介绍界面的设计和通信的实现。5.系统测试结果这一章对检测和控制系统进行测试,各模块均正常工作。2.2设计思路与方案选择根据设计要求,将系统分成五大部分,即为控制器、人机交互、电源、传感器和物联网服务器。图2.1系统整体设计模块2.2.1系统控制器选择方案一:使用专门的物联网芯片来完成。采用专用的物联网芯片(Soc)进行设计和编程。该方法计算速度快,成本低,是生产厂商最好的选择。但本人对物联网专用芯片的理解和知识储备不足,无法实现用该类型的芯片来设计,因此该方案无法实施。方案二:采用FPGA控制高密度FPGA,1985年,Xilinx公司首次推出了FPGA,其整体密度和性能得到了极大地改善,其总密度为5百万门,性能为200兆赫。高集成度FPGA器件、使用简便、快速地研发和市场,因此在数码产品、电子产品等方面获得了广泛的应用。然而,以SRAM为基础的FPGA,需要将程序的资料储存在外存储器中,需要外置内存,且使用方式复杂,保密性较差。而且,FPGA对于一个简单的物联网项目来说,实在是有些大材小用了。方案三:采用单片机单片机是微型计算机的缩写,也被称作微控制器MCU。一般是一块集成电路,里面含有电脑的主要功能组件:CPU、内存、输入I/0界面。所以,采用微处理器及相关软件的开发、外部装置的组合,可以组成一个微型控制器。在智能仪表,测量与控制技术,智能界面等,易于操作,价格。在不同的控制系统中得到了广泛的应用。2.2.2人机交互的设计选择方案一:选择数字管作为显示器。使用数字管进行显示,具有程序简便、对外部环境的要求小、显示效果好等优点。但因为其仅能显示少量的编码和数字,并且驱动电路复杂,交互性差。种种限制对日后的扩充非常不便,所以在本设计中不宜采用数字管电路。方案二:LCD1602的LCD1602显示效果好,与MCU的硬件连接电路简单,程序命令也很容易理解。但显示的字符并不多,在打印系统运行节点和数据变量多的时候,特别受限,使用起来不方便。方案三:选择LCD12864液晶显示器,LCD12864显示效果良好分辨率更高,与单片机的硬件接口电路相对简单,模块内自带显存,有的还带有中文字库,可以大大的减少开发过程中字模制作,节省MCU的flash。但体积过大,重量大,功耗较高,不适合用到小尺寸的设计上。方案四:选择OLED液晶显示器,OLED显示效果良好,分辨率更高与单片机的硬件接口电路简单,比如使用IIC接口,只需要一根数据线(IIC_SDA)和一根时钟线(IIC_SCL)就可以驱动,程序命令易于理解。可以显示大量的字符,便于扩充,而且成本低,功耗低。OLED集诸多优点于一身,轻薄短小、精致灵敏、省电等。与LCD显示屏的对比高下立判。综上所述,本次设计选择方案四,用OLED作为显示模块。2.2.3系统传感器选择传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。在该设计中,对于传感器选型需要考虑以下条件:(1)测量参数:传感器的选型需要根据实际测量参数来选择,比如温度、湿度、压力、光照强度等。需要根据实际需求来确定测量参数。(2)测量范围:传感器的测量范围需要根据实际测量范围来选择,比如温度传感器的测量范围可以是-40℃+125℃,也可以是-55℃+125℃等。(3)精度:传感器的精度需要根据实际测量要求来选择,比如温度传感器的精度可以是±0.1℃,也可以是±0.5℃等。(4)接口类型:传感器的接口类型需要根据实际应用来选择,比如模拟信号输出、数字信号输出、I2C接口、SPI接口等。(5)尺寸和安装方式:传感器的尺寸和安装方式需要根据实际应用场景来选择,比如体积小、安装方便等。(6)价格:传感器的价格需要根据实际预算来选择,需要根据实际需求来平衡性能和价格。2.2.4系统通信设计(1)选择物联网云服务平台:根据项目需求和预算,选择适合的物联网云服务平台,如阿里云、腾讯云、华为云等。配置云平台参数:在物联网云服务平台上创建设备和产品,并获取设备的唯一标识符和密钥等参数。(2)开发单片机程序:根据物联网云平台的要求,开发单片机的程序,包括数据采集、数据传输和设备控制等功能,使用MQTT或HTTP协议将数据上传到云平台。(3)接入云平台:将单片机与物联网云平台进行连接,使用设备标识符和密钥等参数完成认证和鉴权,实现单片机与云平台的数据交互。(4)数据处理和应用:在云平台上对上传的数据进行处理和分析,实现数据可视化、告警处理、远程控制等应用。(5)测试和调试:完成单片机程序开发和云平台接入后,进行测试和调试,确保设备和云平台的数据交互正常。2.2.5系统电源设计方案单片机开发板电源设计方案需要考虑以下几个方面:电源类型:开发板的电源类型可以是直流电源或交流电源,根据项目的需求和实际情况选择合适的电源类型。电源电压:根据开发板和外设的电压要求,确定电源的输出电压,并确保电源的稳定性和可靠性。电源容量:电源的容量需要根据开发板和外设的功率需求确定,确保电源能够满足整个系统的功率需求。电源保护:为了保护开发板和外设,电源设计方案需要考虑过流、过压、过温等保护措施,确保系统的安全稳定运行。电源噪声:为了减少电源噪声对系统的影响,可以在电源输出端添加滤波电路,消除电源噪声对系统的干扰。充电管理:如果开发板需要使用电池供电,电源设计方案需要考虑电池充电管理,包括充电电路、充电保护、充电状态监测等。综上所述,单片机开发板电源设计方案需要考虑多个方面,包括电源类型、电源电压、电源容量、电源保护、电源噪声和充电管理等,确保电源能够满足整个系统的功率需求,同时保证系统的安全稳定运行。2.3开发工具2.3.1MDK-ARM5系统概述MDK源自德国的KEIL公司,是RealViewMDK的简称。Keil是一款软件,也是一家公司名。Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司制造和销售种类广泛的开发工具,包括ANSIC编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-timekernel)。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其KeilC51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。MDK-ARM专为微控制器应用而设计,而且功能强大,能够满足大多数苛刻的嵌入式应用。与KeilMDK4及之前版本不同,KeilMDK5分成MDKCore和SoftwarePacks两部分。MDKCore主要包含µVision5IDE集成开发环境和ARMCompiler5。SoftwarePacks则可以在不更换MDKCore的情况下,单独管理设备支持包和中间件更新包。KeilMDK的ARMC/C++Compiler通过了TüVCertified认证,完全符合IEC61508-3标准的T3类开发工具要求。目前,Compiler的SafetyPackage仅包含在MDK专业版中。2.3.2STM32CubeF1简介STM32Cube是ST提供的一套性能强大的免费开发工具和嵌入式软件模块,能够让开发人员在STM32平台上快速、轻松地开发应用。它包含两个关键部分:图形配置工具STM32CubeMX。允许用户通过图形化向导来生成C语言工程。嵌入式软件包(STM32Cube库)。包含完整的HAL库(STM32硬件抽象层API),配套的中间件(包括RTOS,USB,TCP/IP和图形),以及一系列完整的例程。2.3.3串口调试助手串口助手是一种串口通信工具,它的作用是方便用户通过串口与外部设备进行通信和数据交互。串口助手通常包含串口设置、数据发送、数据接收、数据显示、数据保存等功能模块,可以帮助用户进行串口通信的各种操作,如发送指令、接收数据、调试设备等。具体来说,串口助手的作用包括以下几个方面:串口设置:串口助手可以帮助用户设置串口的参数,如波特率、数据位、停止位、校验位等,确保串口与外部设备的通信参数一致。数据发送:串口助手可以帮助用户向外部设备发送数据,包括文本、十六进制等格式的数据,方便用户发送指令和控制设备。数据接收:串口助手可以帮助用户接收外部设备发送的数据,实时显示接收到的数据,方便用户进行数据分析和调试。数据显示:串口助手可以将接收到的数据以文本或十六进制等格式显示出来,方便用户进行数据分析和查看。数据保存:串口助手可以将接收到的数据保存到文件中,方便用户进行数据分析和后续处理。调试设备:串口助手可以帮助用户调试外部设备,通过发送指令和接收数据等方式,快速定位设备故障和问题。综上所述,串口助手是一种串口通信工具,主要用于串口通信和数据交互,具有串口设置、数据发送、数据接收、数据显示、数据保存和设备调试等功能,方便用户进行串口通信的各种操作。2.3.3立创EDA立创EDA是由中国团队研发,拥有完全独立自主知识产权的国产EDA工具。立创EDA为板级EDA设计软件。EDA指的是通过计算机的辅助完成电路原理图、印刷电路板文件等的绘制、制作、仿真设计。立创EDA是一款基于浏览器的,专为中国人设计的,友好易用的EDA设计工具。起于2010年,完全由中国人独立开发,拥有独立自主知识产权。隶属于深圳市嘉立创科技发展有限公司,由嘉立创EDA团队开发。立创EDA服务于广大电子工程师、教育者、学生、电子制造商和爱好者。致力于中小原理图、电路图绘制,仿真,PCB设计与提供制造便利性。立创EDA拥有超过100多万在线免费元件库,并在实时更新。可在设计过程中检查元器件库存、价格和立即下单购买,缩短设计周期。立创EDA目前有两个版本,立创EDA专业版和立创EDA标准版。标准版面向学生,教育,功能和使用上更简单;专业版面向企业,团队,功能更加强大,约束性也更高。而我们此次用到的是立创EDA标准版,立创EDA标准版基于浏览器运行,轻量级,高效率,无需下载,打开网站就能开始设计。云端在线设计,文件云端存储,摆脱硬件储存束缚。Windows、Mac、Linux多设备,跨平台支持,设计进度自动同步。兼容常用PCB设计软件,支持文件导入导出。立创EDA标准版提供团队协作功能,细化到单个工程权限管理。文件独立版本控制,互不影响;文件自动保存,一键恢复历史。一键生成Gerber文件、BOM文件、坐标文件,方便生产制造。立创EDA标准版支持常用元件的在线仿真,一键将原理图布局传递到PCB,一键导入图片LOGO到PCB。第三章户外环境监测系统硬件部分设计3.1整体设计原理图图3.1系统原理图3.1主控单片机电路意法半导体STM32F103的优异性体现在如下几个方面:超低的价格。以8位机的价格,得到32位机,是STM32最大的优势;超多的外设。STM32拥有包括:FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、DAC、RTC、DMA等众多外设及功能,具有极高的集成度;丰富的型号。STM32仅M3内核就拥有8个系列上百种型号,具有QFN、LQFP、BGA等封装可供选择。同时STM32还推出了STM32L和STM32W等超低功耗和无线应用型的M3芯片;优异的实时性能。84个中断,16级可编程优先级,并且所有的引脚都可以作为中断输入;杰出的功耗控制。STM32各个外设都有自己的独立时钟开关,可以通过关闭相应外设的时钟来降低功耗;极低的开发成本。STM32的开发不需要昂贵的仿真器,只需要一个串口即可下载代码,并且支持SWD和JTAG两种调试口。SWD调试可以为你的设计带来跟多的方便,只需要2个IO口,即可实现仿真调试。图3.2STM32F103C8T6单片机及原理图3.3显示电路设计液晶屏通常作为嵌入式设备的显示终端,用于显示一些关键信息,将信息直接显示在一块小的液晶屏幕上。液晶屏除了可以作为显示终端外,还可以作为调试信息输出的一个终端。在调试硬件程序的时候,通常会对程序进行调试,想输出一些状态或者信息来体现程序当前的运行状态,一般我们会选择串口打印输出内容,或者LED的不同闪烁频率代表不同状态,当然我们也可以使用一个液晶屏来显示不同内容,这种方式也是十分的方便快捷的。SSD1306是一款单片CMOSOLED/PLED驱动器,具有有机/聚合物发光控制器二极管点阵图形显示系统。它由128个段和64个公共部分组成。这个IC是为普通阴极型OLED面板设计。SSD1306内置对比度控制、显示RAM和振荡器,减少了外部组件和功耗。它有256级亮度控制。数据/命令是从通用单片机通过硬件可选的6800/8000系列兼容并行接口发送,I2C接口或串行外围接口。它适用于许多紧凑型便携式应用程序,例如手机副显示屏、MP3播放器、计算器等。图3.3OLED内部结构及管脚图3.4按键电路设计在设计中,按键功能仅用于验证作用,验证可行性和交互调试。图3.4按键电路设计3.5电源模块设计供电芯片用的是SPX3819,是一个正电压调节器,具有低辍学电压和低噪声输出。此外,该设备在100mA输出时提供了非常低的800µA地电流。SPX3819的初始公差小于1%的最大值和一个逻辑兼容的开/断开开关输入。当禁用时,功耗将降至接近于零。其他关键功能包括反向电池保护、电流限制和热关机。SPX3819包括一个参考旁路针输出最佳的低噪声输出性能。由于其非常低的输出温度系数,该器件也是一个优越的低功率电压参考。SPX3819是在电池驱动的应用中使用的绝佳选择,如无绳电话、无线电控制系统和便携式计算机。它是可在几个固定的输出电压选项或与一个可调的输出电压。充电芯片是HX4054A,是一款单节锂离子电池恒流/恒压线性充电器,简单的外部应用电路非常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路,不需要外部隔离二极管。热反馈可对充电电流进行自动调节,以便在大功率操作或高环境温度条件下对芯片温度加以限制。HX4054A充电截止电压为4.2V,充电电流可通过外部电阻进行设置。当充电电流降至设定值的1/10时,HX4054A将自动结束充电过程。当输入电压被移掉后,HX4054A自动进入低电流待机状态,将待机电流降至1uA以下。HX4054A在有输入电源时也可置于停机模式,从而将工作电流降至30uA。图3.5充电模块和LDO电源3.6WIFI模块设计ESP8266系列模组是深圳市安信可科技有限公司开发的一系列基于乐鑫ESP8266的低功耗UART-WiFi芯片模组,可以方便地进行二次开发,接入云端服务,实现手机3/4G全球随时随地的控制,加速产品原型设计。模块核心处理器ESP8266在较小尺寸封装中集成了业界领先的TensilicaL106超低功耗32位微型MCU,带有16位精简模式,主频支持80MHz和160MHz,支持RTOS,集成Wi-FiMAC/BB/RF/PA/LNA,板载天线。支持标准的IEEE802.11b/g/n协议,完整的TCP/IP协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。ESP8266是高性能无线SoC,以最低成本提供最大实用性,为Wi-Fi功能嵌入其他系统提供无限可能。当命令响应操作模式(或AT模式)时,AT命令模块可以被允许,用户可以向模块发送各种AT指令、设定控制参数、或发出控制命令。(AT指令是一组指令,用以在PC与诸如Bluetooth、WiFi)等特定终端装置进行通信并进行配置。)在自动化连接模式下,模块可以分为主干、从、回环三种工作任务。采用自动连接方式,按照预定的方式,数据将被自动传输。图3.6ESP-12S模块3.7传感器选型3.7.1温湿度传感器选型AHT20,新一代温湿度传感器在尺寸与智能方面建立了新的标准:它嵌入了适于回流焊的双列扁平无引脚SMD封装,底面3x3mm,高度1.0mm。传感器输出经过标定的数字信号,标准I2C格式。AHT20配有一个全新设计的ASIC专用芯片、一个经过改进的MEMS半导体电容式湿度传感元件和一个标准的片上温度传感元件,其性能已经大大提升甚至超出了前一代传感器的可靠性水平,新一代温湿度传感器,经过改进使其在恶劣环境下的性能更稳定。图3.7温湿度传感器模块-AHT20图3.8温湿度传感器模块性能指标3.7.2气体传感器选型SGP30是一种数字多像素气体传感器,设计为易于集成到空气净化器、需求控制通风和物联网应用中。三星的CMOSens®技术在一个单芯片上提供了一个完整的传感器系统,具有一个数字I2C接口、一个温度控制的微热板和两个预处理的室内空气质量信号。作为第一个在一个芯片上具有多个传感元件的金属氧化物气体传感器,SGP30提供了关于空气质量的更详细的信息。该传感元件具有对现实应用中存在的污染气体的无比鲁棒性,从而具有独特的长期稳定性和低漂移。非常小的2.45x2.45x0.9mm3DFN包可以在有限的空间内应用。传感器的最先进的生产工艺保证了高重现性和可靠性。磁带和卷轴包装,以及对标准SMD组装工艺的适用性,使SGP30注定要用于大容量的应用。图3.9气体传感器模块连接电路图3.10气体传感器模块性能指标3.7.3光线传感器选型采用光敏电阻作为信号采集器件。光敏电阻是基于光电导效应的一种光电器件,无光照时,

光敏电阻值(暗电阻)很大,电路中电流(暗电流)很小;当受到光照时,半导体材料电导率增加,电阻减小。其阻值随光照增强而减小。光敏电阻作为光电式传感器的一种,它具有灵敏度高、光谱响应范围宽;体积小、重量轻、机械强度高、耐冲击、耐震动、抗过载能力强和寿命长等特点。所以选择光敏电阻采集光照信号,并把不同的光照强度转化为不同的电阻值。把光敏电阻串联在直流电路中即可把不同的电阻值转化为不同的电压值,电路如原理图所示。于是,就把对光照信号的处理转化为对电压信号V的处理。 图3.11光敏传感器模块性能指标图3.16光敏传感器模块性能指标第四章户外环境监测系统软件部分设计4.1系统总设计流程软件设计部分着重阐述了各模块的软件设计过程。C语言在MCU中的应用是广泛的,MCU不仅功能强大,而且还具备了高级和汇编两种语言,能够在硬件上直接运行。C语言的操作符和数据类型非常丰富,利用C语言与MCU一起设计是非常方便的。以下的图4.1显示了该系统的总体设计流程:图4.1系统总设计流程图在单片机程序设计中,需要注意以下几点:程序的可读性:在编写程序时,应该尽可能地使程序易于阅读和理解。可以采用注释、代码缩进、命名规范等方式来提高程序的可读性。程序的可维护性:程序的可维护性是指在程序运行过程中,出现问题时,能够快速地找到问题并进行修复。为了提高程序的可维护性,应该尽可能地避免使用魔法数字、使用有意义的变量名称和函数名称,以及编写清晰的注释等。程序的效率:在单片机程序设计中,由于资源有限,程序的效率非常重要。为了提高程序的效率,可以采用位运算、避免重复计算等方式。程序的稳定性:单片机程序的稳定性是指程序可以在长时间运行中不出现异常。为了提高程序的稳定性,应该避免使用死循环、尽量避免使用浮点数运算、检查输入输出的范围等。程序的可移植性:在单片机程序设计中,程序的可移植性是指可以在不同的开发板和不同的编译器上运行。为了提高程序的可移植性,应该尽可能地遵守C语言标准、避免使用特定于平台的函数和数据类型等。程序的安全性:在单片机程序设计中,程序的安全性是指程序不会受到恶意攻击或者由于程序错误而导致设备损坏等问题。为了提高程序的安全性,应该对输入数据进行范围检查、避免使用危险的函数等。总之,在单片机程序设计中,需要综合考虑程序的可读性、可维护性、效率、稳定性、可移植性和安全性等方面,以编写出高质量、稳定、可靠的程序。图4.2系统初始化程序4.2按键部分程序设计流程按键模块的执行步骤如下:首先要进行行列键的扫描,这个时候要进行一个消除颤动的步骤,然后确定按键的位置,输入相应的代码进行处理。图4-3中显示了按键模组的子程序的流程。开始开始初始化扫描按键进行列扫描进行行扫描显示按键输入字符结束图4.3按键模块子程序流程图键盘扫描子程式,先读取P2口I/0端口的低四位电平状态,再读取输入/输出端口的高四位电平状态,键值,并显示高速缓冲。接着把键的数值转化成ASCII代码字符,然后就能用软件设定键的各个键所代表的内容,编入程序。采用行列式扫描方法读取按键。图4.4按键模块程序原理图4.3LCD显示部分程序设计流程当按键键入数值和结果显示时,都需要用到OLED作为显示屏,OLED显示流程如图4-3所示。开始开始向缓存数组装载字符将缓存数组存入发送LCD数组中发送最终字符给LCD将需要显示的字符存入缓存数组结束图4.5OLED显示流程由图4.3可以很清楚地看出OLED的显示流程。显示模块程序首先要对显示模块进行初始化,主要通过向OLED发送字符数组,来达到显示数据。4.4WIFI数据上传程序设计ESP-12S是通过UART与MCU(USART3)进行连接通讯的,使用在初始化ESP-12S的程序中,其实是在初始化串口3(USART3),而后面的流程都是在使用ESP-12S厂家的AT命令给ESP-12S,通过串口接收到的数据,利用字符串分析来判断程序成功与否。图4.6WIFI程序流程图4.5腾讯IoTExplore腾讯云物联网开发平台(IoTExplorer)是面向智慧生活与产业互联应用的物联网PaaS平台,为基于物联网的各行业设备制造商、方案商及应用开发商提供一站式设备智能化服务。平台提供海量设备连接与管理能力及基于腾讯连连的小程序应用开发能力,并打通腾讯云云产品及AI能力,聚合腾讯生态内容能力。从而提升传统行业设备智能化的效率,降低用户的开发运维成本。旨在提供一个安全、稳定、高效的连接平台,帮助开发者低成本、快速地实现“设备-设备”、“设备-用户应用”、“设备-云服务”之间可靠、高并发的数据通信。物联网通信平台不仅可以实现设备之间的互动、设备的数据上报和配置下发,还可以基于规则引擎和腾讯云产品打通,方便快捷地实现海量设备数据的存储、计算以及智能分析。腾讯IoT对ESP8266有一个官方的定制的固件,大大的减少了传入MQTT的参数。4.6MQTT协议MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;2、对负载内容屏蔽的消息传输;3、使用TCP/IP提供网络连接;4、有三种消息发布服务质量;5、小型传输,开销很小,协议交换最小化,以降低网络流量;6、使用LastWill和Testament特性通知有关各方客户端异常中断的机制。MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。4.7cJSON程序设计cJSON是一个超轻巧,携带方便,单文件,可以作为ANSI-C标准的JSON解析器,是一个用C语言编写的简单好用的JSON解析器;它只包含一个C文件和一个头文件,可以非常容易集成到自己工程项目中。特点:CJSON具有轻巧、快速、易用的特点,可以在嵌入式系统中使用,支持解析和生成JSON格式数据。数据类型:CJSON支持JSON中的所有数据类型,包括null、布尔型、数字、字符串、数组和对象。接口:CJSON提供了简单易用的API接口,包括解析JSON数据、生成JSON数据、遍历JSON数据等操作。使用场景:CJSON适用于各种嵌入式系统中,可以用于数据传输、数据存储、网络通信等场景。兼容性:CJSON可以在各种不同平台和编译器下使用,具有良好的兼容性和可移植性。缺点:CJSON虽然轻量级,但对于大规模的JSON数据解析和生成,效率可能不如其他一些JSON库。CJSON是一款优秀的JSON解析库,适用于各种嵌入式系统中,具有简单易用、轻量快速等特点,是嵌入式系统中处理JSON数据的不错选择。下面是在我们的工程中使用的cJSON的过程:导入CJSON库:可以从官方网站或GitHub上下载CJSON库,并将其导入到STM32单片机的工程中。创建JSON对象:在代码中定义一个CJSON对象,可以使用cJSON_CreateObject()函数创建一个空的JSON对象。添加JSON数据:使用cJSON_AddItemToObject()函数在JSON对象中添加对应的JSON数据,例如添加一个字符串可以使用cJSON_AddStringToObject()函数。生成JSON数据:使用cJSON_Print()函数将JSON对象转换为JSON字符串。解析JSON数据:使用cJSON_Parse()函数将从外部接收到的JSON字符串转换为CJSON对象,然后使用cJSON_GetObjectItem()函数获取JSON对象中对应的数据。释放内存:使用cJSON_Delete()函数释放CJSON对象所占用的内存。在我们的程序设计中,首先创建了一个JSON对象root,并添加了一个字符串和一个数字。然后使用cJSON_Print()函数将JSON对象转换为JSON字符串,并输出到终端。接着使用cJSON_Parse()函数将JSON字符串解析为CJSON对象,并使用cJSON_GetObjectItem()函数获取JSON对象中的数据。最后使用cJSON_Delete()函数释放内存。4.8AndroidAPP设计 AndroidAPP的开发过程,可以在腾讯云IoT控制台上,可视化的开发,围绕腾讯云IoT的SDK进行二次开发,可以支持多种控件。第五章系统测试5.1成品制作5.1.1PCB绘制使用立创EDA软件来绘制PCB板。建立并绘制原理图。需要了解元件选型,根据设计要求来选择元件规格,同时要看元件开发手册,官方对元件引脚和硬件配置的详细说明。绘制完原理图后,进行网络检查,看是否有某元件的引脚漏定义和网络交叉。然后就可以根据原理图创建PCB。PCB设计涉及到layout,元件摆放,走线规则等。图5.1PCB设计顶层、底层和3D图5.1.2准备工作及制作步骤准备工具和材料:需要准备焊接工具,如焊锡、焊台、烙铁、吸锡器等,以及焊接材料,如焊锡丝、焊接剂等;进行焊接:根据电路图和元件布局图,依次将电子元件焊接到PCB板上。焊接时要注意焊接温度、时间和方法,以避免焊接不良或损坏元件;进行外观检查:焊接完成后,需要对PCB板进行外观检查,检查焊点是否光滑、焊接是否牢固、元件是否位置正确等;进行电气调试:接通电源后,需要进行电气调试,检查电路是否正常工作。可以使用万用表、示波器等工具进行检测和分析,以确定电路中存在的问题;进行信号调试:在电气调试完成后,需要进行信号调试,检查信号是否正确传输。可以使用示波器等工具进行检测和分析,以确定信号传输存在的问题;分析问题:如果在调试过程中发现电路或信号存在问题,需要进行分析和定位问题。可以通过逐步排除法、分析电路原理图等方式,找出问题所在并进行修复;进行终极测试:调试完成后,需要进行终极测试,验证电路是否正常工作。可以进行长时间运行测试和负载测试等,确保电路的可靠性和稳定性。注意,在非SMT工艺的情况下,大部分元件为贴片的情况下,需要提前打印钢网。总之,在进行焊接和调试分析时,需要细心认真、耐心分析,并根据具体情况采取合适的方法和工具,以确保电路的正常工作。5.2仿真5.2.1硬件仿真STM32硬件仿真是一种通过软件模拟STM32芯片的运行状态来验证STM32芯片设计的方法。这种方法可以在设计阶段发现硬件问题,节省了硬件开发的时间和成本。在进行STM32硬件仿真时,需要注意以下几点:确认仿真软件和仿真器的兼容性,选择合适的仿真器和软件。确认仿真的电路图和原理图与实际硬件一致,检查连接是否正确。选择合适的仿真模式,如单步执行、断点调试等。在仿真过程中,需要仔细观察仿真结果,及时发现问题。5.2.1仿真准备工作使用Keil5给STM32进行仿真,需要注意的是在进行仿真之前需要确认硬件连接和软件设置是否正确,以确保仿真的准确性。1)必要工具:安装Keil5软件和相关驱动程序;准备好STM32芯片和开发板,仿真器我们选择ST_LinkV2。2)创建新工程:打开Keil5软件,点击“Project”->“NewµVisionProject”;选择芯片型号和开发板,点击“OK”;填写工程名称和存储路径,点击“Save”。3)配置芯片和工程:右键点击工程名称,选择“OptionsforTarget”;择“Target”选项卡,设置芯片型号、仿真器和仿真速度;选择“Debug”选项卡,设置调试器和调试接口;点击“OK”保存设置。4)编写程序:在工程中添加源文件和头文件;编写程序代码。5)编译程序:点击“Build”按钮,对程序进行编译,排除不必要的错误和警告。6)进行仿真:连接STM32开发板和仿真器,并设置仿真器的相关参数;点击“Debug”按钮,进入仿真模式;在仿真模式中,可以进行单步执行、断点调试等操作;开始仿真,观察仿真结果,并根据结果调整程序代码和硬件电路图。7)停止仿真:在仿真模式中,点击“Stop”按钮,停止仿真;断开STM32开发板和仿真器的连接。重复以上步骤,直到达到预期的仿真效果。总结本次的毕业设计是一个综合性很强的设计,需要我们在硬件设计、软件设计、网络通信等方面进行全方位的考虑和实现。本次毕业设计基于物联网技术,实现了一个智能家居控制系统。该系统采用了基于STM32单片机的硬件设计方案,结合了WiFi模块、传感器、执行器等多种元件,实现了题目的主要功能。本次毕业设计中,我独立完成了硬件设计、软件编程、服务器搭建等多项任务,深入了解了物联网技术的相关知识,并获得了以下收获:掌握了STM32单片机的硬件设计和编程技能,熟练使用了KeilMDK、STM32CubeMX等开发工具;学习了WiFi模块的接口和通信协议,了解了TCP/IP、MQTT等网络协议的基本原理;熟悉了传感器和执行器的接口和工作原理,了解了数字信号处理的相关

温馨提示

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

评论

0/150

提交评论