沈彬,陈亦琦, 施慧彬
(南京航空航天大学 计算机科学与技术学院,南京 211106)
水中pH值远程测定方法研究
沈彬,陈亦琦, 施慧彬
(南京航空航天大学 计算机科学与技术学院,南京 211106)
摘要:使用pH电极传感器结合STM32F411RE控制模块,开发出可以远程自动测量水中pH值的智能检测设备。该设备可以直接测量水中的pH值,然后通过通信模块将采集的数据发送到监控平台。监控平台记录数据、分析数据,以更好的人机交互界面呈现出来,还可以接入自动报警设备,当pH值出现异常时,提供警示信息,防止对工业控制和食品加工的后续过程造成危害。
关键词:pH值;传感器;STM32F411RE;远程控制
引言
pH值是工业生产过程中的一个十分常见的控制参数,保持被控过程的pH值稳定,对稳定生产过程、提高产品质量、减少原材料消耗等均起到非常积极的作用。因此,在工业生产过程中,实施监控pH值的自动控制系统具有很重要的意义。随着IoT概念的兴起,物联网硬件发展迅速,为pH值自动监控系统的建立奠定了良好的基础。
1系统方案
基于传感器的水中pH值远程测定系统主要由3部分组成:传感器部分、微控制器部分和上位机。系统组成部分如图1所示。
图1系统组成部分
本课题主要负责的是微控制器部分设计,在传感器测得数据后能够进行处理、存储和传输。上位机和微控制器通过网络连接,可发送操作命令或读取数据。上位机可以是电脑,也可以是Android智能手机,这里采用Android智能手机作为上位机,通过Wi-Fi与控制器连接。
系统总体设计如图2所示,分为两大部分:底层控制模块和上层模块。核心是基于ARM Cortex-M4核的STM32微控制器。
图2 系统总体框架
2系统硬件设计
pH远程测定系统硬件采用ST公司基于Cortex-M4内核的STM32F411RE,处理功能强大,使用方便,被广泛应用于工业自动化领域。STM32F411RE工作频率高达100 MHz,有多种供电方式,Cortex-M4内核使功耗和性能取得平衡[1]。
供电方式包括USB供电和外部电源供电。USB供电简单可靠,但需要专门的接口和线路,而外部电源供电灵活多变,可操作性更强。基于以上考虑,最终采用外接电源供电。外部电源采用三星的3.7 V锂离子电池,电池容量为1 500 mAh,可以满足实验条件。
STM32F411RE有两个晶振为内部系统提供时钟源:一个是高速外部时钟(HSE),频率为8 MHz的石英晶振,为系统提供较准确的主频;另一个是低速外部时钟(LSE),频率为32 MHz。系统的RTC功能依靠768 kHz的石英晶振实现。STM32F411RE系统时钟(SYSCLK)为100 MHz,AHB总线时钟为100 MHz。SysTick时钟源采用AHB总线时钟,设置为1 ms跳动一次,为μC/OS-II提供系统的时基。
pH传感器的电极采用上海雷磁E-201-C pH复合电极(纤维盐桥,银-氯化银参比,3.0 mol/L氯化钾外参比溶液(含氯化银),常用于实验室常规pH值测量)。E-201-C的pH测量范围为0~14,溶液温度范围为5~60 ℃,测量精度达到0.01。pH采集与转换模块将pH值通过串口传输到MCU,模块精度为0.05,分辨率为0.01,供电电压为3.3 V。将STM32F411RE的GPIO口定义为推挽输出以驱动pH传感器模块工作。
远程测量离不开无线传输。对比Wi-Fi、蓝牙、ZigBee等无线传输技术,Wi-Fi具有无线电波的覆盖范围广,传输速率高的优点[2],故选择Wi-Fi来实现远程控制。Wi-Fi模块采用USR-Wi-Fi232-T,模块体积小、功耗小、成本低、有外置天线,支持多种工作方式,硬件上集成了MAC、基频芯片、射频收发单元、TCP/IP协议栈。Wi-Fi模块工作电压为2.8~3.6 V,正常模式下平均电流为12 mA,待机模式下电路小于200 μA,工作温度在-40~85 ℃之间。Wi-Fi模块通过串口与MCU连接,可以实现串口的透明传输。
采集的pH数据一般需要记录下来,需要一些存储空间。STM32F411RE自带512 KB Flash,程序占用了大约16 KB,还有很大的空间可以利用。可以选择Flash中Sector4的64 KB,地址空间范围是0x0801 0000~0x0801 FFFF。记录数据格式为时间和pH值,占用空间为32 KB,于是Sector4中最多可以记录2K项数据。
3系统软件设计
3.1系统软件总体框图
图3 系统软件总体框图
图3是系统软件总体框图,按照实现功能不同将系统分为不同模块,模块之间既有独立性,又有关联性,以实现pH远程测定为目标组合在一起。
3.2嵌入式系统程序
为了提高系统的实时性和可靠性,我们将μC/OS-II操作系统移植到STM32F411RE上。μC/OS-II是一个完整的、可移植、可固化、可裁减的抢占式实时多任务内核,包含了实时内核、任务管理、时间管理、任务间通信同步和内存管理等功能。μC/OS-II操作系统简化了pH值远程测定的各种任务的调度[3]。
ST的微控制器有Keil、IAR等多种开发平台,在这里选择ARM公司的Keil μVision5作为开发环境。STM32系列有官方的库,源代码开放。库就是将底层寄存器相关代码全部封装成函数,简化对寄存器的操作。熟悉库函数的操作可以降低开发难度。在此次开发中对STM32F411RE的操作是基于库函数的,提高了代码的可读性。
嵌入式系统程序的核心是 μC/OS-II操作系统,在 μC/OS-II下创建了两个任务。主任务负责pH数据采集、处理和传输;辅任务负责检测pH值是否处于安全范围,如果超出阈值则发出警报。
在主程序之前,首先要初始化系统时钟、串口等,设置好硬件接口,然后设置中断向量,编写USART中断处理子程序。需要注意的是,μC/OS-II下中断程序有专门的入口和出口,要在库函数的中断处理子程序上添加OSIntEnter( )和OSIntExit( ) 。
主任务可以细分为多个子程序,实现多种功能。具体为时间校正、报警开关、报警阈值设置、睡眠模式开关、传感器开关、测量间隔设置、实时pH数据查看和历史pH数据查看。为了确定调用的子程序类型,需要设计一套简单的命令式指令来明确调用的是什么程序。上层发送指令,经过字符串处理解析,确定指令含义,进一步调用下层处理函数。指令的格式和含义如表1所列。
表1 指令介绍
3.3Android程序和网站
3.3.1Android客户端架构
Android是由Google开发的基于Linux内核的操作系统,随着安卓设备的快速发展,其不再仅是通信的终端,还是各种网络的终端[4]。本系统采用客户端/服务器模式,服务器端由带有Wi-Fi模块的底层控制设备组成,Android客户端负责与底层设备进行socket通信,发送命令并暂存数据,最终将数据上传至自建的pH数据管理网站的数据库中进行存储。本设计相比传统的pH检测器,更加便宜、灵活,用户手机操控时界面更加友好,并且可以将数据长期性存储在云平台上。
3.3.2Android客户端界面设计及主流程
Android手机客户端支持4.0及以上手机,开发环境为Android SDK+JDK8+Eclipse4.2.1,采用XML布局,具有多个Activity,包括过场检测、连接MCU、若干参数设置、警报、测量、折线图显示等界面。开发时将模型层与显示层分开,工具类单独存放,分布在不同的包里。
运行时,底层控制模块与客户端通信,为其分配端口号,用户与其Socket连接成功后,可进行下一步操作,在功能选择界面中选择相应的设置内容。具体操作时,我们输入的参数,选择的图标状态会被解析、检测,并封装成设计的指令中的操作数,再配上相应的操作码形成命令,进行相应的Socket连接,配置参数并发送。最终,通过Handler处理不同的返回码对应的操作,若发送成功则有对应的数据格式解析,发送失败会鉴别是请求超时还是响应结果不对,有相应的错误码对应,方便用户了解设备运行情况。
在数据显示时,采用了AChartEngine[5]这一图表引擎进行折线图的显示,AChartEngine是为Android应用而设计的绘图工具库,支持缩放操作,通过对其参数的相应配置,对原有图表的重新封装后定制出我们自己使用的图像数据接口。获取的数据可以是实时的,也可以是历史的,暂存的数据可以通过Volley[6]请求(Google提供的Volley库,适合数据量不大但是通信频繁的场景)上传pH数据到云平台上。
3.3.3网站客户端架构
网站客户端提供对设备、测量数据(此处用于pH数据)和用户的管理,架在mopaas云平台上,本地开发时采用Windows+Apache+PHP+MySQL的环境进行调试,支持多用户、多设备使用,设备ID及数据ID均通过混合的加密算法生成,加密算法以base64为基础,混杂着“盐”(随机串)和md5等方式实现[7],在密码学中属于加密算法保密的方式,登录时含有验证码,页面间跳转有session和随机串的验证,保证唯一性和安全性,数据查询时提供特殊查询和折线图显示。
3.3.4网站客户端界面设计及主流程
界面使用BootStrap+JQuery+HTML开发,首先进入登录页面,输入用户ID、密码、验证码进入管理后台,由于权限不同,每个用户能够看到的功能页面也不同,最高权限用户可以添加用户、添加设备、修改密码、查看获取数据和特殊查询。点击pH数据记录可以看到数据的折线图显示,利用特殊查询功能,可以获取到每个用户发送的数据条数,以及最近一周发送数据最多的用户等数据。插入记录功能是开放给Android客户端的接口,不能直接使用。后台数据库由3张表和1张视图组成,只要接口使用正确,也可以管理其他数值类型的数据(如温度、湿度等),为以后的功能拓展留下空间。
4系统评测与结论
利用本系统在Android客户端进行相关pH测定等相关功能测试。在Android客户端进行时间校正、睡眠模式开关、传感器开关、测量间隔设置,底层模块能快速响应。报警阈值设置后打开报警开关,在超出阈值时能收到以2 s为间隔的持续警告,可以手动关闭警报或重新设置报警阈值。图3为Android客户端pH测量界面。
图3 Android客户端测试
用内存查看工具打开Flash,测量数据按照固定格式存储在Sector4以0x0801 0000为开始地址的64 KB空间内。客户端能够提取实时数据并且正确显示。选择提取历史数据的条数后,历史数据可以以折线图的形式直观体现pH变化。
当采集到一定数量的pH值后,可以将数据保存到云端,方便记录和分析pH值的变化范围和趋势。将数据上传到云端后,网页pH值折线图如图4所示。网站数据库中提取的部分数据见表2。
表2 测试数据
由于环境和电路等原因,pH值是不断变化的,于是我们添加了对细小扰动的判断,只有pH数值真正发生变化时才会显示。经过测试,系统能对命令作出正确响应,反应时间在理想范围之内,能顺利完成pH值远程测定的任务。
图4 pH数据折线图
随着嵌入式系统硬件和无线通信技术的不断发展,结合这两者的远程测控系统将是未来的潮流。pH值远程测定系统还需进行下一步的研究,之后的研究方向是pH传感器组网和数据压缩和加密。
参考文献
[1] ST公司.STM32F411RE使用手册[EB/OL].[2015-09].http://www.st.com/.
[2] 蔡型, 张思全. 短距离无线通信技术综述[J].现代电子技术,2004,27(3): 65-67.
[3] 尹江会.嵌入式实时操作系统μC /OS-II在ARM中的应用研究[D].济南:山东大学,2005.
[4] 刘俊贤.基于Android平台的桥梁监测终端应用程序设计与开发[D].西安:西安科技大学,2011.
[5] Achartengine[EB/OL].[2015-09].http://code.google.com/p/achartengine/.
[6] Volley[EB/OL].[2015-09].https://android.googlesource.com/platform/frameworks/volley.
[7] 王健.基于MVC模式的AOP安全框架的研究与实现[D].南京:南京理工大学,2007.
沈彬、陈亦琦(本科生),主要研究方向为物联网工程;施慧彬(副教授),主要研究方向为计算机体系结构、嵌入式系统等。
[4] 骆晓娟,许力.基于AJAX与B/S架构的实时监测系统[J].工业控制计算机,2013,26(4):64-65.
[5] 刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013:394-426.
[6] 王莉,周伟.基于ARM的嵌入式Web服务器设计[J].计算机工程与应用,2012,48(14):90-93.
[7] 范贤学,金兴华.数据中心网络结构设计[J].指挥信息系统与技术,2014,5(3):64-69.
王梦潇、李璐(助理工程师),研究方向为嵌入式开发与系统集成。
Research on Remote Measurement Method of pH Value in Water
Shen Bin,Chen Yiqi,Shi Huibin
(College of Computer Science and Technology,Nanjing University of Aeronautics&Astronautics,Nanjing 211106,China)
Abstract:An intelligent detection device is designed using the pH electrode sensor and the STM32F411RE control module.The device can measure the pH value in the water directly,and then sends the data to the monitoring platform through the communication module.The monitoring platform is responsible for the data storage,the data analysis and can show a better human-machine interaction interface.Also,it can access to the automatic alarming device to provide warning when the pH value is abnormal,so as to prevent the damage to the subsequent processes of the industrial control and food processing.
Key words:pH value;sensor;STM32F411RE;remote control
收稿日期:(责任编辑:杨迪娜2015-09-26) (责任编辑:薛士然2015-09-06)
中图分类号:TP277
文献标识码:A