使用 Squareline Studio 和 LVGL 開發(fā)的 ESP32 電子氣壓計
氣壓計是一種用于測量大氣壓力的科學儀器。氣壓上升通常預示著天氣好轉,氣壓下降則通常意味著即將有風和降雨。氣壓穩(wěn)定則表示天氣狀況平穩(wěn)。在這個項目中,我將介紹一種非常簡單的制作氣動式氣壓計模擬器的方法。實際上,現(xiàn)代數(shù)字電子技術被運用其中,借助這些技術,經典機械氣壓計的功能實現(xiàn)了 100%的模擬。氣動式氣壓計包含兩個箭頭:一個黑色的測量箭頭和一個黃色的參考箭頭。
預測天氣的方法如下:我們需要將黑色測量箭頭與黃色箭頭對齊。幾個小時后,如果黑色測量箭頭向左移動到黃色箭頭的左側,那么將會出現(xiàn)不穩(wěn)定天氣;而如果它向右移動,則天氣將會好轉并趨于穩(wěn)定。如果這兩個箭頭保持對齊狀態(tài),那么預計天氣狀況不會有變化。在原始儀器中,參考箭頭是通過儀器中間的按鈕來移動的,在這種情況下,該功能是由旋轉編碼器來實現(xiàn)的。
這款設備極其簡單,這得益于其 CROWPANEL 圓形顯示屏,該顯示屏內置了 ESP32S3 微控制器和旋轉編碼器。因此,只需將 BME280 模塊連接到該顯示屏模塊對應的 I2C 端口即可。
這是我首次使用 LVGL 庫和 Squareline Studio 進行的項目開發(fā),它能讓你以相對簡單的方式創(chuàng)建出極具視覺效果且功能強大的項目。
這次我就不詳細闡述在 Squareline Studio 中開發(fā)和創(chuàng)建代碼及用戶界面的方法了,因為這些內容在之前的許多教程中都有詳細介紹。不過,我會簡要描述一下成功重現(xiàn)該項目的步驟。
該項目由 PCBWay 公司贊助。從概念設計到實際生產,PCBWay 為全球創(chuàng)新者提供前沿的電子設計解決方案,涵蓋硬件設計、軟件開發(fā)、機械設計、產品測試及認證等方面。PCBWay 工程團隊由在電子、嵌入式系統(tǒng)和產品開發(fā)領域經驗豐富的工程師組成。他們成功完成了涵蓋醫(yī)療設備、工業(yè)自動化、消費電子、智能家居和物聯(lián)網(wǎng)等多個行業(yè)的數(shù)百個項目。
以下是使用所給庫進行設備安裝的詳細說明。
首先,您需要使用版本為 1.8.15 及以上的 Arduino IDE。然后,請根據(jù) Elecrow GitHub 頁面上的說明安裝 ESP32 核心版本 2.0.14 或 2.0.15?,F(xiàn)在,在“工具-板-ESP32 Arduino”中,我們需要選擇 ESP32S3 開發(fā)模塊。
在本板中,我們需要對一些屬性進行修改:閃存大小 16MB、分區(qū)方案 - 大型應用程序,以及 PSRAM - OPI PSRAM。接下來,我們需要安裝 LVGL 庫,具體版本為 8.3.11。您還需要安裝 Arduino_GFX_Library 以及 Adafruit_BME280 庫。所有這些庫和必要的文件都在文末給出。接下來是另一個重要的操作,即在“庫”文件夾的根目錄(通常該文件夾位于用戶/文檔/Arduino 目錄下)中,您需要復制 LVGL 庫的配置文件,名為“l(fā)v_conf.h”?,F(xiàn)在我們完成了支持部分,接下來需要編譯并上傳給定的代碼。
為此,我們解壓名為“Code Final.zip”的文件,但不更改內部文件夾的名稱。我們進入該文件夾,并啟動“.ino”文件。這樣,代碼就與之前使用 Squareline Studio 創(chuàng)建的必要用戶界面文件一同被打開?,F(xiàn)在我們可以編譯并上傳代碼,而不會出現(xiàn)錯誤。
至于代碼的編寫方式,其設計使得我們能夠輕松更改幾個參數(shù),從而實現(xiàn)氣壓計的正常和精確運行:
?我們所在的高度被輸入到了如下這一行中:static const float ALTITUDE_M =
?從傳感器讀取數(shù)值的頻率在以下這行代碼中進行了定義:static const uint32_t READ_PERIOD_MS
?氣壓計的“校準”操作是在以下代碼行中進行的:static const float NEEDLE_OFFSET_DEG,這里我們設定了一個角度值,以便箭頭能夠準確顯示顯示在串行監(jiān)視器中的實際氣壓值。
?而黃色箭頭移動時所具有的精確程度,即變化步長,是在以下這行代碼中設定的: float diff = (encoderValue - lastEncoderValue) * 1.0f;
現(xiàn)在讓我們來看看該設備在實際環(huán)境中的運行情況:在開啟設備后,屏幕上會立即出現(xiàn)一幅復古型氣壓計的詳細圖像,黑色箭頭會短暫停留在當前的相對大氣壓力值上。通常情況下,如果壓力高于 1013 百帕,就表明天氣狀況穩(wěn)定;如果低于 1013 百帕,則表明天氣不穩(wěn)定。對我們而言,一段時間內(至少 3 次)大氣壓力的變化數(shù)據(jù)非常重要。
為此,我們將參考的黃色箭頭精確地設置在黑色箭頭的正上方。如果經過一定時間后,黑色箭頭相對于黃色箭頭向左移動了,那么天氣就會變得不穩(wěn)定;反之,如果它向右移動,天氣就會趨于穩(wěn)定。如果這兩個箭頭保持重疊狀態(tài),那么天氣就不會發(fā)生變化。通過用手指在傳感器上方按壓(人為增加壓力),我們可以看到箭頭緩慢地向右移動,然后在短時間內又回到初始狀態(tài)。由此可見,這個氣壓計完全模擬了機械式安諾里德氣壓計。唯一的區(qū)別在于,對于機械氣壓計而言,為了準確讀取當前值,你必須多次輕觸玻璃表面,而在這種情況下總是準確的,這無疑是一個巨大的優(yōu)勢。更不用說其精度了,現(xiàn)在已經達到了小數(shù)點位數(shù)的精度。
最后,簡單總結一下:該項目展示了現(xiàn)代電子技術如何能夠完全取代并改進傳統(tǒng)的機械儀器,以數(shù)字化的精確度呈現(xiàn)出現(xiàn)代化的復古外觀。有了這款氣壓計,您不僅能獲得一個實用的天氣預報設備,還能為您的家增添一道視覺上的精彩裝飾。
本文編譯自hackster.io





