AWS物联网连接的数据记录器在冰川环境中的性能比较:Campbell CR1000X与ESP32开源

论文标题

  • 中文:AWS物联网连接的数据记录器在冰川环境中的性能比较:Campbell CR1000X与ESP32开源

  • 英文:Performance comparison of AWS IoT connected dataloggers in glacier environments: Campbell CR1000X vs. ESP32 Open source

作者信息

Robert A. Alvarado-Lugo, Jean P. Lujan-Leon, Susan Coaguila, Percy W. Lovon-Ramos, Luis Torres Obando, Jessenia Cardenas Campana,均来自秘鲁Huaraz的Instituto Nacional de Investigación en Glaciares y Ecosistemas de Montaña。

论文出处

2024 IEEE XXXI International Conference on Electronics, Electrical Engineering and Computing (INTERCON)

摘要

本文研究了在冰川环境中用于天气监测的商业和开源数据记录器的开发与实施。通过对比Campbell CR1000X和基于ESP32的开源数据记录器,展示了在高山地区部署物联网网络的实用性。商业数据记录器根据制造商指南配置,与AWS IoT Core建立安全的MQTT通信;开源数据记录器则需在Arduino IDE中开发自定义脚本,克服网络重连和数据完整性挑战。实验表明,两种数据记录器的数据传输效率都很高(商业:99.68%,开源:99.69%),开源数据记录器经代码调整后,成为高海拔监测的可行开源解决方案。两者均兼容AWS IoT Core,实现数据实时可视化、存储及对极端天气事件的快速响应。

1. 引言

在全球气候变化的背景下,监测冰川等高山地区水文气象条件对理解气候变化影响至关重要。秘鲁近年来冰川面积减少了约56%,凸显了通过研究进行谨慎干预的重要性。物联网(IoT)技术作为收集和存储气象数据的有力工具,能够减少现场操作员定期收集数据的频率,优化天气预报的准确性。然而,由于地形崎岖和缺乏投资,高山地区的电信基础设施有限。秘鲁的Palcacocha湖(Huaraz,Ancash)拥有无线电链路基础设施,可通过Wi-Fi或以太网访问互联网,是进行此类研究的理想场所。本文提出在高山地区实施基于AWS IoT Core网络的气候监测物联网网络,通过TCP和MQTT协议传输气象数据,并比较商业数据记录器(Campbell CR1000X)和基于ESP32的开源数据记录器的性能。

2. 方法论

2.1 硬件和软件回顾

介绍了用于部署通信系统的软件、数据记录器及其主要特点,以及无线电链路基础设施和物联网网络基础设施。软件包括CR1000X数据记录器的LoggerNet v4.8、DevConfig v2.29、CRBasic和开源数据记录器的Arduino IDE、Visual Studio Code 1.89.1。CR1000X是Campbell Scientific生产的旗舰数据记录器,广泛应用于环境监测等领域;开源数据记录器基于ESP32微控制器,支持多种低成本传感器。无线电链路基础设施使用无线电波在不同点之间传输数据,覆盖约21公里,连接Huaraz市和Palcacocha湖。MQTT是一种轻量级通信协议,适用于带宽有限或不稳定的网络,AWS IoT Core是使连接设备能够安全轻松地与云应用程序和其他设备交互的SaaS。

2.2 设计

描述了Campbell CR1000X商业数据记录器(CD)和基于ESP32的开源数据记录器(OSD)的物联网网络设计。目标是通过AWS IoT Core和MQTT协议,高效可靠地将冰川环境中的天气数据传输到云端。CD通过以太网连接,OSD通过WiFi连接,两者都配置为使用MQTT协议发送数据。CD使用制造商文档中的设置,OSD则使用Arduino PubSubClient v2.8、MQTT v2.5.2和WiFi v1.2.7库。MQTT采用发布/订阅模型,支持三种服务质量(QoS)级别,本研究中使用QoS 1,确保消息至少传输一次。两个数据记录器捕获相同的参数,包括压力、温度、湿度、辐射、降雨、风向和风速。连接到AWS IoT Core代理服务器时,两个数据记录器都安装了三个安全文件,确保数据记录器与AWS IoT Core之间的安全可靠连接。

2.3 CD配置

按照制造商推荐的规格,通过USB 2.0电缆将数据记录器与计算机连接,进行MQTT通信配置。使用DevConfig v2.29和LoggerNet v4.8两个主要程序进行配置,DevConfig用于设置CD的操作配置,LoggerNet用于配置气象传感器。通过CD调试控制台进行功能测试,验证本地以太网通信和互联网连接,并使用AWS IoT Core测试客户端验证数据的正确接收。

2.4 OSD配置

OSD使用ESP32-WROOM-32E微控制器,通过USB与PC连接进行配置。在Arduino IDE中开发脚本,使用WiFi v1.2.7库进行网络连接,PubSubClient v2.7.0库处理MQTT消息,ArduinoJson v7.0.3库处理JSON。脚本结合WiFi、MQTT和ESPping库,解决数据传输到互联网的三个主要问题:接入点(AP)断电、互联网服务提供商(ISP)故障以及AP和ISP服务恢复后无法自动重连到MQTT代理的问题。脚本在setup()函数中初始化传感器并建立无线通信,main loop()中不断监测WiFi连接,断开时尝试重连。如果重连失败,系统将继续读取和保存数据到MicroSD卡,同时处理重连和后台发送数据。

3. 实验

3.1 实施

两个数据记录器分别安装在两个自动气象站中,每个气象站都有自己的太阳能供电系统。商业数据记录器(CR1000X)使用18 Ah电池,通过RJ45连接器连接到以太网交换机;开源数据记录器通过25 Ah电池供电,通过2.4 GHz WiFi连接到Ubiquiti Nano Station M2接入点。

3.2 实时性能

安装后,两个数据记录器连接到AWS分析实时性能。评估了编程调度的正确性、网络基础设施故障时的连接稳定性、高效重连和传输数据的完整性。

  • 商业数据记录器(CR1000X):在初始测试中表现近乎完美,一天内应完成1440条日志,实际完成1439条,仅在5月22日16:19出现一次传输错误,原因是ISP连接失败。

  • 开源数据记录器:第一版ESP32脚本由于连接重建立的随机模式,导致与代理的通信在一天中的不同时段长时间中断。5月22日仅完成197条数据,性能不佳,原因是PubSubClient库在与IoT Core代理重连过程中的限制。

3.3 优化

第二版ESP32脚本实现了MQTT v2.5.2、WiFiClientSecure v2.0.0和ESPping v1.0.4库。测试显示,更新后的脚本在ISP服务中断后成功重连,连接稳定性显著提高。然而,有时MQTT库无法自动重连,导致无限重连尝试。为此,集成ESPping v1.0.4进行ping跟踪,以验证互联网连接。一旦ESPping返回积极响应,执行“break”命令退出MQTT重连循环,优化连接管理。第二版脚本在一天内达到1439条日志,与商业数据记录器的效率相匹配,证明了实施的优化在连接管理和错误处理方面的有效性。

4. 结果与讨论

经过开源数据记录器(OSD)的编程代码调整,实现了与商业数据记录器(CD)相当的数据传输效率。在24天的分析中,两种系统都表现出高度的数据传输效率。尽管在6月5日和19日进行了维护任务,导致传输系统关闭了一段时间,但平均每天的数据传输效率CD为99.68%,OSD为99.69%。CD在21天内实现了100%或99.9%的数据发送,而OSD在16天内做到了这一点。CD错过了110次传输,OSD错过了104次,总共预期的34560次传输中。这表明OSD在连接到SaaS代理(如AWS IoT Core)时与CD一样有效。此外,两个系统在实时数据显示和数据下载兼容性方面表现良好。这些优化不仅提高了OSD连接的稳定性,还确保了数据完整性和准确性保持在商业系统的水平。此外,还检查了两个数据记录器连接的每个自动气象站的光伏系统是否正确设计。没有记录到任何设备的电力损失问题,从而实现了连续运行。OSD在发送天气数据时消耗约80 mA,略高于CD的70 mA。这种差异归因于OSD需要更多功率来维持WiFi无线链路,而CD通过以太网保持恒定连接。本文的结果清楚地表明,两种数据记录器都能在偏远且要求苛刻的环境中(如高山地区)保持高数据传输效率。OSD代码的优化是实现这一性能水平的关键因素。最初间歇性重连到WiFi网络的问题可能会危及数据完整性,通过特定调整编程代码得到解决。这一优化使OSD在数据传输效率方面几乎与CD完全持平。这一结果突显了开源数据记录器在匹配更昂贵的商业解决方案性能方面的潜力,为水文气象监测提供了一个可行且具有成本效益的替代方案。此外,两个数据记录器与AWS IoT Core平台的兼容性证明了这些系统的灵活性和可扩展性。实时传输和数据存储实现了持续且准确的监测,这对于管理冰川地区极端天气事件相关的风险至关重要。与AWS IoT Core的集成不仅便于数据收集,还便于数据分析和可视化,从而提高了对关键事件的响应能力。

5. 结论与未来工作

本文验证了商业(CD)和开源(OSD)数据记录器在具有冰川影响的高山地区使用AWS IoT Core传输天气数据的效率和可靠性。CR1000X商业数据记录器表现出适当且高效的性能。另一方面,尽管开源数据记录器在文献中显示出潜力,但在这些特定应用中存在一定程度的不确定性,这促使其与商业设备进行比较。结果显示,两个数据记录器发送预编程数据的效率均超过99.6%。尽管OSD需要代码调整、整合新库和额外设置,但其性能达到了与CD相当的水平。这一结果表明,OSD作为高海拔监测的开源解决方案具有很大的可行性。与AWS IoT Core的兼容性不仅便于实时可视化和存储,还扩展了处理极端天气事件的能力,这是这些地区的一个关键方面。这些发现突显了开源数据记录器作为商业解决方案的有力且具有成本效益的替代品,不会降低收集数据的质量和可靠性,为未来在偏远地区进行天气监测的技术发展提供了坚实的基础。考虑到点对点通信系统可能存在的限制,未来的工作可以提出基于LPWAN技术或IoTSatellite等替代方案的冗余通信系统的实施,特别是在连接性受限的山区。这将使数据传输即使在恶劣条件下也能持续进行。此外,重要的是将当前系统与其他物联网服务(如Eclipse Mosquito、Pub/Sub GCP、IoT Azure、ThingSpeak和Arduino Cloud等)的性能进行比较。这些比较将评估数据传输效率和监测可靠性是否与AWS IoT Core保持一致,为选择天气监测平台提供更多选项和灵活性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/955756.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

K8S 节点选择器

今天我们来实验 pod 调度的 nodeName 与 nodeSelector。官网描述如下: 假设有如下三个节点的 K8S 集群: k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、镜像准备 1.1、镜像拉取 docker pull tomcat:8.5-jre8…

Python爬虫学习前传 —— Python从安装到学会一站式服务

早上好啊,大佬们。我们的python基础内容的这一篇终于写好了,啪唧啪唧啪唧…… 说实话,这一篇确实写了很久,一方面是在忙其他几个专栏的内容,再加上生活学业上的事儿,确实精力有限,另一方面&…

【书生大模型实战营】Git 基础知识-L0G3000

本文是书生大模型实战营系列的第三篇文章,本文的主题是:Git基础知识点。 原始教程链接:Tutorial/docs/L0/git/readme.md at camp4 InternLM/Tutorial 1.Git总览 什么是Git? Git是一个分布式版本控制系统,广泛用于…

基于SpringBoot+Vue旅游管理系统的设计和实现(源码+文档+部署讲解)

个人名片 🔥 源码获取 | 毕设定制| 商务合作:《个人名片》 ⛺️心若有所向往,何惧道阻且长 文章目录 个人名片环境需要技术栈功能介绍功能说明 环境需要 开发语言:Java 框架:springboot JDK版本:JDK1.8 数据库&…

python如何解析word文件格式(.docx)

python如何解析word文件格式(.docx) .docx文件遵从开源的“Office Open XML标准”,这意味着我们能用python的文本操作对它进行操作(实际上PPT和Excel也是)。而且这并不是重复造轮子,因为市面上操作.docx的…

Visual Studio2019调试DLL

1、编写好DLL代码之后,对DLL项目的属性进行设置,选择待注入的DLL,如下图所示 2、生成DLL文件 3、将DLL设置为启动项目之后,按F5启动调试。弹出选择注入的exe的界面之后,使用代码注入器注入步骤2中生成的dll&#xff…

nginx 配置防爬虫

今天早上查看服务器,发现昨天发布的一个在线解析充电桩协议的网页工具有大量的访问记录,应该是爬虫在爬api接口数据。该工具api接口后台用的是python写的,和大多数项目一样也采用nginx反向代理,由于采用nginx,可以利用…

日志收集Day001

1.ElasticSearch 作用:日志存储和检索 2.单点部署Elasticsearch与基础配置 rpm -ivh elasticsearch-7.17.5-x86_64.rpm 查看配置文件yy /etc/elasticsearch/elasticsearch.yml(这里yy做了别名,过滤掉空行和注释行) yy /etc/el…

微信小程序-base64加解密

思路:先创建一个base64.js的文件,这个文件可以作为专门加解密的文件模块,需要时就引用;创建好后,引用base64.js里的加解密函数。 注意:引用模块一定要引用正确的路径,否则会报错。 base64.js:…

【网络协议】【http】【https】AES-TLS1.2

【网络协议】【http】【https】AES-TLS1.2 https并不是一个协议 而是在传输层之间添加了SSL/TLS协议TLS TLS 协议用于应用层协议(如 HTTP)和传输层(如 TCP)之间,增加了一层安全性来解决 HTTP 存在的问题,H…

打造更安全的Linux系统:玩转PAM配置文件

在Linux系统中,用户认证是确保系统安全的关键步骤。PAM(可插拔认证模块)为我们提供了一个非常灵活的框架,帮助我们管理各种服务的认证过程。其中,/etc/pam.d目录是PAM配置的核心部分,这里存放了每个服务所需…

无人机技术架构剖析!

一、飞机平台系统 飞机平台系统是无人机飞行的主体平台,主要提供飞行能力和装载功能。它由机体结构、动力装置、电气设备等组成。 机体结构:无人机的机身是其核心结构,承载着其他各个组件并提供稳定性。常见的机身材料包括碳纤维、铝合金、…

【西藏乡镇界面】图层arcgis格式shp数据有乡镇名称和编码2020年wgs84坐标内容测评

西藏乡镇界面图层arcgis格式shp数据有乡镇名称和编码2020年wgs84坐标无偏移

【QT】: 初识 QWidget 控件 | QWidget 核心属性(API) | qrc 文件

🔥 目录 1. 控件概述 控件体系的发展阶段 2. QWidget 核心属性 2.1 核心属性概览2.2 用件可用(Enabled) 2.3 坐标系(Geometry) **实例 1: 控制按钮的位置**实例 2: 表白 程序 2.4 窗口标题(windowTiltle&a…

PCM5142集成32位384kHz PCM音频立体声114dB差分输出DAC编解码芯片

目录 PCM5142 简介PCM5142功能框图PCM5142特性 参考原理图 PCM5142 简介 PCM514x 属于单片 CMOS 集成电路系列,由立体声数模转换器 (DAC) 和采用薄型小外形尺寸 (TSSOP) 封装的附加支持电路组成。PCM514x 使用 TI 最新一代高级分段 DAC 架构产品,可实现…

python学opencv|读取图像(三十四)阈值处理-彩色图像

【1】引言 前序已经掌握了使用阈值处理函数控制灰度图的RGB值,相关链接为: python学opencv|读取图像(三十三)阈值处理图像-限定像素-CSDN博客 在更早的学习中,灰度图的RGB只有一个通道,也就是各个像素点…

jmeter事务控制器-勾选Generate Parent Sample

1、打开jmeter工具,添加线程组,添加逻辑控制器-事务控制器 2、在事务控制器,勾选Generate parent sample:生成父样本;说明勾选后,事务控制器会作为父节点,其下面的请求作为子节点 3、执行&#…

C++ ——— 学习并使用 string 类

目录 学习 string 类 使用 string 类 实例化一个无参数的 string 对象 实例化一个带参数的 string 对象 合并两个字符串(重载了加运算符) 通过重载[]访问每个字符 迭代器遍历每个字符 范围 for 遍历每个字符 学习 string 类 何为 string 类&…

拟合算法 (matlab工具箱)

拟合算法: 1线性最小二乘法拟合 使用matlab进行求解 拟合优度:R^2 拟合优度的matlab代码: 2,Matlab工具箱的教学 一些函数: 拟合算法: 插值算法中,得到的多项式f(x)要经过所有样本点。但是如果样本点太多&#…

实力认证 | 海云安入选《信创安全产品及服务购买决策参考》

近日,国内知名安全调研机构GoUpSec发布了2024年中国网络安全行业《信创安全产品及服务购买决策参考》,报告从产品特点、产品优势、成功案例、安全策略等维度对各厂商信创安全产品及服务进行调研了解。 海云安凭借AI大模型技术在信创安全领域中的创新应用…