×

使用区块链和物联网的天气气球采矿

消耗积分:0 | 格式:zip | 大小:0.32 MB | 2022-10-20

分享资料个

描述

注意:
我们正在将此项目提交给挑战1:气候危机与缓解下的“IoT in the Wild”竞赛,主题为自然灾害预防/缓解

我的使命

我在 NASA 戈达德太空飞行中心为 GOES-16 气象卫星工作了两年,然后于 2019 年离开 NASA,独立探索区块链和物联网技术。我立即意识到 LoRaWAN 在解决气候科学界最棘手的现场工作之一方面的低功耗远程潜力。

来自西非和中非地区的高层数据在天气和气候预报中发挥着巨大的作用。它有助于数值模型更好地预测极端洪水和干旱事件。来自这些地区的更多数据可以帮助对当地人口进行降雨预报,甚至可以用于改进对 7 到 14 天时间范围内的大西洋飓风的预报。然而,该地区的官僚主义和无效的政府资助导致过去 20 年西非气象气球站的迅速退化。2008年,科学家得出结论,扭转这一趋势的最佳方法是建立一个独立于政府机构的网络,直接向个人支付准备和发射气象气球的费用。 Link

这个行动计划现在是可能的。

凭借小尺寸、低功耗和低成本的微处理器,我们可以连接社区并收集数据,而无需昂贵的设备。此外,随着非洲智能手机的普及,我们发现实时讨论项目和解决技术问题很容易。借助区块链和物联网,我们可以让地球上任何地方的任何人都可以访问数据,同时直接补偿当地社区以手动启动气球的过程。

LoRaWAN 和天气挖掘

LoRaWAN 是一种低功耗远程无线电通信技术,在视距情况下表现最佳。它非常适合一次只需要发送少量数据的室外传感器和室内监视器。

上升的气象气球最大限度地提高了 LoRaWAN 的这种视线特性,因为可能会降低信号强度的地面障碍物越来越少。实际上,气球变得越来越像一个具有巨大足迹的小型卫星,可以与地面上的数十个甚至数百个网关(也称为氦“热点”)进行通信。这种冗余有助于补偿由于风和气球无线电信号试图穿过云层或阴雨天气而导致的气球自然漂移远离发射位置。

对流层顶部通常延伸到大约 35,000 英尺,接近 SF10 LoRaWAN 的 15 公里范围。这也恰好是我们的 30 克气球由于低气压而容易爆裂的高度。

现在我们了解了为什么气球可以很好地与 LoRaWAN 配合使用,我们现在可以谈谈该项目如何使用我称之为天气“采矿”的概念。

这是一个科学事实,除了最极端的天气情况外,大气压力会随着海拔的升高而降低,我在我的区块链智能合约中利用了这一物理事实。对于无线电探空仪气球上的压力传感器达到的每毫巴水平,一定比例的 Telos 数字货币通过区块链发送到发射器。这激励了性能良好的发射,在 LoRaWAN 接收天线的范围内达到最大值。

在这里,我创造了“天气挖矿”一词,与比特币挖矿类似,支付机制不受概率和密码学的支配,而是受大气物理学的可预测性支配。下图是小额支付被发送给尼日利亚 Uyo 的 Emmanuel Patrick,因为智能合约从 7,075 米高空的气球接收数据。这些付款每 30 秒持续一次,直到气球超出范围或在高空爆炸。

pYYBAGNQkbuANd_QAAEAxzXs-Z0159.png
图 2. 智能合约处理数据和向 Miner 小额支付

硬件描述

项目中使用的每个电子硬件都相对简单,包括一个 5V 博世 BME280 天气传感器(可在 Seeed Studio 上获得),通过跳线连接到 TTGO LoRa32 v2.1 微控制器。这每隔几秒钟就会捕获一次温度、湿度和压力。TTGO 单元带有一个预焊接的 OLED 和带 SMA 安装的 LoRa 868MHz 无线电模块。一个小型 3D 打印外壳可在飞行过程中保持 Adafruit 350mah 3.7V LiPo 电池干燥,并有助于防止损坏,以防设备被回收。

BME280 的 Vin 和 GND 引脚分别连接到 LoRa32 的 3v3 和 GND 引脚。SDA 引脚连接到引脚 21,SCL 引脚连接到 22。

外壳是 3D 打印的,可以直接在大学进行直接打印。我从 TinkerCAD 上的公共文件中借用了 STL 设计文件,并重新混合以包括外壳左侧的移动铰链。

网络堆栈

由于在相对偏远的地区工作会增加复杂性,我们严重依赖微软 Azure 服务等云计算框架来完成大部分软件和区块链处理。尽管如此,学生们仍然设法将 LoRaWAN 网关(也称为热点)连接到当地大学的本地 LAN,主要是靠自己。

Seeed Studio 的 TheThingsNetwork 室内网关和 Dragino LPS8 Helium 数据包转发器都已在各大学建立。

pYYBAGNQkcCAWbjUAACNTPI_dU8938.png
图 4. 后端网络图
 

固件是使用开源 Arduino 库草图的组合编写的。固件的主要组件是:

  • 通过 Helium 网络每 5 到 30 秒发送一次天气数据包。这里我使用了LMIC库并实现了这个lora-serialization库来做天气包的编码和解码
  • 带有 WiFi.h 库的自定义 HTML 网页,用于输入学生的 Telos 区块链帐户名称并验证启动。网页可通过智能手机中的 http://192.168.4.1 或启动时的二维码访问。
  • 机载高程计算在这里,您可以使用一些微积分并在强大的 ESP32 上进行一些凉爽的天气计算。当气球上升时,固件通过在离散的压力水平间隔上积分高度方程来连续计算实时高度。这样做需要高度准确的输入,甚至需要计算作为纬度函数的引力常数。这是因为靠近赤道,西非的重力感觉要低 0.5% 到 1.0%。作为参考,这里是算法的片段:
/* Specific gas constant for dry air */
float R = 287.058;

/* Gravitational acceleration varies slightly by latitude and elevation */
float g = calc_gravity(); 

/* Approx average virtual temperature of layer */
float tv_avg = tv1 + (tv2 - tv1)/2.0;

/* Use hypsometric equation and natural logarithm 
   to compute elevation change since last datapoint */
float elevation = (R*tv_avg/g)*log(p1/p2) + z1;

通过 Helium 控制台,我为每个地理位置创建了一个唯一的基于 OTAA 的设备名称(Deveui、Appeui、Appkey),并在每个位置的后续启动中重复使用相同的设备凭据。然后,我将 MQTT 集成添加到 Helium 控制台并连接流。

poYBAGNQkcOAGPLIAADoOPn5tJQ152.png
图 5. Helium 数据包解码器与 MQTT 集成
 

从那里,我正在运行一个 Node-RED 实例,它侦听 Helium 通过 MQTT 发送的数据包。该流程根据端口号路由消息,最后使用我编写的自定义 Node-RED contrib 模块将数据推送到 Telos 区块链。该模块在此处作为 NPM 包发布,并且与项目的其余部分一样是开源的。

pYYBAGNQkcWAGhRHAAD_RFct4ac532.png
图 6. 处理天气观测和身份验证检查的 Node-RED 流程
 

最后,智能合约负责处理天气和发射认证数据。随着每次观察到达区块链,气球每上升几米,就会向学生发射器支付一笔小额小额费用。每次发布的数字货币总计约为 10 美元。所有天气数据都存储为 Telos 上的 RAM 资源,我们过去所有发布的天气数据都可以在此处的区块链上直接查看。

启动过程

发射前,大学生“天气矿工”按照 OLED 屏幕上的指示连接到 ESP32 广播的 WiFi AP。学生们输入他们的 Telos 区块链账户名,以接收在发布期间发生的数字支付。当用户按下“提交”时,一条 LoRaWAN 消息通过 868MHz 发送到附近的热点,并且矿工的帐户在 Telos 区块链上进行身份验证。

气球中填充了至少 12 立方英尺的氦气或氢气,以提升 40 克的微小有效载荷。稍后再谈。另一个 3D 打印的铰链夹在气球的颈部,并通过夹子将主气象设备连接到气球的底部。Weather Miner 可以自由释放气球。

一旦大气压力比地面压力低几毫巴,设备就会识别出气球已经发射并进入“飞行”模式。每 5 秒,它会将温度、压力和湿度传输回地面接收器。如果飞行发生在大城市上空,该地区的其他公共热点也可能会在气球上升时从气球中拾取数据包,这使得解决方案更加稳健。

气球将继续上升约 90 分钟,直到在约 35,000 英尺处爆裂。我们一起发现额外的气体有助于将气球保持在足够长的范围内,以测量整个飞行长度的数据。

当地生产的氢气

在与学生进行几次试射后,我很快了解到为气球提供氦气是一项非常昂贵的工作。

为了克服这个问题,我们开发了一种用当地生产的氢气代替氦气给气球充气的方法。过滤后的水 (H2O) 使用聚合物电解质膜 (PEM) 电解分解成氢气和氧气,其中氢气以 120psi 的最大压力储存在一个小罐中。

我的发明需要 200W 太阳能以最大 40 安培的电流为 5V PEM 供电,并在阳光普照时产生氢气。为了收集雨水,我们利用玻璃太阳能电池板的光滑度,让水通过 PVC 管落入蓄水池。充满后,雨水将通过 2 个无需外部泵的去离子水过滤器。PEM在白天不断循环水,并将氢气输出到储气罐中以供日常储存。

8 小时的阳光足以让 30 克的小型红色气象气球进行一次发射所需的 12 立方英尺氢气。为了安全和保护雨水入口,当产生足够的氢气时,压力开关会切换面板的电流以关闭 PEM 装置。我们估计超过 70% 的地球表面平均接收到 16 fl。每天发射一个气象气球需要 oz 的降雨量。

结论

尽管几乎完全靠自己的资金自筹,但我已经帮助来自美国和非洲 5 个地点的学生完成了 25 次发布。通过提供所需的设备和设置指南,我帮助在以下大学建立了氢气站:

1. 尼日利亚乌约的乌约
大学 2. 加纳阿克拉的学术城市大学
3. 喀麦隆杜阿拉的杜阿拉大学

我还与 Taikai Labs 和 Omdena, Inc. 一起领导了一些公开的黑客马拉松和活动,我们发现了一种将数据用于机器学习的新方法。我们发现,我们可以使用现有的气球数据制作一个相当准确的 ML 训练的 12 小时降雨预报模型,尤其是与当前传统政府运营服务的糟糕表现相比。我们正在寻找任何潜在的资助机会,以便在杜阿拉大学进行为期 9 个月的试点,以收集 ML 训练数据集。

最终,在该地区拥有足够大的数据集后,通过改进东大西洋飓风成因预测,可能有数百万(如果不是数十亿)美元的长期保险储蓄。这些被称为佛得角飓风它在非洲海岸形成,最终威胁到美国和加勒比海。只需要 20 个维护良好的气象站即可取代该地区当前的气象气球网络。

本项目中使用的所有软件和 CAD 都是开源的。随意使用组件来启动您自己的气象气球或改进您自己的项目!

 
 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !