沈彬,陳亦琦, 施慧彬
(南京航空航天大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,南京 211106)
?
水中pH值遠程測定方法研究
沈彬,陳亦琦, 施慧彬
(南京航空航天大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,南京 211106)
摘要:使用pH電極傳感器結(jié)合STM32F411RE控制模塊,開發(fā)出可以遠程自動測量水中pH值的智能檢測設(shè)備。該設(shè)備可以直接測量水中的pH值,然后通過通信模塊將采集的數(shù)據(jù)發(fā)送到監(jiān)控平臺。監(jiān)控平臺記錄數(shù)據(jù)、分析數(shù)據(jù),以更好的人機交互界面呈現(xiàn)出來,還可以接入自動報警設(shè)備,當(dāng)pH值出現(xiàn)異常時,提供警示信息,防止對工業(yè)控制和食品加工的后續(xù)過程造成危害。
關(guān)鍵詞:pH值;傳感器;STM32F411RE;遠程控制
引言
pH值是工業(yè)生產(chǎn)過程中的一個十分常見的控制參數(shù),保持被控過程的pH值穩(wěn)定,對穩(wěn)定生產(chǎn)過程、提高產(chǎn)品質(zhì)量、減少原材料消耗等均起到非常積極的作用。因此,在工業(yè)生產(chǎn)過程中,實施監(jiān)控pH值的自動控制系統(tǒng)具有很重要的意義。隨著IoT概念的興起,物聯(lián)網(wǎng)硬件發(fā)展迅速,為pH值自動監(jiān)控系統(tǒng)的建立奠定了良好的基礎(chǔ)。
1系統(tǒng)方案
基于傳感器的水中pH值遠程測定系統(tǒng)主要由3部分組成:傳感器部分、微控制器部分和上位機。系統(tǒng)組成部分如圖1所示。
圖1系統(tǒng)組成部分
本課題主要負責(zé)的是微控制器部分設(shè)計,在傳感器測得數(shù)據(jù)后能夠進行處理、存儲和傳輸。上位機和微控制器通過網(wǎng)絡(luò)連接,可發(fā)送操作命令或讀取數(shù)據(jù)。上位機可以是電腦,也可以是Android智能手機,這里采用Android智能手機作為上位機,通過Wi-Fi與控制器連接。
系統(tǒng)總體設(shè)計如圖2所示,分為兩大部分:底層控制模塊和上層模塊。核心是基于ARM Cortex-M4核的STM32微控制器。
圖2 系統(tǒng)總體框架
2系統(tǒng)硬件設(shè)計
pH遠程測定系統(tǒng)硬件采用ST公司基于Cortex-M4內(nèi)核的STM32F411RE,處理功能強大,使用方便,被廣泛應(yīng)用于工業(yè)自動化領(lǐng)域。STM32F411RE工作頻率高達100 MHz,有多種供電方式,Cortex-M4內(nèi)核使功耗和性能取得平衡[1]。
供電方式包括USB供電和外部電源供電。USB供電簡單可靠,但需要專門的接口和線路,而外部電源供電靈活多變,可操作性更強?;谝陨峡紤],最終采用外接電源供電。外部電源采用三星的3.7 V鋰離子電池,電池容量為1 500 mAh,可以滿足實驗條件。
STM32F411RE有兩個晶振為內(nèi)部系統(tǒng)提供時鐘源:一個是高速外部時鐘(HSE),頻率為8 MHz的石英晶振,為系統(tǒng)提供較準確的主頻;另一個是低速外部時鐘(LSE),頻率為32 MHz。系統(tǒng)的RTC功能依靠768 kHz的石英晶振實現(xiàn)。STM32F411RE系統(tǒng)時鐘(SYSCLK)為100 MHz,AHB總線時鐘為100 MHz。SysTick時鐘源采用AHB總線時鐘,設(shè)置為1 ms跳動一次,為μC/OS-II提供系統(tǒng)的時基。
pH傳感器的電極采用上海雷磁E-201-C pH復(fù)合電極(纖維鹽橋,銀-氯化銀參比,3.0 mol/L氯化鉀外參比溶液(含氯化銀),常用于實驗室常規(guī)pH值測量)。E-201-C的pH測量范圍為0~14,溶液溫度范圍為5~60 ℃,測量精度達到0.01。pH采集與轉(zhuǎn)換模塊將pH值通過串口傳輸?shù)組CU,模塊精度為0.05,分辨率為0.01,供電電壓為3.3 V。將STM32F411RE的GPIO口定義為推挽輸出以驅(qū)動pH傳感器模塊工作。
遠程測量離不開無線傳輸。對比Wi-Fi、藍牙、ZigBee等無線傳輸技術(shù),Wi-Fi具有無線電波的覆蓋范圍廣,傳輸速率高的優(yōu)點[2],故選擇Wi-Fi來實現(xiàn)遠程控制。Wi-Fi模塊采用USR-Wi-Fi232-T,模塊體積小、功耗小、成本低、有外置天線,支持多種工作方式,硬件上集成了MAC、基頻芯片、射頻收發(fā)單元、TCP/IP協(xié)議棧。Wi-Fi模塊工作電壓為2.8~3.6 V,正常模式下平均電流為12 mA,待機模式下電路小于200 μA,工作溫度在-40~85 ℃之間。Wi-Fi模塊通過串口與MCU連接,可以實現(xiàn)串口的透明傳輸。
采集的pH數(shù)據(jù)一般需要記錄下來,需要一些存儲空間。STM32F411RE自帶512 KB Flash,程序占用了大約16 KB,還有很大的空間可以利用。可以選擇Flash中Sector4的64 KB,地址空間范圍是0x0801 0000~0x0801 FFFF。記錄數(shù)據(jù)格式為時間和pH值,占用空間為32 KB,于是Sector4中最多可以記錄2K項數(shù)據(jù)。
3系統(tǒng)軟件設(shè)計
3.1系統(tǒng)軟件總體框圖
圖3 系統(tǒng)軟件總體框圖
圖3是系統(tǒng)軟件總體框圖,按照實現(xiàn)功能不同將系統(tǒng)分為不同模塊,模塊之間既有獨立性,又有關(guān)聯(lián)性,以實現(xiàn)pH遠程測定為目標組合在一起。
3.2嵌入式系統(tǒng)程序
為了提高系統(tǒng)的實時性和可靠性,我們將μC/OS-II操作系統(tǒng)移植到STM32F411RE上。μC/OS-II是一個完整的、可移植、可固化、可裁減的搶占式實時多任務(wù)內(nèi)核,包含了實時內(nèi)核、任務(wù)管理、時間管理、任務(wù)間通信同步和內(nèi)存管理等功能。μC/OS-II操作系統(tǒng)簡化了pH值遠程測定的各種任務(wù)的調(diào)度[3]。
ST的微控制器有Keil、IAR等多種開發(fā)平臺,在這里選擇ARM公司的Keil μVision5作為開發(fā)環(huán)境。STM32系列有官方的庫,源代碼開放。庫就是將底層寄存器相關(guān)代碼全部封裝成函數(shù),簡化對寄存器的操作。熟悉庫函數(shù)的操作可以降低開發(fā)難度。在此次開發(fā)中對STM32F411RE的操作是基于庫函數(shù)的,提高了代碼的可讀性。
嵌入式系統(tǒng)程序的核心是 μC/OS-II操作系統(tǒng),在 μC/OS-II下創(chuàng)建了兩個任務(wù)。主任務(wù)負責(zé)pH數(shù)據(jù)采集、處理和傳輸;輔任務(wù)負責(zé)檢測pH值是否處于安全范圍,如果超出閾值則發(fā)出警報。
在主程序之前,首先要初始化系統(tǒng)時鐘、串口等,設(shè)置好硬件接口,然后設(shè)置中斷向量,編寫USART中斷處理子程序。需要注意的是,μC/OS-II下中斷程序有專門的入口和出口,要在庫函數(shù)的中斷處理子程序上添加OSIntEnter( )和OSIntExit( ) 。
主任務(wù)可以細分為多個子程序,實現(xiàn)多種功能。具體為時間校正、報警開關(guān)、報警閾值設(shè)置、睡眠模式開關(guān)、傳感器開關(guān)、測量間隔設(shè)置、實時pH數(shù)據(jù)查看和歷史pH數(shù)據(jù)查看。為了確定調(diào)用的子程序類型,需要設(shè)計一套簡單的命令式指令來明確調(diào)用的是什么程序。上層發(fā)送指令,經(jīng)過字符串處理解析,確定指令含義,進一步調(diào)用下層處理函數(shù)。指令的格式和含義如表1所列。
表1 指令介紹
3.3Android程序和網(wǎng)站
3.3.1Android客戶端架構(gòu)
Android是由Google開發(fā)的基于Linux內(nèi)核的操作系統(tǒng),隨著安卓設(shè)備的快速發(fā)展,其不再僅是通信的終端,還是各種網(wǎng)絡(luò)的終端[4]。本系統(tǒng)采用客戶端/服務(wù)器模式,服務(wù)器端由帶有Wi-Fi模塊的底層控制設(shè)備組成,Android客戶端負責(zé)與底層設(shè)備進行socket通信,發(fā)送命令并暫存數(shù)據(jù),最終將數(shù)據(jù)上傳至自建的pH數(shù)據(jù)管理網(wǎng)站的數(shù)據(jù)庫中進行存儲。本設(shè)計相比傳統(tǒng)的pH檢測器,更加便宜、靈活,用戶手機操控時界面更加友好,并且可以將數(shù)據(jù)長期性存儲在云平臺上。
3.3.2Android客戶端界面設(shè)計及主流程
Android手機客戶端支持4.0及以上手機,開發(fā)環(huán)境為Android SDK+JDK8+Eclipse4.2.1,采用XML布局,具有多個Activity,包括過場檢測、連接MCU、若干參數(shù)設(shè)置、警報、測量、折線圖顯示等界面。開發(fā)時將模型層與顯示層分開,工具類單獨存放,分布在不同的包里。
運行時,底層控制模塊與客戶端通信,為其分配端口號,用戶與其Socket連接成功后,可進行下一步操作,在功能選擇界面中選擇相應(yīng)的設(shè)置內(nèi)容。具體操作時,我們輸入的參數(shù),選擇的圖標狀態(tài)會被解析、檢測,并封裝成設(shè)計的指令中的操作數(shù),再配上相應(yīng)的操作碼形成命令,進行相應(yīng)的Socket連接,配置參數(shù)并發(fā)送。最終,通過Handler處理不同的返回碼對應(yīng)的操作,若發(fā)送成功則有對應(yīng)的數(shù)據(jù)格式解析,發(fā)送失敗會鑒別是請求超時還是響應(yīng)結(jié)果不對,有相應(yīng)的錯誤碼對應(yīng),方便用戶了解設(shè)備運行情況。
在數(shù)據(jù)顯示時,采用了AChartEngine[5]這一圖表引擎進行折線圖的顯示,AChartEngine是為Android應(yīng)用而設(shè)計的繪圖工具庫,支持縮放操作,通過對其參數(shù)的相應(yīng)配置,對原有圖表的重新封裝后定制出我們自己使用的圖像數(shù)據(jù)接口。獲取的數(shù)據(jù)可以是實時的,也可以是歷史的,暫存的數(shù)據(jù)可以通過Volley[6]請求(Google提供的Volley庫,適合數(shù)據(jù)量不大但是通信頻繁的場景)上傳pH數(shù)據(jù)到云平臺上。
3.3.3網(wǎng)站客戶端架構(gòu)
網(wǎng)站客戶端提供對設(shè)備、測量數(shù)據(jù)(此處用于pH數(shù)據(jù))和用戶的管理,架在mopaas云平臺上,本地開發(fā)時采用Windows+Apache+PHP+MySQL的環(huán)境進行調(diào)試,支持多用戶、多設(shè)備使用,設(shè)備ID及數(shù)據(jù)ID均通過混合的加密算法生成,加密算法以base64為基礎(chǔ),混雜著“鹽”(隨機串)和md5等方式實現(xiàn)[7],在密碼學(xué)中屬于加密算法保密的方式,登錄時含有驗證碼,頁面間跳轉(zhuǎn)有session和隨機串的驗證,保證唯一性和安全性,數(shù)據(jù)查詢時提供特殊查詢和折線圖顯示。
3.3.4網(wǎng)站客戶端界面設(shè)計及主流程
界面使用BootStrap+JQuery+HTML開發(fā),首先進入登錄頁面,輸入用戶ID、密碼、驗證碼進入管理后臺,由于權(quán)限不同,每個用戶能夠看到的功能頁面也不同,最高權(quán)限用戶可以添加用戶、添加設(shè)備、修改密碼、查看獲取數(shù)據(jù)和特殊查詢。點擊pH數(shù)據(jù)記錄可以看到數(shù)據(jù)的折線圖顯示,利用特殊查詢功能,可以獲取到每個用戶發(fā)送的數(shù)據(jù)條數(shù),以及最近一周發(fā)送數(shù)據(jù)最多的用戶等數(shù)據(jù)。插入記錄功能是開放給Android客戶端的接口,不能直接使用。后臺數(shù)據(jù)庫由3張表和1張視圖組成,只要接口使用正確,也可以管理其他數(shù)值類型的數(shù)據(jù)(如溫度、濕度等),為以后的功能拓展留下空間。
4系統(tǒng)評測與結(jié)論
利用本系統(tǒng)在Android客戶端進行相關(guān)pH測定等相關(guān)功能測試。在Android客戶端進行時間校正、睡眠模式開關(guān)、傳感器開關(guān)、測量間隔設(shè)置,底層模塊能快速響應(yīng)。報警閾值設(shè)置后打開報警開關(guān),在超出閾值時能收到以2 s為間隔的持續(xù)警告,可以手動關(guān)閉警報或重新設(shè)置報警閾值。圖3為Android客戶端pH測量界面。
圖3 Android客戶端測試
用內(nèi)存查看工具打開Flash,測量數(shù)據(jù)按照固定格式存儲在Sector4以0x0801 0000為開始地址的64 KB空間內(nèi)??蛻舳四軌蛱崛崟r數(shù)據(jù)并且正確顯示。選擇提取歷史數(shù)據(jù)的條數(shù)后,歷史數(shù)據(jù)可以以折線圖的形式直觀體現(xiàn)pH變化。
當(dāng)采集到一定數(shù)量的pH值后,可以將數(shù)據(jù)保存到云端,方便記錄和分析pH值的變化范圍和趨勢。將數(shù)據(jù)上傳到云端后,網(wǎng)頁pH值折線圖如圖4所示。網(wǎng)站數(shù)據(jù)庫中提取的部分數(shù)據(jù)見表2。
表2 測試數(shù)據(jù)
由于環(huán)境和電路等原因,pH值是不斷變化的,于是我們添加了對細小擾動的判斷,只有pH數(shù)值真正發(fā)生變化時才會顯示。經(jīng)過測試,系統(tǒng)能對命令作出正確響應(yīng),反應(yīng)時間在理想范圍之內(nèi),能順利完成pH值遠程測定的任務(wù)。
圖4 pH數(shù)據(jù)折線圖
隨著嵌入式系統(tǒng)硬件和無線通信技術(shù)的不斷發(fā)展,結(jié)合這兩者的遠程測控系統(tǒng)將是未來的潮流。pH值遠程測定系統(tǒng)還需進行下一步的研究,之后的研究方向是pH傳感器組網(wǎng)和數(shù)據(jù)壓縮和加密。
參考文獻
[1] ST公司.STM32F411RE使用手冊[EB/OL].[2015-09].http://www.st.com/.
[2] 蔡型, 張思全. 短距離無線通信技術(shù)綜述[J].現(xiàn)代電子技術(shù),2004,27(3): 65-67.
[3] 尹江會.嵌入式實時操作系統(tǒng)μC /OS-II在ARM中的應(yīng)用研究[D].濟南:山東大學(xué),2005.
[4] 劉俊賢.基于Android平臺的橋梁監(jiān)測終端應(yīng)用程序設(shè)計與開發(fā)[D].西安:西安科技大學(xué),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安全框架的研究與實現(xiàn)[D].南京:南京理工大學(xué),2007.
沈彬、陳亦琦(本科生),主要研究方向為物聯(lián)網(wǎng)工程;施慧彬(副教授),主要研究方向為計算機體系結(jié)構(gòu)、嵌入式系統(tǒng)等。
[4] 駱曉娟,許力.基于AJAX與B/S架構(gòu)的實時監(jiān)測系統(tǒng)[J].工業(yè)控制計算機,2013,26(4):64-65.
[5] 劉火良,楊森.STM32庫開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2013:394-426.
[6] 王莉,周偉.基于ARM的嵌入式Web服務(wù)器設(shè)計[J].計算機工程與應(yīng)用,2012,48(14):90-93.
[7] 范賢學(xué),金興華.數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計[J].指揮信息系統(tǒng)與技術(shù),2014,5(3):64-69.
王夢瀟、李璐(助理工程師),研究方向為嵌入式開發(fā)與系統(tǒng)集成。
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
收稿日期:(責(zé)任編輯:楊迪娜2015-09-26) (責(zé)任編輯:薛士然2015-09-06)
中圖分類號:TP277
文獻標識碼:A