www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 工業(yè)控制 > 電路設計項目集錦
[導讀]忘掉NRF、藍牙、433MHz模塊——甚至Wi-Fi!有一種更好的無線方式。我是來自educ8s的尼克。今天,我要向你們展示的是ESP32內置的一種改變游戲規(guī)則的協(xié)議,它可以讓你的設備即時、可靠地通話,而且沒有傳統(tǒng)無線設置的麻煩。

ESP-NOW使無線ESP32通信變得簡單。廣播傳感器數(shù)據(jù)或立即創(chuàng)建設備到設備的網(wǎng)絡,用最少的代碼。

忘掉NRF、藍牙、433MHz模塊——甚至Wi-Fi!有一種更好的無線方式。我是來自educ8s的尼克。今天,我要向你們展示的是ESP32內置的一種改變游戲規(guī)則的協(xié)議,它可以讓你的設備即時、可靠地通話,而且沒有傳統(tǒng)無線設置的麻煩。

我們將用它來建立一個無線氣象站,在esp32之間傳輸實時傳感器數(shù)據(jù),并將其顯示在大屏幕上,我們將在不到10分鐘的時間內完成。你準備好升級你的無線游戲了嗎?我們開始吧!

部件清單

?ESP32

?ESP32S3

?BME280傳感器

?2.8" ILI9341顯示屏

?USB電纜

?試驗板(可選)

?跳線

步驟1:ESP-NOW:快速概述

你知道這個小小的ESP32板…在不使用Wifi的情況下,我們已經(jīng)擁有了將數(shù)據(jù)無線發(fā)送到另一臺設備所需的一切?這是正確的!沒有任何額外的模塊,天線或其他任何東西!這一切都是與生俱來的!這要感謝一種叫做ESP-NOW的東西。

ESP-NOW是ESP32的制造商expressif開發(fā)的一種輕量級無連接無線協(xié)議。Wi-Fi或藍牙需要握手、認證和復雜的設置過程,而ESP-NOW不同,它允許設備之間即時直接通信??梢园阉胂蟪蒭sp32的對講機系統(tǒng)——一臺設備發(fā)送數(shù)據(jù),另一臺設備接收數(shù)據(jù),而不需要互聯(lián)網(wǎng)連接、路由器,甚至不需要事先配對。這使得它快速,高效,并且非常容易用于物聯(lián)網(wǎng)項目,傳感器網(wǎng)絡和實時數(shù)據(jù)共享。

ESP-NOW最大的優(yōu)點之一是它的低功耗。因為它不依賴于持續(xù)的網(wǎng)絡連接或后臺通信開銷,所以非常適合遠程傳感器、氣象站和智能家居設備等電池供電的應用。它還支持一對一、一對多甚至多對多通信,這意味著您可以建立一個由ESP設備組成的網(wǎng)絡,方便地交換數(shù)據(jù)。盡管它很簡單,但ESP-NOW可以加密數(shù)據(jù)以確保安全,使其成為傳統(tǒng)無線選項的強大而輕便的替代品。

好的,太棒了!現(xiàn)在你知道了ESP-NOW是什么,讓我們實際一點。在本指南中,我們將展示最簡單的方法來開始使用ESP-NOW。我們將設置一個ESP32來發(fā)送消息…但不是針對任何特定的設備!

而不是針對一個特定的地址,我們將使用一種叫做廣播的東西。這意味著我們發(fā)送的ESP32將向任何正在收聽ESP-NOW頻道的人發(fā)出它的信息。

最酷的是……附近的任何ESP32設備都可以接收到此消息!不需要預編程地址,不需要復雜的配對列表。只需將數(shù)據(jù)發(fā)送到無線以太網(wǎng),任何準備好偵聽的ESP32都可以接收到數(shù)據(jù)。

這對于簡單的數(shù)據(jù)廣播來說是完美的,就像我們的氣象站,我們想要發(fā)送傳感器讀數(shù)給任何顯示單元。

請記住,ESP-NOW實際上是一個非常先進的協(xié)議,具有許多功能,但今天我們只是邁出了我們的第一步,我將準備更多先進的視頻,以探索其未來的全部潛力。

步驟2:設置你的第一個ESP-NOW項目

為了使ESP-NOW的使用變得非常簡單,我創(chuàng)建了一個特殊的ESPNowEasy類!這個類以兩個簡單文件的形式提供——一個espno鼬.h文件和一個espno鼬.cpp文件。您只需要將這兩個文件包含在您的Arduino項目中,然后您將擁有這個類的所有魔力!

在Arduino代碼中使用這個類之前,我們需要導入它的頭文件。就像使用任何Arduino庫一樣,您可以在草圖的最頂部使用#include語句完成此操作。

這使得ESPNowEasy類的所有特性都可以在你的代碼中使用。

現(xiàn)在,在我們創(chuàng)建“ESP-NOW助手”對象之前,我們首先需要告訴ESPNowEasy類它將發(fā)送什么樣的數(shù)據(jù)。記得嗎,在我們的基本例子中,我們說過我們會發(fā)送一個數(shù)字和一條消息?為了定義這些數(shù)據(jù),我們創(chuàng)建了一個自定義數(shù)據(jù)結構??梢园阉胂蟪稍O計一個特殊的“盒子”來保存我們的特定數(shù)據(jù)。

它看起來像這樣:};在這個結構體中,我們定義了“盒子”將保存的數(shù)據(jù)塊。對于我們的例子,我們想要發(fā)送:

?一個整數(shù),我們叫它counter。

?還有一個消息——一個文本字符串,“Hello World!”,存儲在一個名為text的字符數(shù)組中。

一旦我們定義了這個消息結構——告訴ESPNowEasy期待什么樣的數(shù)據(jù)——那么我們就可以創(chuàng)建ESPNowEasy對象,我們的“ESP-NOW助手”。當我們創(chuàng)建這個對象時,我們需要告訴它要使用哪個消息結構。

我們用這行來做:

看到了嗎?只需一行,我們現(xiàn)在就有了espNow對象,專門設計用于處理消息數(shù)據(jù)類型,準備好使無線通信變得超級簡單!

步驟3:發(fā)送代碼:發(fā)送計數(shù)器和文本

現(xiàn)在,讓我們發(fā)送一條消息。首先,我們需要初始化ESP-NOW協(xié)議。在我們的ESPNowEasy類中,這非常簡單-只需使用這一行:

接下來,讓我們準備第一個數(shù)據(jù)包。我們將計數(shù)器設置為0,并將短信設置為“Hello World!”。一旦我們的dataToSend結構中填充了這些信息,無線發(fā)送它就很容易了:

這就是它的全部!信不信由你,使用ESPNowEasy庫,發(fā)送數(shù)據(jù)真的很簡單——只需要幾行代碼。為了使我們的示例更具動態(tài)性,讓我們將數(shù)據(jù)發(fā)送和計數(shù)器增量移到loop()函數(shù)中。這樣,我們可以在發(fā)送每個消息后增加計數(shù)器,確保每次傳輸不同的值。最后,在每次發(fā)送之間增加一秒鐘的短暫延遲,將使觀察數(shù)據(jù)傳輸變得更容易。

以下是完整的發(fā)射機代碼:

步驟4:接收代碼:顯示接收到的數(shù)據(jù)

現(xiàn)在,讓我們創(chuàng)建接收器草圖。接收方代碼和發(fā)送方代碼一樣簡單!事實上,它有很多相似之處。

首先,就像發(fā)送方一樣,接收方需要理解它將要接收的消息的結構。這意味著我們需要在接收器代碼中定義完全相同的Message結構!

接下來,就像在發(fā)送器中一樣,我們創(chuàng)建ESPNowEasy對象,專門用于處理我們的消息數(shù)據(jù)類型,如下所示:

現(xiàn)在,在setup()函數(shù)中,第一個關鍵步驟是使用espNow.begin();初始化ESP-NOW協(xié)議本身。然后,我們通過調用onReceive()方法并告訴它使用我們的onmessagerreceived函數(shù)作為處理程序來配置接收器以偵聽傳入的消息。

可以把這個函數(shù)看作是ESP32接收器內的一個專門的小工作人員。它唯一的工作就是耐心地等待無線ESP-NOW消息到達。當有消息進來時,這個功能會自動啟動!

這種類型的函數(shù)通常被稱為“回調函數(shù)”。它不是我們在主循環(huán)()中直接調用的函數(shù)。相反,我們用這行代碼注冊它:espNow.onReceive(onmessagerreceived);在注冊之后,ESPNowEasy庫接管并在新消息到達時自動為我們調用onmessagerreceived函數(shù)。在onmessagerreceived函數(shù)中,魔術變量是receivedMessage。

注意,receivedMessage的類型是Message&。這意味著它是對Message結構的引用。當ESPNowEasy調用onmessagerreceived時,它會自動用來自無線接收消息的數(shù)據(jù)填充這個receivedMessage結構!

因此,在onmessagerreceived中,我們可以使用receivedMessage直接訪問來自傳入消息的數(shù)據(jù)。計數(shù)器和receivedMessage.text。然后,我們可以對接收到的數(shù)據(jù)做任何我們想做的事情——在我們的示例中,我們只是將其打印到串行監(jiān)視器。但在實際項目中,您可能會使用這些數(shù)據(jù)來更新顯示、控制電機、觸發(fā)動作或任何您可以想象的事情!

以下是完整的接收器代碼:

步驟5:測試基本ESP-NOW通信

我們快到了!現(xiàn)在是時候對我們的代碼進行測試了。

首先,確保您已將發(fā)射器代碼上傳到一個ESP32板,并將接收器代碼上傳到另一個ESP32板。

在Arduino IDE中打開接收器ESP32的串行監(jiān)視器。將波特率設置為115200,與代碼中的Serial.begin()調用相匹配。

一旦兩個ESP32板都上電,您應該開始看到消息出現(xiàn)在接收器的串行監(jiān)視器中。輸出應該看起來像這樣:

您將注意到計數(shù)器的值隨著接收到的每條消息的增加而增加,這表明正在成功地傳輸和接收數(shù)據(jù)。

為了真正向您展示ESP-NOW的多功能,我甚至將使用不同的ESP32型號作為接收器-這次是ESP32- s3板!看看這個,效果很好!在串行監(jiān)視器上,我們可以看到無線發(fā)送的消息!這表明ESP-NOW廣播與各種ESP32板兼容。

如果沒有看到任何輸出,請仔細檢查以下內容:

?接線:確保兩塊ESP32板都已正確接通電源。

?波特率:確保串口監(jiān)視器的波特率為115200。

?代碼上傳:檢查每個ESP32上傳的代碼是否正確。

?距離:確保ESP32板之間的距離在合理范圍內。

一旦您在串行監(jiān)視器中看到消息,您就已經(jīng)成功地使用ESP-NOW和ESPNowEasy類在兩個ESP32板之間建立了基本的無線通信!

步驟6:搭建無線氣象站:發(fā)射機

現(xiàn)在我們有了基本的ESP-NOW通信的堅實基礎,讓我們繼續(xù)我們的無線氣象站項目。我們將從修改發(fā)射器代碼開始,從BME280傳感器發(fā)送真實世界的傳感器數(shù)據(jù)。

正如您所料,主要的調整是修改我們的數(shù)據(jù)結構以匹配傳感器讀數(shù)。讓我們看一下氣象站的WeatherData結構。你會發(fā)現(xiàn),我們已經(jīng)重新設計了“數(shù)據(jù)盒”,專門用來保存溫度、濕度和壓力值。

下面是新的WeatherData結構:

我們現(xiàn)在不再使用直接的Adafruit BME280庫調用,而是使用一個單獨的Sensor .h文件和一個Sensor類來封裝傳感器交互。這使得主代碼更簡潔、更有條理。

以下是更新后的發(fā)射機代碼:

變更說明:

?#include "sensor.h":包含自定義傳感器處理代碼。

?Sensor Sensor (true);:創(chuàng)建一個Sensor對象,初始化它以使用公制系統(tǒng)。

?sensor.begin():通過sensor類初始化BME280傳感器。

?sensor. gettemperature()、sensor. gethumidity()、sensor. getpressure():使用sensor類的方法檢索傳感器數(shù)據(jù)。

?錯誤處理:增加了espNow.begin()和sensor.begin()的檢查,以確保正確的初始化。

?2000ms延遲:延遲已更改為2000ms。

接線說明:

有關BME280傳感器連接到ESP32的詳細說明,請參閱附件接線圖。確保傳感器的VCC、GND、SDA和SCL引腳正確連接。

現(xiàn)在,把這個代碼上傳到你的ESP32發(fā)射機。您將開始看到傳感器數(shù)據(jù)以無線方式發(fā)送!

步驟7:搭建無線氣象站:接收器

現(xiàn)在,讓我們把注意力轉向氣象站的接收端。我們將修改接收器代碼,以便在il9341顯示器上顯示傳入的天氣數(shù)據(jù)。

首先,我們需要包括必要的庫并定義WeatherData結構,就像在發(fā)送器代碼中一樣。我們還將包含一個定制的display .h文件來處理顯示交互。

接收器代碼中的關鍵變化是:

?包括display. h文件:這允許我們與ILI9341顯示器進行交互。

?創(chuàng)建顯示對象:該對象將管理顯示。

定義onWeatherDataReceived回調函數(shù):該函數(shù)對于處理傳入的天氣數(shù)據(jù)至關重要。函數(shù)如下:

當ESP32從發(fā)射器接收到天氣數(shù)據(jù)時,該功能自動觸發(fā)。它首先將接收到的數(shù)據(jù)打印到串行監(jiān)視器進行調試和驗證。然后,它調用display.update()函數(shù),傳遞接收到的數(shù)據(jù),以更新ILI9341的顯示。

?在setup()函數(shù)中初始化顯示:我們調用display.begin()來設置顯示。

?實際上,我們正在添加代碼來接收天氣數(shù)據(jù),然后將其發(fā)送到ILI9341顯示器以進行可視化。

上傳守則:

?使用USB電纜將ESP32接收器連接到計算機。

?打開Arduino IDE,選擇正確的板和端口。

?確保Display.h和Display.cpp文件正確放置在Arduino項目文件夾中,或作為IDE中的選項卡包含。

?驗證代碼,然后點擊“上傳”按鈕。

接線說明:

請參考附件接線圖,了解連接ILI9341顯示器到ESP32的詳細說明。確保顯示器的VCC、GND、SDA、SCL和其他必要引腳正確連接。

現(xiàn)在,一旦代碼上傳到您的ESP32接收器,并且發(fā)射器正在運行,您將看到從發(fā)射器接收到的天氣數(shù)據(jù)顯示在ILI9341屏幕上。串行監(jiān)視器也將顯示數(shù)據(jù)。

步驟8:ESP-NOW的范圍和可靠性

現(xiàn)在我們的無線氣象站已經(jīng)建立并運行,讓我們談談ESP-NOW的范圍和可靠性。

在我的測試中,ESP-NOW的性能出奇地強勁。我已經(jīng)能夠帶著這些esp32在我的房子里走來走去,天氣數(shù)據(jù)一直保持完美的流-沒有丟失一個數(shù)據(jù)包!老實說,對于這種本地的家庭無線通信,我發(fā)現(xiàn)ESP-NOW比我用過的任何藍牙、433MHz或NRF模塊設置都要可靠得多。它就是有效,而且一直有效。

更令人興奮的是,ESP-NOW能夠實現(xiàn)更大的范圍——高達400米。

這種可靠性使ESP-NOW成為傳感器網(wǎng)絡、智能家居應用以及任何數(shù)據(jù)傳輸一致性至關重要的項目的理想選擇。雖然障礙物、干擾和天線放置等因素會影響探測范圍,但ESP-NOW為ESP32項目提供了強大而可靠的無線解決方案。

步驟9 .結論

這就是答案!我們已經(jīng)成功地使用ESP-NOW建立了一個無線氣象站,證明了該協(xié)議對于ESP32通信是多么容易和可靠。

我們已經(jīng)學會了如何:

?建立基本的ESP-NOW通信來發(fā)送和接收數(shù)據(jù)。

?為我們的天氣數(shù)據(jù)創(chuàng)建一個自定義數(shù)據(jù)結構。

?使用ESPNowEasy庫來簡化這個過程。

?集成BME280傳感器,捕捉實時環(huán)境數(shù)據(jù)。

?在ILI9341屏幕上顯示該數(shù)據(jù)。

ESP-NOW提供了一種強大而高效的方式來創(chuàng)建無線項目,而無需傳統(tǒng)Wi-Fi或藍牙設置的復雜性。其低功耗和可靠的通信使其成為廣泛應用的完美選擇。

本文編譯自hackster.io

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉