基于STM32的内河船舱环境在线监控系统设计

2022-05-12 版权声明 我要投稿

摘要:对于行驶在以长江流域为主的内河船舶而言,船舶舱内的环境监测系统存在检测功能单一、监测设备落后和监测不够及时的问题。为了解决上述问题,保障船员和舱内货物的安全,将传感器、STM32单片机和物联网连接起来,设计出适用于内河船舶的舱内环境在线监测系统。首先用检测装置将舱内温度、湿度和烟雾浓度等数据通过STM32处理;然后将处理后的数据通过通讯装置传入物联网平台,云平台将数据分析整理;最后使用移动设备或者PC端在线访问、实时显示,对超出设计阈值的参数进行报警,达到监测舱内环境的目的。实验结果表明,运用此系统能快速、准确地在线监测舱内环境,迅速报警。

关键词:船舱环境监测;STM32单片机;传感器;物联网;报警

引言

上世纪六十年代,计算机和自动化技术迅速发展,日本、丹麦等发达国家对船舶监测技术的研究较为深入,率先设计出集中式机舱监测系统,七十年代初设计出集散式监测系统,八十年代初推出现场总线式监测系统[1]。在九十年代后期,总线式检测系统不断完善和成熟,被广泛使用于船舶舱内网络监控中。然而国内船舶舱内环境监测系统的研发和应用晚于国外,直到八十年代后期才研制出一些具有代表性的检测系统[2]。

近年来,随着船舶行业的蓬勃发展、电子技术的广泛应用、嵌入式系统的更新换代以及网络速度的不断提高[3],人们对船舱环境的安全度和舒适度、对检测数据的快速性和实时性提出了新要求。目前大型客运轮船、集装箱船和远洋航行船等船舶都搭载有非常先进的船舶环境监测系统[4]。

但对于在长江、黄河流域和其他内陆河流行驶的小、中型船舶来说,由于存在航行的重要通航水域复杂、船只流量大、船舱使用频率高和人员流动快等因素,使得船舶舱内环境复杂多变[5],对船舱进行系统的环境监测极为重要。在对长江和嘉陵江上的上百艘船舶进行调查后发现:虽然大多数船上安装有必要的灭火装置,但船员出于对监测设备安装成本的考虑,很多船舶仅安装有传统的温度计、湿度计等极为简单的检测装置,还有少数船舶安装的监测装置不能正常使用,甚至有的船舶没有安装监测装置和报警装置。

为了降低监测装置安装成本、保障船舱设备设施正常运行、加大船舶运输货物监测力度、提高船员与乘客舒适度和安全度,本文设计出基于STM32单片机的环境在线监测系统,该系统由数据采集装置、数据处理装置、网络传输装置和物联网云平台组成。该系统能够在监测面板、手机和电脑屏幕上实时在线监测舱内温度、湿度和烟雾浓度等参数,当某项参数超过设计阈值时,能够及时报警。对系统进行试运行和调试后,能够实现预期监测功能,达到较为满意的效果。

1硬件系统设计

1.1数据采集系统

1.1.1MQ-2气体传感器

在内河船舶船舱中,一般储存有酒精、甲烷和液化气等易燃易爆的燃料,这些燃料在舱内复杂多变的环境下极易发生火灾,危及船上人员安全,因此需要对舱内空气中可燃气体的浓度进行实时检测,提前削弱可能发生火灾的因素。MQ-2传感器采用以氧化锡(SnO2)为主的气敏材料,该材料在空气中的电导率极低,但随着可燃性气体浓度的增加,电导率会变高[6]。氧化锡对于可燃气体浓度的灵敏度是非线性的,因此电导率的变化也是非线性的,且该非线性趋势随着气体浓度的增加而上升。空气中甲烷(CH4)含量达到5%以上或氢气(H2)在空气中的体积浓度达到4%以上就易引发火灾,因此可以在非线性特性曲线的前半段选择一个区间作为警戒区,以提高检测灵敏度。

运用氧化锡的这些特点,将其对气体浓度的敏感度转化为电压大小的变化,从而获取舱内可燃性气体浓度的大小[7]。表1为MQ-2气体传感器对几种物质的浓度探测范围,其中ppm为体积浓度,表示每立方米的大气中含有污染物的体积,如1ppm为1cm3/m3。可根据此范围编制对应程序,设计相关监测阈值。

MQ-2传感器共有4个引脚,分别是电源(5V)、数字果,降低检测误差。使用此传感器的模拟输出端口监测空气中甲烷的浓度,将模拟端口接入单片机的PA7口。

1.1.2MQ-135空气质量传感器

引发火灾的原因很多,可燃气体浓度过高只是诱发火灾的一个因素,不能监测到人为因素(船上吸烟随意丢弃的烟头)、电气设备短路等引发的火灾。当火灾发生时,空气中的硫化物和烟雾等有害物质含量剧增,可以使用MQ-135传感器检测空气中此类有害气体的浓度。舱内火灾一旦发生,由于大多数船舱处于封闭和

半封闭状态,该传感器能够快速监测到有害气体浓度的变化,并将该变化立即传送给STM32单片机进行处理。图1为该传感器的灵敏度特性,横坐标为气体浓度,变化范围在10ppm~1000ppm;纵坐标为该传感器的Rs/Ro(电阻比),其中Rs表示传感器在不同浓度气体中的电阻值,Ro表示传感器在100ppm氨气(NH3)中的电阻值。

此传感器价格便宜,测量准确、反应速度快、使用寿命长并且稳定可靠。该传感器引脚和MQ-2传感器相似,本次设计使用单片机的PA6口接入此传感器的模拟量输出口。

1.1.3DHT-11温湿度传感器

河面湿度大,船上的货物(蔬菜瓜果、干货等)极易受潮,需要将舱内的温度和湿度保持在合理的范围。为了保障船上人员舒适,延长货物保存时间,需对船舶舱内环境的温湿度进行监测。本次设计使用DHT-11温湿度传感器同时采集船舶舱内环境中的温度和湿度,其内部由电阻式感湿器件、NTC测温器件和一块小型单片机。该传感器性价比高,抗干扰能力强,使用数字信号进行输出。该传感器有4个引脚,由电源(5V)端、串行数据、空引脚和接地端组成[6]。使用单片机PB14端口连接传感器的串行数据,对串行数据进行访问和分析。

1.2数据处理装置

数据处理装置是系统进行运算分析、数据通信必不可少的核心部件,也是价格最高的装置。对目前的芯片市场进行调查后,充分考虑到使用成本和实用性的要求,本次设计使用ARM处理器(AdvancedRISCMachines)的STM32F103C8T6型号的芯片[9]。

这款芯片性能高、价格和功耗低,而且能够满足本次设计的要求,采用图2所示的基于STM32单片机为核心的集成板进行监测系统的设计开发。

图3所示为该系统核心的电路图,该电路图主要集成有STM32F103C8T6主控制器、MicroUSB接口、BOOT(分为0和1两个管脚,作用是让芯片复位后从不同区域开始执行程序)选择、RTC(RealTimeClock)晶振、电源指示灯、主晶振、复位键、SWD(SerialWireDebug)调试接口和PC13指示灯。

此芯片为32位的处理器,最高能达到72MHz的主频。除了具备一般单片机(如Intel80C51、STC90C516等)的相关配置以外,还具有51个I/O接口、8个定时器,通信接口丰富。工作环境能在-40℃~105℃下稳定运行。使用ST-Link(意法半导体公司开发的基于STM32

单片机的测试工具)调试器对STM32单片机系统进行设计和测试,现在已经更新到了第三代,本次设计使用的是运用成熟的ST-Link/V2对系统进行仿真和调试[10]。在使用的过程中非常方便稳定,单片机系统组成框图如图4所示。

1.3网络传输装置

与远洋航行船舶不同的是,在内陆河流行驶的船舶一般在4G/3G/2G的覆盖范围之内,甚至在某些地段的河流(如重庆朝天门码头、武汉长江航运中心等)能够使用5G通信[11]。另外,为了方便乘客和船员对网络的需求,内河船舶大多在船上安装有WIFI装置,这方便了网络传输装置与物联网云平台的直接连接,本次设计采用这种无线模式实现对环境检测装置的远程管理。目前市场上WIFI设备非常多,价格不一,如CC3200、MT7681等,综合考虑成本与性能因素,最终选用ATK-ESP8266作为系统的WIFI网络传输装置。该装置价格低廉、性能高、开发环境便利、兼容3V与5V的单片机,与主控芯片连接极为方便。此模块主要是通过串口与STM32进行通讯,模块内部集成了TCP/IP协议(TransmissionControlProtocol/InternetProtocol),能够完成WIFI模块使用以SSD1306芯片为核心的0.96寸显示屏,SCK(时钟信号)和SDA(数据信号)分别连接单片机的PB12和PB13口。

报警器使用的是S8550三极管来驱动的蜂鸣器,工作电压在3.3V~5V,报警声能达到70dB~80dB。当温湿度等值超过预设值,STM32会向PA3输入低电平信号,即该模块的I/O口呈低电平,蜂鸣器就会长鸣报警。系统硬件的设计思路如图5所示:主控制器STM32F103C8采集温湿度和烟雾浓度等数据,然后与设计阈值对比判断,将结果在LCD液晶显示器上显示出来,并通过WIFI上传至物联网平台。一旦CPU检测到低于设定值的参数,蜂鸣器就会发出报警。用户可通过物联网官网下载手机端物联网应用,监测各传感器数值。

2软件系统设计

和STM32串口通讯之间的信号转换。支持WIFISTA(WIFIStation)、串口转AP(AccessPoint)和WIFISTA+WIFIAP三种模式。由于主控芯片的电源在设计时预留了多个3.3V电源接口,所以可以用主控器多余的电源接口为ATK-ESP8266提供电源,中间要加入以线性稳压器RT9193-33为核心的稳压模块,在使用时只需把VCC(电源),GND(接地),TXD(TransmitExternalData),RXD(ReceiveExternalData)与主控器的电源、GND、PB11和PB10连接起来。

2.1系统软件设计流程

整个系统的软件设计流程如图6所示,首先对系统各个硬件资源分配和初始化(如频率、定时器、系统引脚和模拟转换等);然后把得到的温湿度值、易燃气体和有害气体浓度值经对应引脚上传单片机,单片机将各种传感器检测的数值作为判断的条件进行判断,超出设计值就改变蜂鸣器引脚状态,否则返回继续监测;将不断检测的数据(包括异常值)通过UART(异步串行全双工)通信串口与WIFI模块通信。WIFI模块先与舱内的WIFI网络连接,再与物联网云平台进行连接,并在终端上实时显示舱内环境状况和异常状态。

2.2外设软件设置

由于MQ-7和MQ-135的引脚输出信号为模拟量信号,所以软件部分要用到STM32的ADC功能(模数转换功能)[10]。STM32F103C8T6单片机内有3个ADC功能,本次设计采用ADC1进行资源的配置和处理。为了对传感器的数据进行采样、量化和编码,首先要对ADC进行系统初始化,ADC使能和校准等操作。ADC的参数设置主要有:ADC的工作模式、通道模式、转换模式、数据对齐方式和通道数目等。在编写ADC设置时,进行连续转换模式设置,数据左对齐,软件触发,独立模式,1个通道数,扫描模式设置,使能指定ADC外设,使能复位校准,等待复位校准结束,开启A/D校准,等待A/D校准结束,最后进行通道采样值、通道地址获取等设置。在软件编写过程中,为了方便开发和理清逻辑关系,大量使用库函数对程序进行开发。

DHT-11的DATA接口和单片机进行串行通讯,为单总线数据格式,通讯一次时间大约4ms。传输一次的数据为40bit,从高位到低位依次为:湿度整数8位、湿度小数8位、温度整数8位、温度小数8位和校验码8位。根据DHT-11数据手册中的时序图可知,通信流程为:主机发送开始数据,在收到答复后主机拉高信号线,再一次性接收40位的数据[13]。在程序设计时,根据此传感器发送数据的形式,需要按传感器等待信号处理的时间进行程序设计。

显示屏采用IIC通信(Inter-IntegratedCircuitBUS),这种通信必须在发送或者接收数据前,识别到IIC总线上的从地址。设备必须回复从地址,以一个字节的大小通过从地址位(SA0位)并且配置读写选择位(R/W

位)。IIC总线上的信息传送是根据SCL系统(SystemClockLine)的时钟信号,在单独的一个SCL时钟周期内发送一次数据位[14]。具体设置根据SSD1306显示屏的使用手册,配合编码器对本次设计使用到的汉字进行编码录入。

报警器采用有源蜂鸣器模块,内部带有震荡源,在软件设计时采用PWM(脉宽调制)控制技术,通过使用2kHz~5kHz的方波,让报警器发出4种不同节奏的声音,通过声音的快慢和尖锐度表示超过设计阀值的大小。

2.3物联网云平台

设备连接网络需要使用ATK-ESP8266模块建立通讯,在配置通讯功能时,难度较大。而使用机智云物联网开发平台时,GAgent固件自动兼容ATK-ESP8266模块,GAgent是一款能够提供手机和云端到设备的应用程序,进行简单的操作就能实现入网配置、发现WIFI、绑定设备等功能[15]。GAgent在实际使用过程中,只需要专注于对设备的运行逻辑进行开发,功能十分强大,在云平台下载固件,提取其中的通讯代码,将代码进行配置后运用对应的烧录工具移植到模块中,即可完成配置入网。

系统设备可通过AirLink和SoftAP两种接入模式进行联网,第一种模式主要是接收特定编码,在手机连接WIFI以后,通过手机APP与编码进行校正,自动完成设备与手机连接;第二种模式相当于热点,手机可以直接与设备连接。以上两种模式可以通过调用gizwitsSetMode()配置接口函数实现,此函数还能配置WIFI设备复位。

还需要对设备进行下行处理(处理云平台或者手机APP发送过来的控制命令)和上行处理(主要是上报设备状态),相关函数的调用和使用方法见表3和表4。

4其他扩展装置

总共设计了四个按键,其中KEY1键为普通按键,又是WIFI初始化键、唤醒键,为高电平触发,连接到PA0口;KEY2键是作为普通的按键使用,连接在PB5上,为低电平触发。KEY3键为确认或者翻页按键,低电平有效。KEY4键是功能选项键,也是WIFI配置键。

上一篇:高速铁路牵引系统谐波及其对地区电网的影响下一篇:关于中国特色社会主义政治经济学在主流经济学中地位的若干问题