一 概述
隨著物聯網(IoT)的快速發展,低功耗廣域網(LPWAN)技術在無線通信領域的重要性日益凸顯。其中,LoRa(Long Range)技術憑借其獨特的擴頻調制機制和超遠傳輸距離,在智能城市、農業監測、工業自動化等領域取得了顯著的應用成果。本文將系統性地介紹LoRa技術的基本原理、核心特點、存在的缺點以及廣泛的應用場景。
LoRa全稱(Long Range Radio)是基于Semtech公司開發的一種低功耗局域網無線標準,其目的是為了解決功耗與傳輸難覆蓋距離的矛盾問題。一般情況下,低功耗則傳輸距離近,高功耗則傳輸距離遠,LoRa技術解決了在同樣的功耗條件下比其他無線方式傳播的距離更遠的技術難題,實現了低功耗和遠距離兩種兼顧的效果。
二LoRa技術原理
LoRa是一種基于 chirp spread spectrum (CSS) 擴頻調制技術的無線通信方案,由美國Semtech公司開發。其工作原理在于通過線性頻率調制(LFM)產生“啁啾”信號,每個數據包的載波頻率隨著時間線性變化。這種調制方式允許信號在強干擾環境下保持良好的穿透力與抗多徑衰落能力,從而實現遠距離傳輸。
LoRa技術采用先進的前向糾錯編碼(FEC)技術來增強數據傳輸的可靠性,即使在信號強度較低的情況下也能保證一定的數據完整性。此外,它支持多種擴頻因子選擇,以適應不同的傳輸速率和距離需求。
三LoRa技術特點
● 長距離通信:LoRa 技術能夠實現長距離的通信覆蓋,其通信范圍可以達到數公里到數十公里,非常適合于遠距離物聯網應用,例如農業監測、智能城市等。
● 低功耗(電池壽命長):LoRa 設備以及其通信協議被設計為低功耗的,所以 LoRa 網絡中的設備可以長時間運行,即使是由電池供電的設備也可以有較長的使用壽命。
● 廣域覆蓋:LoRa 網絡可以提供廣泛的覆蓋范圍,不僅覆蓋城市地區,也能夠較好地穿透障礙物,提供深度的室內和地下覆蓋,適用于各種不同環境下的物聯網應用。
● 抗干擾能力:LoRa 技術采用了頻率擴散調制技術,使得其在頻繁干擾的環境中依然能夠保持穩定的通信連接,從而提高了其在復雜電磁環境下的可靠性。
● 低成本:LoRa 技術的部署相對成本較低,設備價格低廉,且由于其長距離通信能力,可以減少基礎設施的需求,從而降低了整體的部署成本。
● 開放標準:LoRa 是一種開放的通信標準,因此廠商和開發者可以基于 LoRa 技術進行開發,極大的促進了 LoRa 生態系統的發展和創新。
四LoRa技術的不足之處
數據傳輸速率:LoRa在傳輸距離上有突出表現,同樣犧牲了數據傳輸速率,通常在幾十至幾百kbps之間,不適合需要高速率傳輸的應用場景。
網絡可靠性:盡管LoRa網絡設計之初考慮了穩健性,但在高密度部署或復雜環境中仍可能面臨網絡擁塞、信號干擾等問題。
標準化與兼容性:LoRa主要依托于私有協議LoRaWAN,雖然已在全球范圍內得到廣泛應用,但相對于其他一些全球統一標準的通信技術還是有較大的差距的。
五 LoRa應用場景
智慧城市:用于智能照明、環境監測、停車管理等市政設施的數據采集與遠程控制。
農業監測:實現農田土壤濕度、溫度、光照等參數的實時監測,助力精準農業發展。
資產追蹤:在物流和供應鏈管理中,對貨物進行實時定位和狀態跟蹤。
工業物聯網:為工廠自動化提供無線監控解決方案,如生產設備的狀態監測和預測性維護。
總結而言,LoRa技術作為LPWAN領域的關鍵推動者之一,以其特有的技術優勢服務于眾多物聯網應用場景,尤其在低速、低功耗、遠距離通訊方面展現出巨大潛力。然而,面對快速發展的物聯網市場和技術演進,LoRa還需不斷改進和完善,以應對更高的可靠性和安全性需求。
六 LoRa組件的使用
1 Gitee鏈接地址
Demo位于amaziot_bloom_os_sdksamplelibraries21.1_lora_rtx
Gitee源碼地址:https://gitee.com/ning./hongdou
Github源碼地址:https://github.com/ayumid/hongdou
編譯指令:.build.bat -l .amaziot_bloom_os_sdksamplelibraries21.1_lora_rtx
2 組件功能介紹
初始化Lora模塊。
3.26 Lora AM-HD-E-REV-06-020
3.25 Lora AM-HD-E-INIT-06-018
3 代碼講解
1 dev_lora_send
功能:該函數用于初始化lora模塊。
參數:
參數 | 釋義 |
data | 發送數據緩沖區指針 |
len | 發送數據長度 |
返回值:無
示例:
dev_lora_send("abcdefghijklmnopqrstuvwxyz", strlen("abcdefghijklmnopqrstuvwxyz"));
2 dev_lora_module_packet_init
功能:該函數用于,將發送數據長度寫入Lora模塊寄存器。
參數:
參數 | 釋義 |
len | 發送數據長度 |
返回值:無
示例:
dev_lora_module_packet_init(strlen("abcdefghijklmnopqrstuvwxyz"));
4 Demo實戰
4.1 概述
上電后,模組會一直等待其它lora模塊發送的數據。
上電后,模組會每隔3s發送不同長度的數據
4.2 測試
測試步驟:
參考編譯教程,和文檔開頭的編譯指令,進行編譯
按照編譯教程選擇對應的選項
燒錄
4.3 宏定義介紹
sample_lora_rtx_uart_printf
輸出日志到DEBUG 串口,日志比較少,可以輸出到這個串口,如果日志比較多,需要輸出到usb口,以免不必要的問題出現
sample_lora_rtx_catstudio_printf
輸出日志到USB 串口,使用catstudio查看,catstudio查看日志需要更新對應版本mdb.txt文件,軟件打開filtter過濾日志,只查看用戶輸出的日志
LORA_RTX_TASK_STACK_SIZE
棧空間宏定義
4.4 全局變量介紹
lora_rtx_task_stack
任務棧空間,本例使用數組實現,用戶在做項目時,可以預先估算下當先任務需要的大致棧空間,OS沒有提供可以查看??臻g使用情況的API
lora_rtx_task_ref
Lora任務指針
4.5 函數介紹
Phase1Inits_enter
底層初始化,本例空
Phase1Inits_exit
底層初始化,本例空
Phase2Inits_enter
底層初始化,本例空
Phase2Inits_exit
創建主任務
代碼片段:
int ret; ret = OSATaskCreate(&lora_rtx_task_ref, lora_rtx_task_stack, LORA_RTX_TASK_STACK_SIZE, 120, "lora_rtx_task", lora_rtx_task, NULL); ASSERT(ret == OS_SUCCESS); sample_lora_rtx_uart_printf("Phase2Inits_exitn");
_task
主任務,代碼發分為兩部分,一部分是發送不定長數據;另一部分是上電后等待其它模塊發送的數據,收到后打印到串口。
代碼片段:
while(1) { //這里實現了發送任意長度的字節,可以使用另一個模塊來接收 // sample_gpio_sleep(3); // dev_lora_module_packet_init(strlen("1234567980")); // dev_lora_send("1234567980", strlen("1234567980")); // sample_gpio_sleep(3); // dev_lora_module_packet_init(strlen("abcdefghijklmnopqrstuvwxyz")); // dev_lora_send("abcdefghijklmnopqrstuvwxyz", strlen("abcdefghijklmnopqrstuvwxyz")); //這里實現了接收其它模塊發來的數據 status = OSAMsgQRecv(lora_data_msgq, (void *)&rcv_data, sizeof(LORA_RCV_DATA_MSG_T), OSA_SUSPEND); if (status == OS_SUCCESS) { if(NULL != rcv_data.data) { sample_lora_rtx_uart_printf("lora data len:%d %sn", rcv_data.len, rcv_data.data); free(rcv_data.data); rcv_data.data = NULL; } } }
4.6 固件
4.6.1 實現每隔3s發送不定長數據
點擊下載 Lora Demo固件
4.6.1 實現接收其它lora模塊的數據
點擊下載 Lora Demo固件
注:本文部分內容來源于網絡,如有侵權,請及時聯系我們。
本文章源自奇跡物聯開源的物聯網應用知識庫Cellular IoT Wiki,更多技術干貨歡迎關注收藏Wiki:Cellular IoT Wiki 知識庫(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)
歡迎同學們走進AmazIOT知識庫的世界!
這里是為物聯網人構建的技術應用百科,以便幫助你更快更簡單的開發物聯網產品。
Cellular IoT Wiki初心:
在我們長期投身于蜂窩物聯網 ODM/OEM 解決方案的實踐過程中,一直被物聯網技術碎片化與產業資源碎片化的問題所困擾。從產品定義、芯片選型,到軟硬件研發和測試,物聯網技術的碎片化以及產業資源的碎片化,始終對團隊的產品開發交付質量和效率形成制約。為了減少因物聯網碎片化而帶來的重復開發工作,我們著手對物聯網開發中高頻應用的技術知識進行沉淀管理,并基于 Bloom OS 搭建了不同平臺的 RTOS 應用生態。后來我們發現,很多物聯網產品開發團隊都面臨著相似的困擾,于是,我們決定向全體物聯網行業開發者開放奇跡物聯內部沉淀的應用技術知識庫 Wiki,期望能為更多物聯網產品開發者減輕一些重復造輪子的負擔。
Cellular IoT Wiki沉淀的技術內容方向如下:
奇跡物聯的業務服務范圍:基于自研的NB-IoT、Cat1、Cat4等物聯網模組,為客戶物聯網ODM/OEM解決方案服務。我們的研發技術中心在石家莊,PCBA生產基地分布在深圳、石家莊、北京三個工廠,滿足不同區域&不同量產規模&不同產品開發階段的生產制造任務。跟傳統PCBA工廠最大的區別是我們只服務物聯網行業客戶。
連接我們,和10000+物聯網開發者一起降低技術和成本門檻
讓蜂窩物聯網應用更簡單~~
哈哈你終于滑到最重要的模塊了,
千萬不!要!劃!走!忍住沖動!~
歡迎加入飛書“開源技術交流群”,隨時找到我們哦~
點擊鏈接如何加入奇跡物聯技術話題群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以獲取加入技術話題群攻略
Hey 物聯網從業者,
你是否有了解過奇跡物聯的官方公眾號“eSIM物聯工場”呢?
這里是奇跡物聯的物聯網應用技術開源wiki主陣地,歡迎關注公眾號,不迷路~
及時獲得最新物聯網應用技術沉淀發布
審核編輯 黃宇
-
物聯網
+關注
關注
2914文章
44967瀏覽量
377426 -
LoRa
+關注
關注
349文章
1700瀏覽量
232464
發布評論請先 登錄
相關推薦
評論