面向Android和Web平台的温湿度云端监测系统

2021-08-26 03:29俞哲彤邱云明胡珂立
物联网技术 2021年8期
关键词:云端温湿度串口

俞 聪,范 恩,俞哲彤,邱云明,胡珂立

(1.绍兴文理学院,浙江 绍兴 312000;2.深圳大学 物理与光电工程学院,广东 深圳 518060)

0 引 言

利用物联网技术对监视环境中的物理量精确感知,并对数据进行智能处理和可靠传输已成为一种重要的监测手段[1-4]。在硬件方面,传感器技术能够为物联网提供便利的数据采集条件[5]。在软件方面,Android技术和Web技术能够为物联网提供便捷的编程方式、良好的用户交互界面以及丰富的数据展现方式[6]。因此,物联网系统被广泛应用于不同领域。目前,大多数物联网系统搭建成本较高,扩展性有待提高,且主要面向大平台。面向小用户、低成本的物联网平台技术仍十分缺乏[7]。

在实际环境监测中,对温湿度的实时测量和调控非常重要[8-10]。然而,应用场景种类多、测量范围广、数据采集量大、实时性要求高,为传统的人工监测带来一定困难。传统人工测量主要利用传感器采集数据,采用人工分析,导致人力成本居高不下,同时,人工分析具有明显的滞后性,无法满足实时性要求较高的监测领域。虽然大型应用系统会采用物联网技术实现数据的采集、分析与监测,但搭建成本较高,使其应用范围受到很大约束。考虑到CC2530单片机在搭建传感网络方面的优势以及传感器模块成本低、数据采集方便等优点,选择利用传感器模块和CC2530单片机搭建物联网监测平台[11]。此外,考虑到Android智能手机的便携性、可编程性及良好的用户界面,以及Web程序的低成本、可操作性强等特点,因此借助Android端、Web端实现监测数据在无线平台和有线平台的可视化监测[12-14]。

本文开发了一套基于Android和Web平台的温湿度云端监测系统。该系统首先利用搭载DHT11模块的CC2530单片机实时采集温湿度数据,同时通过串口将监测数据发送至PC主机;然后在PC端编写串口接收函数解析数据,并上传至云端MySQL数据库;最后,利用所开发的Android程序和Web程序通过请求本地Apache服务器获取云数据库温湿度数据,分别在Android端和Web端绘制曲线。通过实测实验,本系统能够实现监测环境温湿度数据的实时采集以及多样化动态图表显示,同时能够实现在不同时段对图表的主动或被动更新,提高数据采集和分析效率。

1 系统的设计思想

为了降低温湿度测量成本,减轻测量人员的监测负担,系统将自动完成监测环境的温湿度测量与数据传输,并通过Android平台与Web浏览器实现无线环境和有线环境的温湿度实时监测。本系统主要包括以下功能:

(1)利用DHT11温湿度传感器实时采集温湿度数据,并通过串口发送至PC主机;

(2)通过Java程序编写串口数据接收窗体,同时将温湿度数据上传至云端MySQL数据库;

(3)本地上传的数据由云端MySQL数据库存储;

(4)Android APP程序通过请求本地的Apache服务器获取云数据库中的温湿度数据,通过动态曲线实时显示温湿度变化情况;

(5)Web浏览器通过请求本地Apache服务器获取云端数据后,在浏览器中以动态曲线的形式实时显示温湿度变化情况。

2 系统开发与实现

2.1 系统组成

如图1所示,系统的搭建主要由6部分组成。

图1 系统功能架构

(1)搭载传感器模块的CC2530单片机:该单片机采用C语言编程,使用IAR Systems公司开发的IAR作为嵌入式开发的编辑器,具有开发套件齐全且调试方便等优势。

(2)PC串口接收窗体程序:使用Java语言编写,采用IntelliJ IDEA作为代码编辑器。

(3)腾讯云平台MySQL数据库:配合Navicat作为数据管理工具,成本低廉且管理方便。

(4)Apache本地服务器:作为中间代理,部署方便,后台使用PHP编程,编译器为Visual Studio Code,负责编写API数据调用接口。

(5)Android端APP:采用Android Studio作为开发工具,以Java作为开发语言。

(6)Web端程序:采用HTML+JS+CSS的形式,使用Visual Studio Code开发。

2.2 系统数据库设计

为提高监测平台的扩展性,数据表除了设计温湿度字段外,还预留了空气质量字段,如图2所示。此外,还可以根据实际需求添加一些需要辅助测量的数据字段,配合相关传感器。通过数据库能够实现采集数据的实时存储与管理,满足平台后期的扩展需求。

图2 系统数据库设计

2.3 系统工作流程

2.3.1 数据采集

考虑到CC2530单片机成本低、扩展性好,故采用单片机搭建测量平台。该平台利用DHT11采集温湿度数据,传感器配合CC2530单片机每5 s测量1次。然后,测量的温湿度数据通过串口发送至PC端。

2.3.2 串口接收

在传感器获取数据后,通过串口将数据发送至PC端,在PC端使用Java编写的串口接收窗体函数接收数据。当窗体程序接收到数据时,窗体函数可以实时显示温湿度数据,同时,窗体程序能够在后台对接收的数据采用正则表达式进行清理和选取,并上传至腾讯云端MySQL数据库,实现实时存储。此外,该程序还预留了接口,可以连接本地数据库,并将数据存储在本地MySQL中。

2.3.3 本地服务器

由于Apache服务器部署方便、运行稳定,系统的本地服务器以其为基础进行布署。为了便于开发,选择XAMPP集成开发环境。图3为服务器8080端口开启状态。服务器端程序采用PHP开发,主要负责从云端MySQL数据库获取温湿度数据,再将其封装成JSON格式的数据,编写API接口,方便Web浏览器或者Android客户端通过访问获取数据。

图3 服务器端口开启状态

2.3.4 Android端温湿度实时监控

Android客户端通过第三方网络通信框架Okhttp在局域网内请求本地Apache服务器的API接口,并从接口中获取JSON格式的数据;成功获取数据后,在后台完成解析和匹配,并通过Android第三方图表库MPAndroidChart绘制温湿度折线图。图4所示为APP的初始化状态。

图4 Android温湿度监控初始化

2.3.5 Web端温湿度实时监控

Web端程序采用HTML+CSS+JS实现页面设计,JS使用JQuery库编写Ajax,请求本地Apache服务器上的JSON数据。访问机制与Android端相似,数据来源于云端数据库。采用JS图表绘制库HighCharts绘制折线图,折线图每秒自动刷新一次。Web端程序的初始状态如图5所示。

图5 Web温湿度监控初始化

3 系统测试

3.1 传感器数据获取测试

完成物联网平台搭建后,将单片机控制程序烧录至节点板;接通电源后,温湿度采集节点开始采集数据,并向PC端程序发送采集的实时温湿度数据;同时,在PC端运行Java串口接收窗体程序,在窗体中可以显示发送的温湿度数据,如图6所示;最后,通过该程序后台将数据上传至云端MySQL数据库。

图6 串口数据接收测试结果

3.2 APP数据获取测试

Android端APP是本系统的数据可视化模块之一。在手机安装该程序,与本地服务器处于同一局域网内,打开APP后就可以向本地Apache服务器请求温湿度数据,并完成解析,同时将相关图表呈现在屏幕上。如图7所示,用户点击屏幕就可以刷新当前数据,数据自动更新设定周期为5 s/次。

图7 APP数据获取结果

3.3 Web浏览器数据获取测试

Web端监控程序是本系统数据可视化模块的另一部分。在同一局域网内,浏览器向服务器发起Ajax请求获取数据;完成数据解析后,在浏览器中以动态折线图的形式显示。数据自动更新周期设定为1 s/次。网页端监控只需运行HTML页面即可实现实时监控。服务器返回数据结果如图8所示,Web数据获取结果如图9所示。

图8 服务器返回数据结果

图9 Web数据获取结果

4 结 语

温湿度数据是环境监测应用中的重要参数。考虑到传统人工监测方式难以做到环境的实时监测和数据的可视化,使得数据分析存在一定的滞后性;且随着数据量的增大,数据管理十分困难。为此,本系统根据实际需求,开发了一套基于多平台的温湿度云端监测系统。该系统利用硬件实现对温湿度的实时采集,利用软件实现数据的存储和可视化。硬件部分采用搭载DHT11温湿度传感器的CC2530单片机采集温湿度数据,通过串口发送至PC主机监测程序,监测程序接收数据后上传至云端MySQL数据库。对于云端数据,可以分别通过Android APP与Web程序访问本地Apache服务器,从而实现Android端、Web端的数据实时访问,并通过折线图动态显示,以方便用户对数据进行分析。因此,本文开发的温湿度监测系统在环境监测中具有一定的应用价值和借鉴意义。同时,由于CC2530单片机良好的网络搭建能力以及MySQL数据库友好的操作方式,使得该系统具有良好的可拓展性。

猜你喜欢
云端温湿度串口
温湿度控制器在回收砂冷却系统中的应用
浅谈AB PLC串口跟RFID传感器的通讯应用
云端之城
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
美人如画隔云端
行走在云端
云端创意
蒸发冷却温湿度独立控制空调系统的应用
USB接口的多串口数据并行接收方法探索