2016年广东省大学生电子设计竞赛,“孤寡老人的健康监测系统"作品分享

2019-07-21 06:31发布

本帖最后由 zamm 于 2016-11-14 20:37 编辑

     暑假期间留校与两名队友一起参加广东省大学生电子设计竞赛“健康电子”主题的比赛,经过两个月不懈努力,功夫不负有心人,作品也获得了广东省一等奖,现在将作品分享出来跟大家一起交流,也希望大家能多多给出修改意见。

     “孤寡老人的健康监测仪”作品主要由一个可佩带的手表和一个手机APP组成,另外还有一个测血压的外接设备,手表的外壳是通过3D打印完成的。

      我们的作品的想法是,孤寡老人在家里只需要带着手表,而家人在外面通过APP就可以对老人进行事实监测,手表对于老人来说并不需要进行任何操作,可以把它当成一个正常的手表来使用。
      我将把所有源码和原理图分享出来。

      作品采用的STM32F405作为主控芯片,没有任何外部扩展FLASH或者SRAM   

      作品的功能有:   1.测心率、体温和血压
                              2.测摔倒并报警
                              3.链接WIFI
                              4.提醒吃药
                              5.钟表功能
                              6.电容触摸,手势滑动,手势解锁,翻腕解锁等
                              7.体征异常报警功能
                              8.一键开关机,一键解锁
                              9.电量监测   

    硬件组成:   1. 1.54寸 240*240分辨率LCD显示屏
                      2. 1.54寸电容触摸屏
                      3. MPU6050
                      4.有人网络的WIFI模块
                      5.MXL90615温度传感器
                      6.SON7015心率传感器
                      7.TP4056电源芯片

  主要软件的内容: 1.系统采用UCOS/II
                           2.界面使用的是EmWin
                           3.手机APP和服务器,使用的是JAVA编写

  总体介绍内容介绍:整个手表端的设计,为了追求手表体积的尽可能小,除了WIFI模块外,其他地方都没有使用任何现成模块,元器件的规格也都是最小规格的,外观是通过3D打印来弄的。一些底层程序是直接用原子哥的,上层大多数是根据在自己的需求写的。

                            网络部分:手表上的WIFI链接是使用smartlink功能,通过手机APP来进行链接的,与服务器通信部分采用的websocket协议,实现了全双工实时通信。服务器是买的,其中websocket协议当时做的时候几乎找不到有在单片机上实现的资料,所以都是自己一点一点试出来的。                                                    体征测量部分:心率部分由于传感器的问题,测量条件有点苛刻,干扰对其的影响较大,我们通过示波器观察规律,编写滤波算法将心率测量结果尽可能的稳定。
                                                体温监测,数据并没有做什么特殊处理,实际使用过程中发现体温测量受环境影响较大。
                                                血压测量,血压是通过一个独立于手表之外的设备进行测量的,设备由手表控制,并把测量数据返回到手表,由于手表上已经有一个WIFI了,因此血压与手表的数据传输直接使用了WIFI进行传输。
                                                测摔倒功能,测摔倒算法是自己编写的,原理并不复杂,但是效果还是很不错的(误判少),主要是通过监测加速度值来判断是否摔倒的。
                                                体征测量中,心率和体温是可以主动和被动进行的,手边会每过一段时间自己检测一次,或者通过按钮实现一次测量,测量会持续30s,30s内一旦测量成功就终止测量。

                            屏幕和显示:屏幕我们是在淘宝上买的1.54寸240*240分辨率的LCD屏幕,由于考虑到老人的使用问题,我们后来又找了一款1.54寸的电容触摸屏,通过工业双面胶将两者贴合在一起,本来想购买已经贴合好的,无奈淘宝上几乎没人卖我们想要的。
                                             手表主要由三个界面,1.时钟界面  2.测量界面  3.WIFI链接界面
                                             整个手表上只有一个开关机和解锁屏的按键,界面内容里也是没有操作按键的,因此界面的切换就需要通过手势来判断,触摸芯片是有支持手势功能的,无奈不知道为何一直打开不了那个功能,后来没办法只能直接编写算法实现手势操作功能,主要的手势功能有1.向左右切换界面 2.向上下进行锁屏和解锁
                                             界面使用的是emwin5.28版的,用的功能都是一些最基础的功能。
                                             手表还可以实现翻腕解锁功能,这里是通过MPU6050解算出欧拉角实现的。
                                             触摸屏上刚好有一个小孔,我们在那里装了一个光敏电阻,用来实现屏幕的亮度自动调节。

                         报警功能:通过手机APP设置报警功能后,一旦手表判断体征异常就会发出报警震动,当佩戴者点击确定后,手机APP端会自动报警。为了防止误判,体征异常是否发出报警信息这里需要点击确定或者取消。当佩戴者一定时间内都没有点击确认或者取消时,手表会认为佩戴者已经无法正常操作,并自动向APP发送报警信                                            息,通知手机端。
                                         手边还有提醒吃药功能,使用者通过使用手机APP可以设置3个吃药时间点,一旦时间点到了之后,手表就会自动发出吃药提醒。
                         用户管理: 手机APP通过扫描手表上的二维码与手机进行绑定,手机APP也需要进行注册才可以进行登录。一个手机只可以操控一个手表。                         错误处理:以上的功能很多都是基于网络链接,但是网络链接有时候并不是很稳定的,因此我们在编写软件的过程中也着重对这一块进行了处理,但发生断开连接时,手表会自动进行重连,当重连失败时,手边会重启WIFI模块再进行尝试,并且提示佩戴者,当前已经无法连接到手机APP,通过这样处理,尽可能的使手表                                           能够正常工作,佩戴者无需过多的对手表进行操作。
                          外观:外观我们是通过3D打印来制作的,整个外壳有一个按钮,和两跟充电针(手表的充电电路我们是外置的,通过接触的方式来进行手表充电),外观有一个圆孔和长方形孔,用来放置温度传感器和心率传感器

  手表端的程序我已经上传了,稍后我会上传演示视频。
  还有APP端和血压测量端的程序,看大家有没有兴趣吧,如果没有就算了。
  大家如果发现我哪里写错或者哪里做得不好,麻烦告诉我,我改~
/*2016.11.14日更新*/
谢谢大家的支持。
上传了,APP的源码,因为文件太大,所以我将文件上传到云盘。
上传了之前录制的演示视频,基本上将所有功能的都演示了一遍。
我的QQ为273744983
APP源码地址:http://pan.baidu.com/s/1hrAO9P6 密码: i2td
视频地址:http://v.youku.com/v_show/id_XMTgxOTA3NTc3Ng==.html



补充内容 (2016-12-9 13:22):
麻烦大家转载的时候注明一下出处
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。