日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 物聯(lián)網(wǎng) > IoT設計分享
[導讀]在這個項目中,我們將學習如何創(chuàng)建一個氣象站,它將在web服務器中顯示來自BME280模塊的讀數(shù)和來自OpenWeatherMap API的實時天氣數(shù)據(jù)。該設備將從BME280傳感器獲取溫度、濕度、氣壓和高度,并從OpenWeatherMap API獲取外部溫度、濕度、天氣狀況以及日出和日落。我們可以在網(wǎng)絡瀏覽器中看到他們在閱讀。

在這個項目中,我們將學習如何創(chuàng)建一個氣象站,它將在web服務器中顯示來自BME280模塊的讀數(shù)和來自OpenWeatherMap API的實時天氣數(shù)據(jù)。該設備將從BME280傳感器獲取溫度、濕度、氣壓和高度,并從OpenWeatherMap API獲取外部溫度、濕度、天氣狀況以及日出和日落。我們可以在網(wǎng)絡瀏覽器中看到他們在閱讀。

BME280溫度,濕度和壓力傳感器

BME280是一款專為移動應用和可穿戴設備開發(fā)的集成環(huán)境傳感器,尺寸和低功耗是關鍵設計參數(shù)。該裝置結合了高線性度和高精度傳感器,是完全可行的低電流消耗和長期穩(wěn)定。BME280傳感器提供了極快的響應時間,因此支持新興應用的性能要求,例如上下文感知,以及在寬溫度范圍內(nèi)的高精度。

該傳感器測量相對濕度范圍為0 ~ 100%,精度為±3%,氣壓范圍為300Pa ~ 1100hpa,絕對精度為±1hpa,溫度范圍為-40℃~ 85℃,精度為±1.0℃。

BME280支持I2C接口和SPI接口。我們使用的模塊支持1.7 - 3.3V的電壓范圍。當以1Hz的刷新率測量所有參數(shù)時,BME280的平均電流消耗為3.6μA。傳感器支持休眠、正常、強制三種電源模式。

在購買BME280模塊時要記住的一件事是,外觀相似的模塊也帶有缺乏濕度測量功能的BMP280傳感器,這使得它比BME280便宜得多。識別BME280和BMP280傳感器的最佳方法是查看產(chǎn)品代碼。BME280傳感器將有一個以“U”開頭的產(chǎn)品代碼,例如UP, UN等。而BMP280將有一個以“K”開頭的產(chǎn)品代碼,例如KN, KP等。另一個視覺差異是BME280有點方形,而BMP280是矩形。

OpenWeatherMap API

OpenWeatherMap是一個在線服務,通過API提供全球天氣數(shù)據(jù),包括當前天氣數(shù)據(jù)、預報、臨近預報和任何地理位置的歷史天氣數(shù)據(jù)。通過他們的API,我們可以訪問地球上任何位置的當前天氣數(shù)據(jù),包括超過20萬個城市!他們收集和處理來自不同來源的天氣數(shù)據(jù),如全球和當?shù)靥鞖饽P汀⑿l(wèi)星、雷達和一個龐大的氣象站網(wǎng)絡。數(shù)據(jù)有JSON、XML和HTML三種格式。我們將使用HTTP GET來請求這個項目的JSON數(shù)據(jù)。

氣象站線路圖

連接相當簡單。按照上面的連接圖進行操作。我們增加了一個18650電池和TP4056充電模塊,并為備份提供保護。首先將電池的負極連接到TP4056模塊的B-引腳,將正極連接到模塊的B+引腳?,F(xiàn)在將模塊的OUT+連接到ESP32 Devkit的VIN引腳,B-連接到GND引腳。TP4056模塊還包含DW01保護芯片,可以防止電池過放電和短路。

現(xiàn)在讓我們將BME280模塊連接到ESP32 Devkit。BME280的VCC引腳接3.3V引腳,GND接GND引腳。該模塊同時支持SPI和I2C。我們將使用I2C接口進行通信。為此,將SDA引腳連接到ESP32 Devkit的D22,將SCL引腳連接到D21。

代碼說明和Arduino IDE安裝庫

對于這個項目,我們需要安裝幾個Arduino庫,它可以直接通過庫管理器完成。要安裝庫,請導航到Arduino IDE > Sketch > Include Library > Manage libraries…等待Library Manager下載庫索引并更新已安裝庫列表。然后搜索并安裝以下庫。

?Adafruit BME280庫

?Adafruit統(tǒng)一傳感器

?Arduino_JSON圖書館

使用zip文件安裝以下庫。

?ESPAsyncWebServer

?AsyncTCP

在Arduino IDE中安裝ESP32文件系統(tǒng)上傳器

我們使用SPIFFS來托管web服務器文件。我們可以像使用普通文件系統(tǒng)一樣使用ESP32閃存,就像在SD卡或USB大容量存儲中一樣,借助SPIFFS將這些文件上傳到文件系統(tǒng)中,我們需要一個稱為ESP32文件系統(tǒng)上傳器的工具。要將此工具安裝到Arduino IDE,請遵循以下步驟

?到GitHub發(fā)布頁面下載ESP32FS-1.0.zip。

?將zip文件解壓縮到Arduino IDE目錄下的Tools文件夾。解壓后的路徑看起來像這樣“C:\Users\Username\Documents\Arduino\tools\ESP32FS\tool\ ESP32FS .jar”

?重新啟動Arduino IDE,您可以通過單擊Tools Menu使用此工具。

web服務器文件結構

正如我們已經(jīng)說過的,我們將使用ESP32文件系統(tǒng)來托管web服務器。文件系統(tǒng)結構如下所示。需要加載到文件系統(tǒng)的所有數(shù)據(jù)都存儲在sketch文件夾中名為data的文件夾中。

HTML文件

html文件是服務器收到請求時加載的主文件。它包含了網(wǎng)頁的所有結構編程。

CSS文件

css文件用于定義HTML頁面的樣式。使用CSS,我們可以控制顏色,字體,文字大小,元素之間的間距,元素如何定位和布局,使用什么背景圖像或背景顏色,不同設備和屏幕尺寸的不同顯示,等等!

JavaScript文件

javascript文件負責圖像操作、JSON解碼和內(nèi)容的動態(tài)更改。這有助于我們更新網(wǎng)頁上的值。它控制數(shù)據(jù)更新的事件偵聽器。

Arduino草圖

這是ESP32氣象站的草圖。

讓我們看一下代碼是如何從傳感器讀取數(shù)據(jù),從API獲取天氣數(shù)據(jù),并將其發(fā)送到web服務器的。

包括庫

WiFi、HTTPClient、AsyncTCP和ESPAsyncWebServer庫用于WiFi通信和web服務器的創(chuàng)建和維護。

SPIFFS庫用于文件系統(tǒng)管理,Arduino_JSON庫用于處理JSON字符串。

最后,Adafruit傳感器庫和Adafruit BME280庫用于處理BME280傳感器。

用戶可修改參數(shù)

在代碼中,需要更改一些值才能使其正常工作。將“您的WiFi SSID”和“您的WiFi密碼”替換為您的WiFi SSID和密碼。另外,根據(jù)您的城市代碼和溫度測量單位更改。

下一個也是最重要的參數(shù)是API密鑰。這個密鑰是唯一的,這是我們從OpenWeatherMap服務器提取數(shù)據(jù)的認證密鑰。獲取API密鑰的過程非常簡單。去OpenWeatherMap網(wǎng)站,創(chuàng)建一個賬戶。如果你已經(jīng)有一個帳戶,就登錄進去。。在該頁面上,您可以看到您的默認API密鑰。如果您愿意,可以稍后創(chuàng)建密鑰。復制API密鑰并將其粘貼到代碼中。這樣就可以從OpenWeatherMap服務器獲取數(shù)據(jù)了。

獲取BME280讀數(shù)

下面的函數(shù)用于從BME280獲取讀數(shù)。

在這個函數(shù)中,每次讀取都從BME280傳感器獲取,并將其編碼為JSON字符串,然后將JSON字符串返回給事件處理程序。當事件被觸發(fā)時,事件處理程序將把這些數(shù)據(jù)發(fā)送到web頁面。

從OpenWeatherMap API獲取天氣數(shù)據(jù)

為此,我們創(chuàng)建了另一個函數(shù)。它將以JSON格式從API獲取天氣數(shù)據(jù),解碼,并將其排列成我們需要的格式。然后,與BME280讀取函數(shù)類似,該函數(shù)將這些編碼為JSON字符串,并在觸發(fā)特定事件時將其發(fā)送到服務器。HTTP GET用于從服務器獲取數(shù)據(jù)。

Web設置和事件請求處理

下面的setup函數(shù)部分將創(chuàng)建和設置web服務器,并在網(wǎng)頁加載時處理事件請求。當收到加載網(wǎng)頁的請求時,第一個事件處理程序將發(fā)送網(wǎng)頁數(shù)據(jù)。第二個事件處理程序將監(jiān)聽重置請求,并將頁面上顯示的所有變量設置為零。第三個even處理程序是檢查客戶端連通性,如果客戶端斷開連接,服務器將嘗試在一秒鐘的間隔內(nèi)重新建立連接。

在循環(huán)函數(shù)中,還可以看到另外兩個事件處理程序。這些處理程序不會監(jiān)聽任何請求。它們將在設定的時間定期發(fā)送數(shù)據(jù)。這將刷新網(wǎng)頁上的數(shù)據(jù)。BME280的數(shù)據(jù)更新速度比開放天氣圖數(shù)據(jù)快。

上傳代碼和文件

上傳代碼很簡單。就像其他Arduino板一樣,將ESP32 Devkit連接到PC上。選擇正確的“Board”和“Port”,單擊“upload”。就是這樣。要上傳Web Server文件,請確保所有文件都位于名為data的文件夾中,該文件夾與.ino文件位于同一文件夾中。進入“工具-> ESP32草圖數(shù)據(jù)上傳”。IDE將上傳文件并重新啟動ESP32。上傳文件時,請確保未打開串行監(jiān)視器。如果它被打開,你會得到一個錯誤。如果是,只需關閉串行監(jiān)視器并再次上傳文件。您可以從以下鏈接下載草圖和web服務器文件。

訪問Web服務器

現(xiàn)在,一旦代碼被編譯并編程到ESP32中,你可以檢查串行監(jiān)視器,一旦ESP32連接到WiFi網(wǎng)絡,它就會打印出IP地址。

或者你可以檢查你的路由器和分配給ESP32的IP是什么。這取決于你的路由器。一旦你獲得了IP,你就可以通過簡單地在瀏覽器中輸入這個地址并進入頁面來訪問網(wǎng)絡服務器。這就是結果。

天氣狀況圖標會根據(jù)從API接收到的數(shù)據(jù)而改變。日出和日落時間也從OWM API中提取。

本文編譯自iotdesignpro

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉