郝 秀, 應 駿
(上海師范大學 信息與機電工程學院,上海 200234)
通過調研發(fā)現(xiàn),在溫差電池的研發(fā)過程中,科研人員需要長期對溫差電池的冷熱源溫度及其電池產生的開路電壓,在不同季節(jié)、不同環(huán)境、不同時段進行實時監(jiān)控以及數(shù)據(jù)記錄[12]。為了減小研究代價提高科研效率,功能完備的電池在線監(jiān)測系統(tǒng)顯得十分必要。因此,根據(jù)需求,本文設計融合多種通信方式、高精度、高靈活性的溫差電池在線監(jiān)測系統(tǒng)。系統(tǒng)由采樣模塊,通信模塊和相關軟件組成。在設計過程中,充分考慮到溫差電池在線監(jiān)測系統(tǒng)的智能化發(fā)展方向、遠程集中管理和在線維護的發(fā)展趨勢[4,5]。
在線監(jiān)測系統(tǒng)的采集終端由單片機(microcontroller unit,MCU)主控,無線局域網(WiFi)通信模塊,信號橋接電路,電源模塊組成。搭建Openfile作為云服務器,并部署數(shù)據(jù)庫,監(jiān)測終端則有個人計算機(personal computer,PC)端Spark軟件或者安卓APK兩種選擇。前端信號為1路溫差片輸出電壓信號以及貼在溫差片兩側的Pt1000溫度傳感器通過惠斯通電橋轉換的電壓信號輸入STM32的SDADC。系統(tǒng)總體框架如圖1所示。

圖1 系統(tǒng)總體框圖
系統(tǒng)主控選用STM32F373,其SDADC的采樣精度達到16 bit高于普通MCU,高性能,資源豐富。WiFi采用安信可科技生產的高性價比,與物聯(lián)網領域應用度很高的模塊ESP8266[6]。WiFi的電源受STM32控制,可以根據(jù)不同采樣傳輸頻率執(zhí)行不同的休眠策略,降低系統(tǒng)功耗。
在電源方面,除了給處理器供電,還需要產生精確的正負參考電壓Vref,模擬電壓部分原理如圖2所示,由于溫差電池的兩側溫度差可能出現(xiàn)反轉,因此需要支持負電壓采樣(動態(tài)范圍-1~+1 V),故運算放大器SGM8552X88的輸入電壓為信號電壓Vin加上1.2Vref,STM32的SDADC分別對VolADC和1.2Vref進行采樣之后再取差值,可以消除共模干擾[7]。

圖2 模擬電路原理
系統(tǒng)軟件主要包括ESP8266程序與STM32程序兩個部分。兩個芯片均搭載FreeRTOS實時操作系統(tǒng),模塊間的通信采用UART,并自定了AT_Command命令來作為信息交互協(xié)議[8]。在系統(tǒng)啟動時,STM32通過串口進行配置ESP8266需要的目標AP的信息,服務器的IP和Domain等信息。STM32軟件框架如圖3所示,主要功能包括:接收用戶通過串口配置網絡信息并將網絡信息寫進Flash,開機上電對WiFi模塊進行初始化,按照一定頻率采集溫度和電壓信息,將采集的信息通過通用非同步收發(fā)器(universal asynchronous receiver/transmitter,UART)傳輸給WiFi模塊,并接收來自遠程客戶端的命令。命令包括采樣頻率的設置,實時查詢電壓和溫度值。

圖3 STM32軟件框圖
ESP8266軟件主要分為兩個線程,網絡線程以及消息處理線程,兩個線程之間通過消息隊列通信,當UART收到主控消息或者網絡線程收到服務器的消息均通過消息隊列發(fā)送到消息處理線程集中處理。
網絡線程主要是負責保持WiFi連接以及與服務器的連接。Socket采用TCP/IP的方式,應用層協(xié)議采用XMPP。該線程實現(xiàn)了XMPP登錄,添加好友請求處理,發(fā)送消息(message),發(fā)送狀態(tài)信息(presence),服務器心跳包處理等功能。線程采用阻塞方式讀取網絡數(shù)據(jù),設置讀取超時機制,由于服務器設置為每隔120 s客戶端(idle client)發(fā)送ping包,考慮網絡延時,故將讀取超時時間設置為150 s,如果超時則重新連接服務器[9]。讀取到數(shù)據(jù)之后,對數(shù)據(jù)進行解析,如果是ping包或者添加好友請求則回復請求,自定義消息則發(fā)送到消息軟件流程如圖4所示[10]。

圖4 Esp8266軟件框圖
消息處理線程主要負責處理來自服務器的自定義命令,包括查詢軟件版本,查詢當前溫度和電壓,設置采樣間隔等,以及處理來自UART的配置命令以及發(fā)送消息,發(fā)送狀態(tài)信息等請求,軟件流程如圖3所示。 ESP8266為整個系統(tǒng)的應用消息收發(fā)中心,無論STM32還是遠程客戶端與其通信均用同一種AT_Command命令,如果消息是WiFi模塊自身支持的命令則執(zhí)行,否則就轉發(fā)給MCU或者服務器。部分命令格式定義如下:
#define AP_INFO “AT+SET+SSID:%s;PWD:%s” ∥配置WiFi熱點信息命令
#define SET_IP “AT+SET+DOMAIN:%s;IP:%s” ∥配置服務器信息
#define SEND_MSG “AT+SET+MSG:%s” ∥發(fā)送消息已添加好友
#define CHANGE_PRE “AT+SET+PRE=%s” ∥改變設備狀態(tài)信息
#define GET+VOL “AT+GET+VOL” ∥獲取當前電壓值
該監(jiān)測系統(tǒng)的測試環(huán)境是在浙江大學材料實驗室,溫差電池嵌入墻體,通過室內外的溫度差來產生電壓,設計了監(jiān)控界面為PC端的Spark軟件,監(jiān)控賬號ID為Sensor,1#設備為采集設備的ID,其中狀態(tài)信息為WiFi模塊的16進制介質訪問控制(media access control,MAC)地址,用以區(qū)分設備,會話界面為采集設備每隔10 min上傳1次監(jiān)測信息,T1,T2分別為溫差電池兩側溫度,其中T2為室內空調控制溫度,V為輸出電壓,該系統(tǒng)可以幫助科研人員分析不同的季節(jié)不同天氣不同時間段的數(shù)據(jù),大大減少測試和收集數(shù)據(jù)工作量。
如圖5所示,為一天各時段的數(shù)據(jù)信息,可見溫度之間差值大。

圖5 采集數(shù)據(jù)曲線
本文解決了溫差電池科研人員需要對電池的狀態(tài)進行長期不間斷監(jiān)測,數(shù)據(jù)需要長期記錄的問題,設計了一種基于物聯(lián)網功能完備的高精度、高靈活性溫差電池在線監(jiān)測系統(tǒng)。遠程監(jiān)控界面也大大減小了科研人員對于溫差電池的研究代價,提高科研效率。但目前的設計仍存在一定改進之處,在目前的系統(tǒng)中,供電方式仍采用外部供電,如果功耗能達到一定的量級,采用溫差電池儲能的方式自供電,那么監(jiān)測系統(tǒng)的應用會更具實用價值。