肖元秀,胡佳美,楚天鵬
(南京理工大學紫金學院,江蘇 南京 210046)
近年來在國家生育政策的推動下,我國嬰兒的出生率呈現了回升趨勢。同時,伴隨著社會的發展和人們生活質量的提高,家庭越來越注重嬰幼兒時期的發育和成長。不過,嬰幼兒缺乏生活自理能力,再加上年輕父母缺乏撫育嬰幼兒相關經驗,導致在照看嬰幼兒方面需要投入大量的人力和精力。同時快節奏的生活以及現實中存在的不可預見等因素,導致一些難以及時發現嬰幼兒身體異常的情況,使得嬰幼兒的照看問題逐漸成為社會焦點[1]。
隨著物聯網和信息技術的快速發展,移動互聯網服務極大地方便了人們的日常生活,微信小程序依托于微信,提供了完整的微信小程序端和后臺服務器端的API 應用,無須安裝和卸載,直接通過“掃一掃”或“搜索”等功能即可打開應用,用完后直接退出程序,極大地節約了開發和維護系統的運營成本[2]。因此,設計并實現了一個基于云平臺和微信小程序的健康監測系統,采用多種傳感器對溫濕度、煙霧、血氧和心率等進行實時監測,通過終端設備遠程監測嬰幼兒的健康、環境和活動狀態,當嬰幼兒身體出現異常或緊急狀況時能夠自動報警,提醒照看人員及時處理,將危險防患于未然。
系統總體架構如圖1所示,主要由控制模塊、云平臺、微信小程序三大功能模塊構成。控制模塊以STM32F103為主控芯片配合多種檢測傳感器組成,首先利用多種傳感器對嬰幼兒的生理特征和周圍環境等信息進行數據采集,然后將采集到的數據傳輸給STM32進行處理,并驅動LCD顯示模塊顯示處理結果以及對異常數據通過蜂鳴器自動報警,最后通過無線通信Wi-Fi模塊將采集到的數據通過HTTP協議傳輸至OneNET 云平臺。云平臺模塊基于OneNET 實現了歷史數據的存儲,通過云平臺網頁可查看嬰幼兒的個人健康與活動信息。微信小程序與云平臺之間通過建立連接可遠程訂閱或下發數據,用戶可以在微信小程序界面訪問云平臺查看數據、設置各項數據的閾值,實現遠程監控和在線語音識別等功能,觀察嬰幼兒的實時狀態,輔助監護人更好地看護。當嬰幼兒出現健康狀態不佳或周圍環境出現異常時,微信小程序會及時自動報警,提醒照看人員及時進行處理,大大減輕了家庭的生活壓力和負擔。

圖1 健康監測系統總體架構圖
系統硬件主要由4部分組成:主控模塊、信息采集模塊、LCD 顯示模塊和無線通信模塊,硬件結構圖如圖2所示。通過多傳感器采集周圍環境的溫濕度、煙霧濃度和光照強度,檢測嬰幼兒的體溫、心率、血氧以及姿態等信息,數據超過閾值時會產生報警提示,并將數據通過Wi-Fi模塊上傳至OneNET云平臺。

圖2 系統硬件結構圖
系統主控模塊選用基于ARM Cortex-M3 為內核的STM32F103ZET6 處理芯片,片上集成了64 KB 的SRAM 和512KB 的FLASH,5 個USART 串口通信接口等電路接口,具有足夠數量的I/O 端口[3],內部數據存儲空間容量大,定時器、ADC等資源配置豐富,硬件兼容性好,代碼效率高,數據傳輸快,可以很好地滿足本系統各功能的設計要求。
1)環境信息采集
環境信息采集包括溫濕度傳感器、光照傳感器和煙霧傳感器三個模塊。為簡化電路設計,溫濕度采集選用DHT11 傳感器,可同時測量溫濕度信號,其串行數據接口DAT與PG11引腳連接,電源引腳VCC接5V電源,接地引腳GND接地。通過配置可直接輸出數字信號,主控芯片讀取、處理后便可得到環境溫濕度。光照檢測采用光敏傳感器實現對環境光度數據的采集,根據電路中測出的AD 轉換值繼而計算得到實際光照值,編程簡單,成本較低,適合本系統使用。MQ-2 煙霧傳感器對環境液化氣和煙霧等較敏感,驅動電路簡單、靈敏度高,其AO接口與PA1引腳連接測量電壓,從而得到煙霧濃度。
2)健康信息采集
MAX30102 傳感器是一款高性能集成脈搏血氧儀、心率監測傳感器模塊,通過反射方式檢測血氧飽和度和心率[4]。其中SDA 接口與PB11 引腳連接,SCL接口與PB10引腳連接,將采集到的脈搏波信號由IIC通信方式傳到主控芯片進行濾波處理及參數計算,建立相關參數模型,從而求得心率和血氧飽和度的值,電路原理圖如圖3所示。

圖3 MAX30102傳感器原理圖
另外一個健康信息采集模塊是MPU6050,它是整合性六軸運動處理組件,自帶數字溫度傳感器,組合了三軸陀螺儀和三軸加速器,可以測量x、y、z 三個方向的加速度和角速度值,檢測軸如圖4所示。采樣數據經過濾波處理后,通過IIC 通信協議調用數字運動處理器DMP 函數處理可實現姿態解算[5]。通過三個方向的歐拉角及人體加速度向量幅值SVM 綜合判斷是否為摔倒姿態。

圖4 MPU6050檢測軸及其方向
顯示模塊選擇TFT LCD顯示屏,以英文縮寫的方式顯示周圍環境及健康采集信息。TFT LCD 模塊內置了ASCII 碼字庫,與主控模塊通過并行數據傳輸進行通信。測試時,主控模塊程序判斷檢測階段、控制LCD顯示出各階段的采集數據,完成健康監控系統的數據顯示功能。
系統采用ESP8266 Wi-Fi 模塊通過USART3 串口,并與主控芯片對應的RXD、TXD 引腳相連實現通信,將硬件采集的所有數據傳輸至云平臺。Wi-Fi 模塊由AT 指令控制,發送相應指令配置連接至無線網絡,通過無線網絡接入物聯網實現與云平臺的通信,Wi-Fi模塊通信流程圖如圖5所示。

圖5 Wi-Fi模塊通信流程圖
程序的開發環境采用Keil uVision5,可方便地實現基于STM32 的信息采集系統的軟件設計。系統主程序流程圖如圖6所示,首先,系統會對各個模塊進行初始化,包括各傳感器初始化配置、ESP8266 初始化以及LCD顯示屏初始化等;初始化完成后進行信息采集,調用相應函數執行不同的數據采集任務;然后采集到的數據經過主控芯片進行數據處理,得到實際參數信息并與設定值進行比較,若超出設定閾值則觸發蜂鳴器報警;最后根據不同的工作階段控制顯示屏顯示,在檢測結束后與ESP8266 通信將數據上傳至云平臺。

圖6 系統主程序流程圖
系統以OneNET云平臺作為數據的轉發和存儲中心,通過HTTP通信協議上報各類傳感器數據,上傳的數據需要符合HTTP 協議規范,數據的內容包括設備ID、APIKEY以及數據流等[6]。將傳感器采集數據上傳至云平臺的過程如下:1)登錄OneNET 平臺并在同一WiFi 下建立局域網進行通信配置;2)添加產品、添加設備,協議選擇HTTP,系統自動為設備分配對應的ID及APIKEY;3)創建數據流,將各類傳感器數據上傳對應的數據流,上傳的多個數據點可直觀展示數據的變化走向;4)創建應用,綁定到對應的設備,監測數據將在云平臺實時顯示與記錄嬰幼兒的體溫、心率、周圍環境等數據,也可以在可視化界面中以圖表的形式直觀顯示,例如LED 指示燈數據變化的曲線如圖7 所示,通過云平臺下發命令控制LED燈的亮滅,狀態由0變為1或由1變為0。

圖7 OneNET云平臺數據展示
微信小程序開發采用了MINA 框架,頁面結構用WXML 構建,頁面樣式用WXSS 編寫,編程語言采用JavaScript。界面設計有4 個主要頁面:登錄頁面、基本信息頁面、天氣頁面和語音控制頁面。用戶在登錄頁面輸入用戶名和密碼后即可進入系統?;拘畔㈨撁嬲故玖说卿浨闆r及各傳感器的數值信息,根據各參數設定的閾值與系統實時監測數據對比,對異常數據報警,及時告知看護人員避免幼兒發生意外;天氣頁面展示了實時天氣情況及生活指數供參考,以更好地照顧嬰幼兒的生活,位置定位功能可實現精準的位置定位與設置;語音控制頁面借助百度AI 開放平臺,實現了在線語音識別與播報功能,語音識別結果還可轉換成文字,當檢測到語音關鍵詞后進行識別匹配并播報指定的語音,通過識別后的語音結果可以控制主控芯片上的蜂鳴器或LED指示燈。
經測試驗證,系統能夠成功地實現數據的獲取、調用和下發,微信小程序可通過調用wx.request()獲取環境和健康參數信息,圖8 和圖9 分別是用戶端基本信息頁面和天氣頁面展示。結果表明該系統可以完成對嬰幼兒健康及環境相關信息的實時監測,家人或看護人員可以實時查看嬰幼兒的各項狀態,對異常情況能夠及時地掌控。

圖8 基本信息頁面展示
本文介紹了基于STM32 的嬰幼兒健康監測系統的設計與實現,該系統通過采集個人健康和環境數據及時地感知了解嬰幼兒的身體狀況和生活環境的適宜度,通過STM32 主控器協調各模塊工作,實現了傳感器數據采集的靈活控制,并通過Wi-Fi 無線通信模塊將數據上傳至OneNET 云平臺,微信小程序實現數據動態呈現在用戶終端,實現了嬰幼兒健康信息實時查看,異常數據實時報警,有效地監測和防止嬰幼兒身體出現狀況或安全問題的發生,為育兒提供指導與幫助,具有一定的應用價值。