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

當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > IoT設(shè)計分享
[導(dǎo)讀]射頻通信是物聯(lián)網(wǎng)應(yīng)用中最常用的通信技術(shù)之一,我們之前在兩臺Arduino之間的通信中使用了433 MHz的射頻模塊。在本教程中,我們將使用NRF24L01收發(fā)模塊在Arduino板和NodeMCU之間進行無線通信。在這里,我們將使用NodeMCU ESP8266從互聯(lián)網(wǎng)服務(wù)器獲取實時時間戳,并通過NRF24L01收發(fā)器無線傳輸?shù)紸rduino uno,并將其打印在連接到Arduino uno的16x2 LCD顯示屏上。

射頻通信是物聯(lián)網(wǎng)應(yīng)用中最常用的通信技術(shù)之一,我們之前在兩臺Arduino之間的通信中使用了433 MHz的射頻模塊。在本教程中,我們將使用NRF24L01收發(fā)模塊在Arduino板和NodeMCU之間進行無線通信。在這里,我們將使用NodeMCU ESP8266從互聯(lián)網(wǎng)服務(wù)器獲取實時時間戳,并通過NRF24L01收發(fā)器無線傳輸?shù)紸rduino uno,并將其打印在連接到Arduino uno的16x2 LCD顯示屏上。

因此,nRF24L01模塊將在發(fā)送端與ESP8266接口,在接收端與Arduino Uno接口。

材料

?Arduino UNO R3

?NodeMCU

?NRF24L01收發(fā)模塊

?16*2字母數(shù)字液晶顯示

?連接電線

?電路試驗板

?電力供應(yīng)

NRF24L01收發(fā)模塊

nRF24L01收發(fā)模塊用于兩個微控制器之間的無線通信。它在2.4 GHz全球ISM頻段運行,并使用GFSK調(diào)制進行數(shù)據(jù)傳輸。數(shù)據(jù)傳輸速率支持250kbps、1Mbps和2Mbps。如果在沒有障礙物的開放空間中使用,以較低的波特率運行,其范圍可達100米。

nRF24L01收發(fā)模塊通過SPI接口通信,最大數(shù)據(jù)速率為10Mbps。SPI總線使用主從總線的概念。這里Arduino/NodeMCU的SPI總線引腳可以連接到NRF24L01收發(fā)模塊的SPI總線引腳上。

nRF24L01收發(fā)模塊在一定頻帶內(nèi)收發(fā)數(shù)據(jù),稱為信道。如果需要多個NRF24L01收發(fā)模塊相互通信,必須將它們配置為相同的信道。該信道可以在2.4 GHz ISM頻段的任何頻率。每個通道占用的帶寬不超過1MHz。這為我們提供了125個信道,帶寬間隔為1MHz。因此,NRF24L01模塊可以使用125個可能的通信信道,它可以在2.400到2.525 GHz之間。

什么是2.4 GHz ISM頻段?

2.4 GHz頻段是國際上為使用未經(jīng)許可的低功率設(shè)備保留的工業(yè)、科學(xué)和醫(yī)療(ISM)頻段之一。例如使用ISM頻率的NFC設(shè)備、無繩電話和藍牙設(shè)備。

技術(shù)規(guī)格:

?2.4Ghz免license ISM頻段。

?最高數(shù)據(jù)傳輸速度2Mbps,高效GFSK調(diào)制,抗干擾性強,特別適合工業(yè)控制。

?125信道,可達到不同點或跳頻通信需要。

?低功耗1.9 - 3.6V,待機狀態(tài)下僅需1uA。

?發(fā)送和接收中斷信號,每次最多發(fā)送28字節(jié)。

?集成專用穩(wěn)壓器,使用包括DC/DC電源在內(nèi)的任何電源都能有更好的通信效果。

?雙通道數(shù)據(jù)接收,內(nèi)置圓形天線,在開放無干擾環(huán)境下通信距離可達100米。

?尺寸:39mm * 17mm * 1mm(PCB嵌入式天線)

nRF24L01輸出:

nRF24L01引腳說明:

GND:這是接地參考引腳。

VCC:這是模塊的電源引腳,可以從1.9伏到3.9伏供電??蛇B接Arduino和NodeMCU模塊的3.3V引腳。

CE:它是芯片使能引腳,是一個有效的高引腳。該引腳模式?jīng)Q定模塊是在發(fā)送還是在接收。

CSN:它代表芯片選擇不,它是一個活動的低引腳,通常保持高。當(dāng)此引腳變低時,nRF24L01開始在其SPI端口上偵聽任何傳入數(shù)據(jù)。

SCK:它是串行時鐘引腳,接受來自SPI主設(shè)備的傳入時鐘脈沖。

莫西:它代表主出從入。負責(zé)NRF24L01收發(fā)模塊的輸入。

MISO:它代表主入從出。它負責(zé)NRF24L01收發(fā)模塊的輸出。

IRQ:這是一個中斷引腳,當(dāng)任何新的傳入數(shù)據(jù)可用時,它可以通知主設(shè)備。

線路圖

nRF24L01發(fā)送端帶NodeMCU ESP8266

在發(fā)送端,NodeMCU is模塊與NRF24L01模塊連接,NRF24L01模塊作為發(fā)送端。如圖所示,NodeMCU的SPI引腳連接到NRF24L01模塊的SPI引腳上。除此之外,CE和CSN引腳連接到NodeMCU的數(shù)字輸出引腳。

nRF24L01與NodeMCU的連接關(guān)系如下表所示:

在發(fā)送端,我們使用“pool.ntp.org”服務(wù)器從ESP8266的內(nèi)置時間庫中獲得當(dāng)前的時間戳和日期。然后我們可以對這些數(shù)據(jù)進行處理,通過NRF24L01模塊無線發(fā)送到接收端。

接收器端與Arduino Uno:

如圖所示,我們將NRF24L01連接到Arduino Uno上,這里NRF24L01模塊的SPI引腳連接到Arduino Uno板上。LCD的數(shù)據(jù)引腳和控制引腳也連接到Arduino板的數(shù)字引腳上。一個電位器連接到LCD上,以改變LCD顯示的對比度。

LCD與Arduino Uno的連接如下表所示:

nrf24l01與Arduino Uno的連接:

編程的解釋

在本教程的最后給出了NRF24L01 ESP8266接收器側(cè)和NRF24L01 Arduino Uno發(fā)射器側(cè)的完整程序。

NRF24L01發(fā)射機側(cè):

第一步是安裝并包含我們將在這個項目中使用的所有依賴庫。

這里,我們?yōu)闊o線NRF24L01模塊使用了RF_NRF24.h頭文件。可以從這里下載。同樣,在ESP8266模塊中使用WiFi功能,我們必須包含ESP8266WiFi庫。在這里,我們將找到當(dāng)前的時間和日期,因此我們還需要在程序中包含時間庫。

下一步是定義NodeMCU將連接到的網(wǎng)絡(luò)的憑據(jù)。所以用write_your_ssid和write_your_pass替換你的網(wǎng)絡(luò)ssid和密碼。

程序的下一步是定義一個名為nrf24的對象,該對象定義NodeMCU的兩個連接引腳。這意味著我們已經(jīng)將NRF24L01的CE和CSN分別連接到NodeMCU的D4, D2引腳上。

在這一步中,我們配置了無線模塊初始化命令,如信道選擇,傳輸功率,數(shù)據(jù)速率,并檢查它們是否初始化完美,沒有任何錯誤。否則,它將在串行終端中解析錯誤。

然后通過調(diào)用WiFi.mode()函數(shù)將NodeMCU設(shè)置為站模式。之后我們稱之為WiFi。Begin函數(shù)使用給定的網(wǎng)絡(luò)憑據(jù)連接到網(wǎng)絡(luò)。

在時間庫中,configTime函數(shù)支持以秒為單位定義時區(qū)。以時區(qū)和夏令時值為參數(shù)。我們還將傳遞服務(wù)器名稱作為參數(shù),從中我們可以獲得當(dāng)前時間,即“pool.ntp.org”和“time.nist.gov”。在印度,時區(qū)是UTC +5:30,因此我們可以把它寫成5.30*3600,也可以寫成11*1800。這里不考慮日光節(jié)約,所以取0。

在無限循環(huán)中,我們調(diào)用了time()函數(shù)來獲取當(dāng)前時間,然后將其轉(zhuǎn)換為字符串變量。然后將該字符串變量轉(zhuǎn)換為二進制數(shù)組,因為NRF24L01收發(fā)器只以二進制格式傳輸數(shù)據(jù)。最后使用nrf24.send()函數(shù),我們可以將這個二進制時間數(shù)組發(fā)送到接收端。

Arduino Uno接收端:

在接收端,第一步是包含必要的庫文件,并定義Arduino板的引腳,該引腳將連接到LCD顯示器。

接下來,我們創(chuàng)建了一個新的二進制數(shù)組,其中包含該庫支持的RadioHead用戶消息的最大長度,并使用sizeof()庫計算了它的長度。

最后一步是將接收到的數(shù)據(jù)打印成16x2的LCD。但在此之前,我們已經(jīng)將其轉(zhuǎn)換為字符串,因為我們必須將完整的數(shù)據(jù)子字符串化,以明確地獲得時間和日期。為此,調(diào)用函數(shù)data.substring()。substring()方法從字符串中提取兩個指定索引之間的字符,并返回新的子字符串。

注意:不要忘記打開你的熱點和移動數(shù)據(jù)與打開電源的發(fā)射機和接收機電路。

這就是Arduino和NodeMCU使用NRF24L01模塊進行無線通信的方式。在這里,互聯(lián)網(wǎng)時間通過nRF24L01從NodeMCU發(fā)送到Arduino Uno,并顯示在接收器側(cè)的LCD上。

本文編譯自iotdesignpro

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

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

關(guān)鍵字: 驅(qū)動電源

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

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

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

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

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

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

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

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

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

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

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

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

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

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

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

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

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

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉