张素萍 高照阳 张建芬
(1.天津中德职业技术学院,天津 300350;2.上海交通大学上海市复杂薄板结构数字化制造重点实验室,上海 200240; 3.暨南大学珠海校区,广东 珠海 519070)
基于STM32微控制器的无线水塔远程监控系统
张素萍1高照阳2张建芬3
(1.天津中德职业技术学院,天津 300350;2.上海交通大学上海市复杂薄板结构数字化制造重点实验室,上海 200240; 3.暨南大学珠海校区,广东 珠海 519070)
针对目前农村集中供水实时监控自动化水平低下、人力成本较高和施工布线繁重的问题,提出基于STM32微控制器的无线水塔远程监控解决方案。根据方案进行了系统硬件和软件设计。系统以STM32F103RC微控制器作为下位机控制核心,通过Keil uVision3集成开发环境,采用C语言设计了智能数据采集终端和智能网关MCU应用软件,实现了现场多个水塔水位信息的实时采集和水泵实时控制。整个系统采用PC机作为上位机监控中心,基于LabVIEW 2012开发环境进行上位机监控中心数据管理软件开发,实现向下位机发送监控命令,同时对现场多个数据采集终端的采样数据进行存储、处理、显示及统计等功能。
无线远程监控 水塔 数据采集 STM32 ZLG7289A LabVIEW
农村集中供水是当前国家为解决农村生活用水问题的一项重大举措,它直接关系到居民生活用水质量安全。农村集中供水具有工作效率高、自动化管理及节省人力资源成本等优点。但是,由于供水范围扩大,用户不断增多,对水塔的供水能力提出了更高的要求。为了保障农村居民用水,一般一个集中供水点建有多个水塔对居民进行供水,但是多个水塔之间距离较远,这给水塔监控带来不便[1]。目前对多个水塔自动供水的实
时监控常采用有线方式,但是这种方式经常需要重新布线,给施工带来诸多不便,而且,硬件线路容易老化或遭到腐蚀磨损,系统发生故障的概率大幅增加[2,3]。为了及时、稳定、可靠地对多个水塔进行实时监控和数据管理,笔者结合STM32微控制器和无线射频传输的优势,提出了一种基于STM32微处理器的无线水塔远程监控解决方案。
系统总体架构框图如图1所示。
图1 系统总体架构框图
基于STM32微控制器的无线水塔远程监控系统上电后,各智能数据采集终端首先进行初始化,读取内部FLASH中存储的系统参数,然后配置STM32微控制器内部的A/D转换器,启动A/D转换器对相应水塔水位模拟数据进行采集,而后根据实时水位数据执行水泵控制程序,控制水泵的打开与关闭。同时,各智能数据采集终端在实时运行过程中,通过无线射频传输模块实时监听上位机发送过来的监控命令(数据采集、水泵控制、参数设置),当监测到是发送给本机的水泵控制或参数设置命令时,执行水泵控制程序或MCU水位上下限参数设置程序;当监测到是发送给本机的数据采集命令时,将MCU内部暂存的最新水位数据、水位上下限参数设置和水泵实时状态按照约定的协议通过智能网关上传到上位机,由上位机进行水塔实时水位数据的存储、处理、显示、汇总、统计及报表打印等工作。
2.1系统关键元器件选型
根据系统工作原理可知,智能数据采集终端和智能网关需要选择一个MCU作为控制核心。基于尽可能选用成熟电路和元器件的原则,硬件电路设计要留有一定的硬件资源和接口,便于系统功能扩展与升级,嵌入式MCU要具有丰富的外设资源[4]。在此选用基于Cortex-M3的STM32微控制器STM32F103RC作为智能数据采集终端和智能网关的控制核心。
传统的水位检测是通过设立检测点来完成对水位的检测。通常,由于受检测点物理体积的影响,水位检测点的数目有限,从而影响了后续电路控制的精度[5]。鉴于此,系统选用北京某公司生产的投入式液位变送器MPM426W作为本系统的水位传感器。该传感器具有使用寿命长、安装方便、温度稳定性好及一体化结构等优点,输出电压为0~5V,可以达到对水位高度的精确检测,利于提高后续电路控制的精度。
传统的人机接口通常采用8255及8155等并行扩展芯片或者可编程键盘、显示驱动芯片Intel 8279进行人机接口设计。该设计方案存在占用IO资源多、电路设计复杂、功耗较高、体积大及不易编程等缺点[6]。而ZLG7289A是具有SPI串行接口功能,可同时驱动8位共阴式数码管或64只独立LED的智能显示驱动芯片,该芯片还可同时连接多达64键的键盘矩阵,单片机即可完成LED显示﹑键盘接口的全部功能。鉴于此,系统采用键盘和显示集成芯片ZLG7289A进行人机接口设计。
无线传输模块选用433MHz高度集成半双工无线射频模块VT-DTMSD3-433。该模块采用MCU对数据进行封装和处理,用户只要通过UART接口,即可实现透明的无线数据通信,具有通信距离远(可靠传输距离可达5km)、功耗低、体积小、接口灵活、使用简单及工作稳定等优点。对用户来说,无线通信部分不需要控制,数据包没有固定格式,只需将模块当成UART终端使用即可,为开发人员开发无线产品缩短了周期。
2.2智能采集终端硬件
智能采集终端硬件主要包括晶振、电源、水塔水位模拟数据采集、键盘和LED显示、水泵执行机构、蜂鸣器报警以及无线射频通信模块接口等硬件电路模块。智能采集终端硬件结构框图如图2所示。
图2 智能数据采集终端硬件结构框图
在图2中,晶振电路部分采用8MHz的外部无源晶振加两个30pF的独石电容设计方法,然后经过STM32微控制器内部的PLL电路,将其倍频成72MHz的系统时钟,作为系统的最终运行时钟;电源部分采用5V电源适配器,经过电源芯片LM1117MPX-3.3将电源适配器输出电压(5V)转换为系统的工作电压(3.3V);对于水塔水位模拟数据采集部分,水塔水位压力传感器输出的模拟信号电压为0~5V,而STM32微控制器内部12位A/D转换器输入电压范围为0.0~3.3V,所以需要经过信号调理电路将其转换成与A/D转换器相匹配的输入电压;对于键盘和显示部分,ZLG7289A与STM32微控制器的接口采用三线制SPI串行总线,由/CS、CLK和DATA这3根信号线组成。/CS和CLK是输入信号,由STM32微控制器提供。DATA信号是双向的,必须接到STM32微控制器上具有双向功能的I/O端口上。此外,/KEY为按键发生标志信号,可接到STM32微控制器相应的一个GPIO引脚上,然后将其配置成中断输入。水泵执行机构控制和蜂鸣报警电路采用光耦芯片TLP521-2将MCU内部的弱电信号和外部的强电信号进行光电隔离,然后驱动固态继电器控制水塔水泵的开和关,或者驱动蜂鸣器进行声音报警,有利于提高系统的抗干扰性。无线通信接口部分采用STM32微控制器内置的UART1与无线射频模块进行串行通信。
2.3智能网关硬件
智能网关硬件主要是基于STM32微控制器的最小系统设计,相对来说比较简单,这里不再详细介绍。
系统软件设计包括智能数据采集终端MCU应用软件设计、智能网关MCU应用软件设计和上位机数据管理软件设计3个部分。其中,智能网关MCU应用软件实现的是对上位机发送的监控命令和智能数据采集终端发送的采样数据进行转发的功能。其软件设计比较简单,限于篇幅,这里不做详细介绍。
3.1系统软件通信协议约定
为提高系统数据通信的抗干扰性、稳定性、可靠性和准确性,上位机和下位机必须按照约定的通信协议进行通信。协议命令见表1。
表1 上位机和下位机通信命令格式
表1所示的协议命令采用字节型数据进行传输,每条协议命令共有12Byte,其中BYTE0和BYTE1是起始标识符,用来作为识别命令开始的标志,在系统中分别用0X55、0XAA进行标识。BYTE2为地址标识符,采用独立地址为8个智能数据采集终端进行地址编号,以便加以区分。BYTE3为命令类型字节标识符,上位机下发的命令类型分为控制命令、采集命令和设置命令3种。BYTE4~10为数据标识符字节,当由上位机下发控制命令时,表示对水泵进行的控制;当上位机下发参数设置命令时,表示对相应数据采集终端水位进行上下限参数设置;由下位机软件返回实时水位相关数据时,BYTE4~10则代表了实际采样的水位A/D转换结果、水位上下限参数和水泵开关实时状态。BYTE11为校验字节标识符,用于校验接收数据的正确性。
在数据采集时,采用主从结构方式进行,只有在上位机发出采集命令,下位机通过识别正确的地址码和命令类型码后,才将最新采集到的水位数据发送到上位机,由上位机对采样到的数据进行处理、显示和存储[1]。
3.2智能采集终端软件
智能采集终端软件主要包括A/D转换、LED数码管数据显示、键盘中断服务程序、水泵开关控制及无线数据通信等软件功能模块。其中,A/D转换模块利用STM32微控制器内部自带的A/D转换器进行水塔水位模拟数据的采集,其设计方法是首先对RCC、GPIO和ADC进行配置,而后启动内部A/D进行转换工作,最后读取A/D转换结果并进行暂存和预处理。对于LED数码管数据显示模块,该功能模块包括向ZLG7289A的SPI接口写入一个字节数据、从SPI接口读取一个字节数据、执行纯指令、执行带数据的指令、对指定位数码管进行显示及读取键盘数据等功能。键盘中断服务程序主要对系统水塔水位上下限、本机地址及水泵控制接法等相关参数进行设置,采用状态转移法进行键盘程序设计,便于键盘程序的升级与维护。对于水泵开关的控制,有两种实现方式,一种是由STM32根据水塔水位采样数据,然后与预设水位上下限参数比较,控制水泵的开与关;另一种是STM32将水位采样数据通过无线传输模块上传到上位机,由上位机根据预设水位上下限参数,将水泵控制结果下传到STM32,由STM32控制水泵的开与关。系统水泵默认控制方式为第一种。无线数据通信模块主要是接收上位机发送的监控命令,然后执行监控命令相对应的程序。为了确保智能数据采集终端能够及时响应到上位机发送的监控命令,本模块RS232接收采用中断方法进行设计,RS232发送采用查询方法进行设计。智能数据采集终端MCU软件主程序设计流程如图3所示。
图3 智能数据采集终端MCU软件主程序设计流程
3.3上位机监控中心数据管理软件
上位机监控中心数据管理软件的主要功能就是采用定时轮询的方法,对现场的各个智能数据采集终端进行实时监控并进行数据管理。系统选用计算机虚拟仪器图形编程软件LabVIEW 2012作为监控系统应用软件的开发平台,根据软件工程模块化设计的思想,系统软件主要分为RS232数据通信、采样数据显示、存储、处理、打印、统计、采样数据报警、下位机参数设置及水泵开关控制等功能模块。把各个模块设计成子Vi形式供主程序动态地调用。基于上位机LabVIEW软件设计的主程序流程如图4所示。
图4 基于上位机LabVIEW的软件主程序流程
由于系统包括智能数据采集终端、智能网关和上位机监控软件3部分,为了确保该系统能够稳定、可靠地运行,数据通信数据正确、抗干扰性强,所以,对每一部分的软硬件首先采用模块化设计思想进行设计,然后对各个模块进行测试与验证,最后进行集成测试与验证。其中,智能数据采集终端、智能网关软件在Keil uVision3开发环境下进行开发与调试。具体方法是通过JTAG对MCU应用软件各个模块进行单独和集成测试与验证[7,8]。MCU应用软件测试与验证通过之后,将最终编译生成的固化文件烧录进MCU的启动FLASH中。上位机监控软件的测试与验证在LabVIEW 2012开发环境下进行,通过其内置图形化调试工具对各个软件设计模块进行单独和集成测试与验证[7]。在确保智能数据采集终端、智能网关和上位机监控软件全部测试与验证通过后,然后再进行集成联调。最终确保整个系统稳定、可靠运行,能够实现系统的预期设计功能。系统上位机LabVIEW监控软件实时运行界面如图5所示。
图5 上位机LabVIEW监控软件实时运行界面
针对目前农村集中供水实时监控自动化管理水平低下、人力资源成本较高、施工布线繁重的问题,提出了一种基于STM32微控制器的无线水塔远程监控解决方案,并进行硬件和软件设计。整个监控系统利用专业水位压力传感器采集水塔水位模拟数据,采用VT-DTMSD3-433作为无线传输模块,利用串口通信技术将采样数据上传到上位机监控中心,实现水塔水位信息的实时监控和数据管理功能。通过工程实践测试表明,该系统在数据采集终端监测点和监控中心工作稳定,在一定传输距离内,能够满足数据传输和监测的要求,具有运行稳定可靠、可扩展性强、功耗低、体积小、成本低及便于维护等优点。此外,该方案在农村集中供水中的应用也表明它能够提高供水管理的自动化水平并节省人力资源成本,具有较好的应用前景。
[1] 熊中刚,蒋蘋,胡文武,等.基于STC单片机的智能远程水塔集群监控系统设计[J].湖北农业科学,2013,52(14):3415~3419.
[2] 郑君刚,吴成东,陈彪.基于nRF905的智能无线火灾监控系统设计[J].低压电器,2009,(6):38~41.
[3] 王军敏,袁书卿,卞和营.基于AT89S51和nRF905的无线温度检测系统设计[J].工矿自动化,2013,39(7):93~96.
[4] 杨林楠,李红刚,张素萍,等.基于ARM9的嵌入式WEB服务器研究[J].计算机测量与控制,2008,16(12):1939~1942.
[5] 高琳,荆智慧.基于80C51单片机的水塔水位自动控制系统设计[J].山西电子技术,2013,(4):15~16,37.
[6] 李红刚,张素萍.基于ZLG7289A和JR8629的人机接口设计[J].现代电子技术,2014,(10):96~100.
[7] 刘柱,朱培逸,赵兢兢,等.基于LabVIEW黄酒发酵分布式监控系统的设计[J].仪表技术与传感器,2012,(4):38~40.
[8] 廖延初,仇国华.基于nRF905的无线水塔信息监测系统的设计[J].福建师大福清分校学报,2013,(5):41~46.
TH865
B
1000-3932(2016)02-0195-06
2015-12-07(修改稿)