馮曉榮,凌 云
(1.南通大學工程訓練中心,江蘇 南通 226007;2.杭州開地信息技術有限公司,浙江 杭州 310000)
文章圍繞一種“準、快、操作方便”的紅外線測溫裝置,實現支持遠程服務、自動程度高,但是價格低、操作便捷,方便一線新冠疫情防控工作使用。該裝置的人體測溫的電路由人環境溫度傳感器、人體溫度傳感器以及自校準系統,人臉識別、控制器、本地語音播報、LED 顯示器以及遠程傳輸模塊組成,在測試人體溫度時,人體體表溫度受環境影響比較大,控制器先測量環境溫度,再測量人體溫度,根據環境溫度來修正所測量的人體溫度,測量的溫度實現本地顯示和遠程上傳,根據預先設定的閾值進行正常或異常播報。
本測溫系統還帶有人臉識別系統,用于對特定區域范圍內的群體進行體溫測量和跟蹤。
模塊設計原則是解耦、顆粒度和時效性,按照此原則劃分了軟件模塊圖1,包括基本節拍任務、環境溫度測量任務、人體溫度測量任務、GPRS處理及自行上報任務、串口通信處理任務、人臉識別處理任務和語音播報處理。

圖1 硬件模塊圖
環境溫度對人體測溫存在重大影響,首先需要測得環境溫度,再測得人體溫度,通過計算得到實際人體溫度并通過遠程通道上報到平臺,然后判斷人體溫度是否存在異常,按照設定值有異常則語音報警,否則正常顯示人體溫度,圖2為測溫總體流程圖。

圖2 測溫流程框圖
人體測得的溫度需要上傳到平臺軟件,作為實時跟蹤的數據,而上傳通過GPRS無線通道連接到平臺軟件,裝置軟件有新的溫度數據時進行實時上報,裝置軟件GPRS通道的整體流程如圖3所示。

圖3 GPRS處理及上報流程圖
GPRS通道的登錄及心跳的流程如圖4所示,登陸幀和心跳幀都需要平臺軟件應答,登錄若沒有收到確認幀則會重試三次,都不成功斷開重新連接,心跳按照心跳周期發送心跳維持連接在線,GPRS重連如圖5所示。

圖4 GPRS登錄及心跳流程圖
環境溫度測量后,對環境溫度進行細分、別分,采用不同的修正模型,對應修正人體溫度,具體的流程如圖6所示。
人臉識別流程用于實時跟蹤特殊人群,特殊人群由使用單位添加,防止人臉數據被濫用,采集到溫度需要和人臉圖像建立對應關系,如此測溫后便可索引歷史測得溫度,比對出異常信息并報警,歷史天數可以配置,流程如圖7所示。

圖7 人臉識別流程圖
·GPRS配置參數結構:
typedef struct GPRS_PARM_STRUCT
{
char iIpAddr[IP_ADDR_LEN]; //IP
unsigned short iPort; //端口
char iAPN[16]; //APN
char iUser[16]; //APN用戶名
char iPassword[16]; //APN密碼
}STRUCT_GPRS_PARM;
·GPRS數據發送結構
typedef struct
{
unsigned char iRecvFlag:1; //0-尚未接收完成,1-接收完成ê unsigned char iTimerOut:7;//接收超時時間
unsigned short iLen;//數據長度
unsigned char iData[SIZE_0F_GPRS_SEND_LEN];//發送數據緩沖
}CommStruct_Gprs;
·數據上報結構
typedef struct REPORT_STRUCT
{
unsigned char iSta;// 上報狀態 ′ì?
unsigned char iLen;//數據長度ê
unsigned char iData[SIZE_OF_SAVE_READ_DATA];//上報數據緩沖
}ReportStruct;
·串口數據結構
struct UARTOpStruct{
uint08 *TxBuf; // 發送數據指針
uint08 TxLen; //待發送數據長度è
uint08 TxOpc; //已發送數據長度
uint08 *RxBuf; // 接收數據指針
uint08 RxLen; //待接收數據長度
uint08 RxOpc; //已接收數據長度
};
(1)void IsMainProcessGprsTask(void); //GPRS主循環處理。
(2)void IsTimerReportProcess(unsigned char *iSta);// 上報處理函數。
(3)void IsProcessCfCenter(unsigned char iTcp,unsigned char iParm);//登錄心跳維護。
(4)void IsRecvFromCenterProcess(unsign ed char iParm);//數據接收循環處理。
(5)void IsHandleTemperature(void); //溫度計算處理。
(6)float Test_ADC_Temperature(void);//ADC采樣溫度。
(7)void UpdateTemperature(void);// 刷新環境溫度。
(8)void IsProcessExtDisTemp(void);//人體溫度修正顯示。
(9)void IsSciMainProcess(void);// 串口處理任務。
(10)void IsTimeProcess(void);//基本節拍任務。
模塊分類正確,軟件編寫規范,在溫度數值計算與傳輸方面基本實現快速與正確。應用本軟件系統形成的測溫裝置已經投入使用,得到用戶肯定。