基于Python的无线传感器网络数据采集系统

2024-05-10 06:35余战秋
通化师范学院学报 2024年4期
关键词:数据挖掘能耗无线

余战秋

随着大数据时代的到来及无线传感器网络的升级与改进,网络数据呈现暴增状态,数据量级达到海量级别[1-2].又因无线传感器网络结构逐渐复杂,导致网络数据采集的难度增大.如何对海量数据进行采集、挖掘与分析成为现今国家重点课题之一.

针对无线传感器网络数据采集存在的不足,相关学者进行了深入研究.陈琪等[3]提出了无线传感器网络中移动节点辅助的数据采集效率优化方法,该算法基于数据量将所有节点均匀划分成簇,并在簇内采用节点分级的方法进行数据的多跳传输,再使用移动采集器沿着最短路径访问簇头节点,对指定节点进行数据集采集.刘强[4]提出了基于后向散射和软件定义的无线传感器网络通信,其由实现射频载波生成、零差检测和复杂信息处理的中心Hub及具有载波调制功能的传感器构成;前者构建了软件定义的收发器发送载波、接收来自各个传感器的反射,提取并处理它们发送的信息;后者每个传感器的发射机被简化为一个连接到天线上的晶体管,实现传感器的信息被调制到其唯一的子载波上;进而建立起完整的后向散射无线电链路通信系统,实现每个传感器和中心Hub之间的通信.朱晓宇等[5]提出了一种基于Android安全容器的网络数据采集系统,该系统按Android软件栈的层次顺序,分析客户端与服务器端间的网络数据通信过程,找到可供网络数据采集的入口,结合Android安全容器实现自动化的网络数据采集系统.上述方法存在数据采集能耗较大、数据采集耗时较长、采集数据压缩率过高等问题,导致数据采集效果不佳.为解决这些方法存在的不足,本文研究了基于Python的无线传感器网络数据采集系统,引入Python算法,以期提高无线传感器网络数据采集系统的性能.

1 无线传感器网络数据采集系统硬件设计

设计系统硬件包括数据采集芯片选型单元、无线收发芯片选型单元与串口通讯电路设计单元.

1.1 数据采集芯片选型单元

依据无线传感器网络数据特性,研究选取I-7000系列芯片作为数据采集硬件结构,见表1.

表1 数据采集芯片选型表

I-7000系列芯片之间采用RS-485双向串行总线进行通信,并且依据数据采集的需求,适当编程通信速率,其最大值为115.2 Kbps.由于篇幅限制,仅展示I-7060D芯片结构,如图1所示.

图1 I-7060D芯片结构示意图

I-7060D芯片具有以下优势:①该芯片采用节能设计,能够有效降低功耗,延长设备的续航时间;②I-7060D芯片能够提供出色的计算和处理性能,满足多种复杂应用的需求;③该芯片集成了多种功能模块和接口,例如输入/输出接口、传感器接口等.

上述过程完成数据采集芯片的选取,构造数据采集硬件结构,为无线传感器网络数据采集的实现奠定基础[6].

1.2 无线收发芯片选型单元

无线收发芯片是数据采集的始端与终端,是设计系统关键硬件设备之一[7].研究选取TI/Chipcon公司生产的CC1110芯片作为无线收发芯片,结构如图2所示.

图2 CC1110芯片结构示意图

CC1110无线收发芯片具有以下优势:①CC1110芯片适应多种调制格式,为数据缓冲、传输等提供支持;②CC1110芯片成本较低,可以根据数据采集需求配置MCU,使用较为灵活,功耗较低;③CC1110芯片具有多个波段载波频率,为数据采集提供多通道支撑,并容易设置在其他频率上,方便无线收发芯片的配置.此外,CC1110无线收发芯片损耗较低,休眠模式下,电流损耗为5 mA;运行模式下,电流损耗为16 mA.同时,各种模式的切换时间较短,符合设计系统需求[8].

1.3 串口通讯电路设计单元

串口通讯电路是保障设计系统硬件互相连接的关键,也是实现数据传输的重要环节[9].依据设计系统硬件设备特性,设计串口通讯电路,如图3所示.串口通讯电路采用3个电容,初始参数设置为0.1 uF,并且电容参数可依据实际情况进行适当的调整,但必须保障3个电容参数同时增加或者减少,维持电容比例不变[10].

图3 串口通讯电路示意图

2 无线传感器网络数据采集系统软件设计

设计系统软件模块包括网络数据挖掘采集框架设计模块、采集数据压缩模块与采集数据缓存模块.

2.1 网络数据挖掘采集框架设计模块

Python语言是使用广泛的设计脚本语言之一,具有较好的交互性、解释性、可读性和可维护性,可节省软件开发的时间和成本[11].网络数据挖掘采集框架中,最关键技术为scrapy爬虫技术,是应用Python语言开发并封装的技术,有效承接了Python语言的独特优势,可快速挖掘和采集网络数据.网络数据挖掘采集框架如图4所示.

图4 网络数据挖掘采集框架图

结合图4的网络数据挖掘采集框架和Python语言制定无线传感器网络数据挖掘采集程序,具体步骤:①应用Python配置scrapy爬虫规则,初始化爬虫目标[12],启动爬虫任务;②加载步骤①设置的爬虫目标,利用调度器组件对网络进行调度;③收到数据挖掘采集请求后,爬虫从指定地址出发全网搜索,搜索完成后输出挖掘采集响应数据;④通过Spider中间件将步骤③输出的响应数据传递给Spiders,启动回调函数,统一解析响应数据;⑤加载响应数据解析后的信息实体,对其进行清洗、验证、持久化等相关处理;⑥经过爬虫不断迭代循环操作,即可完成网络数据的挖掘采集[13].若满足迭代循环停止条件,则输出网络数据挖掘采集结果;未满足则转至步骤①,继续迭代循环.

按上述步骤应用Python语言,设计网络数据挖掘采集框架,制定网络数据挖掘采集程序,执行程序即可挖掘采集到用户需求的无线传感器网络数据[14].

2.2 采集数据压缩模块

以上述挖掘采集的网络数据为基础,应用SLIM算法压缩采集数据,能够节省数据存储空间、降低设计系统整体能耗[15].SLIM算法主要通过比较两个扇形区域,即最后写入数据与最后读入数据的位置关系决定新数据的取舍.扇形区域斜率上限与下限计算公式为:

2.3 采集数据缓存模块

以压缩后的采集数据为依据,结合用户需求,基于装载因子制定采集数据缓存策略,实现无线传感器网络数据采集.缓存主要为了提高设计系统的TPS,降低设计系统的整体能耗[17].装载因子计算公式为:

3 实验与结果分析

为验证设计系统的网络数据采集性能,选取基于Android安全容器的网络数据采集系统[5]作为对比系统,该系统按照Android软件栈的层次顺序,分析客户端与服务器端之间的网络数据通信过程,找到可供网络数据采集的入口,结合Android安全容器实现自动化的网络数据采集系统.实验以数据采集耗时、采集数据压缩率、数据采集能耗为评价指标.

3.1 实验准备阶段

实验准备是数据采集性能测试的有效保障.实验准备阶段承担着实验对象的选取及其配置的任务.根据数据采集实验的需求,选取某区域无线传感器网络作为实验对象,其结构如图5所示.

图5 无线传感器网络结构示意图

由图5可知,无线传感器网络结构包含了接收器、互联网、管理节点、传感器节点等,其中设置的传感器节点与接收器的比例为5∶2.

3.2 实验结果分析

以实验准备内容为依据,进行无线传感器网络数据采集实验.为直接显示系统的应用性能,选取数据采集耗时、采集数据压缩率与数据采集能耗作为评价指标,以下为具体实验结果分析过程.

3.2.1 数据采集耗时分析

数据采集耗时直接反映系统的应用效率.一般情况下,数据采集耗时越短,表示系统应用效率更快;反之,则表示系统应用效率更慢.通过实验获得数据采集耗时数据如图6所示.

图6 数据采集耗时数据图

如图6,相比对比系统,应用设计系统采集数据耗时更短,最小值为1.5 min,最高值仅为10.5 min;但对比系统的最低耗时为7.5 min,最高达17 min,其最大值和最小值均高于设计系统,折线整体高于设计系统,表明设计系统有效降低了数据采集耗时,应用效率更高.

3.2.2 采集数据压缩率分析

采集数据压缩率决定着系统存储空间的利用率.一般情况下,采集数据压缩率数值越大,表明系统存储空间利用率越高;反之,则表明系统存储空间利用率越低.通过实验获得的采集数据压缩率数据如表2所示.

表2 采集数据压缩率数据表

由表2可知,应用设计系统获得的采集数据压缩率数值更大,最大值为64.51%,对比系统的最大值仅为31.09%,两者相差33.42%,因此,设计系统的存储空间利用率更高.

3.2.3 数据采集能耗分析

数据采集能耗大小直接影响系统的应用性价比.一般情况下,数据采集能耗越小,表明系统应用性价比越高;反之,则表明系统应用性价比越低.通过实验获得数据采集能耗数据如图7所示.

图7 数据采集能耗数据图

由图7可知,应用设计系统获得的数据采集能耗更小,具有一定的稳定性,最小值为70 mAh,对比系统的最小值为115 mAh,远高于设计系统,故设计系统的能耗更低,应用性价比更高.

4 结语

研究应用Python语言设计了全新的无线传感器网络数据采集系统,极大地缩短了数据采集耗时,提升了采集数据压缩率,降低了数据采集能耗,能够为数据采集提供更有效的系统支撑,也为数据采集相关研究提供一定的借鉴与参考.

猜你喜欢
数据挖掘能耗无线
120t转炉降低工序能耗生产实践
能耗双控下,涨价潮再度来袭!
《无线互联科技》征稿词(2021)
探讨如何设计零能耗住宅
探讨人工智能与数据挖掘发展趋势
无线追踪3
基于ARM的无线WiFi插排的设计
日本先进的“零能耗住宅”
基于并行计算的大数据挖掘在电网中的应用
ADF7021-N在无线寻呼发射系统中的应用