摘 要:隨著物聯(lián)網(wǎng)技術的快速發(fā)展,各類智能家居不斷發(fā)展創(chuàng)新。為解決夏季居家老人、戶外工人等高中暑風險人群的監(jiān)測及預警問題,設計了一套基于STM32的便攜式中暑預防監(jiān)測及遠程警示系統(tǒng)。該系統(tǒng)主要分為設備佩戴端及監(jiān)護人的預警接收端,通過采集佩戴者與中暑相關的各項參數(shù),綜合判斷中暑的風險程度。配置阿里云ECS服務器并通過MQTT協(xié)議將采集的數(shù)據(jù)發(fā)布至監(jiān)護人的微信小程序客戶端。經(jīng)實際測試,系統(tǒng)可以成功運行并實現(xiàn)目標參數(shù)的監(jiān)測,當存在中暑風險時設備端發(fā)出警示并成功向監(jiān)護人推送該設備佩戴者的中暑風險預警通知。
關鍵詞:物聯(lián)網(wǎng)技術;智能家居;STM32;中暑監(jiān)測;ECS服務器;MQTT協(xié)議
中圖分類號:TP273;TP855 文獻標識碼:A 文章編號:2095-1302(2024)08-0-04
DOI:10.16667/j.issn.2095-1302.2024.08.026
0 引 言
夏季中暑頻發(fā),甚至存在未及時發(fā)現(xiàn)中暑進而演化為更嚴重的熱射病等現(xiàn)象[1]。在已有病例當中,多數(shù)都是工作在惡劣環(huán)境中的戶外工人、車間工人以及獨居的年邁老人。而當前的中暑檢測方式主要存在兩個缺點:第一是事后檢測,即人員覺察中暑后才有意識地去檢測;第二是檢測設備的非便攜性,即大多數(shù)人都需要到醫(yī)院檢測,或者使用不便攜帶的檢測儀檢測。因此,如何在不影響工人勞動、子女工作的前提下通過對目標人群進行實時中暑指標監(jiān)測并及時預警尤為重要。
為解決此問題,文中提出了一種便攜式中暑預防及遠程預警的系統(tǒng)方案,該系統(tǒng)可以實時監(jiān)測目標身體的各項指標(如心率、體溫)及其所處環(huán)境(如光照強度、空氣濕度)中與中暑相關的參數(shù),根據(jù)各項指標數(shù)據(jù)判斷是否存在中暑先兆并及時向被監(jiān)測者發(fā)出中暑風險預警,同時通過小程序向其監(jiān)護人發(fā)出預警通知,以避免中暑的發(fā)生。
1 系統(tǒng)方案
該系統(tǒng)依托于物聯(lián)網(wǎng)技術,主要實現(xiàn)數(shù)據(jù)的采集、發(fā)布及預警推送功能,佩戴的設備可以實時監(jiān)測佩戴者的心率、體溫以及所處環(huán)境的光照強度、相對濕度,并將監(jiān)測的參數(shù)與閾值參數(shù)對比,根據(jù)超出閾值的大小使佩戴設備端的警示燈進行不同頻次的閃爍。與此同時,為避免佩戴者忽略警報而導致危險情況發(fā)生,還將中暑風險按低、中、高三種等級通過小程序[2]同步向其監(jiān)護人的手機客戶端發(fā)出預警。圖1所示為該系統(tǒng)的網(wǎng)絡結構。
系統(tǒng)可以分為兩部分,即被監(jiān)測目標者的設備佩戴端[3]和監(jiān)護人的手機客戶端,使用阿里云ECS云服務器作為數(shù)據(jù)傳輸?shù)闹修D平臺,使用EMQX的MQTT消息代理實現(xiàn)數(shù)據(jù)的訂閱與轉發(fā)。系統(tǒng)通信結構如圖2所示。設備佩戴端與監(jiān)護人的小程序客戶端均采用MQTT協(xié)議[4]與阿里云服務器通信,該消息傳輸協(xié)議具有輕量級、異步通信等優(yōu)點,消息間的傳遞通過發(fā)布/訂閱的Topic即可實現(xiàn)[5]。監(jiān)護人的手機客戶端采用微信小程序開發(fā)工具制作,用于接收監(jiān)測數(shù)據(jù)和預警信息。
2 系統(tǒng)硬件設計
本次選用的主控芯片為STM32F103ZET6,使用MAX30102與MAX30205傳感器分別采集設備佩戴者的心率和體溫數(shù)據(jù),通過BH1750與HTS221傳感器分別采集所處環(huán)境的光照強度和相對濕度數(shù)據(jù),采用OLED顯示屏顯示所有監(jiān)測數(shù)據(jù),使用紅色LED燈作為設備端的風險警示燈。系統(tǒng)總體硬件結構如圖3所示。
2.1 微控制器模塊
STM32F103ZET6是意法半導體公司出品的32位ARM Cortex-M3內核的微控制器,該控制器的工作電壓為2.0~
3.6 V,具有64 KB的SRAM以及512 KB的FLASH[6]。該控制器具有多通道的12位ADC以及多個I2C接口,3個USART接口足以滿足在使用ESP8266模塊入網(wǎng)的同時進行串口的調試與打印,豐富的I/O接口也為后續(xù)設備的擴展提供了支持,因此該芯片完全滿足設計要求。
2.2 MAX30205體溫采集模塊
系統(tǒng)采用MAX30205作為體溫采集模塊。該模塊內置高精度的溫度傳感器,通過專有算法和精確校準實現(xiàn)可靠的體溫測量。它能夠提供0.1 ℃的測量精度,滿足對體溫監(jiān)測的高精度要求。此外,該模塊具有低功耗特性,能夠在微功耗模式下工作,并提供多種待機模式以延長電池的使用壽命,緊湊的尺寸等優(yōu)點使其非常適合在便攜穿戴設備中使用[7]。該模塊通過I2C與主控器通信,根據(jù)不同的應用需求可以調整模塊的測量分辨率、采樣速率以及測量模式等參數(shù)。
2.3 MAX30102心率采集模塊
采用MAX30102作為系統(tǒng)的心率采集模塊。該模塊內部集成了紅外光源、LED和光電檢測器,采用高速信號處理技術和先進的光學濾波算法可對心率信號進行快速捕捉和分析,能在幾秒鐘內提供實時心率測量結果[8]。模塊內置的專用算法和數(shù)據(jù)處理引擎能夠對獲取的原始數(shù)據(jù)進行濾波、校正與處理,保證數(shù)據(jù)結果的準確性[9]。小尺寸與低功耗特性使得該模塊被普遍應用于物聯(lián)網(wǎng)設備中。
2.4 HTS221空氣濕度采集模塊
系統(tǒng)采用的空氣濕度采集模塊是ST公司出品的HTS221數(shù)字濕度傳感器[10]。該傳感器內置了16位ADC,直接將采集的模擬信號處理為數(shù)字信號輸出,極大簡化了數(shù)據(jù)解析的編程難度。使用時應注意此傳感器在計算采集的濕度時并非直接依據(jù)H_OUT輸出端的數(shù)據(jù),而是應讀取預先保存在傳感器內部校準寄存器中的兩組濕度及對應的H_OUT,將二者經(jīng)線性插值計算得到對應的濕度數(shù)據(jù)。此外,該傳感器采用了低功耗設計,在連續(xù)測量模式下功耗僅為1.5 μA,極低功耗以及超小封裝滿足了我們選型的要求。
2.5 BH1750光照強度采集模塊
系統(tǒng)采用的是數(shù)字型光強度傳感器BH1750,此傳感器內部由光敏二極管、運算放大器以及ADC模數(shù)轉換模塊組成,可以直接將采集的光照強度模擬信號轉換為數(shù)字信號,極大簡化了數(shù)據(jù)接收的編程復雜度。供電電源為3~5 V,使用I2C即可與微控制器通信,光照強度的檢測范圍可達
0~65 535 lx,低功耗等優(yōu)點使其滿足選型要求[11]。
2.6 OLED顯示模塊
該系統(tǒng)使用的是OLED顯示模塊。該模塊無需背光源即可獨立發(fā)光,尺寸小、功耗低、響應快、清晰度高等特點使其廣泛應用于物聯(lián)網(wǎng)項目中。此模塊還具有大于160°的超大可視視角,可以使佩戴者在任何角度都能看清屏幕內容。此外,該模塊僅需4根線便可通過I2C通信接口實現(xiàn)與主控器通信,開發(fā)簡單且極大節(jié)省了I/O資源。
2.7 無線通信模塊
考慮到佩戴設備的低功耗及便攜性,該系統(tǒng)使用由樂鑫公司出品的ESP8266 WiFi無線通信模塊。該模塊由于其尺寸小、性能穩(wěn)定、功耗低以及成本低等特點,被廣泛應用于物聯(lián)網(wǎng)領域。此外,其內部集成了超低功耗的Tensilica L106 32位RISC處理器,支持實時操作系統(tǒng)以及WiFi協(xié)議棧,可將高達80%的處理能力留給應用編程和開發(fā)[12]。
2.8 LED報警燈模塊
為了能更好地提醒檢測者預防中暑風險,采用紅色發(fā)光二極管作為設備警示燈,將LED的正極接入STM32單片機的I/O口,負極與GND連接。當檢測者的中暑風險等級達到中、高水平時,定義的bool Warn_Flag()警示標志位置1,此時與正極相連的I/O口間斷輸出高電平,實現(xiàn)警示燈閃爍。使用Delay_ms(int ms)延時函數(shù)控制LED燈閃爍的頻次,風險等級越高,延時的時間越短,閃爍的頻次越高。
3 系統(tǒng)軟件設計
系統(tǒng)硬件的工作離不開軟件的編寫,通過軟件調動各硬件按照設計目標工作,解決生活中的實際問題。系統(tǒng)軟件設計使用的開發(fā)環(huán)境為Keil5 MDK,主要包括對體溫、心率、光照強度、相對濕度等傳感器檢測數(shù)據(jù)的采集,通過ESP8266無線通信模塊入網(wǎng)并發(fā)布數(shù)據(jù)至阿里云平臺,借助MQTT協(xié)議的發(fā)布/訂閱Topic實現(xiàn)數(shù)據(jù)的接收與流轉,使用OLED顯示采集數(shù)據(jù)。首先需要編寫各模塊的驅動程序,其次在主程序中初始化并調用各模塊,實現(xiàn)最終的功能設計。主程序流程如圖4所示。
3.1 數(shù)據(jù)采集模塊軟件設計
使用Keil5開發(fā)環(huán)境編寫主程序時,首先要創(chuàng)建工程項目,并在項目中添加必要的內核文件、啟動文件startup_stm32f10x_hd.s、時鐘配置文件system_stm32f10x.c等。項目配置完成后,在項目中對各模塊分別創(chuàng)建c文件和h文件,單獨編寫各傳感器驅動程序并適時通過主程序以及USART對模塊分別進行調試,確保各模塊的驅動程序編寫正確。最后通過在主程序中對各模塊頭文件的相互調用實現(xiàn)各模塊的協(xié)同工作,完成數(shù)據(jù)采集并判斷是否存在中暑風險。利用MQTT傳輸協(xié)議實現(xiàn)采集數(shù)據(jù)的上下行傳輸[13]。設置波特率、中斷優(yōu)先級、定時器中斷以及完成各模塊函數(shù)的初始化。
3.2 無線通信模塊軟件設計
首先對ESP8266無線模塊進行初始化操作,發(fā)送AT+CWMODE=1將無線模塊配置成客戶端模式,使用AT+CWJAP接入熱點,使用AT+CIPSNTPCFG、AT+MQTTUSERCFG、AT+MQTTCLIENTID、AT+MQTTCONN接入阿里云服務器,初始化完成后即成功接入阿里云[14]。模塊的初始化程序如下:
void ESP8266_Init(void)
{
ESP8266_Clear();
while(ESP8266_SendCmd(\"AT\r\n\", \"OK\"))
delay_ms(500);
while(ESP8266_SendCmd(\"AT+CWMODE=1\r\n\", \"OK\"))
//選擇模式
delay_ms(500);
while(ESP8266_SendCmd(ESP8266_CWJAP_INFO, \"GOT IP\"))
//連接熱點
delay_ms(500);
while(ESP8266_SendCmd(ESP8266_CIPSNTPCFG_INFO, \"OK\"))
//配置SNTP客戶端參數(shù)
delay_ms(500);
while(ESP8266_SendCmd(ESP8266_MQTTUSERCFG_INFO, \"OK\"))//客戶端用戶配置
delay_ms(500);
while(ESP8266_SendCmd(ESP8266_MQTTCLIENTID_INFO, \"OK\")) //CliendID
delay_ms(500);
while(ESP8266_SendCmd(ESP8266_MQTTCONN_INFO, \"OK\"))
//建立連接
delay_ms(500);
}
ESP8266無線模塊初始化完成并接入阿里云服務器后,為實時接收設備的檢測數(shù)據(jù),需要在主程序中的while()函數(shù)中不斷調用傳感器的檢測函數(shù),設置bool Rec_DataFlag()
數(shù)據(jù)接收標志位,當其為1時,表示接收到數(shù)據(jù),使用AT+MQTTPUB將數(shù)據(jù)傳輸至阿里云MQTT Broker中特定的Topic。ESP8266與阿里云的串口調試結果如圖5所示。
3.3 小程序設計
微信小程序依托于微信環(huán)境,只要監(jiān)護人的手機客戶端安裝微信即可接收監(jiān)測的數(shù)據(jù)并及時推送預警通知,使用便捷[15]。JavaScript是小程序的邏輯開發(fā)語言,在JSON文件中編寫頁面的配置信息,在WXML文件中通過lt;Viewgt;、lt;Textgt;等標簽創(chuàng)建頁面的布局信息,在WXSS文件中可以對頁面中各模塊的大小、字體等樣式進行設計[16]等。使用微信小程序開發(fā)工具可以很方便地對小程序頁面、功能等進行設計。其具有豐富的API接口,完備的開發(fā)文檔[17],為程序開發(fā)提供了可靠保證。本次設計的微信小程序主要有2個
功能界面,首頁用于顯示當前天氣情況、用戶體溫和心率、光照強度、相對濕度數(shù)據(jù)并實現(xiàn)對報警器和消息通知按鈕的捆綁;第二頁是監(jiān)測目標的歷史數(shù)據(jù)記錄。在App.json中使用tabBar對頁面跳轉導航欄進行全局配置,配置后便可通過頁面底部導航欄直接點擊跳轉至對應頁面。
4 設備測試及應用
設備設計完成后,為設備上電,此時設備的各傳感器依次運行,并將檢測的參數(shù)通過OLED顯示屏顯示出來。設備通過STM32向ESP8266無線模塊發(fā)送入網(wǎng)指令并接入阿里云服務器。當阿里云服務器接入成功后,傳感器通過MQTT協(xié)議將采集的數(shù)據(jù)發(fā)布至云服務器的特定Topic,阿里云服務器通過EMQX的消息代理將數(shù)據(jù)發(fā)送至訂閱此主題的小程序客戶端,此時打開微信小程序便可看到小程序首頁的各項檢測數(shù)據(jù)。設置中暑警示閾值,當超出閾值后微信小程序將推送該預警信息,并顯示依據(jù)當前檢測數(shù)值分析后的中暑風險等級。圖6所示為小程序首頁接收的各項檢測數(shù)據(jù)以及超出閾值后的警示消息。
身體監(jiān)測歷史數(shù)據(jù)也能間接反映監(jiān)測者身體是否健康,將其繪制成折線圖可以清晰看出各參數(shù)的變化。圖7所示為接收的某段時間的歷史數(shù)據(jù)。
5 結 語
面向夏季高中暑風險人群設計的基于STM32的便攜式中暑預防及遠程預警系統(tǒng),通過對佩戴者心率、體溫以及所處環(huán)境的光照強度和相對濕度參數(shù)進行實時監(jiān)測以判斷該佩戴者是否存在中暑風險。當存在中暑風險時,設備端報警燈閃爍并通過小程序向其監(jiān)護人推送中暑風險通知。該系統(tǒng)通過建立阿里云ECS服務器,借助EMQX的MQTT消息代理實現(xiàn)客戶端與云平臺的數(shù)據(jù)通信。使用微信小程序開發(fā)框架設計小程序,接收風險預警通知并構建顯示采集數(shù)據(jù)界面。該系統(tǒng)的實用性較高,可以有效降低目標人群的中暑風險。該設計只對4種主要影響中暑的參數(shù)進行監(jiān)測,后續(xù)可以增加更多傳感器,使得中暑風險的預警結果更準確。
注:本文通訊作者為解乃軍。
參考文獻
[1]黃曼捷,李艷忠,白鵬,等.中國東南部人口中暑風險暴露度空間演變特征及其驅動因素[J].地理研究,2023,42(8):2121-2134.
[2]劉宇濤,單宇飛,劉夢雄,等.基于MQTT協(xié)議的微信小程序控制的輔助騎行摔倒報警頭盔[J].電子制作,2022,30(23):57-61.
[3]田靜. 基于STM32的老年智能手環(huán)的設計與實現(xiàn)[D].南京:南京郵電大學,2021.
[4] AZIZ J M B,TARIQ M I,MOHSIN J,et al. Design and implementation of an open source IoT and blockchain based peer to peer energy trading platform using ESP32-S2,Node-Red and,MQTT protocol [J]. Energy reports,2021,7.
[5]成瀾.基于OneNET物聯(lián)網(wǎng)云平臺與MQTT協(xié)議的智能家居模型通用控制小程序設計[J].電腦與電信,2022,28(7):10-13.
[6]劉云,柳浩.基于STM32的心率體溫檢測系統(tǒng)設計[J].機電工程技術,2021,50(8):135-137.
[7]李兆千,李廣凱,姜紹君,等.物聯(lián)網(wǎng)可穿戴體溫監(jiān)測系統(tǒng)設計
[J].物聯(lián)網(wǎng)技術,2023,13(1):51-52.
[8]吳全玉,賈恩祥,戴飛杰,等.便攜式低功耗可穿戴心率血氧監(jiān)測系統(tǒng)的設計[J].江蘇理工學院學報,2020,26(4):53-61.
[9]丁瑩芝,畢凌志.基于STM32的無線心率實時監(jiān)測裝置[J].云南化工,2020,47(12):160-161.
[10]楊森杰,林錦鋒,馬凱創(chuàng),等.一種無線便攜式心率血氧檢測儀的設計[J].科技創(chuàng)新與應用,2020,20(28):47-49.
[11]岳駿,解乃軍.基于STM32的物聯(lián)網(wǎng)智能家居系統(tǒng)設計[J].工業(yè)儀表與自動化裝置,2022,52(2):27-31.
[12]張晟祺,解乃軍,紀有旺,等.基于STM32的老人跌倒檢測智能家居系統(tǒng)設計[J].工業(yè)儀表與自動化裝置,2023,53(1):35-39.
[13]孫友林.基于MQTT協(xié)議的物聯(lián)網(wǎng)云平臺設計與實現(xiàn)[J].物聯(lián)網(wǎng)技術,2023,13(6):71-73.
[14]楊成兵,丁昊,李明磊,等.基于ESP8266和微信小程序實現(xiàn)的數(shù)據(jù)中心雨水管井液位監(jiān)測系統(tǒng)[J].綠色建造與智能建筑,2023,27(6):60-64.
[15]喬軍航,劉忠超.基于微信小程序的智能溫室監(jiān)控系統(tǒng)設計[J].科學技術創(chuàng)新,2021,25(28):172-174.
[16]高興泉,徐德財.基于微信小程序監(jiān)控的雙容水箱虛擬仿真平臺設計[J].吉林化工學院學報,2022,39(11):6-13.
[17]平欣. 基于微信小程序的智能輪椅監(jiān)控系統(tǒng)的設計與實現(xiàn)[D].鹽城:鹽城工學院,2023.
收稿日期:2023-08-21 修回日期:2023-09-28
作者簡介:姜善英(1997—),男,碩士在讀,研究方向為物聯(lián)網(wǎng)通信、智能制造。
解乃軍(1968—),女,正高級工程師,研究生導師,研究方向為智能制造、增材制造。
殷冬年(1999—),女,碩士在讀,研究方向為嵌入式、智能制造。