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