資料介紹
描述
幾個世紀以來,感知風和天氣對人類來說一直很重要。雅典人在公元前一世紀建造了八面風之塔,以紀念八位風神。風之塔至今仍矗立在雅典古老的集市或市場中。
多年來,許多重大的天氣事件影響了人類。我們知道這些,因為它們的影響已成為歷史的一部分。由于歷史的大部分內容是對一系列戰爭和戰斗的回憶,有趣的是,早期著名的關于天氣重要性的提法來自中國哲學家孫祖,他說:“知己知彼, 勝利是有保證的。知地而知天,方能全勝。”
在很久以后的歷史中,我們知道拿破侖在 1812 年入侵俄羅斯受到阻礙,因為該季節的降雪和寒冷天氣比他和他的將軍們計劃的要早。這與俄羅斯民兵的襲擊相結合,幫助擊敗了法國人,法國人帶著 500,00 名士兵入侵,只剩下 20,000 名幸存者。一百三十年后,當希特勒對蘇聯的入侵再次被嚴寒的冬季天氣部分挫敗時,這種情況再次發生。
在 20 世紀,惡劣的天氣條件帶來了大規模的人口遷移,包括 1930 年代美國的沙塵暴、整個世紀亞洲的多次干旱以及非洲薩赫勒地區的三個重要干旱時期。造成許多人死亡和影響的個別事件包括 1952 年倫敦的大煙霧事件,該事件在 12 月的五天內造成 4,000 人死亡,美國東海岸的許多颶風影響,以及幾場值得注意的暴風雪。人對環境的影響也可以從天氣中看到,在最近的事件中,當烏克蘭切爾諾貝利的反應堆事故釋放出放射性粒子時,被蘇聯以外的傳感器檢測到,并使用復雜的天氣傳感器和氣象模型追溯到切爾諾貝利。以類似的方式,當地氣象儀器被用來幫助估計 1991 年海灣戰爭期間油井大火產生的煙霧和煤煙的影響。
今天,風和其他天氣變量同樣受到關注,并且可能對我們現代高科技生活方式產生更大的影響。天氣影響廣泛的人類活動,包括農業、交通和休閑時間。通常,這些影響涉及氣體和微粒在大氣中的移動。現代天氣監測系統和網絡旨在以具有成本效益的方式進行必要的測量,以跟蹤這些運動。這要求將監測系統的總生命周期成本降至最低,而做到這一點的一種方法是盡量減少或消除對天氣監測系統的維護。使用固態系統來測量天氣,包括風速和風向,對于最大限度地減少設備維修和成本至關重要。傳統的天氣監測系統由單獨的傳感器組成,用于測量一個氣象變量,每個傳感器都連接到數據收集設備或記錄器。現代技術允許將多個傳感器組合成一個集成氣象站,該氣象站可以永久位于一個站點或運輸到需要局部天氣的站點。
因此,利用 Ada 的所有強大功能以及一系列 BM1383AGLV 壓力-溫度傳感器,我們將構建一個具有各種應用的本地化氣象站。
硬件
1. 樹莓派 3B+
眾所周知,樹莓派是一系列小型單板機,樹莓派 3B+ 是該家族的最新版本之一。我選擇它是因為它操作快速且易于處理,而且 Ada 內置了對 Raspberry Pi 的支持。
但 RPI 的主要問題之一是它無法從其 GPIO 讀取模擬輸入。為了克服這個問題,我選擇了一個支持 I2C 的傳感器,這樣我就可以輕松地訪問來自傳感器的數據。
2.BM1383AGLV
BM1383AGLV 是一種壓阻式壓力傳感器。它對芯片內部的MEMS進行溫度補償,因此很容易獲得壓力信息。它由溫度和壓力傳感器組成,并提供 I2C 接口。它可以讀取從 300hPa 到 1100hPa 的壓力和從 -40°C 到 +85°C 的溫度。
硬件設置
硬件連接示意圖如下。將 SDA 引腳連接到 GPIO2,將 SCL 引腳連接到 GPIO3。DRDY 引腳是可選的。如果您在代碼中使用它,請將其拉??至 1。
?
?
軟件
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 模塊
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
它會給你這樣的結果
未來會怎樣?
我們現在開發了一個本地化的氣象站,能夠不時監測天氣變量。將這些變量結合到現有的機器學習模型中,我們將能夠更準確地預測未來幾天的天氣。
有關更多文檔和詳細信息,請訪問GitHub 存儲庫。
- Arduino在線氣象站(NodeMCU)
- 如何制作簡單的氣象站
- Arduino無線氣象站
- Arduino氣象站
- 基于LoPy4的氣象站設計 0次下載
- Sigfox和Arduino氣象站
- 基于Arduino的無線氣象站 0次下載
- Arduino氣象站項目
- DIY簡單氣象站
- 使用Arduino和NodeMCU的氣象站
- 基于網絡的InqWeather氣象站
- 手持式氣象站BNL-GPRS系列使用手冊 4次下載
- 帶有Adafruit_IO的氣象站監視器源碼 9次下載
- 自動氣象站的抗干擾技術 26次下載
- 基于MSP430的智能氣象站的設計
- 基于幾何的泰森多邊形來生成形體骨架 820次閱讀
- 4G氣象站的設計與實現 880次閱讀
- 如何利用ESP32實現太陽能氣象站的設計 4281次閱讀
- 如何利用ESP8266實現防雨物聯網氣象站的設計 4963次閱讀
- 如何利用粒子光子把你的雨傘變成氣象站 1391次閱讀
- 如何使用ESP32創建一個氣象站 3771次閱讀
- 利用Arduino Nano 33 IoT構建的微型互聯網氣象站 3373次閱讀
- 如何手動制作一個風速儀 5629次閱讀
- 基于樹莓派組成的可隨身攜帶氣象站設計方案 2815次閱讀
- 如何使用兩個dht傳感器及HC12模塊制作遠程氣象站? 2792次閱讀
- 基于創建帶有空氣質量傳感器的室內氣象站 2186次閱讀
- 基于電子墨水屏實現RGB顯示器的開發設計 4141次閱讀
- dfrobotDIY智能氣象站套件簡介 1618次閱讀
- 光照傳感器的工作原理 4.4w次閱讀
- 基于STM32的自動氣象站控制模塊設計 8306次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多