張琥石,林偉龍,楊發柱,黃向軍,金星伊,陳 潔,羅曉春,張盈盈,甘 辛
(廣西醫科大學 生物醫學工程學院,廣西 南寧 530021)
體溫作為人體基本生理指標之一,歷來為醫生判斷生命體征和診斷臨床疾病提供重要依據。合理、準確的體溫測量在醫學以及其他領域尤為重要。檢測體溫利于醫生掌握病患體溫的變化,正確判斷病患的身體情況,制定對應治療方案。然而目前臨床上所使用的體溫計存在讀數困難、難以統計數據以及易于產生交叉感染等問題[1],無法滿足當下醫生、患者對體溫計的使用需求。近些年,物聯網技術發展迅速,應用廣泛[2],可以利用藍牙、WiFi等無線傳輸技術[3]通過通信網絡使得物體與專網、內網和因特網相連,進行長距離或者短距離的數據交換和信息通信,實現對物體的智能化識別、預案管理和遠程實時監控等[4]。基于此,本文設計了一款基于ESP8266芯片的物聯網體溫監測系統,該系統通過WiFi技術遠程監測病人體溫[5],并對測溫系統進行遠程管理,可解決目前臨床上使用體溫計所面臨的問題。
系統組成如圖1所示。本系統采用12C5A60S2單片機作為主控;紅外測溫模塊采用MLX9064紅外溫度傳感器,該傳感器通過I/O口與單片機相連;WiFi模塊采用ESP8266芯片,12C5A60S2單片機將溫度傳感器采集到的溫度值通過串口發送給ESP8266,ESP8266再將溫度值通過網絡傳送給手機或電腦,從而遠程監測病人的體溫數據。

圖1 系統組成
紅外測溫模塊采用Melexis公司出品的MLX90614系列高精度紅外測溫芯片。該芯片采用TO-39金屬封裝,模塊里集成了紅外感應熱電堆探測器芯片和信號處理專用集成芯片,其中信號處理專用集成芯片包含有低噪聲放大器、17位數模轉換器和數字信號處理器等。MLX90614系列芯片設置有默認的系統管理總線(SMBus)和10位數字PWM輸出模式,其中10位數字PWM的輸出格式可用于連續測溫,傳送溫度范圍為-20~120 ?C,分辨率為0.14 ?C。MLX90614內部結構如圖2所示

圖2 MLX90614內部結構
MLX90614采用標準的TO-39封裝,該封裝有四個引腳:VSS、SCL/VZ、PWM/SDA、VDD,各引腳功能見表1所列。

表1 MLX90614引腳功能
MLX90614與單片機連接時,將SCL、SDA引腳直接連接單片機的I/O口,VDD引腳接5 V電壓。MLX90614與單片機連接電路如圖3所示。

圖3 MLX90614與單片機連接電路
ESP8266 WiFi模塊為樂鑫公司開發的一款物聯網專用芯片[6-7]。ESP8266 WiFi模塊采用串口與單片機通信,內置TCP/IP協議棧,通過WiFi與上位機通信。利用ESP8266模塊對傳統串口設備進行簡單的串口配置,即可將數據通過WiFi傳輸給上位機,實現物聯功能。ESP8266 WiFi模塊有三種工作模式:STA模式、AP模式、STA混合AP模式。STA模式通過路由器和英特網相連,屬于英特網內通信;AP模式將ESP8266作為一個熱點,上位機通過連接此熱點通信,屬于局域網內通信;STA混合AP模式是以上兩種模式的混合,用戶既可在局域網內通信,也可使用英特網通信[8]。
在ESP8266模塊工作之前需要裝入一個固件。綜合考慮目前市場上的多種固件,本系統選擇了安裝有氦氪云固件的ESP8266芯片—Hekr V1.1。Hekr V1.1的工作原理如圖4所示。

圖4 Hekr V1.1工作原理
Hekr V1.1的工作原理如下:將平板電腦或手機等上位機通過英特網將控制信號發送至網絡服務器;服務器接收到信號后,再利用英特網轉發給ESP8266芯片;ESP8266芯片將接收到的信號命令通過串口發送給單片機。反之,單片機的數據也可通過串口發送至ESP8266,再由英特網傳送給網絡服務器后轉發給手機、平板電腦等上位機。由此便通過英特網實現了手機等上位機對單片機的遠程控制,實現了數據互通。
氦氪云定義了上位機與Hekr V1.1傳輸指令幀的格式:基本幀格式數據頭+產品業務數據+數據尾。氦氪云傳輸幀格式如圖5所示。

圖5 氦氪云傳輸幀格式
(1)幀頭(1 B):幀起始標識,其值固定為十六進制數0x48。
(2)幀長(1 B):傳輸幀的長度儲存在此幀中,取值范圍為 [0x06,0xFE]。
(3)幀類型(1 B):幀類型的識別碼儲存在此幀中,0x01為下位機上報幀,0x02為上位機下發幀,0xFE為操作幀,0xFF為錯誤幀。
(4)幀序號(1 B):每傳輸一幀,序號自增1,標識順序及取值范圍為[0x00,0xFF]。
(5)有效數據(nB):儲存具體通信內容,其長度根據實際情況而定。
(6)校驗碼(1 B):以上每幀中的數據之和一旦超過0xFF便取低8位(1 B)。
根據氦氪云所定義的幀格式,本系統所需的傳輸幀共有5種,傳輸幀具體內容見表2所列。表2中下發幀由手機、電腦等上位機發送給單片機,上報幀由單片機發送給上位機。

表2 傳輸幀
上位機APP采用HTML5與Javascript編寫,在手機上安裝此APP即可使用編寫的上位機程序。本系統的上位機界面如圖6所示。

圖6 上位機界面
按“開始/清零”按鍵即可測量體溫,再按一次則清零。本系統可以儲存10次體溫測量結果,按“前”或“后”按鍵可翻看儲存的歷史體溫數據。上位機程序流程如圖7所示。先判斷“開始/清零”按鍵是否按下,如被按下,APP向單片機發送Star-Clear幀,將體溫值清零。再判斷“前”按鍵是否按下,如按下向單片機發送Upward幀,查看前一個體溫測量值;如“后”按鍵按下則向單片機發送Downward幀,查看后一個體溫值。之后,向單片機發送QueryStatus幀,單片機收到QueryStatus幀后,將監測到的體溫數據寫入ReportStatus中,上傳給APP,APP收到ReportStatus幀后,在顯示屏上顯示體溫數值;如未收到ReportStatus幀,則提示丟失。

圖7 上位機程序流程
單片機軟件程序流程如圖8所示。首先檢測是否收到Start-Clear幀,如收到則將Keyflag標志位取反。接著判斷是否收到QueryStatus幀,如收到則向上位機發送ReportStatus幀,再判斷Keyflag的值是否為1,為0則將溫度值清零;如Keyflag的值為1,則啟動溫度傳感器取10次溫度值,并取平均值,隨后顯示溫度值,并將溫度值寫入ReportStatus。最后判斷溫度是否存在異常,如存在異常則啟動蜂鳴器報警。

圖8 軟件程序流程
在iPhone7智能手機上安裝氦氪云APP,當Hekr V1.1連接因特網后,將手機連接4G網絡。選取甲、乙、丙三位身體健康的志愿者,在8:00,15:00,20:00時使用精密水銀溫度計[9]分別測量他們的腋下體溫,同時使用本文所設計的物聯網體溫監測系統分別測量志愿者的腋下溫度,測量結果見表3所列。
測試結果顯示,最大的體溫誤差僅為0.46 ℃,符合醫學領域對體溫測量精度和準確度的要求[10]。測試過程中,在APP上點擊“開始/清零”按鍵時,溫度值可正確顯示或清零;點擊“前”按鍵、“后”按鍵時,可查看歷史數據。
本文介紹了一種基于ESP8266 WiFi模塊的物聯網體溫監測系統,其具有測量精度高、讀數快、可通過英特網遠程監測體溫等優點。經過測試,該體溫監測系統輸出響應良好,誤差小,可應用于臨床治療、科學研究等領域,應用前景廣闊。

表3 水銀溫度計與物聯網體溫監測系統測量結果 ℃