郭麗霞,杜 丘,吳新峰
(1.安陽工學院 電子信息與電氣工程學院,河南 安陽 455000;2.中國聯合網絡通信有限公司徐州市分公司,江蘇 徐州 221000;3.天津環安科技有限公司,天津 301726)
本設計實現了一款基于STM32 和窄帶物聯網NB-IoT(Narrow Band Internet of Things)的可穿戴式老人摔倒監測裝置。裝置終端具有多種傳感器,能夠采集穿戴人的身體姿態、心率等多個參數;裝置通信端通過NB-IoT 把采集的數據實時上傳到云平臺,云平臺對數據進行處理,并把身體健康數據及摔倒報警信息推送到相應家庭人員的手機里。本裝置還能在摔倒時進行本地蜂鳴器報警,并且獲助后可一鍵消除報警。
本設計主要具有4 個優點。一是多傳感器。該裝置具有檢測身體姿態、心率等多個參數的傳感器,能夠實時地對多個參數進行采集,通過算法優化,當穿戴人摔倒時,能夠第一時間報警,并推送摔倒信息。二是低功耗。本設計采用NB-IoT 技術,NBIoT 又稱為低功耗廣域網,支持低功耗設備的蜂窩數據連接,該設計的無線傳輸模塊采用N21 模組。三是低成本。由于NB-IoT 資費很低,大大降低了整體系統運營成本。四是數據完整。每秒均進行數據采集,數據存儲在本地EEPROM 里,當無線信號不好時,數據也能保存下來,信號好時,再進行數據傳輸,從而保證了數據的完整性。
該裝置的結構組成如圖1 所示,包含數據處理部分、無線數據傳輸部分、多參數數據采集部分、顯示部分、報警部分和程序下載接口部分等組成部分。它采用STM32F103 處理器進行數據處理;利用NBIoT 的N21 模塊傳輸無線數據;采用MPU6050 陀螺儀和MAX30102 分別進行姿態檢測和心率檢測。

圖1 裝置的結構框圖
該裝置采用STM32 作為處理器的原因是STM32單片機工作性能穩定可靠,軟件和硬件資源能夠很好地滿足當前設計要求,并且方便以后擴展應用;相對于通用無線分組業務GPRS(General Packet Radio Service)技術,NB-IoT 技術進行無線傳輸資費低、功耗低,NB-IoT 相對于遠距離無線電LoRa(Long Range Radio)技術所受的干擾小并且通信更安全。基于以上原因,本文以STM32 和NB-IoT 為關鍵技術實現這款可穿戴式老人防摔監測裝置。
2.1.1 STM32F103的特點
整個裝置的數據處理由STM32F103[1]來完成。STM32F103 是32 位ARM 微控制器,芯片是意法半導體公司出品,內核是Cortex-M3,適用廣泛的通用和低功耗應用,主頻72 MHz,具有12 位AD 轉換器,多串口,具有IIC 接口和SPI 接口,方便對外設進行控制。
2.1.2 MPU6050 介紹
姿態檢測通過MPU6050[2]來實現。MPU6050是整合性6 軸運動處理組件。與多組件方案相比,它有2 個優點,一是可以避免組合陀螺儀與加速器時間軸之差的問題,二是可以縮小封裝空間。當連接到三軸磁強計時,MPU-6050 提供完整的9 軸運動,數據通過IIC 或SPI 端口輸出。
2.1.3 MAX30102 介紹
心率檢測由MAX30102 生物傳感器來實現。它集成了脈搏血氧儀和心率監測儀,包含660 nm紅光LED、880 nm 紅外光LED、光電檢測器、光器件和帶環境光抑制的低噪聲電子電路。因為它可通過軟件關斷模塊,待機電流為零,可實現電源始終維持供電狀態,所以該模塊適用于低功耗產品。
2.1.4 NB-IoT 無線傳輸模塊N21 介紹
數據的無線傳輸由NB-IoT[3]無線傳輸模塊N21 進行。它是一款超小封裝的NB-IoT 工業級無線通信模塊[4]。因為它的功耗超低,所以適用于低功耗的物聯網通信設備。此外,它還具有覆蓋域廣、外圍電路簡單、客戶易于開發等優點。因此,本系統選擇它作為無線傳輸模塊。
整個裝置的數據處理由STM32F103 單片機來完成。它的IO 口可模擬IIC 總線,同時IO 口具有中斷功能,可接收外接芯片的中斷信號;程序通過SWD 兩線進行程序下載;內部具有RTC 實時時鐘,配置外置晶振,可實現萬年歷功能。數據處理單元電路圖如圖2 所示。

圖2 STM32F103 單片機及其外圍電路圖
NB-IoT 無線傳輸模塊N21 通過串口的RXD和TXD 與STM32F103單片機相連接,通過SIMCLK、SIMRST 和SIMVCC 與SIM卡連接。N21 電路設計和SIM 卡電路設計分別如圖3 和圖4 所示。

圖3 N21 外圍電路圖

圖4 SIM 卡外圍電路圖
該裝置需要采集身體姿態、心率和溫濕度多個參數,這些參數分別由MPU6050 陀螺儀、心率檢測模塊MAX30102 和溫濕度傳感器SHT20 來完成,它們均與STM32F103 單片機進行連接。
MPU6050 陀螺儀和STM32F103 單片機通過IIC 接口進行連接。STM32F103 的IO 口PB5和PB4用軟件模擬IIC 的SDA 和SCL 接口,PB3 用IO 口中斷來接收MPU6050 的中斷信號。MPU6050 的連接電路圖如圖5 所示。

圖5 MPU6050 外圍電路圖
心率檢測模塊MAX30102 和STM32F103 單片機的通信通過IIC 來進行,用單片機的IO 口PA7 來模擬SCL,用PB0 來模擬SDA,用PB1 來接收MAX30102的中斷信號。 MAX30102 連接電路圖如圖6 所示。

圖6 MAX30102 外圍電路圖
溫濕度傳感器SHT20 通過IIC 接口和STM32F103單片機進行連接,單片機STM32F103 的IO 口PB13模 擬SCL,PB12 模 擬SDA,通 過 這2 個IO 口 和SHT20 進行通信。SHT20 連接電路圖如圖7 所示。

圖7 SHT20 外圍電路圖
硬件設計決定著整體電路的性能和可靠性[5]。在進行硬件設計時應著重考慮以下2 個方面,才能保證電路可靠運行。
電源方面:電源的負載能力和紋波大小是電源最重要的2 個參數,它們會直接影響電源的性能和穩定性。無線模塊在弱信號情況下,可能會以最大功率發射,此時瞬時峰值電流可達1 A 左右,而此時如果電源負載能力達不到,則會造成模塊電壓跌落,而如果電壓跌落到 3.3 V 以下,又會造成模塊重啟等異常;電源的紋波會對數據采集產生干擾,電源浪涌會對模塊產生損壞,所以需要平滑供電電源的電壓波動,還應降低高頻干擾。電源走線需要遠離射頻部分。主電源走線的寬度要求大約為2 mm。
PCB 設計方面:PCB 設計方面主要應注意PCB 的走線方式、元器件布局和隔離措施。其中PCB 的走線方式對射頻線提出了一些要求,它要求射頻線自身的寬度為0.8~1.0 mm,射頻線與鋪地之間的距離為1.0~0.8 mm,射頻線應該完整包地且需要多打地孔,射頻線對應的背面層應該挖地掏空,射頻線走線應該盡量短(不超過15 mm為宜),射頻線還應該盡量圓滑等;元器件布局方面考慮大功率模塊的電源和其它電路電源做隔離處理;隔離措施采用 DC-DC 或者電感搭建的LC 濾波電路。
軟件開發以KEIL5 為開發平臺,按照模塊化進行設計。下面圖8~圖10 是該裝置設計中的部分關鍵流程圖,包括主控制流程圖、跌倒算法流程圖和控制無線傳輸模塊N21 進行數據傳輸的配置流程圖,其中單片機主要是通過AT 指令對NB-IoT 模塊N21 進行控制[6]來實現數據的無線傳輸。

圖10 配置N21 流程圖
完成上述硬件和軟件設計后,該裝置實現了其預期功能。該裝置檢測到摔倒和未摔倒2 種情況的結果如圖11 所示。

圖11 摔倒和正常情況檢測結果
目前,可穿戴式老人防摔監測裝置已設計完成,它以 STM32F103 單片機為主控單元,采用多種傳感器獲得數據,不僅可以檢測出老人的姿態信息,還可以通過心率對老人的身體狀態進行監測,并實現遠程數據顯示與報警的功能。最終該裝置各個器件都能夠正常工作,實現了本設計的預期功能。該裝置的應用將大大有助于摔倒的老人被及時發現并盡快得到救助,從而降低因意外摔倒導致的傷亡率。