版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论1.1研究背景与意义在社会经济不断发展的背景下,石油产业推动国民经济前进的作用越来越明显。石油是我们现代工业、交通、农业等各个领域不可或缺的能源资源[1]。而油罐车则是石油运输的主要工具之一,其安全性和稳定性直接关系到石油运输的质量和效率。目前,我国石油行业已发展成为一个规模庞大、种类繁多的复杂系统,其中石油运输体系的安全问题备受关注。石油运输中的危险因素较多,例如道路条件、天气变化、车辆故障、人为操作失误等都会对运输带来不利影响。尤其是在疫情期间,由于国内外疫情的影响,石油行业的物流运输面临严峻考验。如何保障油品的安全运输,防范事故的发生,是当前急需解决的问题。基于此,本文提出了一种基于GSM的油罐车监测系统设计方案,旨在通过实时监测油罐车的位置、速度等状态信息,从而使得系统在油品运输过程就能够进行有效监督管理和控制,达到提高运输安全性和效率的目的[2]。该系统具有自主创新的特点,能够实现对油罐车的全方位监测和管理。通过传感器采集油罐车的温度、压力、液位等信息,并将其实时传输到监测中心[3],以便随时掌握油罐车的状态。同时,通过传感器技术,可以实时检测油罐车的相关状态。除此之外,该系统还能够进行数据分析,在数据超出正常值还能发出预警。通过对历史数据的分析,可以了解油罐车的运输规律和习惯,发现异常情况并进行预警,防止事故的发生。同时,该系统可以与其他监测平台和应用系统进行数据交换和共享,进而使信息资源整合到一起,为进一步实现信息资源的优化利用提供了方便,最终达到提升石油产业的整体竞争力和发展水平的目的。总之,基于GSM的油罐车监测系统设计方案是一项具有重要意义的研究工作。它将解决当前石油运输安全问题,提高石油产业的效益和发展水平,具有广泛的应用前景和推广价值。1.2国内外研究现状1.2.1国内研究现状油罐车监测系统是指对油罐车的运行状态进行实时监测和数据采集,以保障油品安全运输的一种技术手段。目前,国内在油罐车监测系统方面已经有了不少研究成果,主要集中在以下三个方面。1.无线传感器网络技术在油罐车监测系统中的应用无线传感器网络技术是指利用分布式传感器节点通过无线通信方式进行信息采集、处理和传输的一种技术。该技术在油罐车监测系统中的应用可以有效地实现油罐车的实时监测和数据采集,提高了油品运输的安全性和可靠性。例如,上海交通大学的研究人员设计了一种基于无线传感器网络的油罐车实时监测系统,该系统可以对油罐车的温度、压力、液位等参数进行实时监测,并将监测数据通过无线传感器网络传输到监控中心进行处理和分析。该系统具有实时性强、数据准确性高、安装维护简便等优点。2.GPS定位技术在油罐车监测系统中的应用GPS定位技术是指利用卫星信号进行位置信息定位的一种技术[4]。该技术在油罐车监测系统中的应用可以实现对油罐车的位置和行驶路线进行实时监测和跟踪,提高了运输效率和安全性。例如,天津大学的研究人员设计了一种基于GPS定位技术的油罐车远程监测系统,该系统可以通过GPS定位对油罐车的位置进行实时监测,并将监测数据通过无线通信方式传输到监控中心进行处理和分析。该系统具有实时性强、准确性高、操作简便等优点。3.智能诊断技术在油罐车监测系统中的应用智能诊断技术是指利用计算机技术和人工智能技术进行故障预测、故障诊断和故障处理的一种技术。该技术在油罐车监测系统中的应用可以实现对油罐车的故障进行预测和诊断[5],提高了维护效率和运输安全性。例如,中国科学院合肥物质科学研究院的研究人员设计了一种基于智能诊断技术的油罐车故障诊断系统,该系统可以通过对油罐车传感器数据的分析和处理,进行故障预测和诊断,并提供相应的故障处理建议。该系统具有准确性高、效率快、成本低等优点。综上所述,国内在油罐车监测系统方面已经有了不少研究成果,其中无线传感器网络技术、GPS定位技术和智能诊断技术都得到了广泛应用。未来,随着各种新技术的不断涌现,油罐车监测系统将会更加完善和实用化。1.2.2国外研究现状近年来,油罐监控系统的开发已成为许多国家的研究热点。随着技术的不断进步,许多国外学者对基于GSM的油罐监控系统的设计和应用进行了深入研究,并取得了显著的成果。本文主要从系统架构、传感器技术和数据处理三个方面总结了国外基于GSM的油罐监控系统的研究现状。国外研究人员提出了基于GSM的油罐监控系统的不同系统架构。例如,印度研究人员提出了一种由三个主要组件组成的系统架构:中央服务器、GSM模块和嵌入式控制器。中央服务器负责接收和存储从油罐收集的数据,而GSM模块用于向服务器传输数据。嵌入式控制器负责收集安装在油罐上的各种传感器的数据,如温度和压力传感器。同样,美国研究人员提出了一种包括GPS模块、GSM模块和微控制器的系统架构。GPS模块用于跟踪油罐的位置[6~9],而GSM模块用于与中央服务器进行实时通信。微控制器负责处理从各种传感器收集的数据,并通过GSM模块将其发送到服务器。传感器技术在基于GSM的油罐监控系统的设计中起着至关重要的作用。国外研究人员提出了不同类型的传感器来监测油罐的不同参数。例如,意大利研究人员开发了一种温度传感器,该传感器使用光纤技术来测量油罐中的石油温度。该传感器高度准确,不受电磁干扰。同样,英国研究人员开发了一种基于压阻技术的压力传感器。该传感器能够精确测量油箱内的压力,并且对压力的微小变化具有高灵敏度。此外,中国研究人员开发了一种液位传感器,该传感器使用超声波技术测量油箱内的液位。该传感器精度高,能够在恶劣的环境中工作。数据处理是基于GSM的油罐监控系统的另一个重要方面。国外研究人员提出了不同的数据处理技术来分析从各种传感器收集的数据。例如,英国研究人员开发了一种基于主成分分析(PCA)的数据处理技术。该技术能够从大量数据中提取有用的信息,并提供对未来趋势的准确预测。同样,美国研究人员开发了一种基于人工神经网络的数据处理技术。该技术能够从历史数据中学习,并根据学习到的模式进行预测。国外研究人员对基于GSM的油罐监控系统的设计和应用进行了大量研究,在系统架构、传感器技术和数据处理方面取得了显著成就。未来,随着技术的不断进步,基于GSM的油罐监控系统将变得更加先进和广泛应用。1.3本文研究内容本文研究了一种基于GSM的油罐车监测系统设计。该系统主要是通过GPS定位和GSM网络通信技术实现对油罐车的压力,温度,火焰等数据进行实时监测和管理。该论文探讨了油罐车监测系统的意义和现状,并分析了市场上不同油罐车监测系统的优缺点。在此基础上,提出了车载终端、服务器端、客户端三部分的整体架构和功能模块,以满足需求。[10~13]。其中,车载终端主要负责采集油罐车的运行数据,并将数据通过GSM网络上传到服务器端。服务器端则负责数据接受报警功能[14]。接着,论文详细讲解了系统中各个模块的具体实现方法和技术要点,例如车载终端的硬件设计、温度检测,火焰,压力模块的使用、GSM模块的通信协议、服务器端的数据库设计等。最后,通过实验验证了该系统的稳定性和可靠性,并对其性能进行了综合评价。总之,该论文针对油罐车监测领域的需求,设计了一套基于GSM的油罐车监测系统,具备较高的实用性和可行性,可为油罐车运输行业提供有效的管理手段。
第2章整体方案设计2.1系统需求分析该文从需求分析出发,设计和实现了基于GSM的油罐车辆测系统,包括系统软硬件设计、上位机设计、系统实现和系统测试等方面。特别重点介绍了系统各个功能模块的详细设计思路和实现方法,并对系统的关键技术和部分源代码进行了详细的解释和说明。该系统应完成的主要功能有:1.车辆在行进的过程当中能对车辆存储罐进行实时姿态检测。在检测的过程当中,如果发现车辆的倾斜角度过大时,能够实现自动报警的功能,同时该倾斜角度报警一直能够通过按键进行设置,可以不根据不同的场合以及不同的运输优品进行选择。能够通过压力传感器检测罐内压力,压力数值异常可以发出报警信号。2.在运输的过程当中,可以针对有关的参数信息进行检测,例如在运输的过程当中需要实时进行检测运输过程当中的温度以及湿度状况等参数信息,同时还需要能够使用火焰检测传感器进行检测是否有明火产生。3.可以一健求助,当系统发生紧急状况的时候,司机可以实现一键求救功能,能够再按下按键时,将自身的定位坐标信息通过短信发送到远程监控后台,同时该系统还能够将定位信息进行实时显示,主要是将纬度信息显示到液晶显示器上。4.在系统进行工作的过程当中,所采集的温度及湿度和相应的或在信息能够传输到驾驶室,供司机能够实时查看相应的状况。技术要求:1.采用传感器采集,定位技术;2.以单片机、倾角传感器模块、温度检测模块、湿度检测模块、火焰检测模块、电源模块等完成硬件设计;3.采用KEIL软件平台和C编程语言完成下位机软件设计;4.采用E4A软件平台完成基于GSM的油罐车辆检测系统设计。2.2整体功能方案设计本系统在进行设计的过程当中,主要是针对于油罐车的环境监测进行实时检测,系统的设计在进行输入模块设计的时候,主要是采用了斜角度传感器模块,温度检测传感器模块以及湿度检测传感器模块时,压力传感器模块,还应用到了火焰检测传感器模块以及GPS定位检测传感器模块,在控制输出时则是能够将采集到的数据信息上传至司机的手机当中,也能够通过液晶信息显示系统进行实时显示,同时在进行报警的时候则是利用到了声光报警系统能够利用GSM发送报警短信信息。火焰传感器火焰传感器单片机报警器驱动器数字信号单片机报警器驱动器数字信号模拟信号压力传感器模拟信号压力传感器GSM手机GSM手机数字信号湿度模块数字信号湿度模块数字信号按键输入模块数字信号按键输入模块电源电源2.3器件选型2.3.1STM32F103C8T6STM32F103C8T6单片机是一款32位ARMCortex-M3内核的微控制器芯片,它集成了片上存储器、控制器、外设和通信接口等众多功能模块,在嵌入式系统中拥有广泛的应用。(1)内核模块STM32F103C8T6单片机使用ARMCortex-M3内核,该内核采用哈佛结构,具有高性能、低功耗、易于编程的特点。内核模块还包含时钟和复位电路、异常处理和调试模块等子模块。(2)存储器模块STM32F103C8T6单片机的存储器包括闪存、SRAM和EEPROM,闪存用于程序代码的存储,SRAM用于数据存储,EEPROM用于非易失性数据存储。存储器模块还包含一个存储器保护单元,可以防止未经授权的存储器访问。(3)控制器模块STM32F103C8T6单片机控制器模块包括时钟控制器、复位控制器、电源管理单元等。时钟控制器用于配置系统时钟和各个外设时钟,复位控制器用于系统复位和外设复位,电源管理单元用于控制芯片的供电。(4)外设模块STM32F103C8T6单片机拥有丰富的外设模块,包括通信接口、定时器、ADC、DAC、PWM等。其中,通信接口包括USART、SPI、I2C、CAN等,可以满足不同应用场景下的通信需求;定时器主要用于生成各种时间基准信号;ADC和DAC用于模拟信号采集和输出;PWM用于控制电机、LED灯等。(5)调试模块STM32F103C8T6单片机调试模块包括JTAG和SWD两种调试方式,可以通过调试器进行程序的下载和调试。此外,还提供了一些辅助功能,如断言和跟踪等。STM32F103C8T6单片机是一款功能丰富、性能优异的微控制器芯片,它的模块设计相较于其它单片机而言更为合理、更易于集成和编程,这些特点为嵌入式系统开发者提供了更多的便利。在实际应用中,可以根据具体需求选择相应的模块进行配置,以实现更好的性能和功耗平衡。图2.1STM32F103C8T6单片机实物图2.3.2火焰传感器火焰传感器是一种用于检测火焰并发出相应信号的传感器。它是一种重要的安全设备,广泛应用于工业、商业等场所中,如厂房、仓库、办公室、酒店等。MPX火焰传感器能够实时检测周围环境中的火焰,并及时向控制系统发送警报信息,从而保护人员和财产的安全。火焰传感器基于红外线辐射原理或紫外线辐射原理,通过检测环境中的光谱变化来识别火焰。当传感器接收到足够的光谱变化时,就会发出警报信号,使得控制系统可以及时采取措施。火焰传感器有多种类型,包括点型火焰传感器和线型火焰传感器。点型火焰传感器通常安装在天花板上,用于监测环境中的火灾情况。线型火焰传感器则被安装在长时间或曲折的管道或隧道内,这些地方容易发生火灾,例如油气管道或制药厂。火焰传感器具有许多优点,包括反应速度快、精度高、安装方便等。除了用于火灾检测外,火焰传感器还可用于热处理设备中的自动控制、炉温监测等领域。总之,火焰传感器在保护人员和财产安全方面发挥着重要作用。随着技术的不断进步,火焰传感器也将越来越先进和智能化,为各种场所提供更加安全和可靠的保护。2.3.3OLED显示屏在本次设计中,我使用0.96英寸的OLED显示模块来实现显示功能。该模块有两种版本可供选择,一种是采用IIC通信协议进行通信,另一种则是采用SPI通信协议。本次设计我们选择了采用IIC通信的OLED显示屏模块。如图2.2所示,这是OLED显示模块的实物图。为防止电压过高导致短路和显示屏烧毁,我们限制了显示模块的电压不超过5V。同时,SDA和SCL需要与MCU连接,并且通过IIC通信协议将需要显示的内容投射在屏幕上。采用OLED显示模块具有许多优点,例如高亮度、高对比度、响应速度快等特点。因此,它非常适合用于小型设备和嵌入式系统的显示需求。通过正确的选择和连接显示模块,以及正确配置相应参数,我们能够展示所需的数据和信息,从而使整个系统更加智能化和易于操作。图2.20.96寸OLED显示模块实物2.3.4压力传感器压力传感器模块是一种测量物体压力的装置,由压力传感器和信号处理电路组成。它通过测量物体所受的压力大小,将其转换为电信号输出,实现对物体压力的精确测量。压力传感器模块在工业自动化、军事航空、医疗设备等领域中得到了广泛应用。压力传感器模块一般包含传感器和信号处理电路两部分。其中,传感器用于测量并检测物体受到的压力大小,信号处理电路则对传感器采集到的模拟信号进行转换,将其转换为数字信号、进行数据处理并输出。压力传感器模块的精度和灵敏度是其关键性能指标之一。传感器的灵敏度越高,就能够检测到更小的压力变化,从而提高测量精度。同时,还需要考虑传感器的耐用性、抗干扰性以及温度、湿度等环境因素的影响。压力传感器模块具有广泛的应用场景。例如,在汽车领域,它可以被用来检测轮胎气压,以避免行驶过程中发生爆胎;在医疗设备中,它可以用于血压计和呼吸机等设备中,以确保患者的身体状态得到准确监控;在航空领域,它则可以被用来检测飞机机身的气压变化,以确保飞机的安全运行。总之,压力传感器模块具有广泛的应用前景和市场需求。随着技术的不断进步和应用场景的不断拓展,压力传感器模块将会越来越成为人们工作和生活中的重要组成部分。2.3.5GSM模块SIM900A模块是一种基于GSM/GPRS网络的无线通信模块,可用于智能家居、物联网、远程监控等领域。它支持语音通话、短信、GPRS数据传输、TCP/IP协议等多种功能,具有低功耗、高稳定性和广泛的应用场景。SIM900A模块采用SMT工艺制造,尺寸小、体积轻,能够方便地与其他电子设备集成。其主要特点如下:支持四个频段:850/900/1800/1900MHz,适用于全球各地的GSM网络。支持GPRS类10,最高速度为85.6kbps,可实现数据传输和接收。支持TCP/IP协议,可以进行远程服务器通讯。支持语音通话和短信功能,可以进行双向通讯。具有低功耗模式,可延长电池使用寿命。采用标准AT指令集控制,易于在不同系统中集成和使用。SIM900A模块的连接方式比较简单,只需要将其连接到电源和外部天线即可。在与控制器或其他设备集成时,只需通过串口通信发送AT指令即可完成各种操作,如发送短信、拨打电话等。2.4单片机控制器2.4.1时钟电路的设计在STM32微控制器系统中,时钟电路是至关重要的组成部分之一。它不仅提供了系统时钟信号,还影响着芯片的性能和功耗等方面。因此,在设计STM32时钟电路时,需要考虑多个因素,包括时钟源、时钟分频、时钟精度等。1.时钟源选择在STM32微控制器中,提供了多种时钟源可供选择,包括外部晶体振荡器、内部RC振荡器、内部高速晶体振荡器等。其中,外部晶体振荡器是最常用的时钟源之一,具有精度高、噪声小等优点,适合于需要较高时钟精度的应用场景。而内部RC振荡器则更加便于使用和控制,适合于一些低功耗的应用场景。2.时钟分频为了满足不同的应用需求,STM32微控制器提供了多种时钟分频方式,可以根据具体需求进行选择。例如,可以通过配置预分频器来实现CPU时钟频率的调整,或者通过AHB/APB总线分频来调整总线时钟频率,以达到减小功耗或提高性能的目的。3.时钟精度时钟精度是时钟电路设计中一个非常重要的因素。在STM32微控制器中,为了保证时钟精度,一般会采用外部晶体振荡器,并进行校准。晶体振荡器的频率与温度、供电电压等因素有关,因此需要进行校准来保持稳定的时钟频率和精度。另外,还可以采用PLL(PhaseLockedLoop)锁相环技术来实现高精度时钟输出。4.时钟多源切换为了满足不同场景下的应用需求,STM32微控制器提供了时钟多源切换功能,可以轻松地切换不同的时钟源。例如,在系统启动时可以先将内部RC振荡器设置为时钟源,等待外部晶体振荡器稳定后再切换到外部晶体振荡器上。总之,在STM32时钟电路的设计中,需要综合考虑多个因素,包括时钟源、时钟分频、时钟精度、时钟多源切换等。适当地配置这些参数,可以使得系统具有更好的性能和功耗平衡。同时,也需要注意时钟电路的阻抗匹配、布线和电源干扰等问题,以确保系统的稳定工作。2.4.2复位电路的设计STM32复位电路是微控制器系统不可或缺的部分,它负责在系统出现异常或意外情况下将系统恢复到正常状态,保证系统的可靠性和稳定性。因此,在设计STM32复位电路时,需要考虑多个因素,包括复位信号源、复位类型、复位延时等。1.复位信号源在STM32系统中,复位信号源可以通过多种方式产生,常见的包括手动复位按键、软件复位、看门狗复位等。其中,手动复位按键可以通过引脚直接连接到复位电路中,当按键按下时产生复位信号;软件复位则是通过CPU内部寄存器产生复位信号;看门狗复位是通过设置看门狗定时器来产生复位信号。不同的复位信号源具有不同的应用场景,需要根据实际需求进行选择。2.复位类型在STM32系统中,复位分为硬件复位和软件复位两种类型。硬件复位是由复位电路自动产生的,无法被程序控制,可以确保系统在发生异常时快速恢复到正常工作状态;软件复位则是由程序通过写入寄存器产生的,可以控制复位时机和复位范围。不同的复位类型适用于不同的需求场景。3.复位延时在STM32系统中,由于复位电路需要时间来完成初始化和清除操作,因此需要一定的复位延时来保证系统稳定。通常情况下,复位延时可以设置为几毫秒到几十毫秒不等,具体取决于系统的复杂程度和初始化工作量。需要注意的是,在设计复位延时时,需要考虑复位信号源的稳定性和干扰情况,以确保延时时间的准确性和稳定性。总之,在STM32复位电路的设计中,需要综合考虑多个因素,包括复位信号源、复位类型和复位延时等。在进行设计时,需要根据不同的应用场景选择不同的方案,同时也需要注意电路的稳定性和可靠性,以确保系统在异常情况下能够快速恢复到正常状态。第3章硬件电路设计3.1DHT11温湿度模块我们的系统需要实时监测油罐环境的温度情况,因此我们选择了DHT11温湿度传感器来采集这些数据。DHT11具有多个优点:首先,它内部融合了感温单元和湿度检测单元,能够更加准确地测量数据;其次,它带有小型处理器,可以对传感器数据进行快速处理,并将处理后的数据发送给单片机处理器。DHT11只需要使用一根数据线来与单片机进行通信,所占用的引脚较少。通过采用单数字总线技术来实现数据通信功能。下图3.1展示了DHT11温湿度传感器的实物图。因此,我们可以方便地使用DHT11传感器来采集并传输温湿度信息,从而实时监测和检测环境的变化。图3.1DHT11温湿度传感器实物图温湿度系统的程序设计流程需要经过初始化、传感器初始化、数据采集转换和液晶显示等步骤。首先,进行初始化是十分关键的步骤。在该过程中,系统需要完成各种参数的设置和设备的连接,并确保系统能够正常运行。接下来,就要对DHT11传感器进行初始化。此时,需要将与温湿度传感器模块相应的引脚进行配置,在此基础上才能进行数据采集。在数据采集后,单片机需要对采集到的数据进行转换。这有助于系统更好地处理数据,实现准确的温湿度测量。最后,将数据展示在液晶显示器上是非常关键的一步。通过展示采集到的数据,用户可以更直观地了解环境的温湿度情况。该流程包括系统初始化、DHT11初始化、温湿度采集、数据转换以及液晶显示器的数据展示等步骤。这些步骤被合理地组合在一起,使得该系统的设计流程十分清晰明了。该系统可以广泛应用于各种场合,例如环境监测、气象预报等领域,为人类提供更加准确、方便的服务。通过对温湿度数据进行监测和分析,该系统有助于人们更好地了解环境的变化,并采取相应的措施来保护环境和人类健康。使DHT11监测温度和湿度,首先需要将硬件接口连接,把VDD引脚接到stm32的3.3V供电口,把GND引脚接到GND端口,GPIO口设为输出模式,输入高电平持续40毫秒,并把DATA口变为输入模式然后等待读取数据,以下是DHT11部分代码:以下是从DHT11读取一个位: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; }以下是从DHT11读取一个字节:u8DHT11_Read_Byte(void){ u8i,dat; dat=0; for(i=0;i<8;i++) { dat<<=1; dat|=DHT11_Read_Bit(); } returndat;}以下是从DHT11读取一次数据://temp:温度值(0~50℃)//humi:湿度值(20%~90%)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串口设计首先,该子程序需要进行初始化设置,包括串口通讯参数、中断优先级等。接着,在系统运行过程中,当需要发送短信时,单片机内部程序会触发串口中断,并执行对应的中断处理程序。完毕后,单片机将从中断处理程序中返回,恢复正常状态,继续进行系统信号的检测和处理。USART是一种通用异步收发传输模块,可以支持串行通信协议。USART串口通信通常用于与其他设备或模块进行数据通信.要使用USART进行串口通信首先要配置其运行参数并配置GPIO引脚用于连接数据和传输线路以下是串口的主要代码:voidUSART2_Config(void){GPIO_InitTypeDefGPIO_InitStructure;USART_InitTypeDefUSART_InitStructure;NVIC_InitTypeDefNVIC_InitStructure;/*configUSART2clock*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);/*USART2GPIOconfig*//*ConfigureUSART2Tx(PA.02)asalternatefunctionpush-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);/*ConfigureUSART2Rx(PA.03)asinputfloating*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置NVIC中断分组2:2抢占优先级,2位相应优先级NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn;//是能串口2中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//先占优先级2级NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;//从优先级2级NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//是能外部中断通道NVIC_Init(&NVIC_InitStructure);/*USART2modeconfig*/USART_InitStructure.USART_BaudRate=9600;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);USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//开启中断USART_Cmd(USART2,ENABLE);}3.3液晶显示子程序设计在数据采集方面,该系统需要获取必要的数据信息。这些数据可能来自多个传感器或外部设备,并且需要经过一定的处理才能被正确地显示在液晶屏上。该系统需要在液晶显示器状态判断方面确保液晶显示器处于空闲状态才能进行数据发送,如果液晶显示器正在忙碌,则不能进行数据发送。在进行数据发送时,若液晶显示器处于空闲状态,则该系统通过验证将数据发送到液晶显示器上。同样地,如果液晶显示器忙碌,则无法进行数据发送。最后,在信息显示方面,该系统需要确定要展示数据的位置和内容,以确保信息清晰可见。这可以通过对发送数据进行处理和优化实现。总之,该系统的设计流程包括了数据采集、液晶显示器状态判断、数据发送和信息显示等关键步骤。通过合理的流程设计和优化,该系统可以高效地实现数据显示功能,为用户提供更好的使用体验。显示位置设置显示位置设置显示内容设置液晶数据更新液晶初始化开始写检测忙Y图4.2OLED液晶显示器程序设计流程图要使用OLED显示器首先要初始化oled,再定义屏幕像素数和显示模式,将需要显示的位图和文本数据写入OLED屏幕,使用底层驱动程序(如I2C或SPI接口)将数据传输到OLED屏幕内存中,还需要刷新oled屏幕,显示新的数据。以下是oled的部分代码:清屏函数:voidOLED_Clear(void){ u8i,n; for(i=0;i<8;i++)for(n=0;n<128;n++)OLED_GRAM[n][i]=0X00; OLED_Refresh_Gram();//更新显示}以下是画点函数:voidOLED_DrawPoint(u8x,u8y,u8t){ u8pos,bx,temp=0; if(x>127||y>63)return;//超出范围了 pos=7-y/8; bx=y%8; temp=1<<(7-bx); if(t)OLED_GRAM[x][pos]|=temp; elseOLED_GRAM[x][pos]&=~temp; }以下是oled初始化代码:voidOLED_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能A端口时钟 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10|GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//速度50MHz GPIO_Init(GPIOB,&GPIO_InitStructure); //初始化GPIOB10,11 GPIO_SetBits(GPIOB,GPIO_Pin_10|GPIO_Pin_11); OLED_WR_Byte(0xAE,OLED_CMD);//关闭显示 OLED_WR_Byte(0xD5,OLED_CMD);//设置时钟分频因子,振荡频率 OLED_WR_Byte(80,OLED_CMD);//[3:0],分频因子;[7:4],振荡频率 OLED_WR_Byte(0xA8,OLED_CMD);//设置驱动路数 OLED_WR_Byte(0X3F,OLED_CMD);//默认0X3F(1/64) OLED_WR_Byte(0xD3,OLED_CMD);//设置显示偏移 OLED_WR_Byte(0X00,OLED_CMD);//默认为0 OLED_WR_Byte(0x40,OLED_CMD);//设置显示开始行[5:0],行数 OLED_WR_Byte(0x8D,OLED_CMD);//电荷泵设置 OLED_WR_Byte(0x14,OLED_CMD);//bit2,开启/关闭 OLED_WR_Byte(0x20,OLED_CMD);//设置内存地址模式 OLED_WR_Byte(0x02,OLED_CMD);//[1:0],00列地址模式;01,行地址模式;10,页地址模式;默认10; OLED_WR_Byte(0xA1,OLED_CMD); //段重定义设置,bit0:0,0->0;1,0->127; OLED_WR_Byte(0xC0,OLED_CMD); OLED_WR_Byte(0xDA,OLED_CMD);//设置COM硬件引脚配置 OLED_WR_Byte(0x12,OLED_CMD);//[5:4]配置 OLED_WR_Byte(0x81,OLED_CMD);//对比度设置 OLED_WR_Byte(0xEF,OLED_CMD);//1~255;默认0X7F(亮度设置) OLED_WR_Byte(0xD9,OLED_CMD);//设置预充电周期 OLED_WR_Byte(0xf1,OLED_CMD); OLED_WR_Byte(0xDB,OLED_CMD);//设置VCOMH电压倍率 OLED_WR_Byte(0x30,OLED_CMD); OLED_WR_Byte(0xA4,OLED_CMD);//全局显示开启 OLED_WR_Byte(0xA6,OLED_CMD);//设置显示方式 OLED_WR_Byte(0xAF,OLED_CMD);//开启显示 OLED_Clear();}第4章软件系统设计4.1软件程序设计本系统工作的第一步是进行初始化,完成后开始进行数据信息采集。此次采集主要包括温度信息、压力信息以及火焰信息,并将其显示到夜间显示器上。如果发生火焰、压力异常或者温度超标等情况,该系统会自动进行报警,并通过电话形式进行报警,系统在进行工作的过程当中还会采集司机是否按下紧急求救按键,当司机按下紧急求救按键时,也会进行紧急报警功能。其主程序设计流程图如下,图4.1显示:参数异常或者司机求救?参数异常或者司机求救?声光报警GSM报警结束开始温湿度,压力,火焰采集系统初始化液晶显示 NY图4.1主程序设计流程图4.2上位机界面本次基于GSM的油罐车监测系统是一款为了提高油罐车运输安全而设计的实时监测系统,油罐车监测系统主要由上位机和下位机组成,在本设计中上位机尤为关键,油罐车内的实时情况全靠上位机来得知,当数据超出阈值时,上位机会第一时间得知,可以第一时间采取处理措施,以免造成更大危机。Eclipse是一款基于Java的开源集成开发环境(IDE),可用于开发各种应用程序,如Java应用、Web应用、移动应用嵌入式系统等。Eclipse是一个完全开放源代码的IDE,它是由Eclipse基金会维护开发的。Eclipse基金会是一个非营利性组织,它的宗旨是推动共同协作和创新,为开发人员提供一个高效、灵活和可扩展的开发工具。总之,Eclipse是一款非常强大和灵活的开发工具,它可以适用于各种应用和开发环境,可以提高开发效率和质量.本系统采用STM32单片机,结合火焰传感器、温湿度传感器和压力传感器来进行数据采集。采集到的数据将通过LED显示屏进行显示,同时通过串口连接到上位机,把数据传输到上位机中如图4.2。图4.2上位机界面第5章系统测试在系统整个设计完成后,需要对其进行验证,以确保硬件和软件部分能够正确工作并具有较高的可靠性,以应用于实际现场。同时还需要进行相应的调试来解决可能存在的问题。调试过程主要分为硬件系统调试和软件系统调试两个方面。在硬件系统调试方面,需要确保各个硬件模块之间的连接正常,电源稳定,元器件选型合理等因素都符合要求。此外,还需要对每个硬件模块进行功能测试,确保它们能够正常工作,并且满足系统预期的目标。在软件系统调试方面,需要对系统进行全面测试,包括各个软件模块之间的交互、数据传输是否准确等。同时,需要测试系统在不同环境下的运行情况,以及对错误的处理和恢复能力。在进行调试时,需要采取科学的方法,通过逐步排查来找到问题的根源,并采取针对性的措施进行解决。在调试过程中需要记录详细的信息,如错误日志、调试结果等,以便于追溯问题和做出相应的改进。总之,调试是一项非常重要的工作,在系统设计完成后必须认真对待。通过认真的调试,可以有效提高系统的可靠性和稳定性,确保其能够正常地应用于实际场景中。5.1系统硬件电路的调试在硬件系统调试过程中,需要对硬件部分的所有组成部分进行仔细检测。首先要观察各个芯片引脚是否正常工作,确保它们能够正常接收和发送信号。其次还需要检查电路板部分是否存在虚焊或转换不良等情况,保证整个系统的连接稳定性。当系统的各个电源模块都可以正常工作时,需要测试单片机系统是否能够正确地执行程序,并且确认GSM是否能够成功地发送信息。这样可以确保系统的每个部分都能够正常工作,从而满足系统设计的需求。为了更好地掌握硬件系统的调试状况,可以使用图表来记录各项检查的结果。例如,可以使用下图5.1来记录整个系统硬件部分的焊接状况,以及其他重要的测试指标。在进行调试时,需要采取谨慎的态度,耐心排查可能存在的故障,并逐步解决问题。同时也需要充分利用现代化的工具和设备,如示波器、逻辑分析仪等,来帮助检测问题所在。总之,在硬件系统调试过程中,需要仔细检查每一个部分,确保它们正常工作。通过这种方式,我们才更能保证整个系统的稳定性和可靠性。图5.1硬件系统设计图5.2系统软件调试系统的软件调试主要是对软件部分程序的编写进行调试。为此,我们使用了STM32单片机,该单片机可在使用过程中实现程序编写的功能。为了完成编写任务,我们将主要使用KEIL5软件。该软件支持汇编语言和C语言编写程序,并可提供相应的调试功能。在编写程序时,我们需要仔细检查每个模块的代码,确保它们符合系统设计要求。同时,为了确保程序运行的正确性,我们还需要进行一系列的调试工作。通过这些调试工作,我们成功地实现了该套系统的正确运行,在下图5.2中展示了调试结果。在进行软件调试时,我们需要采用科学的方法,通过逐步排查来找到问题的根源,并采取针对性的措施进行解决。我们还需要记录详细的信息,如错误日志、调试结果等,以便于追溯问题和做出相应的改进。总之,软件调试是系统开发中非常重要的环节。通过认真的调试工作,我们可以确保软件部分程序的正确性和稳定性,从而提高整个系统的可靠性和性能。图5.2软件调试成功界面5.3GSM模块调试使用GSM模块时,需要使用串口助手进行调试。首先需要检测GSM模块是否正常工作,并根据系统编码方式对不同报警信息进行编译和调试。在调试过程中,我们使用串口助手模块,并选择与系统匹配的COM接口。接着,将波特率设置为9600,设置好相应的格式即可开展调试工作。在上电之后,我们通过发送AT指令来测试GSM模块是否能够正常工作。如果该GSM模块能够返回OK指令,则证明该系统与电脑终端之间的连接正确,并且成功实现了串口功能的发送。下图5.3展示了GSM模块调试的结果。在进行GSM模块调试时,我们需要注意以下几点。首先,要确保选用的串口助手模块和GSM模块兼容,并且能够支持相应的波特率和数据格式。其次,我们还需检查GSM模块的硬件连接是否正确,如供电、信号传输等方面。最后,我们需要详细记录调试过程的结果,并及时处理发现的问题。总之,在使用GSM模块时,通过串口助手进行调试是非常必要的。只有经过认真的调试工作,才能保证该模块能够正常工作,从而满足系统的设计要求。第6章总结与展望本文主要介绍了基于GSM的油罐车监测系统设计。该系统通过使用GPS和传感器技术,能够实时监测油罐车的实时位置、车速、油量以及温度等信息,并将这些信息通过GSM网络传输到服务器上进行处理。通过对这些信息的分析和处理,可以有效地提高油罐车的管理效率和安全性。在系统设计中,我们主要采用了AT指令控制芯片、传感器和GSM模块等技术。其中,AT指令控制芯片负责与GSM模块之间的通信。通过这些技术的协同作用,我们成功地实现了油罐车的实时监测。在系统实现过程中,我们还存在一些问题。首先,由于GSM网络的限制,系统的数据传输速度较慢,需要对数据进行压缩和优化,由于传感器的灵敏度和可靠性不同,可能会导致数据的误差和不稳定性。在未来的工作中,我们将继续优化系统设计,解决现有问题。首先,我们可以采用更高效的数据传输技术,如4G网络和NB-IoT等技术,以提高数据传输速度和稳定性。其次,在实现GPS定位功能时,我们可以结合其他定位技术,如北斗卫星定位、惯性导航等技术,以提高精度和可靠性。最后,我们还可以通过引入更加高精度和可靠的传感器,以提高油罐车监测系统的准确性和稳定性。总之,基于GSM的油罐车监测系统设计是一项具有广泛应用前景的技术。通过不断地创新和优化,我们相信这项技术将会在未来得到进一步的发展和应用。
参考文献[1]鲁鹏,黄道涛.油罐车运输安全分析及对策研究[J].中国
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于二零二四年行业标准的产品研发合同
- 汽车租赁发票合同模板
- 终止房屋租赁合同协议书
- 2024版库房货物储存方案设计承包协议3篇
- 延边场地租赁合同范例
- 模具合同模板集合
- 租赁花卉服务合同范例
- 纸塑合同范例
- 砂锅设备转让合同模板
- 礼品展柜采购合同模板
- 人教版八上名著阅读《昆虫记》分章练习(含答案)
- Q∕GDW 12131-2021 干扰源用户接入电网电能质量评估技术规范
- 统编版九年级语文下册第3课《短诗五首》优秀课件
- 食堂食品采购与进货验收台帐
- 煤矿班(组)长安全培训大纲
- 美国的标准体制
- DB62∕T 4420-2021 淫羊藿栽培技术规程
- 泰康之家养老社区产品标准——关键点
- 剪纸艺术进校园活动简报
- 浅谈小学数学教学中如何培养学生的核心素养
- 小学入门数独100题(简单)
评论
0/150
提交评论