“1+X”背景下基于树莓派和Flask的机房温度监控系统研发

2021-12-17 08:04詹志芳
海峡科学 2021年10期
关键词:计算机机房树莓温度传感器

詹志芳

(福建省湄洲湾职业技术学校,福建 莆田 351100)

1 概述

为更好落实《关于在院校实施“学历证书+若干职业技能等级证书”制度试点方案》[1],促进证书试点与专业建设、证书试点与课程建设、证书试点与教师团队建设结合,将“1”和“X”相融合,提升职业教育的教学质量与就业水平,计算机机房建设成为“1+X”试点建设中必不可少的一个环节。大部分学校都意识到机房建设的重要性,纷纷建设了独立的计算机机房。

目前,计算机课程是大部分专业的必修基础课程。计算机作为较为普及的电器产品,对于运行环境的要求相对较为宽松。然而集中机房则不同,数十台甚至上百台计算机位于同一个房间内,所产生的热量是惊人的。这种场景下,需要对机房内的环境进行监控和记录,从而确保机房内温度保持在合理范围。

市面上对环境进行监控的系统有很多,但是大部分价格较高,并且作为成品系统,扩展性受到一定限制,也很难和其他系统,如供电监测、防盗监控等进行整合。

树莓派(Raspberry-pi)几乎是目前世界上体积最小的完备计算机系统,由英国慈善组织树莓派基金研发,并且向全世界推广,2012年首次问世之后,树莓派得到了疯狂追捧。树莓派价格便宜,仅有银行卡大,同时具备功能充足的自定义信号输入端口。在树莓派上可以运行Linux甚至Windows操作系统,基于树莓派的应用层出不穷,树莓派独立运行时可以完成一台普通计算机的大部分功能,但是其最大优势在于可以外接各种设备[2-3]。

温度监控对于计算机机房的建设和管理非常重要,但是配置专用的温控设施成本较高。对此,在树莓派基础上研发了温度监控系统,可以实现廉价且稳健的监控。本文从架构和实现两方面对该系统进行介绍,并且展示了实际测试应用的场景。

2 系统架构

本文研发的系统采用最新发布的树莓派4B作为开发平台,基于Linux系统。温度传感器选用DS18B20数字温度传感器[4],通过树莓派的GPIO接口连接,使用Python 3语言开发服务程序,基于Flask架构提供Web服务。

2.1 树莓派4B

树莓派4B(Raspberry Pi 4B)是2019年发布的树莓派版本,该版本的性能与树莓派 3B+版本相比,在处理器速度、多媒体、内存等方面都有显著提升。树莓派4B拥有与入门级 x86 PC 系统相媲美的桌面性能,该版本配置有ARM Cortex-A72 1.5GHz(四核)CPU,内存可选1/2/4GB,USB2.0和3.0端口各2个,micro HDMI接口2个,网络支持方面同时具备802.11 b/g/n无线网卡和全吞吐量千兆以太网卡。最关键的是延续了传统的GPIO引脚,这是树莓派支持多种扩展设备的基础,也是树莓派成为大量嵌入式应用开发平台的一个重要原因[2-3]。

图1 树莓派4B板载

图2 树莓派4B的GPIO引脚说明

树莓派4B支持多种操作系统,本系统研发选用Linux操作系统,因为Linux系统是开源系统,并且稳定性好、运行时损耗小,各类设备驱动也较为全面。

2.2 Python语言以及Flask框架

Python语言诞生于1989年,在编程语言中属于新生代语言,目前Python语言位于编程语言排行榜前五。Python语言具有语法简单、易学易用的特点,并且作为胶水语言,能够很好地和其他语言进行交叉编程。此外,Python语言扩充性好,具有多种扩展库,这使得它在各种领域都得到了广泛应用。

Flask是一个Python开发的轻量级Web应用框架,耗能小、结构简单,便于进行各种基于Python的网站开发。其WSGI工具箱采用Werkzeug,模板引擎则使用 Jinja2 。Flask被称为核心框架,因为它并未使用各类附加插件,也没有指定数据库、窗体验证等插件,全部需要应用人员自行开发,十分灵活[5]。

2.3 DS18B20数字温度传感器

DS18B20数字温度传感器具有体积小、抗干扰能力强、精度高、耗能低等特点,提供9~12-Bit摄氏温度测量精度和一个用户可编程的非易失性且具有过温和低温触发报警的报警功能,测温范围广,能完成-55℃~125℃,误差约1℃,并且在温度传感器-10℃~85℃之外时,还具有±0.5℃的精度。DS18B20采用一线通信接口,即通过一条线路即可实现控制机和其之间的通信,直接由数据线供电而不需要外部电源供电,很灵活。目前普遍应用于工业、民用多种场合[4]。

图3 DS18B20数字温度传感器

3 系统设计

3.1 采集电路设计

由于DS18B20是单线通信,因此本系统将其vcc、gnd分别连接到树莓派的vcc和gnd,而DS连接到GPIO 4端口即可。

连接好硬件设施后,通过ssh连接上树莓派,在终端中通过以下命令进行配置:

sudo modprobe w1-gpio

sudo modprobe w1-therm

cd /sys/bus/w1/devices

ls

此时应能够看到对应设备。如果ls看不到显示,通过以下命令进行配置:打开/boot/config.txt,并在该文档的最后一行手动添加:dtoverlay=w1-gpio-pullup,gpiopin=4,然后执行sudo reboot即可。

3.2 采集程序设计方案

由于Python语言是模块化语言,为了能够让不同程序都能读取DS18B20的测温数据,本系统单独为其开发了读取模块,文件命名为ds18b20.py。该模块主要工作原理为读取设备路径中生成的数据文件,判定文件格式是否正确,即传感器是否正常工作。并从中分离出代表温度的字符串,转换成浮点数返回。如果未能正确读取,则返回None。

图4 ds18b20.py文件代码

通过调用read_temp函数,即可获取温度数据。

3.3 Web服务程序设计

考虑到前端可以是不同类型的应用,例如专门的监控程序,或者是实时刷新的监控网页等,我们采用Web-Service方式提供数据。在Flask框架内,只需要编写简单的程序就可以将采集到的温度数据作为json返回给调用者。

图5 温度数据返回代码

运行该程序后,通过树莓派对应ip的8080端口即可获取表示温度的json字符串。

图6 通过浏览器直接访问本服务,得到的运行结果

除了采用浏览器直接访问Web-Service服务,我们也编制了简单的网页进行调用测试,实时显示温度。当温度超出安全范围时(暂定为-10℃~40℃),将给出警告。代码详见图7。

图7 温度显示网页代码

点击网页上的“读取”按钮,将调用后端服务,读取json格式的温度信息,显示在网页上。网页的显示界面如图8所示,其中上中下三图分别展示了正常温度、高温警告、低温警告的场景。

图8 温度显示网页

为了提升监控效率,本系统设计了不同机房的专用页面,显示了机房中的布局以及各温控点的位置示意(见图9)。通过各机房的温控页面随时查看实时温度情况,页面会定时刷新,保持最新的温度显示。

图9 机房温度监控实际页面

4 结论

计算机机房作为教学设施,其环境控制对设备安全、数据安全等至关重要,直接关系到学校“1+X”职业技能等级证书考试能否顺利进行。本文结合工作实际基于树莓派和Flask技术,从系统功能设计、硬件设计、软件设计等方面详细介绍了一个实时温度采集系统的设计过程,设计了基础功能,提供了一种价廉物美的实现方案,机房温度监控系统部署实施后,可以保证机房的稳定运行。该系统具备可扩展性,未来可以接入更多温控节点,并且可以和其它环境检测模块组合,实现全方位的保障。

猜你喜欢
计算机机房树莓温度传感器
气象用温度传感器检定结果的测量不确定度评定与应用
山间“小精灵”
——树莓
使用冗余测量修正动态温场测量结果
计算机机房的管理与维护研究
计算机机房管理和维护的重要性及措施研究
温度传感器DS18B20在温度计设计中的应用
基于树莓派的骑行智能头盔设计
XTR105电流变送器在温度传感器中的应用
基于树莓派的远程家居控制系统的设计
黄金水果红树莓