目前的體重電子秤只具有稱體重的功能,并不能將這些數(shù)據(jù)存儲(chǔ)下來,也不能給出體重變化趨勢,更不 能在使用者體重超標(biāo)時(shí)給出提醒。本設(shè)計(jì)對(duì)傳統(tǒng)的體重秤進(jìn)行改造,使之具有無線傳輸?shù)墓δ?。即?dāng) 用戶稱完體重后,按一下按鈕,體重值會(huì)通過無線傳輸設(shè)備傳到接收平臺(tái)。接收平臺(tái)會(huì)將收到的數(shù)據(jù)進(jìn) 行存儲(chǔ),并對(duì)數(shù)據(jù)進(jìn)行分析,如果數(shù)據(jù)超過預(yù)先設(shè)定的閾值,會(huì)通過短信網(wǎng)關(guān)發(fā)短信給用A提前注冊(cè)時(shí) 登記的手機(jī)號(hào)提醒用戶注意飲食,從而達(dá)到用戶對(duì)自己的體重進(jìn)行控制的目的。
目前的體重電子秤只具有稱體重的功能,并不能將這 些數(shù)據(jù)存儲(chǔ)下來,也不能給出體重變化趨勢,更不能在 使用者體重超標(biāo)時(shí)給出提醒。
記錄體重變化的趨勢,并體重超過某個(gè)設(shè)定的域 值時(shí)通過發(fā)短信的方式給用戶提醒,對(duì)于控制體重的 人來說是有個(gè)有效的輔助手段。特別是對(duì)于正在發(fā)育 的嬰兒,高血壓、高血糖等身體狀況與體重密切相關(guān)的 人群來說,該功能不僅可以幫助醫(yī)生了解病人的體重 變化趨勢,而且可以幫助用戶對(duì)自己的體病變化進(jìn)行 了解和記錄,從而對(duì)日后的營養(yǎng)計(jì)劃提供依據(jù),提高健 身活動(dòng)的合理性、針對(duì)性和科學(xué)性。另外,對(duì)于廣大用戶的體重變化數(shù)據(jù)的記錄并進(jìn)行大數(shù)據(jù)分析,可以了 解我國人口的營養(yǎng)情況、生活發(fā)展水平、體重與疾病的 關(guān)系等各項(xiàng)指標(biāo)。
隨著人們生活水平的提髙,人們對(duì)健康的追求越 來越髙;隨著物聯(lián)網(wǎng)大數(shù)據(jù)移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展及 在各行業(yè)的應(yīng)用,通過物聯(lián)網(wǎng)采集數(shù)據(jù)并傳至大數(shù)據(jù) 平臺(tái)進(jìn)行分析的應(yīng)用模式越來越多。在該大背景下, 本設(shè)計(jì)應(yīng)運(yùn)而生。
隨著國外品牌Withings在2013年CES發(fā)布第一 款全新智能身體分析秤,各個(gè)品牌的分析秤便紛至沓 來。這些體重秤與一般的電子體重秤沒有太大區(qū)別, 更多的是能夠測試用戶體脂肪以及BMI參數(shù),甚至還 能測量用戶心跳和空氣質(zhì)量監(jiān)測等。
本設(shè)計(jì)在現(xiàn)有體重電子秤的基礎(chǔ)上增加了新的功能, 對(duì)傳統(tǒng)的體重秤進(jìn)行改造,使之具有無線傳輸?shù)墓δ堋?/span> 即當(dāng)用戶稱完體重后,按一下按鈕,體重值會(huì)通過無線 傳輸設(shè)備傳到接收平臺(tái)。接收平臺(tái)會(huì)將收到的數(shù)據(jù)進(jìn) 行存儲(chǔ),并對(duì)數(shù)據(jù)進(jìn)行分析,如果數(shù)據(jù)超過預(yù)先設(shè)定的 閾值,會(huì)在吃飯時(shí)間通過短信網(wǎng)關(guān)發(fā)短信給用戶提醒 用戶注意飲食,從而達(dá)到幫助用戶對(duì)自己的體重進(jìn)行 控制的目的。另外,還可以將體重值記錄下來并生成 體重變化曲線。
1.系統(tǒng)設(shè)計(jì)
1.1系統(tǒng)框圖
基于物聯(lián)網(wǎng)技術(shù)的智能體重秤的設(shè)計(jì)包括:體重 秤主體、通信服務(wù)器、數(shù)據(jù)庫服務(wù)器、Web服務(wù)器、移 動(dòng)終端應(yīng)用。通信服務(wù)器、數(shù)據(jù)庫服務(wù)器與Web服務(wù) 器一起構(gòu)成了體重管理系統(tǒng)的后臺(tái)服務(wù)端。移動(dòng)終端 應(yīng)用安裝在智能手機(jī)上,并通過移動(dòng)網(wǎng)絡(luò)與體重管理 系統(tǒng)相連接。系統(tǒng)框圖如圖1所示。
1.2各部分功能描述
1.2.1 體重秤
體重電子秤除了具有普通秤所具有的稱重功能外,還 具有無線通信模塊,具有將數(shù)據(jù)通過無線通信技術(shù)發(fā) 送到外網(wǎng)的功能??紤]到一個(gè)家庭中每個(gè)體重秤可能 會(huì)被多個(gè)人使用,在設(shè)計(jì)體重秤時(shí)設(shè)計(jì)多個(gè)按鈕,每個(gè) 按鈕與一個(gè)人對(duì)應(yīng)。每個(gè)體重秤都有一個(gè)全球惟一的 SN,用來區(qū)分不同的體重秤。SN加上按鈕編號(hào)用來 惟一確定一個(gè)用戶。數(shù)據(jù)傳輸協(xié)議中要明確SN和按 鈕編號(hào)。數(shù)據(jù)通過TCP協(xié)議發(fā)送至通信服務(wù)器。每 個(gè)體重秤都是TCP客戶端。通過無線網(wǎng)絡(luò)連接,接人 具有固定IP地址的通信服務(wù)器。SN、按鈕編號(hào)及體重 數(shù)據(jù)構(gòu)成一個(gè)數(shù)據(jù)包一次發(fā)送。每稱一次超重體重, 秤都有一個(gè)建立連接、發(fā)送數(shù)據(jù)、斷開連接的過程。
1.2.2通信服務(wù)器
通信服務(wù)器的主要功能是充當(dāng)TCP連接的服務(wù) 器端。通信服務(wù)器程序接受來自體重秤的連接,解析 數(shù)據(jù),得到體重秤SN、按鈕編號(hào)、體重值,并將該信息 寫人數(shù)據(jù)庫中。
當(dāng)設(shè)備數(shù)量眾多時(shí),通信服務(wù)器的壓力比較大。 為此通信服務(wù)器采用異步連接的方式接收來自于體重 秤的數(shù)據(jù)。實(shí)際開發(fā)中發(fā)現(xiàn),由于無線連接有時(shí)會(huì)出 現(xiàn)假連接現(xiàn)象,即實(shí)際上設(shè)備巳經(jīng)斷開連接了 ,但無線 連接的不穩(wěn)定性會(huì)造成一種假象,在服務(wù)器端連接仍 然保持,而且不會(huì)自己斷掉。這種假連接現(xiàn)象的缺點(diǎn) 是,當(dāng)通信程序運(yùn)行時(shí)間過長,總連接數(shù)就會(huì)超過服務(wù) 器能接收的最大連接數(shù),從而新的設(shè)備就連不上去。 為了避免該現(xiàn)象的出現(xiàn),可以對(duì)每個(gè)連接的數(shù)據(jù)發(fā)送 時(shí)間進(jìn)行監(jiān)控。如果發(fā)現(xiàn)在15 min之內(nèi)沒有數(shù)據(jù)發(fā) 送和接收,則由服務(wù)器端程序主動(dòng)斷開連接。
通信服務(wù)器的另一功能是將數(shù)據(jù)寫人數(shù)據(jù)庫中。 當(dāng)設(shè)備數(shù)量眾多時(shí),并發(fā)訪問壓力大,為了減輕數(shù)據(jù)庫 的壓力,采取的措施有兩點(diǎn):一是采用了數(shù)據(jù)庫連接池 機(jī)制;二是將1 min之內(nèi)的數(shù)據(jù)先放到內(nèi)存中存儲(chǔ)。1 min后統(tǒng)一寫入數(shù)據(jù)庫中。這樣大大減少了數(shù)據(jù)庫訪 問的壓力。
1.2.3數(shù)據(jù)庫服務(wù)器
數(shù)據(jù)庫服務(wù)器采用MongoDB數(shù)據(jù)庫。MongoDB 是由C++語言編寫的高性能、開源、無模式的文檔型 分布式文檔存儲(chǔ)數(shù)據(jù)庫,旨在為Web應(yīng)用提供可擴(kuò)展 的高性能數(shù)據(jù)存儲(chǔ)解決方案,是當(dāng)前NoSql數(shù)據(jù)庫中 比較熱門的一種。它在許多場景下可用于替代傳統(tǒng)的 關(guān)系型數(shù)據(jù)庫或鍵/值存儲(chǔ)方式。MongoDB是一個(gè)介 于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系 數(shù)據(jù)庫當(dāng)中功能最豐富、最像關(guān)系數(shù)據(jù)庫的。它支持 的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bjscm格式,因此 可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。其最大的特點(diǎn)是支持 的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮?/span> 査詢語言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表査詢的 絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。具有高 性能、易部署、易使用,存儲(chǔ)數(shù)據(jù)非常方便的特點(diǎn)。并 且MongoDB通過連接器能夠作為Hadoop MapReduce 的數(shù)據(jù)源和數(shù)據(jù)存儲(chǔ)目的庫,這為日后進(jìn)行大數(shù)據(jù)分 析奠定了基礎(chǔ)。
1.2.4 Web服務(wù)器
Web服務(wù)器提供了 B/S架構(gòu)的程序,用于支持用 戶從PC端或手機(jī)端訪問自己的體重?cái)?shù)據(jù)、查看體重 變化曲線及根據(jù)用戶提前填寫的體重閾值,當(dāng)體重超 過閾值時(shí),會(huì)通過短信網(wǎng)關(guān)發(fā)短信提醒用戶注意飲食。
Web服務(wù)器的作用有以下幾方面。
①用戶注冊(cè)登錄。用戶初次使用體重秤時(shí)需要 先注冊(cè),注冊(cè)時(shí)輸人體重秤的SN,針對(duì)不同按鈕號(hào)輸 人用戶姓名、昵稱、密碼、年齡、性別、身高、血壓、血糖、 血脂、體重閾值、綁定手機(jī)號(hào)、通知時(shí)間等信息。這些 初始信息將體重秤的某一個(gè)按鈕傳送上來的數(shù)據(jù)與某 個(gè)人綁定,有助于對(duì)數(shù)據(jù)進(jìn)行管理以及提醒。以后使 用時(shí)只需要登錄即可看到自己的相關(guān)信息。
②信息展示。當(dāng)用戶通過手機(jī)端或PC端登錄體 重管理平臺(tái),輸入昵稱和密碼后,會(huì)分別以表格形式和 曲線形式顯示用戶的體重變化趨勢圖,曲線圖上有 BMI計(jì)算結(jié)果作為標(biāo)準(zhǔn)體重參考值。用戶可以査詢自 己任一時(shí)段的體重值及變化曲線,從而針對(duì)自己在彼 時(shí)的生活習(xí)慣做出對(duì)控制體重有利的調(diào)整。
③臨界提醒。當(dāng)用戶的體重超過所設(shè)的閾值或 超過BMI指數(shù)上限時(shí),通過短信網(wǎng)關(guān)在用戶規(guī)定的時(shí) 間發(fā)送短信給綁定手機(jī)提醒用戶控制飲食。
Web服務(wù)器設(shè)計(jì)時(shí)采用Java語言,Tomcat服務(wù)器。
設(shè)計(jì)時(shí)要考慮多個(gè)用戶并發(fā)訪問時(shí)系統(tǒng)的負(fù)載能力。
④界面設(shè)計(jì)。體重?cái)?shù)據(jù)展示的Web頁面如圖2 所示。
左側(cè)顯示的是BMI指數(shù)簡介;右上圖顯示了用 戶的基本信息和一個(gè)月內(nèi)用戶的體重值;右下圖則給 出用戶體重的變化曲線。通過體重變化曲線,用戶可 以預(yù)測自己未來的體重從而對(duì)自己的體重進(jìn)行控制。
2.體重電子秤設(shè)計(jì)
對(duì)傳統(tǒng)體重電子秤進(jìn)行改進(jìn),設(shè)計(jì)一種具有無線傳輸 功能的低成本、低功耗的體重秤,是本文的另一個(gè)重 點(diǎn)。以下給出體重秤的軟、硬件設(shè)計(jì)模塊圖。
2.1體重電子秤硬件模塊圖
圖3所示是一種低成本、低功耗的電子秤的硬件 模塊圖。該設(shè)備采用電池供電,能夠通過A/D采集來 自重力傳感器的數(shù)據(jù),對(duì)所得原始信息按一定算法處 理,并通過LCD顯示當(dāng)前所采集樣值。用戶可通過按 鍵操作與節(jié)點(diǎn)交互,將數(shù)據(jù)上傳至平臺(tái)。通過串口連 接GPRS無線通信模塊。該模塊能將所采集的數(shù)據(jù)傳 送至遠(yuǎn)方平臺(tái)。
采用低功耗MSP430處理器,電池分3路分別給 重力傳感器、處理器及顯示器和無線模塊供電。這樣 能達(dá)到節(jié)省能耗的目的[4]。
2.2軟件流程圖
由于該系統(tǒng)功比較簡單,并且為了節(jié)省資源和能 量消耗,在該設(shè)備的軟件設(shè)計(jì)中沒有上操作系統(tǒng),而是 使用狀態(tài)機(jī)的方式來完成數(shù)據(jù)采集、顯示、無線通信, 及與用戶的交互功能。整個(gè)系統(tǒng)的軟件流程圖如圖4所示。
在圖4所示的軟件流程 圖中,系統(tǒng)在大部分時(shí)間處 于LPM3睡眠模式,由定時(shí)器 中斷每隔0.5 S將系統(tǒng)喚醒。
系統(tǒng)醒來后,完成需要處理 的事務(wù),如數(shù)據(jù)采集、處理、
顯示更新、按鍵檢測、無線通 信等。處理完畢后,又進(jìn)入 LPM3睡眠模式。到下一個(gè) 0.5 s又會(huì)被定時(shí)器中斷喚醒。用這種方式實(shí)現(xiàn)了系 統(tǒng)狀態(tài)的轉(zhuǎn)換,并且達(dá)到了低功耗的要求。
軟件采用狀態(tài)機(jī)方案,并通過待時(shí)使傳感器節(jié)點(diǎn) 進(jìn)入LPM3深度睡眠模式、發(fā)送完數(shù)據(jù)后關(guān)掉無線模 塊、A/D采樣完后關(guān)閉內(nèi)部參考電源、發(fā)送數(shù)據(jù)時(shí)暫 時(shí)關(guān)掉LCD背光以減小總工作電流等措施,使得靜態(tài) 電流減小了 0. 6 mA左右。由于節(jié)點(diǎn)處于靜態(tài)電流消 耗的時(shí)間占有節(jié)點(diǎn)工作的大部分時(shí)間,減小靜態(tài)電流, 雖然只是一點(diǎn)點(diǎn),但能極大地增加整個(gè)設(shè)備的電池壽命。
2.3硬件低功耗設(shè)計(jì)
硬件設(shè)計(jì)根據(jù)功能以及低功耗設(shè)計(jì)的需要,分為 三部分。其設(shè)計(jì)的中心是低功耗設(shè)計(jì)。第一部分為傳 感器電路設(shè)計(jì),傳感器電路將原始模擬信號(hào)經(jīng)過放大 整形處理,以便于MCU進(jìn)行A/D采集;第二部分為數(shù) 字電路以及人機(jī)接口設(shè)計(jì),包括A/D采集、LCD實(shí)時(shí) 數(shù)據(jù)和狀態(tài)顯示以及將數(shù)據(jù)和狀態(tài)實(shí)時(shí)發(fā)給無線模 塊;第三部分為無線模塊應(yīng)用設(shè)計(jì),主要是無線模塊電 源以及數(shù)據(jù)接口設(shè)計(jì)。低功耗硬件設(shè)計(jì)的關(guān)鍵技術(shù)是 電源分割、隔離、低功耗等技術(shù)。
3.結(jié)束語
本文結(jié)合物聯(lián)網(wǎng)技術(shù)、無線通信技術(shù)對(duì)普通的體 重秤進(jìn)行改造,設(shè)計(jì)出了一種具有低功耗無線傳輸功 能的新型體重秤,并給出了整個(gè)體重管理系統(tǒng)的設(shè)計(jì) 方案。該系統(tǒng)不僅能測量人體體重,而且能在Web端 存儲(chǔ)體重?cái)?shù)據(jù)并根據(jù)人體的身高、年齡,判斷人體健康 狀態(tài)。
描述了各部分的作用及在實(shí)現(xiàn)過程中遇到的困難 及解決方法。該設(shè)計(jì)對(duì)于了解自己身體的詳細(xì)變化情 況、進(jìn)行合理的飲食規(guī)劃及預(yù)防疾病具有非常現(xiàn)實(shí)的 意義。