朱誠 周楠
【摘 要】嬰兒無規(guī)律、無前兆的排便行為,使得年輕的家長疲于應付、筋疲力盡。微處理器、傳感器、無線網(wǎng)絡技術的發(fā)展,以及智能家居概念的興起,為嬰兒用品的設計帶來了變革。文章旨在設計一種能夠在一定程度上對嬰兒的排便行為進行先期預警的裝置,介紹了采集節(jié)點主要部件的設計和相關的程序、流程,闡述了數(shù)據(jù)匹配與比較算法。經(jīng)測試表明,該裝置基本實現(xiàn)了預期的設計目標。
【關鍵詞】智能家居;嬰兒監(jiān)控;時間序列;數(shù)據(jù)匹配
【中圖分類號】R472 【文獻標識碼】A 【文章編號】1674-0688(2019)04-0072-05
1 研究背景
激烈的社會競爭和工作壓力,使得很多初為人父母的年輕家長需要在育兒和工作之間尋找平衡點。他們希望能在工作之余有更多的閑暇時間,卻往往被一個嬰兒搞得筋疲力盡、疲憊不堪,尤其是嬰兒無規(guī)律、無前兆的排便行為,更是讓家長疲于應付。
微處理器、傳感器、無線網(wǎng)絡技術的發(fā)展,以及智能家居概念的興起,為嬰兒用品的設計帶來了變革。本文旨在設計一種能夠在一定程度上對嬰兒的排便行為進行先期預警,及時通知家長處理的裝置。
根據(jù)醫(yī)學相關理論,人體在排便前夕,腸道蠕動亢進,振動幅度、頻率同時上升[1]。牛頓第三定律表明:水平、垂直方向的移動將產(chǎn)生水平、垂直方向的震動[2]。通過高靈敏度傳感器采集嬰兒腸道蠕動所產(chǎn)生的震動信號,并將數(shù)據(jù)整合形成連續(xù)的時間序列。將一定周期內(nèi)的序列數(shù)據(jù)與事先保存的基準數(shù)據(jù)進行匹配和模式識別。比較兩條曲線在總體趨勢上是否具有相似性,當相似程度達到閾值時,即可認為嬰兒具有排便的傾向和可能性,再通過無線網(wǎng)絡發(fā)送預警信息。
2 硬件架構
如圖1所示,預警裝置的核心是數(shù)據(jù)采集節(jié)點,它是由嵌入式處理器、傳感器、WIFI芯片、串行閃存、實時時鐘構成。圖2為系統(tǒng)主要部件的連線原理圖。
2.1 嵌入式處理器
系統(tǒng)采用“意法半導體”出品的STM32F101RFT6作為中央處理器[3],其內(nèi)核為Cortex-M3、主頻為36 MHz,擁有51個通用I/O接口、768 Kbytes閃存、80 KB內(nèi)存、2個I2C接口、5個USART接口、3個SPI接口。由于其供電需求為2.0~3.6 V,能夠實現(xiàn)在很小功耗的前提下,完成數(shù)據(jù)處理任務。
2.2 傳感器
人體腸道微弱震動信號的數(shù)據(jù)采集工作是由日本村田生產(chǎn)的SCA61T加速度傳感器完成的,圖3為傳感器芯片及其周邊電路,其具有以下特點:同時支持模擬輸出和數(shù)字輸出;內(nèi)置溫度傳感器,有效進行溫度補償;內(nèi)置EEPROM存儲器,保存補償信息。
2.3 WIFI模塊
為了能夠實現(xiàn)無線數(shù)據(jù)傳輸,系統(tǒng)采用Espressif公司的ESP8266芯片作為無線局域網(wǎng)通信解決方案,其具有以下特點:支持802.11 b/g/n;內(nèi)置TCP/IP協(xié)議棧;支持SPI、UART接口;待機狀態(tài)消耗功率小于1.0 mW。
2.4 外部存儲
為了滿足保存監(jiān)測數(shù)據(jù)和時間序列的需要,系統(tǒng)外部連接了一塊Winbond出品的W25Q256FV串行閃存芯片,其具有256 M-bit的容量,通過SPI接口與MCU通信,工作電流只有4 mA,在掉電模式下,只有1 μA的電流[4]。
2.5 實時時鐘
系統(tǒng)在進行采樣時,需要同時記錄數(shù)據(jù)及其出現(xiàn)的時間,以便對某些具有特殊意義的數(shù)據(jù)點進行標記,用于長時間連續(xù)檢測結果的分析。因此,系統(tǒng)使用了美國DALLAS公司的DS1302實時時鐘芯片,保證即使系統(tǒng)斷電,日期時間依然是正確的[5]。
3 傳感器模塊
3.1 傳感器的連接
表1說明了傳感器模塊與MCU之間的連接方式。
3.2 數(shù)據(jù)采集過程
SCA61T傳感器采集到的數(shù)據(jù)首先經(jīng)過內(nèi)置放大器電路放大,將變化幅度較小的原始信號放大為變化幅度明顯、易于識別的信號。然后經(jīng)內(nèi)置模/數(shù)轉換器(ADC)將模擬震動信號轉換為數(shù)字量,通過SPI接口傳輸給MCU[6]。MCU對數(shù)字信號進行數(shù)字濾波,以濾除各種干擾。
如圖4所示,采集節(jié)點上電后,首先進行MCU各個相關功能部件的初始化,然后對傳感器進行初始化。系統(tǒng)按照每秒鐘采樣1 000次的頻率讀取SPI接口數(shù)據(jù),實現(xiàn)傳感器的數(shù)據(jù)獲取,然后進行數(shù)字濾波,并將處理后的數(shù)據(jù)交給數(shù)據(jù)存儲函數(shù)完成數(shù)據(jù)的保存操作。整個過程是連續(xù)的、周而復始的。
3.3 底噪處理
由于使用環(huán)境、各種無線信號等因素的影響,傳感器會存在底噪。底噪在一定程度上影響信號采集的精確性,且很難通過硬件方面的優(yōu)化和改進完全消除。所以,系統(tǒng)通過軟件層面進行針對性調(diào)整。在數(shù)字濾波函數(shù)DigitalFilter()中,除完成必要的常規(guī)濾波工作外,還設置有一個子程序CorrectNoiseFloor(),利用表2中3個參數(shù)不同的變化調(diào)整檢測窗口、有效濾除底噪,以使采集的數(shù)據(jù)更準確。
如圖5所示,左側圖為傳感器的底噪,通過設置修正參數(shù),將右側圖檢測窗口上移,避開底噪?yún)^(qū)域,有效地減小底噪影響。
3個參數(shù)中比較重要的是Level_Floor和Signal_Range,如果設置不當將影響信號準確性。Level_Floor過低,導致部分底噪被誤認為是有效信號被采集。嬰兒未在床上,依然能夠采集到信號。Level_Floor過高,導致部分有效信號被誤認為是底噪而被過濾掉。嬰兒在床上,依然無法采集到信號。Signal_Range過低或過高,都能夠采集到信號,但是有延遲。
3.4 采集節(jié)點的安裝
如圖6所示,傳感器采用非接觸式,無需直接安裝于嬰兒身上,只需安裝于嬰兒床、嬰兒車上即可采集到數(shù)據(jù)。
如圖7所示,考慮到加速度傳感器x軸的有效工作方向,安裝傳感器模塊時,其x軸的軸向要與嬰兒身體軸向一致,且正方向指向頭部。如果兩個軸向不一致,將嚴重影響傳感器的靈敏度。
4 WIFI模塊
為了降低功耗和減小體積,采集節(jié)點沒有設置任何人機交互界面。所有的控制和數(shù)據(jù)處理任務是通過WIFI網(wǎng)絡發(fā)送至上位機軟件或手機APP完成的。
ESP8266芯片專為移動設備、可穿戴電子產(chǎn)品和物聯(lián)網(wǎng)應用設計,擁有3種模式運行:激活模式、睡眠模式和深度模睡眠式。在睡眠模式下,其消耗的電流小于12uA,處于連接狀態(tài)時,其消耗的功率少于1.0 mW。只需簡單的串口配置,即可實現(xiàn)WIFI數(shù)據(jù)傳輸[7]。表3說明了WIFI芯片與MCU之間的連接方式。
ESP8266支持STA/AP/STA+AP 3種工作模式。STA模式:ESP8266通過路由器接入無線網(wǎng)絡,通過手機或電腦對設備的遠程控制。AP模式:ESP8266作為WIFI熱點。STA+AP模式:以上兩種模式共存。
在STA模式下,可以設置3個子模式:TCP服務器、TCP客戶端、UDP。本系統(tǒng)根據(jù)設計需要,使用了STA模式的TCP服務器模式。表4是通過AT指令進行ESP8266工作模式的配置。
系統(tǒng)通過Esp8266_send_cmd(uchar*cmd,uchar *ack,uint w)函數(shù)向ESP8266芯片發(fā)送AT指令。該函數(shù)帶3個參數(shù),cmd表示要發(fā)送的指令字符串,ack表示發(fā)送指令后期待得到的應答,w表示等待應答的時間。函數(shù)返回值0表示發(fā)送成功。如Esp8266_send_cmd("AT+RST","OK",20)表示發(fā)送指令AT+RST到WIFI模塊,重啟模塊;期待的應答為“OK”;等待時間為20 ms。函數(shù)執(zhí)行流程如圖8所示。
5 數(shù)據(jù)保存與傳輸
5.1 數(shù)據(jù)格式
MCU對傳感器采集到的數(shù)據(jù)完成濾波處理后,將每1秒鐘、即1 000次的采樣數(shù)據(jù)以幀的形式進行封裝儲存在內(nèi)存中,格式見表5。
每幀長度為2 014個字節(jié),能夠攜載1秒鐘、2 000個字節(jié)的有效采集數(shù)據(jù),起始標記和結束標記共占用2個字節(jié)。時間標簽字段中數(shù)據(jù)是通過實時時鐘芯片DS1302獲取的當前系統(tǒng)時間,用于標記每一幀數(shù)據(jù)發(fā)生的具體時刻。系統(tǒng)數(shù)據(jù)傳輸使用“小端”模式,即最低有效位在前,最高有效位在后。
5.2 數(shù)據(jù)存儲傳輸方式
考慮網(wǎng)絡負載、數(shù)據(jù)完整性、系統(tǒng)執(zhí)行效率、采集節(jié)點功耗,MCU并不是立即將傳感器采集數(shù)據(jù)通過WIFI網(wǎng)絡發(fā)送給上位機。而是首先在內(nèi)存中創(chuàng)建一個“先進先出”隊列,然后在將封裝好的數(shù)據(jù)幀存入隊列中。在隊列中存儲的數(shù)據(jù)量達到1 min時,MCU通過“中斷”機制將數(shù)據(jù)幀依次從隊列中取出,存入W25Q256串行閃存中。在此期間,ESP8266芯片時鐘處于睡眠模式,有效降低了功耗。待W25Q256芯片中保存10 min數(shù)據(jù)后,MCU喚醒處于休眠狀態(tài)的ESP8266并啟動發(fā)送功能,通過WIFI網(wǎng)絡將數(shù)據(jù)發(fā)送給上位程序。由于W25Q256的容量遠大于10 min數(shù)據(jù)所需空間,所以W25Q256采取滾動更新數(shù)據(jù)的原則,當剩余空間不足2 MB時,刪除最舊的10 min數(shù)據(jù),騰出存儲空間(如圖9所示)。
這樣,融合內(nèi)存的存儲高速性和海量的存儲空間,保證采集工作的實時性和數(shù)據(jù)的完整性,同時實現(xiàn)系統(tǒng)的功耗控制,有效地延長系統(tǒng)待機時間。操作流程如圖10所示。
6 數(shù)據(jù)匹配算法
上位程序將采集節(jié)點發(fā)送的數(shù)據(jù)與樣本數(shù)據(jù)進行匹配和比較,判斷嬰兒是否有排便的可能性。但是需要比較相似性的兩段時間序列的長度可能并不相等,而且兩組數(shù)據(jù)在幅度、頻率、峰值等關鍵數(shù)據(jù)也不可能完全一致??赡軆H僅存在時間軸上的位移,亦即在還原位移的情況下,兩個時間序列是一致的。所以,使用傳統(tǒng)的歐幾里得算法無法有效地求得兩個時間序列之間的距離(或者相似性)。本系統(tǒng)采用動態(tài)時間歸整(Dynamic Time Warping,DTW)算法解決這個問題,通過把時間序列進行延伸和縮短,計算兩個時間序列性之間的相似性。
如圖11所示,上下兩條實線代表兩個時間序列,時間序列之間的虛線代表兩個時間序列之間的相似的點。DTW使用所有這些相似點之間的距離之和,稱為歸整路徑距離(Warp Path Distance)來衡量兩個時間序列之間的相似性。
設樣本時間序列和比對時間序列分別為Q和C,長度分別是n和m[8]。
Q=q1,q2,……,qi,……,qn
C=c1,c2,……,cj,……,cm
構造一個n×m的矩陣,矩陣元素(i,j)表示qi和cj兩個點的距離d(qi,cj),即序列Q的每一個點和序列C的每一個點之間的相似度,距離越小則相似度越高。算法的核心思想為在矩陣中尋找一條路徑,路徑通過的格點即為兩個序列進行計算的對齊點。
路徑的形式為D=d1,d2,……,DK,其中max(n,m)≤K≤n+m。
D中d(i,j)的i和j必須是單調(diào)增加的,以保證圖11中的虛線不會相交,所謂單調(diào)增加是指:
dk=(x,j)
dk+1=(i’,j’)
i<=i’≤1,j≤j’ 歸整路徑D必須從d1=(1,1)開始,到dK=(n,m)結尾,以保證Q和C中的每個坐標都在D中出現(xiàn)。根據(jù)每個元素的代價找出一條最短路徑,如圖12中標出的黑色曲線。 D(n,m)表示長度為n和m的兩個時間序列之間的歸整路徑距離。從(m,n)點開始,遞歸直到(1,1)點,最后求得的歸整路徑距離為D(n,m)。 D(n,m)=d(n,m)+min[D(n-1,m),D(n,m-1),D(n-1,m-1)] 當求得歸整路徑距離后,系統(tǒng)與匹配閾值進行比較,低于閾值說明比對時間序列與樣本序列是相似的,意味著嬰兒存在排便的可能性。 7 總結 該系統(tǒng)采用模塊化設計,體積小、功耗低、重量輕,因為采用無線數(shù)據(jù)傳輸和鋰電池供電,所以沒有各種電線帶來的不便。嵌入式處理器通過高靈敏度傳感器實時采集嬰兒的腸道震動信息,并進行歸檔、比對。當生理指標中出現(xiàn)預示有可能排便的線索時,及時通知家長做出相應的防范措施。經(jīng)測試表明,該裝置基本實現(xiàn)了預期的設計目標。 參 考 文 獻 [1]徐巍,王建榮.胃腸音檢測及其在疾病診治中應用的研究進展[J].解放軍護理雜志,2015,32(4):45-47. [2]閆赤元.牛頓第三定律與狹義慣性空間[J].辦公自動化,2018(21):19-20. [3]曹利波.基于STM32數(shù)據(jù)采集器的設計[J].電子制作,2014(5):36-37. [4]蘇海洋,謝軍,徐凱琳.基于51單片機外置存儲器字庫系統(tǒng)的設計[J].電子世界,2017(2):72-73. [5]張麗紅,張國祥.基于51單片機的電子鐘系統(tǒng)設計與仿真[J].電子世界,2018(20):134-135. [6]謝華燕.可控擺角與周期的電磁單擺系統(tǒng)設計[J].自動化與儀器儀表,2016(2):36-38. [7]常欣,王琦.用STM32和ESP8266實現(xiàn)的可擴展物聯(lián)網(wǎng)系統(tǒng)[J].單片機與嵌入式系統(tǒng)應用,2018(12):58-60. [8]陳乾,胡谷雨.一種新的DTW最佳彎曲窗口學習方法[J].計算機科學,2012,39(8):191-193. [責任編輯:鐘聲賢]