馮欣悅,劉李河,姚佳露
(佛山職業(yè)技術學院,廣東佛山,528000)
近年來隨著人們生活水平的提高,飼養(yǎng)寵物的家庭越來越多,寵物可穿戴設備成為當前一個熱點研究課題。數(shù)據(jù)顯示,全球?qū)櫸镫娮釉O備市場規(guī)模到2024年將達到至少25億美元,中國的市場份額將超過20%。國內(nèi)寵物智能產(chǎn)品從創(chuàng)新設計、研發(fā)再到銷售,都逐漸進入社會市場中,越來越多的人們開始接受、并開始改變養(yǎng)寵方式。從長遠看,寵物智能穿戴設備的需求將會越來越大。基于此,本文設計和開發(fā)除了一款基于STM32單片機的智能寵物穿戴設備。
本文所設計的智能寵物穿戴設備,主要包括健康指標檢測、心電圖、語音交互、精準定位、實時傳輸、系統(tǒng)化管理、云端數(shù)據(jù)同步等功能。
(1)健康指標檢測:系統(tǒng)可檢測寵物心率,血氧濃度,脈搏等健康指標。
(2)心電圖功能:可實時輸出寵物心電(ECG)顯示在LCD電容屏幕上。
(3)語音交互功能:語音識別加語音播報功能,可識別亦可反饋,通過語音控制系統(tǒng)。
(4)精準定位功能:系統(tǒng)采用NEO-M8N+GPS+北斗三重定位芯片,可迅速精準定位寵物位置。
(5)實時傳輸功能:采用GSM模塊,可將寵物健康指標與位置信息通過短信發(fā)送至指定手機號碼。
(6)系統(tǒng)化管理:采用WIFI模塊將系統(tǒng)采集到的各項數(shù)據(jù)上傳至手機APP,可在線管理分析。
(7)云端數(shù)據(jù)同步:系統(tǒng)將各項數(shù)據(jù)實時上傳至中移物聯(lián)云端,通過數(shù)據(jù)分析與處理,得到更加精準的寵物健康信息。
系統(tǒng)硬件整體連接示意圖如圖1所示。由于系統(tǒng)各功能模塊較多,功能模塊多采用串口通信,為了滿足這些功能模塊通信接口需求,采用一片STM32F103芯片和一片STM32F407芯片進行數(shù)據(jù)傳輸和數(shù)據(jù)處理。STM32F103芯片與NBIOT模塊和GSM模塊連接。STM32F407芯片與GPS模塊、心電監(jiān)測模塊等其他模塊連接。STM32F103芯片與STM32F407芯片之間是通過串行外設接口(SPI)通信。SPI是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳。
圖1 系統(tǒng)硬件整體連接圖
選用STM32F103RCT6作為系統(tǒng)控制核心。STM32F 103RCT6是一種嵌入式-微控制器的集成電路(IC),芯體尺寸是32位,主頻是72MHz,程序存儲器容量是256KB,程序存儲器類型是FLASH,RAM容量是48K。該芯片使用ARM Cortex-M3處理器內(nèi)核,具有外設接口豐富、高性能、低成本和低功耗的優(yōu)點。
本項目主要使用該芯片的串口外設資源。其中,UART2與NBIOT連接;UART3與SIM900A連接;UART1作為調(diào)試串口,方便開發(fā)過程軟件調(diào)試;SPI1與STM32F407通信。其他外設資源可以為功能擴展預留。
該最小系統(tǒng)選用STM32F407VET6芯片作為控制核心。STM32F407VET6使用ARM Cortex-M4處理器內(nèi)核,具有強大的浮點運算功能,主頻是168MHz,外設接口豐富。項目中感知模塊、GPS模塊、WIFI模塊、語音識別模塊和語音播報模塊都與其連接。STM32F407VET6芯片采集GPS數(shù)據(jù)、心電數(shù)據(jù)、血氧數(shù)據(jù)、溫度數(shù)據(jù)和心率數(shù)據(jù),并進行數(shù)據(jù)處理;通過OLED模塊顯示指標數(shù)據(jù);通過WIFI模塊將健康指標數(shù)據(jù)發(fā)送到手機客戶端。
寵物智能穿戴設備連接的模塊多,需要處理較多數(shù)據(jù),因此需要處理芯片外設多、實時數(shù)據(jù)處理能力強,STM32F407VET6顯然能夠勝任該需求。
MAX30102是一個集成的脈搏血氧和心率監(jiān)測生物傳感器模塊。它集成一個紅光LED、光電檢測器、光器件,以及帶環(huán)境光抑制的低噪聲電子電路。適用于穿戴設備進行心率和血氧采集和檢測。MAX30102采用標準的I2C兼容的通信接口,將采集的數(shù)據(jù)傳輸?shù)絾纹瑱C進行處理。
系統(tǒng)使用AD8232模塊來實時監(jiān)測寵物心率。AD8232是一款用于ECG及其他生物測量應用的集成信號調(diào)理模塊。該模塊主要用于在運動或遠程電極放置產(chǎn)生的噪聲的情況下提取、放大及過濾微弱的生物信號,適用于心電信號采集。AD8232模塊輸出心電信號范圍是0~3.3V,通過STM32F407的AD轉(zhuǎn)換外設以50Hz頻率讀取模擬電壓信號,并轉(zhuǎn)換成數(shù)據(jù)信號。
系統(tǒng)的語音交互功能包括語音識別、語音播報和邏輯控制。
語音播報功能由MP3模塊實現(xiàn)。MP3模塊原理圖如圖2所示。MP3模塊自帶SD卡槽,將存有語音文件的SD卡插入,通過串口給MP3模塊發(fā)送播放指令,MP3模塊會使用外接的揚聲器播放語音。其中端口RX和TX分別是UART接收端口和發(fā)送端口,它們分別與STM32F407的TX和RX連接。SPK1和SPK2是連接揚聲器。
圖2 MP3模塊接線原理圖
語音識別功能由LD3320模塊實現(xiàn)。它與STM32F407通過UART串口連接。模塊具有口令識別模式和普通模式。其中口令模式又分為一級口令和二級口令。系統(tǒng)使用LD3320的口令識別模式,一級口令用于喚醒識別功能,二級口令用于發(fā)出指令。LD3320模塊識別到指令后,通過串口將指令發(fā)送到STM32F407。STM32F407根據(jù)指令執(zhí)行相應任務(語音播報、指標發(fā)送等)。LD3320模塊的指令可以根據(jù)需要設置,但是STM32F407程序中要有對應的指令處理流程。
系統(tǒng)使用中微GPS模塊定位。該模塊支持北斗、GPS和GLONASS衛(wèi)星系統(tǒng)。模塊通過串口將GPS數(shù)據(jù)發(fā)送到STM32F407,由STM32F407進行數(shù)據(jù)解析。中微GPS模塊定位精度10m左右,需要在室外才能收到衛(wèi)星信號,因此在室內(nèi)是無法完成定位的。中微GPS模塊還可以為系統(tǒng)提供準確的時間。GPS模塊電路原理圖如圖3所示。
圖3 GPS模塊電路原理圖
系統(tǒng)使用ESP8226串口WIFI模塊。該模塊具有成本低、穩(wěn)定性好和抗干擾能力強的特點。模塊內(nèi)部使用LWIP協(xié)議,支持AP、STA和AP+STA三種模式。采用AT指令對模塊進行讀寫操作,簡單高效。
在系統(tǒng)中,使用WIFI模塊將寵物指標發(fā)送到移動客戶端,發(fā)送頻率為1Hz。
系統(tǒng)使用DS18B20數(shù)字溫度傳感器測量寵物的體溫。DS18B20是美國DALLAS公司生產(chǎn)的單總線數(shù)字溫度傳感器。其測溫范圍是-55℃~+125℃,最大分別按率達0.5℃。
系統(tǒng)使用0.96寸的OLED顯示屏模塊顯示主要參數(shù)指標,分辨率為128×64,采用SSD1306作為驅(qū)動芯片。OLED顯示屏具有自發(fā)光的特性,其上有非常薄的有機材料涂層和基板,當有電流通過時,這些有機材料就會發(fā)光,而且屏幕可視角大(大于160°)、功耗低、反應速度快。OLED顯示屏通過I2C總線與STM32F407通信。
系統(tǒng)通過NBIOT模塊云端數(shù)據(jù)同步,通過數(shù)據(jù)分析與處理,得到更加精準的寵物健康信息。STM32F407將采集到的寵物健康指標數(shù)據(jù)通過SPI串口發(fā)送到STM32F103,STM32F103通過UART串口將寵物健康指標數(shù)據(jù)轉(zhuǎn)發(fā)到NBIOT模塊,最后由NBIOT模塊發(fā)送到云端服務器。
GPRS/GSM模塊選用型號為SIM9000A,它搭載GA6-B模組。GA6-B模組采用2G通信標準,覆蓋范圍廣。GA6-B模組傳輸速度快,支持85.6kbps峰值傳輸速率。采用UART與單片機通信,使用方便。
軟件設置如圖4所示,系統(tǒng)上電后首先初始化單片機外設和各功能模塊。初始化完成后就進入系統(tǒng)軟件主循環(huán)。每一次循環(huán)都會從相應模塊中獲取數(shù)據(jù)并進行計算,得到最終的寵物健康指標。然后根據(jù)初始化的情況分別執(zhí)行相應的動作。如果OLED初始化成功,則會實時顯示健康指標。健康指標顯示的刷新頻率是1Hz。如果WIFI連接,則系統(tǒng)會以1Hz的頻率向移動客戶端發(fā)送寵物健康指標信息。如果NBIOT模塊運行正常,則會以1Hz的頻率將寵物健康指標同步到云端。當系統(tǒng)檢測到寵物指標有異常,會將異常提示以短信的形式發(fā)送時到寵物主人手機。
圖4 系統(tǒng)軟件設計圖
主要進行了三個測試,分別為語音控制寵物健康指標數(shù)據(jù)發(fā)送(通過短信發(fā)送到手機),WIFI發(fā)送寵物健康指標數(shù)據(jù)到手機APP,模擬移動客戶端接收數(shù)據(jù),通過NBIOT將寵物健康指標數(shù)據(jù)同步到云端,使用騰訊云服務器模擬云端服務器。
語音控制指標發(fā)送流程為:
(1)用戶說“小杰”作為一級指令,喚醒語音模塊。
(2)系統(tǒng)識別到一級指令,回復“我在,請吩咐”,此時用戶可以說二級指令。如果系統(tǒng)未識別到正確的指令,則會回復“聽不清,請重新說”,返回第一步。
(3)用戶說“指標發(fā)送”作為二級指令,控制短信發(fā)送指標到手機。
(4)系統(tǒng)識別到二級指令,則通過SIM900A模塊發(fā)送指標到指定手機。如果系統(tǒng)未識別二級指令,則回復“聽不清,請重新說”,此時返回第三步。
測試結果如圖5所示。
圖5 手機短信接收指標數(shù)據(jù)實驗結果
系統(tǒng)正常運行時,會以1Hz的頻率發(fā)送寵物健康指標到指定的移動客戶端。該測試使用手機APP模擬移動客戶端。APP接收結果如圖6所示。
圖6 手機APP接收寵物數(shù)據(jù)實驗結果
系統(tǒng)正常運行時,NBIOT模塊會以1Hz的頻率發(fā)送寵物健康指標到指定的服務器。實驗使用騰訊云服務器打開網(wǎng)絡調(diào)試工具接收系統(tǒng)發(fā)送出來的數(shù)據(jù),測試結果如圖7所示。
在本設計中通過STM32單片機實現(xiàn)了智能寵物穿戴設備的健康指標檢測、心電圖、語音交互、精準定位、實時傳輸、數(shù)據(jù)實施監(jiān)控等功能。本設計可以通過GPS定位,向主人發(fā)送寵物位置信息,脫離既定的活動范圍會向主人發(fā)出警報,這樣可以很大程度上防止寵物走失。本設計可以監(jiān)測寵物的心率和呼吸速率的功能。呼吸、心率數(shù)據(jù)也會發(fā)到云端分析,一旦數(shù)據(jù)異常,主人手機上的客戶端就會建議主人帶寵物上醫(yī)院。作為守護寵物健康的先頭部隊。