基于Flask 与树莓派的智能婴儿看护系统设计
2020-10-16潘春玲
潘春玲
随着我国“二胎政策”的全面放开,二孩家庭越来越多.很多父母既要忙于工作,又要照顾两个孩子,通常无法做到时刻将新生儿带在身边照顾,如何对新生儿进行有效的护理成为父母们十分关心的问题[1].
由于新生儿体温调节功能还不完善,各项生理功能尚未成熟,过高或过低的环境温度都容易刺激新生儿,进而引起发病或死亡.一个温暖舒适的环境,是对新生儿有效护理的最重要措施之一,可以有效保障新生儿的成活率.另外,呼吸频率正常是人体健康的基本标准,很多新生儿易发疾病会引发呼吸频率异常现象,例如哮喘、支气管炎,但由于新生儿父母的精力有限,很难实时掌握孩子是否出现呼吸异常的情况.
鉴于此,本文采用目前性能很高的树莓派3 代B+作为核心控制器,结合Flask 技术,设计了一款智能婴儿看护系统,该系统不仅可以时刻监测环境的温湿度,还可以监测记录新生儿的体温、心率和血氧含量等体征值,同时配备了摄像头实现现场监控.所有环境参数、生理体征参数和现场视频都可以通过手机端或电脑Web 端进行远程控制.该系统可以帮助父母们分担新生儿监护工作,让他们无需时刻陪在新生儿身边,就能对新生儿进行有效的护理.
1 系统整体结构
智能婴儿看护系统的整体结构如图1所示.
图1 智能婴儿看护系统整体结构
该系统选用树莓派3 代B+作为开发平台,树莓派是一种微型电脑主板,运行Linux系统,除了具备计算机的基本功能外,还配备GPIO 接口[2-4].系统首先在树莓派上设计并安装Web 服务器软件和轻量级SQLite 数据库软件,然后通过GPIO 接口外接温湿度传感器、心率血氧传感器、体温传感器等外围设备,用于采集环境数据和生理体征数据,并将采集的数据存储在SQLite 数据库中.为了观察新生儿实时情况,该系统还外接摄像头,通过编写Python 程序将视频传输至Web 服务器,用户可以利用手机、电脑、平板等设备通过wifi网络连接到Web 服务器上进行查看.该树莓派3 代B+平台集Web 服务器、数据库、控制系统于一体,形成B/S 工作模式,灵活小巧便于用户远程监控.
2 硬件设计
硬件模块主要由树莓派、DHT11 温湿度传感器、MAX30100 心率血氧生物传感器、GY-906 红外测温传感器和摄像头等硬件构成,硬件连接方式如图2 所示.
2.1 树莓派控制器
本文选用的树莓派3 代B+是一款提供开源软件架构的微型电脑主板,虽然尺寸只有信用卡大小,但是具有音视频、蓝牙、无线等PC 所有功能,功能强大,并且价格低廉,性价比极高,被广泛用于物联网的应用开发中.该型号的树莓派拥有主频700 MHz 的ARM 处理器和512 MB 内存,运行速度快,同时配置了40 个GPIO 接口,这些接口中除去专用的电源和地接口,至少还有26 个通用I/O 口.此外,其内部含有Python GPIO、BCM2835 等丰富的集成库,用户只要通过软件编程,就可以利用GPIO 接口轻松实现树莓派与各类传感器的通信.
2.2 温湿度传感器
图2 硬件电路图
系统利用DHT11 传感器采集周围环境的温度和湿度.DHT11 传感器内含热敏电阻和感湿电阻,电阻的阻值会随着环境温湿度的变化而变化,进而引起通过电流的变化,同时该传感器内部还含有一个能进行模数转换的芯片,能将模拟信号转化成数字信号,该数字信号很容易被树莓派控制器读取.DHT11 传感器通过串行方式与树莓派相连,连接方式如下:
DHT11 电源引脚VCC 连接到树莓派的第1 引脚3.3 V;
DHT11 输出数据引脚DATA 连接树莓派的第7 引脚GPIO4;
DHT11 接地引脚GND 接地.
2.3 心率血氧生物传感器
系统选用MAX30100 心率血氧生物传感器采集新生儿的心率和血氧含量体征值.MAX3010 在功耗管理上具有一定的优势,被广泛应用于一些可穿戴智能产品.该传感器内部含LED、光电检测器、低噪声信号处理器等电子电路,采用标准的IIC 与树莓派通信.使用时,用LED 光照射手指,因血管中的红血球会根据含氧量的不同而吸收不同程度的红外光,由吸收光谱的原理和特定的算法,可以计算出血氧含量和心率.与树莓派的连接方式如下:
MAX30100 电源引脚5 V 连接到树莓派的第4 引脚5 V;
MAX30100 时钟线SCL 引脚连接到树莓派的第28 引脚ID SC;
MAX30100 数据线SDA 引脚连接到树莓派的第27 引脚ID SD;
MAX30100 接地引脚GND 接地.
2.4 红外测温传感器
系统选用GY-906 红外传感器测量新生儿的体温值.GY-906内部包含红外感应热元件、信号放大器、模数转换器和数字信号处理器等,是一款测量精度高、测温范围宽的非接触式红外测温传感器,测量物体温度范围从-70 ℃到280 ℃,可以满足人体温度的测量要求,对外也是采用标准的IIC 通信,与树莓派的连接方式如下:
GY-906 电源引脚5 V 连接到树莓派的第2 引脚5 V;
GY-906 时钟线SCL 引脚连接到树莓派的第5 引脚GPIO3;
GY-906 数据线SDA 引脚连接到树莓派的第3 引脚GPIO2;
GY-906 接地引脚GND 接地.
另外,本系统采用树莓派官方摄像头进行视频监视,该摄像头与树莓派控制器的CSI接口相连.系统实物如图3 所示.
图3 系统实物图
3 软件设计
3.1 软件设计方案
本系统的软件设计流程如图4 所示.系统开启后,启动各传感器模块和摄像头模块,各个模块按照预定时间间隔5 s 读取相应数据,并进行数据存储,通过Web 程序显示所有数据.该流程主要包括数据采集和Web 显示两部分.其中数据采集包括各个传感器采集的空气温湿度数据和体温、心率、血氧含量等体征值数据,并把这些数据写入SQLite 数据库,同时将摄像头采集的图像数据写入图像库.Web 显示是通过在树莓派中构建Web 服务器,形成B/S 工作模式,以网页的形式向用户展现各项数据值,本系统主要采用Python 语言开发.
图4 软件流程图
在算法方面,数据采集和Web 显示采用了多线程技术,因为数据采集是按照时间间隔严格进行的任务,它不能被Web 显示的任务打断.使用单线程方法的一般流程是:先从数据库读出数据,然后将他们显示到显示界面上,接着再处理显示界面的更新.这样做的结果是当进行显示界面操作时,线程将继续停留在显示界面,不能返回到数据采集任务,数据采集任务将被中断.我们使用多线程技术解决上述问题,将数据采集任务和Web 显示任务分开,各放在一个线程中,这样,在对界面进行操作时,程序将进行线程切换,保证数据采集线程继续进行.
3.2 Web 程序设计
Web 程序设计是通过在服务端构建Flask环境实现的.Flask 是一种功耗低、重量轻的Web 应用程序框架[5-7],可以顺利运行于搭载Linux 系统的树莓派上[8].安装Flask 通常需要Python 2.6 或更高版本,由于树莓派本身带有Python 3.5 环境,本系统可直接在树莓派上进行开发,首先在树莓派终端输入:
sudo apt-get install python3-flask
这一行是完成Flask 的安装.
Web前端页面采用Html5、JavaScript 等 编写[9],后端采用Flask.使用Python 编程,Flask首先从SQLite 数据库、摄像头图像库读取数据,接着将数据传给Web 服务器,Web 服务器再通过JavaScript 将数据显示在网页上.通过将前端和后端结合,搭建一个交互性良好的网页框架.
该网页上除了可以实时显示温湿度数据以外,还可以显示生理体征参数和现场视频.下面以视频显示为例进行说明,首先使用Flask 创建一个渲染视频的Python 文件,部分代码如下:
代码第6 行将视频流传输到index.html 页面上,index.html 的代码如下:
在代码的第8 行,视频将会在这里反馈到网页上.
4 测试运行
为了让该系统在树莓派通电时就能自动进行监测,将树莓派上的应用程序设置为开机自动运行.测试时,树莓派设备的IP 地址为:192.168.0.107,端口号为:12345.打开电脑浏览器,在地址栏输入:192.168.0.107:12345,程序运行效果如图5 所示.该监控平台页面分为三部分:环境数据采集、生理体征值和直播监控视频,点击环境数据采集和生理体征值的刷新按钮,可以实时更新数据.直播监控视频旁边设置了一个LIVE 按钮,点击它可以进入视频监控页面,如图6 所示.
图5 程序运行效果图
图6 视频监控页面
5 结语
本文结合传感器技术和物联网技术[10]设计了一款智能婴儿看护系统,该系统使用多种传感器实现对环境温湿度、婴儿体温、心率和血氧含量等体征值的数据采集,使用摄像头实现对现场环境的监控,所获取的数据具有良好的实时性与准确性;该系统以目前物联网开发中比较流行的树莓派3 代B+为控制核心,该树莓派集Web 服务器、数据库、控制系统于一体,便于后期的维护与管理,并且体积小,安装简便,使用无线wifi 传输,只要在同一局域网中,都可以访问监控平台,非常适合在普通家庭中部署;整个系统是基于Flask 框架进行编写的,使用目前流行的Python 编程语言和SQLite 数据库,具有简单轻便的优点.整个系统运行流畅,在婴儿看护上具有良好的实用价值.