信息科技课程中物联网数据可视化实现方案初探

2024-06-03 04:58简洪涛彭静王云雪潘子玉
中国信息技术教育 2024年10期
关键词:数据可视化

简洪涛 彭静 王云雪 潘子玉

摘要:本文以“智能厨房安防系统”等项目学习案例为例,初步探讨了信息科技课程中物联网数据可视化的多种实现方案,包括使用MixIO平台、Mind+可视化面板,以及通过Python和C#两种程序设计语言编写图形用户界面等,并从灵活性和易用性等方面对上述方案进行了比较,以期为“物联网实践与探索”模块的教学实践提供有益的参考。

关键词:信息科技课程;物联网实践与探索;数据可视化

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2024)10-0054-03

《义务教育信息科技课程标准(2022年版)》依据核心素养和学段目标,按照学生的认知特征和信息科技课程的知识体系,设计了围绕数据、算法、网络、信息处理、信息安全和人工智能六条逻辑主线的义务教育全学段内容模块,并组织了课程内容,体现了循序渐进和螺旋式发展。[1]其中,第二学段的“数据组织与呈现”,以及第四学段的“基于物联网生成、处理数据的流程和特点”都与数据可视化有着密切的关联。

数据处理的流程通常包括数据采集、数据整理、数据分析和数据呈现。数据呈现是将数据以易于理解的方式展示出来,如表格和报告等。数据可视化是数据呈现的一种形式,侧重于使用图形和图表等方式展示数据,使数据更加直观、生动,易于理解。在信息科技课程的“物联网实践与探索”模块中,物联网数据的可视化呈现可以增强项目学习成果的交互性和趣味性,帮助学生了解事物的现状、剖析事物的发展历程、预测事物的发展趋势,有助于学生表达他们的观点和发现,促进课堂上的交流和讨论。因此,笔者结合“智能厨房安防系统”等项目学习案例,尝试了信息科技课程中物联网数据可视化的几种实现方案。

经过实践笔者发现,目前可用于信息科技课程中物联网数据可视化的平台较多,如SIoT和EasyIoT。这些平台支持以列表和折线图的方式展示一段时间范围内某一主题汇集的消息,但方式较为单一。考虑到免费、开源以及学生的认知特征等因素,笔者重点探讨基于MixlO平台和Mind+可视化面板的物联网数据可视化方案。对于一些更复杂的项目,笔者也尝试通过Python和C#两种程序设计语言编写图形用户界面(GUI),以实现相应的功能。

MixIO平台——以智能厨房安防系统为例

在以“智能厨房安防系统”为主题的项目学习中,学生需要使用掌控板、掌控拓展板、烟雾传感器和直流电机等硬件模块监测厨房内的烟雾浓度,判断其是否达到预设的临界值,以决定是否启动蜂鸣器或排气扇。在项目实施的过程中,使用MixIO平台可以实现烟雾浓度数据的可视化。

MixIO需要与Mixly2.0配合使用,它不仅具备基础的项目管理和数据管理功能,还拥有丰富的可视化组件,如折线图表、柱状图表和仪表盘等,这些组件能够将数据简单、快速地展示在屏幕上,允许用户根据具体的需求和数据类型进行选择。如图1所示,智能厨房安防系统的可视化屏幕通过数据表格、折线图表、仪表盘和指示灯等组件,展示了烟雾传感器输出的气体浓度模拟量以及蜂鸣器等的报警状态,并且还能通过开关实现远程消音功能。

此外,还可以利用MixIO Logic API进行编程,更灵活地发送、接收和使用MQTT消息,操作可视化组件。

Mind+可视化面板——以教室空气质量监测系统为例

在以“教室空气质量监测系统”为主题的项目学习中,学生需要使用掌控板、百灵鸽、ENS160空气质量传感器和DHT22数字温湿度传感器对教室内的空气质量进行实时监测,并通过MQTT服务器,汇集温度、湿度、CO2浓度、TVOC(总挥发性有机化合物)浓度和AQI(空气质量指数)等数据,进而分析教室空气质量数据,改善教室的空气质量。在项目实施过程中,使用Mind+V1.8.0及以上版本提供的可视化面板,配合SIoT V2,可以实现上述数据的可视化。

在Mind+可视化面板中,可以添加按钮、开关、输入框等基础组件,文字、圖片、地图等显示组件,以及柱状图、饼图、散点图等图表组件。每个组件都可以绑定到特定的主题,实现数据的发送或接收。另外,根据实际需求,用户还可以添加时钟、日历等装饰组件。如图2所示,教室空气质量监测系统的可视化屏幕通过标签文字、水波图、等级仪表盘和折线图等组件,展示了上述数据的实时数值及其随时间变化的趋势。

需要注意的是,在使用折线图等组件时,可视化面板会从SIoT服务器中获取特定时间段的数据。因此,在编写程序时,需要使用Mind+新增的“发送并保存到数据库”积木。

程序设计语言——以在线数字气象站为例

在跨学科主题学习“在线数字气象站”中,学生需要使用掌控板及其拓展板、温湿度传感器、风速传感器、RS-485转UART信号转换模块、BMP388气压传感器等硬件模块,以及SIoT服务器,实现数据的采集和汇集,以实时描绘校园气象的信息状态,探寻数据的变化规律,尝试得到一般性的结论。在项目实施过程中,笔者分别利用Python和C#这两种程序设计语言,开发了“在线数字气象站”的网页客户端和基于Windows操作系统的客户端软件,实时展示采集到的气象数据和相关图表。

1.“在线数字气象站”网页客户端

Python拥有大量的第三方模块,这使得物联网数据可视化应用的开发过程变得更加灵活和高效。物联网数据可视化应用的一个核心需求是能够便捷地连接到MQTT服务,而Python提供了多种MQTT库供开发者选择,如paho-mqtt是一个非常流行的MQTT库,在开发“在线数字气象站”的网页客户端时,开发者可以利用其客户端实现连接MQTT服务器、发布消息、订阅主题以及接收消息等功能。

在设计GUI时,除了主流的Tkinter和PyQt等GUI库外,Remi库也是一个值得推荐的选择。Remi是一个轻量级的Python GUI库,可以在浏览器中渲染整个GUI,源代码不到100KB。使用Remi,开发者无需深入了解HTML,就能轻松创建具有强交互性的网页GUI界面。Remi尤其适合于构建小型网页,配合paho-mqtt库和matplotlib库,可以快速开发和部署物联网数据可视化应用。

2.基于Windows操作系統的客户端软件

Visual Studio是一个基于.NET框架的集成开发环境(IDE),它提供了丰富的图形组件、强大的布局工具和直观的界面,使得开发者能够轻松创建和管理复杂的Windows窗体应用程序,非常适合快速开发物联网数据可视化应用。在Visual Studio中,开发者可以选择使用开源的MQTTnet扩展库和C#语言实现基于MQTT协议的通信,使用ScottPlot扩展库绘制图表,进而实现气象数据的实时显示。要在项目中引用MQTTnet和ScottPlot扩展库,只需在“项目”菜单下选择“管理NuGet程序包”,打开NuGet包管理器,搜索其名称并安装最新的稳定版本即可。

数据可视化方案比较

1.易用性

MixlO平台和Mind+可视化面板提供了一系列的可视化组件。在使用过程中,只需添加合适的组件并进行必要的设置,如绑定消息主题等,就可以实现物联网数据的可视化,操作简单方便,学生可以在教师的引导下自主完成。使用Python或C#程序设计语言开发网页客户端或基于Windows操作系统的客户端软件,需要具备较高的编程基础。Python语言的简洁性使其成为构建小型项目的理想选择,而C#语言则更适合开发复杂度较高的项目。尽管使用C#语言的难度较大,但由其构建的系统通常更为稳定。

2.灵活性

使用MixIO平台和Mind+可视化面板实现物联网数据可视化,需要配合特定的编程工具和数据源,如Mixly2.0和MixIO服务器,以及Mind+ V1.8.0和SIoT V2等。此外,在使用Mixly2.0和Mind+ V1.8.0时,存在着硬件兼容性问题,尽管它们支持一些共同的开源硬件,但也各自支持一些特定的开源硬件,这些都在一定程度上限制了它们的灵活性。相比之下,使用Python或C#程序设计语言开发网页客户端或基于Windows操作系统的客户端软件,可以实现更大的灵活性,不受数据源或开源硬件等的限制。

另外,MixIO平台和Python语言开发的网页客户端都采用网页形式,可以在任何支持HTML5的浏览器上运行,便于公开分享。Mind+可视化面板必须在安装了Mind+ V1.8.0的前提下运行。使用C#开发的基于Windows操作系统的客户端软件可以生成exe(可执行文件)单独运行。

结束语

《中小学实验教学基本目录(2023年版)》中提出,“物联网实践与探索”模块应开展的基本实验活动包括“体验传感器数据采集与传输”“使用物联设备进行远程控制”“物联系统原型设计与搭建”“简易物联系统设计与搭建”以及“物联系统中的数据处理与分析”等。[2]因此,为了保证实验教学的顺利进行,学校和教育行政部门应提供必要的实验设备和资源,确保学生有足够的机会进行实践操作。[3]而随着创客教育产品的发展以及教师专业技术水平和实验教学能力的提升,有关物联网数据可视化的方案也会层出不穷。所以,一线教师可将这些新方案应用到信息科技教育研究和教学实践中,不断提升学生的思维和能力。

《义务教育信息科技课程标准(2022年版)》依据核心素养和学段目标,按照学生的认知特征和信息科技课程的知识体系,设计了围绕数据、算法、网络、信息处理、信息安全和人工智能六条逻辑主线的义务教育全学段内容模块,并组织了课程内容,体现了循序渐进和螺旋式发展。[1]其中,第二学段的“数据组织与呈现”,以及第四学段的“基于物联网生成、处理数据的流程和特点”都与数据可视化有着密切的关联。

数据处理的流程通常包括数据采集、数据整理、数据分析和数据呈现。数据呈现是将数据以易于理解的方式展示出来,如表格和报告等。数据可视化是数据呈现的一种形式,侧重于使用图形和图表等方式展示数据,使数据更加直观、生动,易于理解。在信息科技课程的“物联网实践与探索”模块中,物联网数据的可视化呈现可以增强项目学习成果的交互性和趣味性,帮助学生了解事物的现状、剖析事物的发展历程、预测事物的发展趋势,有助于学生表达他们的观点和发现,促进课堂上的交流和讨论。因此,笔者结合“智能厨房安防系统”等项目学习案例,尝试了信息科技课程中物联网数据可视化的几种实现方案。

经过实践笔者发现,目前可用于信息科技课程中物联网数据可视化的平台较多,如SIoT和EasyIoT。这些平台支持以列表和折线图的方式展示一段时间范围内某一主题汇集的消息,但方式较为单一。考虑到免费、开源以及学生的认知特征等因素,笔者重点探讨基于MixlO平台和Mind+可视化面板的物联网数据可视化方案。对于一些更复杂的项目,笔者也尝试通过Python和C#两种程序设计语言编写图形用户界面(GUI),以实现相应的功能。

MixIO平台——以智能厨房安防系统为例

在以“智能厨房安防系统”为主题的项目学习中,学生需要使用掌控板、掌控拓展板、烟雾传感器和直流电机等硬件模块监测厨房内的烟雾浓度,判断其是否达到预设的临界值,以决定是否启动蜂鸣器或排气扇。在项目实施的过程中,使用MixIO平台可以实现烟雾浓度数据的可视化。

MixIO需要与Mixly2.0配合使用,它不仅具备基础的项目管理和数据管理功能,还拥有丰富的可视化组件,如折线图表、柱状图表和仪表盘等,这些组件能够将数据简单、快速地展示在屏幕上,允许用户根据具体的需求和数据类型进行选择。如图1所示,智能厨房安防系统的可视化屏幕通过数据表格、折线图表、仪表盘和指示灯等组件,展示了烟雾传感器输出的气体浓度模拟量以及蜂鸣器等的报警状态,并且还能通过开关实现远程消音功能。

此外,还可以利用MixIO Logic API进行编程,更灵活地发送、接收和使用MQTT消息,操作可视化组件。

Mind+可视化面板——以教室空气质量监测系统为例

在以“教室空氣质量监测系统”为主题的项目学习中,学生需要使用掌控板、百灵鸽、ENS160空气质量传感器和DHT22数字温湿度传感器对教室内的空气质量进行实时监测,并通过MQTT服务器,汇集温度、湿度、CO2浓度、TVOC(总挥发性有机化合物)浓度和AQI(空气质量指数)等数据,进而分析教室空气质量数据,改善教室的空气质量。在项目实施过程中,使用Mind+V1.8.0及以上版本提供的可视化面板,配合SIoT V2,可以实现上述数据的可视化。

在Mind+可视化面板中,可以添加按钮、开关、输入框等基础组件,文字、图片、地图等显示组件,以及柱状图、饼图、散点图等图表组件。每个组件都可以绑定到特定的主题,实现数据的发送或接收。另外,根据实际需求,用户还可以添加时钟、日历等装饰组件。如图2所示,教室空气质量监测系统的可视化屏幕通过标签文字、水波图、等级仪表盘和折线图等组件,展示了上述数据的实时数值及其随时间变化的趋势。

需要注意的是,在使用折线图等组件时,可视化面板会从SIoT服务器中获取特定时间段的数据。因此,在编写程序时,需要使用Mind+新增的“发送并保存到数据库”积木。

程序设计语言——以在线数字气象站为例

在跨学科主题学习“在线数字气象站”中,学生需要使用掌控板及其拓展板、温湿度传感器、风速传感器、RS-485转UART信号转换模块、BMP388气压传感器等硬件模块,以及SIoT服务器,实现数据的采集和汇集,以实时描绘校园气象的信息状态,探寻数据的变化规律,尝试得到一般性的结论。在项目实施过程中,笔者分别利用Python和C#这两种程序设计语言,开发了“在线数字气象站”的网页客户端和基于Windows操作系统的客户端软件,实时展示采集到的气象数据和相关图表。

1.“在线数字气象站”网页客户端

Python拥有大量的第三方模块,这使得物联网数据可视化应用的开发过程变得更加灵活和高效。物联网数据可视化应用的一个核心需求是能够便捷地连接到MQTT服务,而Python提供了多种MQTT库供开发者选择,如paho-mqtt是一个非常流行的MQTT库,在开发“在线数字气象站”的网页客户端时,开发者可以利用其客户端实现连接MQTT服务器、发布消息、订阅主题以及接收消息等功能。

在设计GUI时,除了主流的Tkinter和PyQt等GUI库外,Remi库也是一个值得推荐的选择。Remi是一个轻量级的Python GUI库,可以在浏览器中渲染整个GUI,源代码不到100KB。使用Remi,开发者无需深入了解HTML,就能轻松创建具有强交互性的网页GUI界面。Remi尤其适合于构建小型网页,配合paho-mqtt库和matplotlib库,可以快速开发和部署物联网数据可视化应用。

2.基于Windows操作系统的客户端软件

Visual Studio是一个基于.NET框架的集成开发环境(IDE),它提供了丰富的图形组件、强大的布局工具和直观的界面,使得开发者能够轻松创建和管理复杂的Windows窗体应用程序,非常适合快速开发物联网数据可视化应用。在Visual Studio中,开发者可以选择使用开源的MQTTnet扩展库和C#语言实现基于MQTT协议的通信,使用ScottPlot扩展库绘制图表,进而实现气象数据的实时显示。要在项目中引用MQTTnet和ScottPlot扩展库,只需在“项目”菜单下选择“管理NuGet程序包”,打开NuGet包管理器,搜索其名称并安装最新的稳定版本即可。

数据可视化方案比较

1.易用性

MixlO平台和Mind+可视化面板提供了一系列的可视化组件。在使用过程中,只需添加合适的组件并进行必要的设置,如绑定消息主题等,就可以实现物联网数据的可视化,操作简单方便,学生可以在教师的引导下自主完成。使用Python或C#程序设计语言开发网页客户端或基于Windows操作系统的客户端软件,需要具备较高的编程基础。Python语言的简洁性使其成为构建小型项目的理想选择,而C#语言则更适合开发复杂度较高的项目。尽管使用C#语言的难度较大,但由其构建的系统通常更为稳定。

2.灵活性

使用MixIO平台和Mind+可视化面板实现物联网数据可视化,需要配合特定的编程工具和数据源,如Mixly2.0和MixIO服务器,以及Mind+ V1.8.0和SIoT V2等。此外,在使用Mixly2.0和Mind+ V1.8.0时,存在着硬件兼容性问题,尽管它们支持一些共同的开源硬件,但也各自支持一些特定的开源硬件,这些都在一定程度上限制了它们的灵活性。相比之下,使用Python或C#程序设计语言开发网页客户端或基于Windows操作系统的客户端软件,可以实现更大的灵活性,不受数据源或开源硬件等的限制。

另外,MixIO平台和Python语言开发的网页客户端都采用网页形式,可以在任何支持HTML5的浏览器上运行,便于公开分享。Mind+可视化面板必须在安装了Mind+ V1.8.0的前提下运行。使用C#开发的基于Windows操作系统的客户端软件可以生成exe(可执行文件)单独运行。

结束语

《中小学实验教学基本目录(2023年版)》中提出,“物联网实践与探索”模块应开展的基本实验活动包括“体验传感器数据采集与传输”“使用物联设备进行远程控制”“物联系统原型设计与搭建”“简易物联系统设计与搭建”以及“物联系统中的数据处理与分析”等。[2]因此,为了保证实验教学的顺利进行,学校和教育行政部门应提供必要的实验设备和资源,确保学生有足够的机会进行实践操作。[3]而随着创客教育产品的发展以及教师专业技术水平和实验教学能力的提升,有关物联网数据可视化的方案也会层出不穷。所以,一线教师可将这些新方案应用到信息科技教育研究和教学实践中,不断提升学生的思维和能力。

参考文献:

[1]中华人民共和国教育部.义务教育信息科技课程标准(2022年版)[S].北京:北京师范大学出版社,2022.

[2]教育部教育技术与资源发展中心(中央电化教育馆).关于发布《中小学实验教学基本目录》的通知[EB/OL].[2023-11-23].https://www.ncet.edu.cn/zhuzhan/ywgzsyjx/20231123/5987.html.

[3]中华人民共和国教育部.加强信息科技实验教学 发挥信息科技育人价值[EB/OL].[2023-11-24].http:// www.moe.gov.cn/jyb_xwfb/moe_2082/2023/2023_zl24/202311/t20231123_1091836.html.

本文系河北省教育科学研究“十三五”规划课题“秦皇岛市基础教育阶段科技创新教育普及性课程开发与实施研究(1903048)”、2023年度河北省教育技术研究规划立项课题“以问题解决为导向的高中信息技术知识图谱构建——以《算法与程序实现》为例(hbdj2023185)”的阶段性研究成果。

猜你喜欢
数据可视化
移动可视化架构与关键技术综述
大数据时代背景下本科教学质量动态监控系统的构建
可视化:新媒体语境下的数据、叙事与设计研究
我国数据新闻的发展困境与策略研究
基于R语言的大数据审计方法研究
数据可视化概念研究
大数据背景下数据可视化方法研究
基于B/S结构的考试成绩分析系统
基于Hadoop的商业数据可视化分析模型的研究
用户数据统计挖掘与展示