电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>艾达动力气象站

艾达动力气象站

2022-12-15 | zip | 0.41 MB | 次下载 | 免费

资料介绍

描述

几个世纪以来,感知风和天气对人类来说一直很重要。雅典人在公元前一世纪建造了八面风之塔,以纪念八位风神。风之塔至今仍矗立在雅典古老的集市或市场中。

多年来,许多重大的天气事件影响了人类。我们知道这些,因为它们的影响已成为历史的一部分。由于历史的大部分内容是对一系列战争和战斗的回忆,有趣的是,早期著名的关于天气重要性的提法来自中国哲学家孙祖,他说:“知己知彼, 胜利是有保证的。知地而知天,方能全胜。”

在很久以后的历史中,我们知道拿破仑在 1812 年入侵俄罗斯受到阻碍,因为该季节的降雪和寒冷天气比他和他的将军们计划的要早。这与俄罗斯民兵的袭击相结合,帮助击败了法国人,法国人带着 500,00 名士兵入侵,只剩下 20,000 名幸存者。一百三十年后,当希特勒对苏联的入侵再次被严寒的冬季天气部分挫败时,这种情况再次发生。

在 20 世纪,恶劣的天气条件带来了大规模的人口迁移,包括 1930 年代美国的沙尘暴、整个世纪亚洲的多次干旱以及非洲萨赫勒地区的三个重要干旱时期。造成许多人死亡和影响的个别事件包括 1952 年伦敦的大烟雾事件,该事件在 12 月的五天内造成 4,000 人死亡,美国东海岸的许多飓风影响,以及几场值得注意的暴风雪。人对环境的影响也可以从天气中看到,在最近的事件中,当乌克兰切尔诺贝利的反应堆事故释放出放射性粒子时,被苏联以外的传感器检测到,并使用复杂的天气传感器和气象模型追溯到切尔诺贝利。以类似的方式,当地气象仪器被用来帮助估计 1991 年海湾战争期间油井大火产生的烟雾和煤烟的影响。

今天,风和其他天气变量同样受到关注,并且可能对我们现代高科技生活方式产生更大的影响。天气影响广泛的人类活动,包括农业、交通和休闲时间。通常,这些影响涉及气体和微粒在大气中的移动。现代天气监测系统和网络旨在以具有成本效益的方式进行必要的测量,以跟踪这些运动。这要求将监测系统的总生命周期成本降至最低,而做到这一点的一种方法是尽量减少或消除对天气监测系统的维护。使用固态系统来测量天气,包括风速和风向,对于最大限度地减少设备维修和成本至关重要。传统的天气监测系统由单独的传感器组成,用于测量一个气象变量,每个传感器都连接到数据收集设备或记录器。现代技术允许将多个传感器组合成一个集成气象站,该气象站可以永久位于一个站点或运输到需要局部天气的站点。

因此,利用 Ada 的所有强大功能以及一系列 BM1383AGLV 压力-温度传感器,我们将构建一个具有各种应用的本地化气象站。

硬件

1. 树莓派 3B+

众所周知,树莓派是一系列小型单板机,树莓派 3B+ 是该家族的最新版本之一。我选择它是因为它操作快速且易于处理,而且 Ada 内置了对 Raspberry Pi 的支持。

pYYBAGOX_ZuAUEtjAAJZcgto0JQ043.jpg
 

但 RPI 的主要问题之一是它无法从其 GPIO 读取模拟输入。为了克服这个问题,我选择了一个支持 I2C 的传感器,这样我就可以轻松地访问来自传感器的数据。

2.BM1383AGLV

BM1383AGLV 是一种压阻式压力传感器它对芯片内部的MEMS进行温度补偿,因此很容易获得压力信息。它由温度和压力传感器组成,并提供 I2C 接口它可以读取从 300hPa 到 1100hPa 的压力和从 -40°C 到 +85°C 的温度。

pYYBAGOX_Z-ARAnTAADpQ_O3-RE914.png
 

硬件设置

硬件连接示意图如下。SDA 引脚连接到 GPIO2,将 SCL 引脚连接到 GPIO3。DRDY 引脚是可选的。如果您在代码中使用它,请将其拉​​至 1。

poYBAGOX_a2AL1WQAAFrUPPq1NU397.png
架构
 

 

poYBAGOX_bGAPSGnAAIkO5dxm7A631.jpg
 

 

pYYBAGOX_b-ASwm_AAGA6VFdbkY459.jpg
 

软件

1. GNAT

GNAT 是 Ada 编程语言的免费软件编译器,它是 GNU 编译器集合的一部分。它支持所有版本的语言,即 Ada 2012、Ada 2005、Ada 95 和 Ada 83。

要在 Raspberry Pi 中安装 GNAT 编译器,请在终端中输入以下命令。

sudo apt-get install gnat

2. ADA 代码

选择传感器后,我继续搜索任何提供 I2C 支持的 Ada 库,但我很失望,因为我找不到。所以我决定从头开始为 BM1383AGLV 构建一个库。

我使用了一些 bash 命令与 I2C 模块进行通信,并且能够从模块中读取数据。

i2c检测

我使用此命令搜索连接的 I2C 模块

pYYBAGOX_deAWa4aAAGfrO4kh8s841.png
i2c检测
 

i2cget

我使用这个命令来读取存储在传感器中的数据。

poYBAGOX_d6AKzCQAAGlWnbdeFc000.png
i2cget
 

所以我开始寻找一个可以执行 bash 命令的 Ada 模块,我找到了Interfaces.C模块。

使用这段代码,我能够在终端中执行命令

function System (Cmd : String) return Integer is
function C_System (S : Interfaces.C.char_array) return Integer;
pragma Import (C, C_System, "system");
begin
return C_System (Interfaces.C.To_C (Cmd));
end System;

然后我开始将命令合并到 Ada 代码中。i2c.adb 文件读取为

with Interfaces.C;
with Ada.Strings.Fixed;
with GNAT.Expect;
package body i2c is
R,V1: Integer;
W1: String:="i2cset -y -a 1 0x5d 0x12 0x01";
W2: String:="i2cset -y -a 1 0x5d 0x13 0x01";
W3: String:="i2cset -y -a 1 0x5d 0x14 0x9";
R1: String:="i2cget -y -a 1 0x5d 0x19";
R2: String:="i2cget -y -a 1 0x5d 0x1A";
R3: String:="i2cget -y -a 1 0x5d 0x1B";
R4: String:="i2cget -y -a 1 0x5d 0x1C";
procedure write is
function System (Cmd : String) return Integer is
function C_System (S : Interfaces.C.char_array) return Integer;
pragma Import (C, C_System, "system");
begin
return C_System (Interfaces.C.To_C (Cmd));
end System;
pragma Inline (System);
begin
R := System (W1);
DELAY 0.5;
R := System (W2);
R := System (W3);
end write;
procedure read  is
function System (Cmd : String) return Integer is
function C_System (S : Interfaces.C.char_array) return Integer;
pragma Import (C, C_System, "system");
begin
return C_System (Interfaces.C.To_C (Cmd));
end System;
pragma Inline (System);
Com: String:="sudo chmod +x i2c.sh && ./i2c.sh";
begin
V1 := System (Com);
end read;
end i2c;

在职的

现在是检查工作的时候了。下载代码并执行以下命令以查看它们是否正常工作。

gprbuild -d aws.gpr -XPrivate_Warnings=FALSE -XModule=MOD_RPI aws.adb

然后你可以在 bin 文件夹中找到一个可执行文件。使用以下命令执行它

sudo ./aws

它会给你这样的结果

pYYBAGOX_eWAEN5sAAHKNLf2Fww518.png
 

未来会怎样?

我们现在开发了一个本地化的气象站,能够不时监测天气变量。将这些变量结合到现有的机器学习模型中,我们将能够更准确地预测未来几天的天气。

有关更多文档和详细信息,请访问GitHub 存储库


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费