馮欣悅,劉李河,姚佳露
(佛山職業技術學院,廣東佛山,528000)
近年來隨著人們生活水平的提高,飼養寵物的家庭越來越多,寵物可穿戴設備成為當前一個熱點研究課題。數據顯示,全球寵物電子設備市場規模到2024年將達到至少25億美元,中國的市場份額將超過20%。國內寵物智能產品從創新設計、研發再到銷售,都逐漸進入社會市場中,越來越多的人們開始接受、并開始改變養寵方式。從長遠看,寵物智能穿戴設備的需求將會越來越大。基于此,本文設計和開發除了一款基于STM32單片機的智能寵物穿戴設備。
本文所設計的智能寵物穿戴設備,主要包括健康指標檢測、心電圖、語音交互、精準定位、實時傳輸、系統化管理、云端數據同步等功能。
(1)健康指標檢測:系統可檢測寵物心率,血氧濃度,脈搏等健康指標。
(2)心電圖功能:可實時輸出寵物心電(ECG)顯示在LCD電容屏幕上。
(3)語音交互功能:語音識別加語音播報功能,可識別亦可反饋,通過語音控制系統。
(4)精準定位功能:系統采用NEO-M8N+GPS+北斗三重定位芯片,可迅速精準定位寵物位置。
(5)實時傳輸功能:采用GSM模塊,可將寵物健康指標與位置信息通過短信發送至指定手機號碼。
(6)系統化管理:采用WIFI模塊將系統采集到的各項數據上傳至手機APP,可在線管理分析。
(7)云端數據同步:系統將各項數據實時上傳至中移物聯云端,通過數據分析與處理,得到更加精準的寵物健康信息。
系統硬件整體連接示意圖如圖1所示。由于系統各功能模塊較多,功能模塊多采用串口通信,為了滿足這些功能模塊通信接口需求,采用一片STM32F103芯片和一片STM32F407芯片進行數據傳輸和數據處理。STM32F103芯片與NBIOT模塊和GSM模塊連接。STM32F407芯片與GPS模塊、心電監測模塊等其他模塊連接。STM32F103芯片與STM32F407芯片之間是通過串行外設接口(SPI)通信。SPI是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的管腳。

圖1 系統硬件整體連接圖
選用STM32F103RCT6作為系統控制核心。STM32F 103RCT6是一種嵌入式-微控制器的集成電路(IC),芯體尺寸是32位,主頻是72MHz,程序存儲器容量是256KB,程序存儲器類型是FLASH,RAM容量是48K。該芯片使用ARM Cortex-M3處理器內核,具有外設接口豐富、高性能、低成本和低功耗的優點。
本項目主要使用該芯片的串口外設資源。其中,UART2與NBIOT連接;UART3與SIM900A連接;UART1作為調試串口,方便開發過程軟件調試;SPI1與STM32F407通信。其他外設資源可以為功能擴展預留。
該最小系統選用STM32F407VET6芯片作為控制核心。STM32F407VET6使用ARM Cortex-M4處理器內核,具有強大的浮點運算功能,主頻是168MHz,外設接口豐富。項目中感知模塊、GPS模塊、WIFI模塊、語音識別模塊和語音播報模塊都與其連接。STM32F407VET6芯片采集GPS數據、心電數據、血氧數據、溫度數據和心率數據,并進行數據處理;通過OLED模塊顯示指標數據;通過WIFI模塊將健康指標數據發送到手機客戶端。
寵物智能穿戴設備連接的模塊多,需要處理較多數據,因此需要處理芯片外設多、實時數據處理能力強,STM32F407VET6顯然能夠勝任該需求。
MAX30102是一個集成的脈搏血氧和心率監測生物傳感器模塊。它集成一個紅光LED、光電檢測器、光器件,以及帶環境光抑制的低噪聲電子電路。適用于穿戴設備進行心率和血氧采集和檢測。MAX30102采用標準的I2C兼容的通信接口,將采集的數據傳輸到單片機進行處理。
系統使用AD8232模塊來實時監測寵物心率。AD8232是一款用于ECG及其他生物測量應用的集成信號調理模塊。該模塊主要用于在運動或遠程電極放置產生的噪聲的情況下提取、放大及過濾微弱的生物信號,適用于心電信號采集。AD8232模塊輸出心電信號范圍是0~3.3V,通過STM32F407的AD轉換外設以50Hz頻率讀取模擬電壓信號,并轉換成數據信號。
系統的語音交互功能包括語音識別、語音播報和邏輯控制。
語音播報功能由MP3模塊實現。MP3模塊原理圖如圖2所示。MP3模塊自帶SD卡槽,將存有語音文件的SD卡插入,通過串口給MP3模塊發送播放指令,MP3模塊會使用外接的揚聲器播放語音。其中端口RX和TX分別是UART接收端口和發送端口,它們分別與STM32F407的TX和RX連接。SPK1和SPK2是連接揚聲器。

圖2 MP3模塊接線原理圖
語音識別功能由LD3320模塊實現。它與STM32F407通過UART串口連接。模塊具有口令識別模式和普通模式。其中口令模式又分為一級口令和二級口令。系統使用LD3320的口令識別模式,一級口令用于喚醒識別功能,二級口令用于發出指令。LD3320模塊識別到指令后,通過串口將指令發送到STM32F407。STM32F407根據指令執行相應任務(語音播報、指標發送等)。LD3320模塊的指令可以根據需要設置,但是STM32F407程序中要有對應的指令處理流程。
系統使用中微GPS模塊定位。該模塊支持北斗、GPS和GLONASS衛星系統。模塊通過串口將GPS數據發送到STM32F407,由STM32F407進行數據解析。中微GPS模塊定位精度10m左右,需要在室外才能收到衛星信號,因此在室內是無法完成定位的。中微GPS模塊還可以為系統提供準確的時間。GPS模塊電路原理圖如圖3所示。

圖3 GPS模塊電路原理圖
系統使用ESP8226串口WIFI模塊。該模塊具有成本低、穩定性好和抗干擾能力強的特點。模塊內部使用LWIP協議,支持AP、STA和AP+STA三種模式。采用AT指令對模塊進行讀寫操作,簡單高效。
在系統中,使用WIFI模塊將寵物指標發送到移動客戶端,發送頻率為1Hz。
系統使用DS18B20數字溫度傳感器測量寵物的體溫。DS18B20是美國DALLAS公司生產的單總線數字溫度傳感器。其測溫范圍是-55℃~+125℃,最大分別按率達0.5℃。
系統使用0.96寸的OLED顯示屏模塊顯示主要參數指標,分辨率為128×64,采用SSD1306作為驅動芯片。OLED顯示屏具有自發光的特性,其上有非常薄的有機材料涂層和基板,當有電流通過時,這些有機材料就會發光,而且屏幕可視角大(大于160°)、功耗低、反應速度快。OLED顯示屏通過I2C總線與STM32F407通信。
系統通過NBIOT模塊云端數據同步,通過數據分析與處理,得到更加精準的寵物健康信息。STM32F407將采集到的寵物健康指標數據通過SPI串口發送到STM32F103,STM32F103通過UART串口將寵物健康指標數據轉發到NBIOT模塊,最后由NBIOT模塊發送到云端服務器。
GPRS/GSM模塊選用型號為SIM9000A,它搭載GA6-B模組。GA6-B模組采用2G通信標準,覆蓋范圍廣。GA6-B模組傳輸速度快,支持85.6kbps峰值傳輸速率。采用UART與單片機通信,使用方便。
軟件設置如圖4所示,系統上電后首先初始化單片機外設和各功能模塊。初始化完成后就進入系統軟件主循環。每一次循環都會從相應模塊中獲取數據并進行計算,得到最終的寵物健康指標。然后根據初始化的情況分別執行相應的動作。如果OLED初始化成功,則會實時顯示健康指標。健康指標顯示的刷新頻率是1Hz。如果WIFI連接,則系統會以1Hz的頻率向移動客戶端發送寵物健康指標信息。如果NBIOT模塊運行正常,則會以1Hz的頻率將寵物健康指標同步到云端。當系統檢測到寵物指標有異常,會將異常提示以短信的形式發送時到寵物主人手機。

圖4 系統軟件設計圖
主要進行了三個測試,分別為語音控制寵物健康指標數據發送(通過短信發送到手機),WIFI發送寵物健康指標數據到手機APP,模擬移動客戶端接收數據,通過NBIOT將寵物健康指標數據同步到云端,使用騰訊云服務器模擬云端服務器。
語音控制指標發送流程為:
(1)用戶說“小杰”作為一級指令,喚醒語音模塊。
(2)系統識別到一級指令,回復“我在,請吩咐”,此時用戶可以說二級指令。如果系統未識別到正確的指令,則會回復“聽不清,請重新說”,返回第一步。
(3)用戶說“指標發送”作為二級指令,控制短信發送指標到手機。
(4)系統識別到二級指令,則通過SIM900A模塊發送指標到指定手機。如果系統未識別二級指令,則回復“聽不清,請重新說”,此時返回第三步。
測試結果如圖5所示。

圖5 手機短信接收指標數據實驗結果
系統正常運行時,會以1Hz的頻率發送寵物健康指標到指定的移動客戶端。該測試使用手機APP模擬移動客戶端。APP接收結果如圖6所示。

圖6 手機APP接收寵物數據實驗結果
系統正常運行時,NBIOT模塊會以1Hz的頻率發送寵物健康指標到指定的服務器。實驗使用騰訊云服務器打開網絡調試工具接收系統發送出來的數據,測試結果如圖7所示。
在本設計中通過STM32單片機實現了智能寵物穿戴設備的健康指標檢測、心電圖、語音交互、精準定位、實時傳輸、數據實施監控等功能。本設計可以通過GPS定位,向主人發送寵物位置信息,脫離既定的活動范圍會向主人發出警報,這樣可以很大程度上防止寵物走失。本設計可以監測寵物的心率和呼吸速率的功能。呼吸、心率數據也會發到云端分析,一旦數據異常,主人手機上的客戶端就會建議主人帶寵物上醫院。作為守護寵物健康的先頭部隊。