晏 平,何 勇,王 磊,杨 芳
(贵州大学 计算机科学与技术学院,贵州 贵阳 550025)
随着“互联网+”的提出与发展,人们的生活中无处不存在互联网一词,“智慧城市”也随着“互联网+”的热潮发展起来,打造智慧城市成为当前国家发展的一个重要任务。其主要是运用计算机技术和其他的交叉学科来对整个城市运行的核心系统的各项关键信息进行整合、分析、感测,从而提高居民生活水平,促进城市的和谐、可持续发展[1]。在打造智慧城市的同时,健康领域的发展作为其中一个重要分支,其发展对社会起着举足轻重的作用。基于该背景,以及当前社会长期以来存在看病难、体检麻烦、医疗资源分配不合理,导致医院连提供最基本的体检服务都显得力有未逮,从而使得居民慢性疾病逐年上升的问题[2],设计了一款基于云平台的社区健康一体机。该一体机融合了大数据、无线传感器、无线通信等技术,免除居民在医院体检排队的困扰,在居住的小区就能自助体检,随时了解自己的身体动态,一旦发现问题能及时就医。
基于云平台社区健康一体机系统的整体架构分为5层[3],即数据采集层、数据层、网络层、数据处理层、应用层,如图1所示。
图1 整体框架
数据采集层,主要依赖于前端各类医疗传感器采集用户健康数据,包括对身高、体重、血压、血氧、心电、心率、血糖、体温等数据的采集;数据层,主要是把采集到的数据通过ZigBee网络发送到嵌入式网关[4];网络层,主要是嵌入式网关通过以太网把数据上传到云平台;数据处理层,主要是把数据储存到云端HBase数据库,为用户建立个人健康档案[5];应用层,主要是将在云平台分析的结果通过Web端和手机App端的形式反馈给用户。
用户可通过刷身份证或者手机号进行注册登录,登录系统打开一体机,就能进行自助体检(体检项目包括身高、体重、血压、血氧、心电、心率、血糖、体温等),用户利用系统可以对自己信息进行相应操作,体检结束时,将体检数据打印出来,同时上传至云平台,在云平台对数据进行存储并且建立居民个人健康档案,将相关信息反馈至手机App端和Web端。
硬件设计主要分为两部分:嵌入式网关模块和节点模块。硬件总体设计如图2所示。
嵌入式网关模块选用SAMSUNG公司基于ARM9的S3C6410作为处理芯片,它处理能力较强,支持多种接口的32位微处理器,采用ARM1176JZF-S内核,包含16 KB的指令数据Cache。嵌入式网关应该还需要微处理器模块、电源模块、JTAG模块等,同时还需要考虑到嵌入式网关后期扩展问题,所以应该预留一些可以扩展的接口[6]。
图2 硬件总体设计
嵌入式网关是健康数据采集仪的核心部分,主要对接收到的人体体征信息数据进行融合处理,通过S3C6410控制器的串口连接到ZigBee协调器和以太网模块,实现嵌入式网关与前端节点和云端进行数据通信、数据处理、指令发送等功能[7]。系统嵌入式网关不仅要具备ZigBee协调器模块,还要具备以太网通信模块,嵌入式网关硬件设计包括对MCU、ZigBee协调器、串口等的设计,其PCB设计如图3所示。
图3 嵌入式网关PCB图设计
2.1.1 电源模块
电源是系统能量的提供者,是整个系统工作的基础,是硬件电路系统中最重要的电路,其稳定性对整个电路系统设计具有重要影响。由于在整个硬件电路中存在3.3 V、5 V等不同的电压,所以设计中需选择电压转换芯片进行电压转换。系统选择AMS1086CM-3.3 V进行电源转换,输出为3.3 V。
2.1.2 ZigBee协调器模块
文中系统采用TI公司研发的用于IEEE802.15.4/ZigBee的片上系统解决方案CC2530F256芯片,该芯片完全兼容8051内核,工作在2.4 GHz频段[8]。
前端传感器节点采用ZigBee无线传感网络进行组网,当传感器上电后,ZigBee协调器将网关发来的相应指令传送至ZigBee节点,从而完成对前端节点的控制。
2.1.3 以太网模块
为了提高系统实时性,应该选择实时性强、传输时延性低的模块。该系统采用的以太网模块是DM9000AEP,该芯片由台湾NAVICOM公司生产,芯片连接到主控制器S3C6410芯片,通过网络接口连接以太网。DM9000AEP具有集成10/100 M自适应收发器,支持介质无关接口,支持背压模式半双工流量控制模式,IEEE802.3x流量控制的全双工模式,4 K双字SRAM,超低功耗模式[9]、功率降低模式等特点。
节点模块主要包括身份证识别模块、电子锁模块、各种医疗传感器等。
2.2.1 身份证模块
用户通过刷身份证进行注册登录,RFID模块和处理器S3C6410模块连接,刷身份证时只需将身份证放置于该模块的天线可读区域即可读出身份证信息[10]。该方式简单、快捷。该模块采用IDR210-2型号来进行身份证信息的读取,它可进行自动找卡、实时读取和显示第二代身份证的文字和照片信息,通过USB 5 V供电,接口有RS232、HID USB DEVICE2.0。
2.2.2 电子锁模块
为保证一体机在社区的安全性,设计进入系统打开电子锁才能使用设备。电子锁模块采用HD-S0627模块,该模块体积小、重量轻、反应灵敏、功耗低,采用12 V电源模块进行供电,通过嵌入式网关模块对继电器进行控制,从而控制电子锁的开关。
2.2.3 传感器模块
数据采集通过各种医疗传感器模块完成,每个传感器通过UART数据传输方式与CC2530芯片连接,UART接口的RX、TX与CC2530芯片的TX、RX连接,成为一个ZigBee节点,使用自定义的通信协议才能与网关进行通信。
传感器的选取影响设备的稳定性和准确性,因此传感器的选型尤为重要。设备的身高测量选取性能优良的LM1812超声波传感器;体温测量选取的是HT-F03D型红外线体温计;血氧传感器选取HKS-12C型血氧饱和度传感器;血压传感器选取HKB-08B型血压传感器模块;心电传感器选用HKD-10C型数字心电传感器为单导联心电信号采集设备;血糖的测量选取JHBGM001A型传感器。
以S3C6410为核心处理器的嵌入式网关不仅要与前端ZigBee协调器通信,还要与云端通过以太网模块进行通信。与云端进行通信采用TCP服务,网关每次收到一个数据,会判断是前端节点上传的请求还是TCP服务通过Socket发送的命令,网关通过解析相应的信息后执行相应的操作[11]。
ZigBee协调器,作为ZigBee网络中的网络管理者,在建立一个ZigBee网络时,ZigBee协调器通过监听网络,去扫描是否有节点申请加入到该网络,如果有,则批准该节点加入,并为节点分配地址,等待接收网关发送的控制命令去执行相应操作。ZigBee协调器工作流程如图4所示。
图4 ZigBee协调器工作流程
基于云平台的社区健康一体机前端主要由各种医疗传感器采集居民身体健康数据,每个医疗传感器均属于一个ZigBee节点,在采集之前,每个传感器节点都要加入到ZigBee网络中。协调器为节点分配地址,在未收到任何指令之前,所有节点处于睡眠模式,以达到低功耗的目的,在收到指令采集数据完成之后,通过ZigBee网络把数据发送至嵌入式网关,结束后节点处于睡眠模式状态。传感器节点设计如图5所示。
当一个新的节点加入ZigBee网络之后,协调器会给该节点配置相应的参数和信息,待节点发送数据帧过来之后,ZigBee协调器将该数据帧转发给网关,网关通过UART与ZigBee协调器进行通信[12],在通信过程中采用自定义的固定帧格式。帧格式包括:帧起始字段(F)+帧长字段(L)+设备标识字段(DI)+控制字段(C)+数据字段(Data)+FCS字段+帧结束字段(F),其中每个字段的含义解释如下:
F字段:1个字节,标志数据帧的开始与结束,值为固定的0x6a,在通信过程中,发送方会一直发送F字段,接收方每收到一个数据,便会检测,如果和标志字段不同,说明数据开始发送,该过程中采用“0比特插入法”实现数据帧的透明传输。
图5 传感器节点工作流程
L字段:1个字节,为数据帧的有效长度字段。
DI字段:1个字节,分别用来标识不同设备。
C字段:1个字节,区分数据帧是由协调器向上发送,还是由网关向下发送的指令。
数据字段:1-256 bit,可变长度,发送的有效数据。
FCS字段:帧校验和字段,2个字节,采用16位的CRC对整个帧进行校验。
系统上位机开发是采用C#语言在VS系列开发软件Visual Studio 2012下实现的,该开发软件拥有先进的开发解决方案,灵活敏捷的规划工具。上位机具体实现流程如图6所示。
图6 上位机软件设计
基于智慧城市的社区健康一体机通过用户与上位机之间进行交互,使用医疗传感器采集到居民健康数据后,上传嵌入式网关,嵌入式网关将数据用以太网传输至云平台进行处理,系统采用面向列存储的非关系数据库HBase来存储数据[13-15]。
系统在投入社区使用之前于2017年8月1日到2017年8月15日在贵州大学博学楼602室进行测试,该系统可通过两种方式进行使用,一种是手机号注册登录,操作过程较为繁琐;另外一种是通过刷身份证注册登录,身份证注册登录简单快捷,进入系统之后,便可开始使用。图7为针对用户血糖进行的测试,测试结果发现该设备反应灵敏,数据精确;ZigBee协调器与嵌入式网关之间通信稳定,网关通过以太网传输数据至云端发送时延低,错误率低,能很好地满足系统功能需求。
图7 部分血糖测试数据
该设备可缓解当前医疗现状,改善社区居民体检难的情况。居民可以随时在社区门口自己进行体检,让用户能早日发现病症及时去医院就医。
基于云平台的社区健康一体机的设计与实现主要是通过前端ZigBee节点采集用户健康数据,在网关进行异构网络转换,通过以太网模块将健康数据保存至云端服务器,并且在云端建立用户个人健康档案,方便用户使用手机App和Web端查看自己的健康状况。除此之外,该系统后期可以应用大数据进行功能上的扩展,通过用户使用设备时产生的健康数据,应用大数据来分析用户健康状况,并且给出合适的建议,同时也可以针对于群体来进行疾病的预测,从而打造一个智慧的健康行业,实现城市的智能化。