--> ENGLISH
0755-23080616

LoRa1120模塊與ESP32點(diǎn)對(duì)點(diǎn)LoRa通信實(shí)現(xiàn)實(shí)踐指南

2025-08-29 09:06

分享到:

LoRa1120多模收發(fā)器技術(shù)導(dǎo)論

LoRa1120模塊的核心是Semtech的LR1120芯片組,這是一款專為遠(yuǎn)距離、低功耗無線通信和地理定位應(yīng)用而設(shè)計(jì)的集成電路 1。在進(jìn)行實(shí)際應(yīng)用開發(fā)之前,對(duì)該模塊的核心技術(shù)能力進(jìn)行深入分析,是確保項(xiàng)目成功的關(guān)鍵。這不僅是一個(gè)單純的LoRa收發(fā)器,更是一個(gè)集成了多種通信模式和定位功能的綜合平臺(tái)。

多頻段操作能力

該模塊具備在多個(gè)不同頻段下工作的能力,為不同應(yīng)用場(chǎng)景和地區(qū)法規(guī)要求提供了高度的靈活性 。

Sub-GHz ISM頻段:支持433/470/868/915 MHz等免許可頻段,并可根據(jù)需求在150-960 MHz范圍內(nèi)定制。這是傳統(tǒng)LoRa應(yīng)用的主要工作頻段,其物理特性決定了它具有最遠(yuǎn)的傳輸距離和最佳的穿透能力,適用于廣域物聯(lián)網(wǎng)(LPWAN)部署。

 

2.4 GHz ISM頻段:工作范圍為2400-2500 MHz。該頻段在全球范圍內(nèi)通用,相比Sub-GHz頻段,它可以提供更高的數(shù)據(jù)傳輸速率。然而,其傳輸距離和穿透性相對(duì)較弱,更適用于對(duì)帶寬有一定要求且通信距離較短的場(chǎng)景,如工業(yè)自動(dòng)化智能家居

 

S波段衛(wèi)星通信:工作范圍為1900-2200 MHz。此功能使得模塊能夠直接與衛(wèi)星進(jìn)行通信,為地面網(wǎng)絡(luò)無法覆蓋的偏遠(yuǎn)地區(qū)(如海洋、沙漠、山區(qū))提供連接解決方案,是資產(chǎn)跟蹤和遠(yuǎn)程監(jiān)控等應(yīng)用的理想選擇。

 

地理定位子系統(tǒng)

除了通信功能,LoRa1120還集成了兩種獨(dú)立的低功耗掃描引擎,用于地理位置確定 。

 

GNSS掃描器:支持多星座全球?qū)Ш叫l(wèi)星系統(tǒng)(如GPS/北斗),采用云原生輔助定位模式。模塊本身只負(fù)責(zé)掃描衛(wèi)星信號(hào)并捕獲原始數(shù)據(jù),然后將這些輕量級(jí)數(shù)據(jù)通過LoRa網(wǎng)絡(luò)傳輸?shù)皆贫诉M(jìn)行解析。這種架構(gòu)極大地降低了終端設(shè)備的功耗和計(jì)算負(fù)擔(dān),使其適用于對(duì)電池壽命有嚴(yán)苛要求的定位應(yīng)用。

 

Wi-Fi被動(dòng)掃描器:通過掃描周圍的802.11b/g/n Wi-Fi接入點(diǎn)(AP)的MAC地址來進(jìn)行定位。在城市或室內(nèi)等GNSS信號(hào)較弱的環(huán)境中,Wi-Fi定位可以作為一種有效的補(bǔ)充或替代方案。同樣,它只捕獲MAC地址列表,交由云端服務(wù)解析具體位置。

 

協(xié)議與安全支持

模塊在物理層上符合LoRa聯(lián)盟發(fā)布的LoRaWAN標(biāo)準(zhǔn)規(guī)范,確保了與標(biāo)準(zhǔn)LoRaWAN網(wǎng)絡(luò)的互操作性。同時(shí),它也支持Sigfox協(xié)議,并內(nèi)置了AES-128硬件加密和解密引擎,為數(shù)據(jù)傳輸提供了硬件級(jí)別的安全保障 。這種多功能集成設(shè)計(jì)表明,工程師使用單一硬件平臺(tái),僅通過固件配置,即可滿足截然不同的應(yīng)用需求:例如在歐洲部署標(biāo)準(zhǔn)的LoRaWAN傳感器(使用Sub-GHz),在工廠環(huán)境中實(shí)現(xiàn)高吞吐量數(shù)據(jù)采集(使用2.4 GHz),或是在無蜂窩網(wǎng)絡(luò)覆蓋的地區(qū)進(jìn)行資產(chǎn)跟蹤(使用GNSS + S波段)。這種設(shè)計(jì)策略有效減少了硬件物料清單(SKU)的數(shù)量和開發(fā)成本。因此,接下來將要介紹的基礎(chǔ)點(diǎn)對(duì)點(diǎn)通信測(cè)試,應(yīng)被視為掌握該模塊全部潛能的第一步。

 

下圖展示了LR1120芯片的內(nèi)部功能框圖,直觀地呈現(xiàn)了其多頻段射頻通路和與外部組件的連接關(guān)系。

 

LR1120芯片的內(nèi)部功能框圖

 

硬件準(zhǔn)備與系統(tǒng)互聯(lián)

 

搭建一個(gè)可靠的測(cè)試平臺(tái)是驗(yàn)證無線通信鏈路性能的基礎(chǔ)。本節(jié)將詳細(xì)說明如何將LoRa1120模塊與ESP32微控制器進(jìn)行物理連接。

 

所需硬件清單,為構(gòu)建一個(gè)基本的點(diǎn)對(duì)點(diǎn)通信系統(tǒng),需要準(zhǔn)備兩套相同的硬件設(shè)備 :

  • ESP32開發(fā)板(例如ESP32-PICO):2塊
  • LoRa1120模塊:2個(gè)
  • 杜邦線:若干
  • USB數(shù)據(jù)線:2條

 

引腳連接映射

將LoRa1120模塊與ESP32開發(fā)板通過SPI接口進(jìn)行連接。下表詳細(xì)定義了推薦的引腳對(duì)應(yīng)關(guān)系。務(wù)必確保兩套設(shè)備的連接方式完全一致 。

 

LoRa1120模塊與ESP32開發(fā)板引腳描述

 

此連接方案采用了標(biāo)準(zhǔn)的4線SPI接口(SCK, MISO, MOSI, NSS)用于數(shù)據(jù)傳輸。除此之外,還有三條至關(guān)重要的控制線(IRQ, RST, BUSY)。對(duì)這些控制線功能的理解,對(duì)于編寫健壯的嵌入式固件至關(guān)重要。

 

RST (Reset): 用于通過軟件控制對(duì)LoRa1120模塊進(jìn)行硬件復(fù)位,使其恢復(fù)到初始狀態(tài)。

 

BUSY (Busy): 這是一個(gè)硬件流控制信號(hào)。當(dāng)模塊內(nèi)部正在處理命令或處于活動(dòng)狀態(tài)時(shí),BUSY引腳會(huì)置為高電平,此時(shí)主控(ESP32)不應(yīng)發(fā)送新的SPI命令。這可以有效避免命令沖突和數(shù)據(jù)丟失,確保通信的可靠性。

 

IRQ (Interrupt Request): 該引腳用于向主控發(fā)送中斷信號(hào),以通知特定事件的發(fā)生,例如數(shù)據(jù)包接收完成或發(fā)送完成。采用中斷驅(qū)動(dòng)的方式比輪詢方式效率更高,可以讓主控在等待事件時(shí)進(jìn)入低功耗模式,從而顯著降低系統(tǒng)整體功耗。

 

注意:雖然上述引腳分配是推薦配置,但工程師可以根據(jù)自己的PCB布局或開發(fā)板資源進(jìn)行調(diào)整。然而,任何硬件上的改動(dòng)都必須在后續(xù)的軟件代碼中進(jìn)行同步修改,否則將導(dǎo)致通信失敗 1。

 

配置Arduino開發(fā)環(huán)境

 

正確的軟件環(huán)境配置是程序開發(fā)的前提。本節(jié)將引導(dǎo)您完成Arduino IDE的安裝與配置,以支持ESP32和LoRa1120模塊的開發(fā)。

 

  1. 安裝Arduino IDE

從Arduino官方網(wǎng)站下載并安裝最新版本的Arduino IDE 。

 

  1. 添加ESP32開發(fā)板支持

為了讓Arduino IDE能夠識(shí)別并編譯ESP32的代碼,需要添加ESP32的開發(fā)板管理器URL。打開Arduino IDE,點(diǎn)擊 File -> Preferences (參考下圖)。

 

添加ESP32開發(fā)板支持

 

在 "Additional Board Manager URLs" 字段中 (參考 下圖),輸入以下URL

 

Additional Board Manager URLs 字段中輸入以下URL

 

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

這個(gè)URL指向一個(gè)索引文件,它告訴IDE在哪里可以找到適用于ESP32系列微控制器的工具鏈、庫(kù)和定義。

 

  1. 安裝ESP32包

打開左側(cè)邊欄的 "Boards Manager"(開發(fā)板管理器)。

在搜索框中輸入 "esp32"。

找到由 "Espressif Systems" 提供的包,并點(diǎn)擊 "Install" (參考 下圖) 。

 

安裝ESP32包

 

  1. 安裝RadioLib庫(kù)

RadioLib是一個(gè)功能強(qiáng)大的通用無線通信庫(kù),它為包括LR1120在內(nèi)的多種射頻芯片提供了統(tǒng)一的、高級(jí)的API接口。使用該庫(kù)可以極大地簡(jiǎn)化開發(fā)流程。

打開左側(cè)邊欄的 "Library Manager"(庫(kù)管理器)。

在搜索框中輸入 "RadioLib"。

找到由 "Jan Gromes" 開發(fā)的RadioLib庫(kù),并點(diǎn)擊 "Install" (參考 下圖) 。

 

 
 安裝RadioLib庫(kù)

 

選擇RadioLib庫(kù)是一個(gè)重要的工程決策。它作為一個(gè)硬件抽象層(HAL),將底層復(fù)雜的寄存器讀寫操作封裝成易于理解和使用的函數(shù)。這意味著開發(fā)者無需深入研究LR1120芯片的數(shù)據(jù)手冊(cè)即可快速實(shí)現(xiàn)通信功能。此外,由于RadioLib支持多種射頻模塊(如SX127x, SX126x, CC1101等),為本項(xiàng)目編寫的代碼可以很方便地移植到其他硬件平臺(tái),從而提高了代碼的可重用性和項(xiàng)目的靈活性 。

 

實(shí)現(xiàn)并分析“乒乓”通信測(cè)試

完成環(huán)境配置后,接下來通過一個(gè)“乒乓”通信示例來驗(yàn)證硬件連接和軟件設(shè)置的正確性。該示例中,一個(gè)節(jié)點(diǎn)(發(fā)起節(jié)點(diǎn))發(fā)送一個(gè)數(shù)據(jù)包,另一個(gè)節(jié)點(diǎn)(響應(yīng)節(jié)點(diǎn))接收到后會(huì)回復(fù)一個(gè)數(shù)據(jù)包,如此循環(huán)往復(fù)。

 

1 加載示例程序

在Arduino IDE中,通過菜單欄導(dǎo)航至 File > Examples > RadioLib > PhysicalLayer > LR11x0_PingPong 來打開示例代碼 (參考 下圖) 。

 

加載示例程序

 

2 代碼走讀與分析

以下是對(duì)LR11x0_PingPong.ino 關(guān)鍵部分的分析。

 

節(jié)點(diǎn)角色定義:

C++

// uncomment the following only on one
// of the nodes to initiate the pings
#defineINITIATING_NODE

此處的 #define INITIATING_NODE 宏定義是區(qū)分兩個(gè)節(jié)點(diǎn)角色的關(guān)鍵。同一份代碼需要被上傳到兩個(gè)ESP32設(shè)備上。在一個(gè)設(shè)備上,需要取消這一行的注釋,使其成為“發(fā)起節(jié)點(diǎn)”。在另一個(gè)設(shè)備上,保持這一行被注釋,它將自動(dòng)成為“響應(yīng)節(jié)點(diǎn)”。這是一種在嵌入式開發(fā)中非常常見且高效的技術(shù),可以用單一代碼庫(kù)實(shí)現(xiàn)兩種不同的設(shè)備行為。

 

硬件引腳定義與SPI總線配置

C++

#definecs 10
#defineirq 2
#definerst 4
#definebusy 9

SPIClass spi(HSPI);
SPISettings spiSettings(2000000, MSBFIRST, SPI_MODE0);

 

引腳定義: #define 語句塊定義了ESP32與LoRa1120模塊連接的GPIO引腳。這里定義的數(shù)值(10, 2, 4, 9)必須與第二節(jié)中實(shí)際的硬件接線完全一致 。

SPI總線選擇: SPIClass spi(HSPI); 這行代碼指定了使用ESP32的哪個(gè)SPI外設(shè)。ESP32通常擁有多個(gè)SPI接口(如VSPI和HSPI)。此處明確選擇了HSPI。對(duì)于使用不同型號(hào)ESP32開發(fā)板的工程師來說,這是一個(gè)關(guān)鍵細(xì)節(jié),因?yàn)椴煌_發(fā)板的SPI引腳分配可能不同。

SPI參數(shù)設(shè)置: SPISettings spiSettings(...) 用于配置SPI通信的參數(shù)。

2000000: 設(shè)置SPI時(shí)鐘速度為2 MHz。

MSBFIRST: 設(shè)置數(shù)據(jù)傳輸為最高有效位(Most Significant Bit)優(yōu)先。

SPI_MODE0: 定義SPI的時(shí)鐘極性(CPOL=0)和時(shí)鐘相位(CPHA=0)。這些參數(shù)必須符合LR1120芯片的技術(shù)要求。

 

RadioLib對(duì)象實(shí)例化

C++

LR1120 radio = newModule(cs, irq, rst, busy, spi, spiSettings);

這是整個(gè)程序的核心部分。該行代碼創(chuàng)建了一個(gè)LR1120驅(qū)動(dòng)的對(duì)象實(shí)例,名為 radio。在創(chuàng)建對(duì)象時(shí),將前面定義的所有硬件引腳編號(hào)(cs, irq, rst, busy)和SPI配置對(duì)象(spi, spiSettings)作為參數(shù)傳入。這一步完成了軟件配置與物理硬件的最終鏈接。這種面向?qū)ο蟮脑O(shè)計(jì)體現(xiàn)了良好的軟件架構(gòu),將硬件相關(guān)的配置集中管理,使得代碼更易于維護(hù)和移植。

 

模塊初始化

模塊初始化代碼

在 setup() 函數(shù)中,radio.begin() 函數(shù)負(fù)責(zé)執(zhí)行與LoRa1120模塊的初始通信。它會(huì)通過SPI接口對(duì)模塊進(jìn)行一系列初始化配置,包括設(shè)置默認(rèn)的LoRa參數(shù)(如頻率、帶寬、擴(kuò)頻因子等),并檢查模塊是否正常響應(yīng)。如果初始化成功,程序?qū)⒗^續(xù)執(zhí)行;否則,將打印錯(cuò)誤代碼并進(jìn)入死循環(huán),方便開發(fā)者進(jìn)行調(diào)試 。

 

3 固件編譯與上傳

在Arduino IDE的 Tools 菜單中,選擇正確的開發(fā)板(例如 "ESP32 PICO-D4")和對(duì)應(yīng)的COM端口

點(diǎn)擊IDE工具欄上的 "Upload"(上傳)按鈕。IDE將自動(dòng)編譯代碼并將其燒錄到ESP32中 (參考 下圖)。

 

固件編譯與上傳

 

對(duì)兩個(gè)設(shè)備重復(fù)此操作(注意其中一個(gè)要取消 #define INITIATING_NODE 的注釋)。

 

 

驗(yàn)證操作與解讀通信指標(biāo)

固件上傳完成后,需要通過串口監(jiān)視器來驗(yàn)證通信是否成功,并理解輸出的關(guān)鍵性能指標(biāo)。

 

訪問串口監(jiān)視器

 

在Arduino IDE中,點(diǎn)擊右上角的放大鏡圖標(biāo)或通過 Tools > Serial Monitor 打開串口監(jiān)視器。

確保右下角的波特率設(shè)置為 115200,這必須與代碼中 Serial.begin(115200); 的設(shè)置相匹配。

 

分析輸出日志

上電后,您應(yīng)該能在兩個(gè)節(jié)點(diǎn)的串口監(jiān)視器中看到類似以下的交替輸出 :

發(fā)起節(jié)點(diǎn) (Initiating Node) (參考 下圖):

 

分析輸出日志

 

響應(yīng)節(jié)點(diǎn) (Responding Node) (參考 下圖):

 

響應(yīng)節(jié)點(diǎn) (Responding Node)

 

技術(shù)指標(biāo)解讀

輸出日志中的RSSI和SNR是衡量無線通信鏈路質(zhì)量最重要的兩個(gè)指標(biāo)。它們不僅僅是數(shù)字,更是診斷和優(yōu)化無線系統(tǒng)的關(guān)鍵工具。

RSSI (Received Signal Strength Indicator, 接收信號(hào)強(qiáng)度指示):

 

定義: RSSI是接收端測(cè)量到的信號(hào)功率,單位為dBm。它是一個(gè)對(duì)數(shù)單位,值越接近0表示信號(hào)越強(qiáng)。例如,-66 dBm是一個(gè)非常強(qiáng)的信號(hào),通常表示收發(fā)設(shè)備距離很近且無障礙物。

 

應(yīng)用: RSSI直接反映了鏈路預(yù)算和通信距離。在實(shí)際部署中,通過監(jiān)測(cè)RSSI的變化,可以判斷信號(hào)是否被遮擋、天線連接是否松動(dòng)或設(shè)備是否超出了有效通信范圍。

 

SNR (Signal-to-Noise Ratio, 信噪比):

定義: SNR衡量的是目標(biāo)信號(hào)強(qiáng)度與背景噪聲強(qiáng)度的比值,單位為dB。正值表示信號(hào)強(qiáng)度高于噪聲,值越大表示信號(hào)越清晰,抗干擾能力越強(qiáng)。例如,12.50 dB的SNR表示信號(hào)質(zhì)量非常高。

 

LoRa的特點(diǎn): LoRa調(diào)制技術(shù)的一個(gè)核心優(yōu)勢(shì)是它能夠在負(fù)信噪比(即信號(hào)強(qiáng)度低于噪聲)的情況下成功解調(diào)數(shù)據(jù)。這是LoRa能夠?qū)崿F(xiàn)遠(yuǎn)距離通信的關(guān)鍵原因之一。示例中出現(xiàn)的高SNR值表明測(cè)試環(huán)境的電磁干擾非常小。

 

應(yīng)用: 在實(shí)際環(huán)境中,如果RSSI值正常但SNR值很低或波動(dòng)很大,通常意味著存在來自其他無線設(shè)備(如Wi-Fi路由器、藍(lán)牙設(shè)備等)的射頻干擾。通過分析SNR,可以幫助工程師選擇更干凈的信道或采取屏蔽措施。

 

通過教會(huì)工程師如何從診斷的角度思考這些指標(biāo),本指南旨在幫助他們解決實(shí)際部署中可能遇到的問題。例如,可以進(jìn)行一個(gè)后續(xù)實(shí)驗(yàn):將兩個(gè)設(shè)備逐漸拉開距離,觀察RSSI的衰減;或?qū)⒃O(shè)備放置在Wi-Fi路由器旁邊,觀察SNR是否下降。這將一個(gè)簡(jiǎn)單的驗(yàn)證步驟轉(zhuǎn)變?yōu)橐淮侮P(guān)于射頻鏈路分析的實(shí)踐課程。

 

 

自定義硬件集成注意事項(xiàng)

當(dāng)項(xiàng)目從原型驗(yàn)證階段進(jìn)入定制化產(chǎn)品設(shè)計(jì)階段時(shí),工程師需要將LoRa1120模塊集成到自定義的PCB上。本節(jié)提供了進(jìn)行硬件設(shè)計(jì)所需的關(guān)鍵數(shù)據(jù)和參考。

 

模塊引腳定義

下圖 為L(zhǎng)oRa1120模塊的引腳布局圖,可與下表對(duì)照參考:

lora1120引腳圖

lora1120引腳定義表

 

機(jī)械尺寸與PCB布局

 

為了在EDA軟件(如Altium Designer, KiCad)中創(chuàng)建精確的PCB封裝(footprint),必須參考模塊的機(jī)械尺寸圖 。這確保了模塊能夠正確地焊接到PCB上 。

 

lora1120模塊尺寸圖

 

參考電路與功耗分析

在設(shè)計(jì)原理圖時(shí),可以參考官方提供的典型應(yīng)用電路 。應(yīng)特別注意電源引腳旁的去耦電容配置和天線端口的匹配網(wǎng)絡(luò)設(shè)計(jì),這對(duì)于實(shí)現(xiàn)最佳射頻性能和通過法規(guī)認(rèn)證至關(guān)重要。

 

lora1120模塊典型應(yīng)用電路

 

進(jìn)行電源預(yù)算分析時(shí),以下電氣特性是關(guān)鍵參考數(shù)據(jù) :

參數(shù) 測(cè)試條件 典型值 單位
工作電壓范圍 - 1.8 - 3.6 V
發(fā)射電流 @Sub-GHz, 21dBm <110 mA
接收電流 @Sub-GHz <6 mA
睡眠電流 @3.3V <1 µA

 

其中,小于1 µA的睡眠電流是LoRa技術(shù)的核心優(yōu)勢(shì)之一。這一極低的功耗特性使得基于LoRa1120的物聯(lián)網(wǎng)設(shè)備能夠依靠電池供電工作數(shù)年之久。在進(jìn)行固件設(shè)計(jì)時(shí),電源管理策略應(yīng)圍繞這一點(diǎn)展開,即盡可能讓設(shè)備在完成數(shù)據(jù)收發(fā)任務(wù)后迅速進(jìn)入深度睡眠模式,以最大限度地延長(zhǎng)電池壽命。本節(jié)提供的數(shù)據(jù),正是連接實(shí)驗(yàn)原型與最終產(chǎn)品的橋梁。

 

焊接參考

 

對(duì)于表面貼裝(SMT)工藝,建議遵循以下無鉛回流焊溫度曲線。

 
無鉛回流焊溫度曲線

 

下表 詳細(xì)列出了符合IPC/JEDEC J-STD-020B標(biāo)準(zhǔn)的推薦參數(shù)。


IPC/JEDEC J-STD-020B標(biāo)準(zhǔn)的推薦參數(shù)

結(jié)論

本報(bào)告系統(tǒng)地闡述了使用LoRa1120模塊和ESP32微控制器實(shí)現(xiàn)基礎(chǔ)點(diǎn)對(duì)點(diǎn)LoRa通信的全過程。內(nèi)容涵蓋了從模塊技術(shù)特性分析、硬件系統(tǒng)連接、開發(fā)環(huán)境配置,到固件實(shí)現(xiàn)、通信驗(yàn)證和關(guān)鍵性能指標(biāo)解讀。

 

通過實(shí)踐證明,將LoRa1120模塊、功能強(qiáng)大的ESP32微控制器以及成熟的RadioLib軟件庫(kù)相結(jié)合,為開發(fā)遠(yuǎn)距離、低功耗無線應(yīng)用提供了一個(gè)堅(jiān)實(shí)且高效的平臺(tái)。成功實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信鏈路,不僅驗(yàn)證了硬件和軟件配置的正確性,也為開發(fā)者提供了一個(gè)經(jīng)過驗(yàn)證的基線。基于此基線,開發(fā)者可以進(jìn)一步探索該模塊更高級(jí)的功能,例如構(gòu)建LoRaWAN網(wǎng)絡(luò)應(yīng)用、利用長(zhǎng)距離跳頻擴(kuò)頻(LR-FHSS)技術(shù),以及開發(fā)其集成的GNSS和Wi-Fi地理定位功能。


  

资兴市| 满洲里市|