資料介紹
描述
靈感
你們中有些人可能知道在許多歐洲城市作為紀念品出售的變色小雕像。這些白色雕像涂有一種特定的化學物質,這種物質會與空氣濕度發(fā)生反應,使顏色從淺藍色變?yōu)榉奂t色,并在不斷變化中經歷其他色調。他們應該預測當?shù)氐亩唐谔鞖狻?/font>它們實際上顯示了當前情況,但預測能力非常有限且不準確。
從那開始,我們決定基于新的 Arduino Nano Every 和 BME280 傳感器制作一個天氣預報小矮人。起初看似容易的任務,結果卻是相當具有挑戰(zhàn)性。普通氣壓計可以進行短期預報,因為它可以告訴您氣壓是升高還是降低,并且根據海平面壓力與當?shù)睾0胃叨认嗟窒南鄬毫Γ€可以為您提供一些“高”值和“低”閱讀。
為了獲得更準確的預報,還考慮了相對濕度和風力,并且經典的氣壓計被更復雜的預報設備“Zambretti Forecaster”所取代。
作者 Zambra end Negretti 早在 1920 年就記錄了該預報器,它已成為許多基于微控制器的項目中本地天氣預報的解決方案。您可以在此處 ( http://drkfs.net/zambretti.htm)找到有關預報器的完整詳細信息,我們還發(fā)現(xiàn)Fandonov ( https://github.com/fandonov/weatherstation)的工作對他實施Zambretti 預報員在他的電子墨水顯示屏天氣預報器中。
組件
我們正在我們的Arduino Nano Every plus 上運行這個項目,我們在其中添加了博世的BME280傳感器、一個實時時鐘DS3231和一個由八個WS2812B智能 LED組成的小條帶。
BME280 能夠測量溫度、壓力、濕度,并提供一些關于絕對濕度和高度的線索,但正如我們將在下面看到的,高度和壓力是綁定在一起的,為了我們的目的,我們需要找到我們的真實高度侏儒天氣預報員。
需要 DS3231 實時時鐘模塊,因為部分 Zambretti 計算與季節(jié)有關,而該設備了解季節(jié)的唯一方法是通過正確設置實時時鐘模塊。這可能看起來是一種資源浪費,但您可以改進我們提供的代碼,包括根據一天中的時間和其他便利設施進行亮度控制等功能,并在草圖中使用更多的 RTC。
最后一個組件,LED 燈帶相當于改變顏色的小雕像的彩色涂料。在這里,我們利用 RGB 顏色來更詳細地表示天氣預報,即使 Zambretti 預報的全部 26 種不同條件的表示對于簡單的顏色顯示來說太多了。
我們決定對其進行簡化,這是一項正在進行的工作,您可以輕松更改為不同的顏色編碼。
接線
兩個主要模塊都基于I2C ,因此接線非常簡單。我們使用的 RTC 模塊甚至有四個連接的通道,這使我們的接線只需 10 分鐘。VCC 和 GND 取自 Arduino Nano 排針上的每個 3V3(紅色)和 GND(黑色)引腳并焊接到 DS3231 模塊一側的相應引腳,然后 I2C 接口與 Arduino 的 A4 和 A5 一樣. A4為SDA(圖中藍色線),A5為SCL(圖中黃色線)。我們從 RTC 模塊的另一側采用相同的四個連接,并將它們連接到 BME280 模塊,只需要注意順序即可。VCC / GND / SDL / SCA 順序沒有標準,每個模塊可能有不同的順序需要注意。
LED 燈帶通常有三個標簽 VDC、DIN 和 GND。這次電源將來自 5V 引腳。一個原因是我們的焊盤可以自由焊接,另一個原因是我們從 USB 為電路板供電,而 5V 直接來自 USB,對 Nano 的電源調節(jié)器沒有壓力。
數(shù)據被饋送到 D7 引腳上的條帶,但可以是您認為合適的任何其他引腳。只需使用您在靠近頂部的#define LED_PIN 7行中選擇的引腳編輯草圖。
這是它的接線。我們將通過 USB 為電路供電,因為它需要持續(xù)開啟以監(jiān)測環(huán)境參數(shù)并做出預測。手機的移動電源可能會為電路供電好幾個小時,但它不可避免地會耗盡能量。
草圖
為了讓這個項目工作,我們需要幾個庫,你可以在草圖的第一行找到它們作為#INCLUDEs。
I2C 通信需要電線, Adafruit_Sensors和Adafruit_BME280允許我們從壓力、濕度和溫度傳感器讀取數(shù)據。LED 燈帶由Adafruit_NeoPixel庫管理,使我們能夠快速有效地控制每個像素顏色。最后但同樣重要的是RTCLib ,它允許我們從 DS3231 實時時鐘讀取所有信息。
我們使用的常數(shù)是平均海平面壓力和 LED 燈帶的常數(shù)。我們使用的平均海平面壓力值是 1013,25 mbar,相當于 101,325 kPa,這是國際公認的值。
在各種設備初始化之后,我們定義了一些變量,這些變量將用于預測以及串行監(jiān)視器上的一些文本輸出。如果你想深入了解天氣情況,你可以連接電腦并讀取提供的數(shù)據,否則,你可能會簡化很多草圖,只是避免所有的字符串格式化和打印。
我們決定保留這些調試信息,以在項目中保留一些教育價值。
數(shù)組一開始是空的,代碼每 10 分鐘用一個新值填充它,以便數(shù)組的最后一個單元格包含最新的壓力讀數(shù)。包含壓力的值是海壓,計算它是為了補償設備放置的高度。
一個非常重要的變量是設備的高度。我們知道海平面壓力,我們需要調整傳感器的讀數(shù),以便我們可以將我們從傳感器讀取的數(shù)據開始讀取的海平面壓力輸入到 Zambretti 公式中。有一個公式可以在知道一系列參數(shù)的情況下進行此計算,如果您手頭有一個 GPS(甚至您的智能手機也可以有一個)來讀取海拔高度,您可以將該值放入海拔高度變量中。有了這些信息,公式就是
隨著以下:
P0為相對海平面壓力;
P為站壓,單位為 hPa;
h是以米為單位的高度
T是攝氏溫度。
通過這個公式的輸出,我們得到了海平面的壓力,這樣我們就可以將它輸入到我們的數(shù)組中。該數(shù)組就像一個移位寄存器,每當添加一個新值時,所有以前的值都會向左移動一個位置(最舊的值是 0,最新的值是 9)。
有了這 10 個值的數(shù)組,時間間隔為 10 分鐘,Zambretti 公式可以找出壓力變化趨勢(下降、穩(wěn)定或上升)和在過去 100 分鐘內收集的值的滑動窗口上的值。在公式中還考慮了月份,因為 Zambra 和 Negretti 發(fā)現(xiàn)它與獲得更準確的預測有關。
然而,在最初的 100 分鐘內,設備正在收集第一套完整的壓力讀數(shù),因此預測將是完全錯誤的。完成此設置后,預測將每 10 分鐘調整一次。
以下幾行復制物理對象以使用三個窗口(下降/穩(wěn)定/上升)和壓力讀數(shù)找出與預測對應的字母。這意味著對于相同的壓力讀數(shù),造成差異的是短期變化以及夏季/冬季。它是在函數(shù)calc_zambretti中完成的,該函數(shù)獲取最舊的三個平均壓力值、最后三個平均值以及最后確定季節(jié)的月份作為輸入。
長長的if...then...else列表最終描繪了 Zambretti 的輸出,并將 26 條消息重新排列成更簡單的組,即Sunny、Sunny Cloudy、Worsening、Cloudy、Rainy ,告訴我們壓力是在升高、穩(wěn)定還是在下降。我們保留了Fandonov的原始算法,因為它可以讓您很好地理解預測的工作原理,然后我們將五種可能情況的輸出編碼簡化為五種不同的 LED 顏色。條帶的使用允許從一種顏色緩慢變化到另一種顏色,在每個新預測時向上滾動一個 LED;這也是一個給你預測趨勢的解決方案。
我們使用一個簡單的例程來實現(xiàn) LED 條的滾動,該例程從頂部開始將每個 LED 的內容復制到下一個,以便將所有內容向上移動,然后新值由 Zambretti 算法定義并寫入第一個 LED 位置。
把一切放在一起
我們在我們的“標準”3D 打印 Gnome 中托管電路。這次 BME280 部分位于 Gnome 的后部,從他的腳后跟處,而 USB 位于中等高度。您可以修改我們在之前的項目Gnome Traveler中共享的 STL 文件,讓傳感器和 USB 端口可以從外部訪問。
布線非常簡單,因此將所有東西放入 3D 打印的 Gnome 中應該非常容易。在我們的設置中,條帶位于 Gnome 的上部,因此頭部和帽子會以預測的顏色點亮。最好將傳感器放在 Gnome 外面,因為它可以從環(huán)境中獲取空氣。最好的結果要求傳感器在戶外,而不是在濕度和溫度受到控制的公寓中。
一種解決方案是讓小矮人靠近窗戶,并通過 4 線電纜連接將傳感器保持在外面;I2C 最多可以容忍一米,這比您將傳感器放在窗外所需的要多。
加載代碼并監(jiān)控讀數(shù)
設置好所有硬件后,您可以繼續(xù)繪制草圖。從這里復制它并與 Library Manager 檢查您是否擁有所有需要的庫:
- Adafruit_傳感器
- Adafruit_BME280
- Adafruit_NeoPixel
- 實時時鐘庫
Arduino Nano Every 使用MegaAVR 核心,您也應該正確安裝它:如果您在可用列表中有該板,則它已安裝,否則您需要使用Board Manager來安裝它。
啟動草圖驗證以確保一切正確,然后上傳。打開Serial Monitor,看看慢慢會打印出來的數(shù)據。每分鐘您都會獲得一個壓力讀數(shù),每十分鐘就會存儲一次讀數(shù)。
休息一下,讓數(shù)組填滿真實數(shù)據。幾個小時后回來,您所看到和閱讀的內容應該是有意義的。
黃色是晴天,天藍色是多云,然后當天氣惡化到下雨時,它會變成紫色和紅色。
讓它成為你自己的
我們將文本保留在草圖中,以便您可以輕松更改每個受控天氣條件的顏色。語法是strip.setPixelColor(LED, R, G, B); LED 應該始終是條帶中的第一個 (0),RGB 值從 0 到 255。有一個整體亮度設置,您可以使用它來全天獲得不同的 LED 強度;尋找strip.setBrightness(100); 線并將其變成與日夜閱讀 RTC 相關的內容。
- 物聯(lián)網迷你天氣預報開源分享
- DIY簡單的天氣預報裝置
- 自動播放器播放天氣預報
- 天氣預報顯示開源項目
- 制作BMP280 ESP32天氣預報器
- 基于ESP8266-01的天氣預報
- 使用ESP32進行溫度、濕度和天氣預報
- 基于ESP32的可打印天氣預報劇院 0次下載
- WhatsApp地圖和天氣預報聊天機器人開源
- 基于ESP8266的天氣預報顯示模塊 0次下載
- Zambreti天氣預報器開源分享
- 基于天氣預報的自動灌溉系統(tǒng)
- WeatherBot-3D打印天氣預報劇院|ESP32和OpenWeatherMap
- Android智能手機天氣預報系統(tǒng)設計及實現(xiàn) 22次下載
- 基于天氣預報的集中供熱系統(tǒng)短期熱負荷預測_李琦 0次下載
- 濕敏電阻還能應用在哪里呢? 567次閱讀
- AWTK 開源串口屏開發(fā)(11) - 天氣預報 424次閱讀
- 服務器硬盤通用基礎知識 862次閱讀
- 基于SWM32單片機+LVGL的4.3寸觸摸屏設計 2062次閱讀
- 觸摸屏WIFI獲取時間和天氣預報相關的功能是怎樣實現(xiàn)的 2857次閱讀
- 基于NiobeU4開發(fā)板的簡易桌面天氣預報設計&實現(xiàn) 1284次閱讀
- Python如何爬取天氣數(shù)據 1811次閱讀
- 如何從網頁控制arduino? 4186次閱讀
- 基于具有天氣預報功能的溫濕度壓力測試裝置系統(tǒng) 2349次閱讀
- 什么是智能內容生成?萬字講述智能內容生成實踐 1.2w次閱讀
- 被用來氣象預測的探空氣球中有哪些重要的傳感器 3753次閱讀
- 淺談Arduino和樹莓派的區(qū)別 2.1w次閱讀
- 天氣雷達原理介紹 6488次閱讀
- arduino是什么以及arduino能干什么 4.5w次閱讀
- arduino開發(fā)板有什么用 2.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據手冊
- 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開發(fā)指南
- 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數(shù)字電路基礎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次下載 | 免費
評論
查看更多