暑假期間留校與兩名隊友一起參加廣東省大學生電子設計競賽“健康電子”主題的比賽,經(jīng)過兩個月不懈努力,功夫不負有心人,作品也獲得了廣東省一等獎,現(xiàn)在將作品分享出來跟大家一起交流,也希望大家能多多給出修改意見。
“孤寡老人的健康監(jiān)測儀”作品主要由一個可佩帶的手表和一個手機APP組成,另外還有一個測血壓的外接設備,手表的外殼是通過3D打印完成的。
我們的作品的想法是,孤寡老人在家里只需要帶著手表,而家人在外面通過APP就可以對老人進行事實監(jiān)測,手表對于老人來說并不需要進行任何操作,可以把它當成一個正常的手表來使用。
我將把所有源碼和原理圖分享出來。
作品采用的STM32F405作為主控芯片,沒有任何外部擴展FLASH或者SRAM
作品的功能有:
1.測心率、體溫和血壓
2.測摔倒并報警
3.鏈接WIFI
4.提醒吃藥
5.鐘表功能
6.電容觸摸,手勢滑動,手勢解鎖,翻腕解鎖等
7.體征異常報警功能
8.一鍵開關機,一鍵解鎖
9.電量監(jiān)測
硬件組成:
1. 1.54寸 240*240分辨率LCD顯示屏
2. 1.54寸電容觸摸屏
3. MPU6050
4.有人網(wǎng)絡的WIFI模塊
5.MXL90615溫度傳感器
6.SON7015心率傳感器
7.TP4056電源芯片
主要軟件的內(nèi)容:
1.系統(tǒng)采用UCOS/II
2.界面使用的是EmWin
3.手機APP和服務器,使用的是JAVA編寫
總體介紹內(nèi)容介紹:整個手表端的設計,為了追求手表體積的盡可能小,除了WIFI模塊外,其他地方都沒有使用任何現(xiàn)成模塊,元器件的規(guī)格也都是最小規(guī)格的,外觀是通過3D打印來弄的。一些底層程序是直接用原子哥的,上層大多數(shù)是根據(jù)在自己的需求寫的。
網(wǎng)絡部分:手表上的WIFI鏈接是使用smartlink功能,通過手機APP來進行鏈接的,與服務器通信部分采用的websocket協(xié)議,實現(xiàn)了全雙工實時通信。服務器是買的,其中websocket協(xié)議當時做的時候幾乎找不到有在單片機上實現(xiàn)的資料,所以都是自己一點一點試出來的。 體征測量部分:心率部分由于傳感器的問題,測量條件有點苛刻,干擾對其的影響較大,我們通過示波器觀察規(guī)律,編寫濾波算法將心率測量結(jié)果盡可能的穩(wěn)定。
體溫監(jiān)測,數(shù)據(jù)并沒有做什么特殊處理,實際使用過程中發(fā)現(xiàn)體溫測量受環(huán)境影響較大。
血壓測量,血壓是通過一個獨立于手表之外的設備進行測量的,設備由手表控制,并把測量數(shù)據(jù)返回到手表,由于手表上已經(jīng)有一個WIFI了,因此血壓與手表的數(shù)據(jù)傳輸直接使用了WIFI進行傳輸。
測摔倒功能,測摔倒算法是自己編寫的,原理并不復雜,但是效果還是很不錯的(誤判少),主要是通過監(jiān)測加速度值來判斷是否摔倒的。
體征測量中,心率和體溫是可以主動和被動進行的,手邊會每過一段時間自己檢測一次,或者通過按鈕實現(xiàn)一次測量,測量會持續(xù)30s,30s內(nèi)一旦測量成功就終止測量。
屏幕和顯示:屏幕我們是在淘寶上買的1.54寸240*240分辨率的LCD屏幕,由于考慮到老人的使用問題,我們后來又找了一款1.54寸的電容觸摸屏,通過工業(yè)雙面膠將兩者貼合在一起,本來想購買已經(jīng)貼合好的,無奈淘寶上幾乎沒人賣我們想要的。
手表主要由三個界面,1.時鐘界面 2.測量界面 3.WIFI鏈接界面
整個手表上只有一個開關機和解鎖屏的按鍵,界面內(nèi)容里也是沒有操作按鍵的,因此界面的切換就需要通過手勢來判斷,觸摸芯片是有支持手勢功能的,無奈不知道為何一直打開不了那個功能,后來沒辦法只能直接編寫算法實現(xiàn)手勢操作功能,主要的手勢功能有1.向左右切換界面 2.向上下進行鎖屏和解鎖
界面使用的是emwin5.28版的,用的功能都是一些最基礎的功能。
手表還可以實現(xiàn)翻腕解鎖功能,這里是通過MPU6050解算出歐拉角實現(xiàn)的。
觸摸屏上剛好有一個小孔,我們在那里裝了一個光敏電阻,用來實現(xiàn)屏幕的亮度自動調(diào)節(jié)。
報警功能:通過手機APP設置報警功能后,一旦手表判斷體征異常就會發(fā)出報警震動,當佩戴者點擊確定后,手機APP端會自動報警。為了防止誤判,體征異常是否發(fā)出報警信息這里需要點擊確定或者取消。當佩戴者一定時間內(nèi)都沒有點擊確認或者取消時,手表會認為佩戴者已經(jīng)無法正常操作,并自動向APP發(fā)送報警信 息,通知手機端。
手邊還有提醒吃藥功能,使用者通過使用手機APP可以設置3個吃藥時間點,一旦時間點到了之后,手表就會自動發(fā)出吃藥提醒。
用戶管理: 手機APP通過掃描手表上的二維碼與手機進行綁定,手機APP也需要進行注冊才可以進行登錄。一個手機只可以操控一個手表。 錯誤處理:以上的功能很多都是基于網(wǎng)絡鏈接,但是網(wǎng)絡鏈接有時候并不是很穩(wěn)定的,因此我們在編寫軟件的過程中也著重對這一塊進行了處理,但發(fā)生斷開連接時,手表會自動進行重連,當重連失敗時,手邊會重啟WIFI模塊再進行嘗試,并且提示佩戴者,當前已經(jīng)無法連接到手機APP,通過這樣處理,盡可能的使手表 能夠正常工作,佩戴者無需過多的對手表進行操作。
外觀:外觀我們是通過3D打印來制作的,整個外殼有一個按鈕,和兩跟充電針(手表的充電電路我們是外置的,通過接觸的方式來進行手表充電),外觀有一個圓孔和長方形孔,用來放置溫度傳感器和心率傳感器
視頻地址: