01
概述
随着物联网(IoT)的快速发展,低功耗广域网(LPWAN)技术在无线通信领域的重要性日益凸显。其中,LoRa(Long Range)技术凭借其独特的扩频调制机制和超远传输距离,在智能城市、农业监测、工业自动化等领域取得了显著的应用成果。本文将系统性地介绍LoRa技术的基本原理、核心特点、存在的缺点以及广泛的应用场景。
LoRa全称(Long Range Radio)是基于Semtech公司开发的一种低功耗局域网无线标准,其目的是为了解决功耗与传输难覆盖距离的矛盾问题。一般情况下,低功耗则传输距离近,高功耗则传输距离远,LoRa技术解决了在同样的功耗条件下比其他无线方式传播的距离更远的技术难题,实现了低功耗和远距离两种兼顾的效果。
02
LoRa技术原理
LoRa是一种基于 chirp spread spectrum (CSS) 扩频调制技术的无线通信方案,由美国Semtech公司开发。其工作原理在于通过线性频率调制(LFM)产生“啁啾”信号,每个数据包的载波频率随着时间线性变化。这种调制方式允许信号在强干扰环境下保持良好的穿透力与抗多径衰落能力,从而实现远距离传输。
LoRa技术采用先进的前向纠错编码(FEC)技术来增强数据传输的可靠性,即使在信号强度较低的情况下也能保证一定的数据完整性。此外,它支持多种扩频因子选择,以适应不同的传输速率和距离需求。
03
LoRa技术特点
● 长距离通信:LoRa 技术能够实现长距离的通信覆盖,其通信范围可以达到数公里到数十公里,非常适合于远距离物联网应用,例如农业监测、智能城市等。
● 低功耗(电池寿命长):LoRa 设备以及其通信协议被设计为低功耗的,所以 LoRa 网络中的设备可以长时间运行,即使是由电池供电的设备也可以有较长的使用寿命。
● 广域覆盖:LoRa 网络可以提供广泛的覆盖范围,不仅覆盖城市地区,也能够较好地穿透障碍物,提供深度的室内和地下覆盖,适用于各种不同环境下的物联网应用。
● 抗干扰能力:LoRa 技术采用了频率扩散调制技术,使得其在频繁干扰的环境中依然能够保持稳定的通信连接,从而提高了其在复杂电磁环境下的可靠性。
● 低成本:LoRa 技术的部署相对成本较低,设备价格低廉,且由于其长距离通信能力,可以减少基础设施的需求,从而降低了整体的部署成本。
● 开放标准:LoRa 是一种开放的通信标准,因此厂商和开发者可以基于 LoRa 技术进行开发,极大的促进了 LoRa 生态系统的发展和创新。
04
LoRa技术的不足之处
数据传输速率:LoRa在传输距离上有突出表现,同样牺牲了数据传输速率,通常在几十至几百kbps之间,不适合需要高速率传输的应用场景。
网络可靠性:尽管LoRa网络设计之初考虑了稳健性,但在高密度部署或复杂环境中仍可能面临网络拥塞、信号干扰等问题。
标准化与兼容性:LoRa主要依托于私有协议LoRaWAN,虽然已在全球范围内得到广泛应用,但相对于其他一些全球统一标准的通信技术还是有较大的差距的。
05
LoRa应用场景
智慧城市:用于智能照明、环境监测、停车管理等市政设施的数据采集与远程控制。
农业监测:实现农田土壤湿度、温度、光照等参数的实时监测,助力精准农业发展。
资产追踪:在物流和供应链管理中,对货物进行实时定位和状态跟踪。
工业物联网:为工厂自动化提供无线监控解决方案,如生产设备的状态监测和预测性维护。
总结而言,LoRa技术作为LPWAN领域的关键推动者之一,以其特有的技术优势服务于众多物联网应用场景,尤其在低速、低功耗、远距离通讯方面展现出巨大潜力。然而,面对快速发展的物联网市场和技术演进,LoRa还需不断改进和完善,以应对更高的可靠性和安全性需求。
06
LoRa组件的使用
1 Gitee链接地址
Demo位于amaziot_bloom_os_sdk\sample\libraries\21.1_lora_rtx Gitee源码地址:https://gitee.com/ning./hongdou Github源码地址:https://github.com/ayumid/hongdou 编译指令:.\build.bat -l .\amaziot_bloom_os_sdk\sample\libraries\21.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 | 发送数据长度 |
返回值:无
示例:
C |
2 dev_lora_module_packet_init
功能:该函数用于,将发送数据长度写入Lora模块寄存器。
参数:
参数 | 释义 |
len | 发送数据长度 |
返回值:无
示例:
C |
4 Demo实战
4.1 概述
4.2 测试
测试步骤:
4.3 宏定义介绍
输出日志到DEBUG 串口,日志比较少,可以输出到这个串口,如果日志比较多,需要输出到usb口,以免不必要的问题出现
输出日志到USB 串口,使用catstudio查看,catstudio查看日志需要更新对应版本mdb.txt文件,软件打开filtter过滤日志,只查看用户输出的日志
栈空间宏定义
4.4 全局变量介绍
任务栈空间,本例使用数组实现,用户在做项目时,可以预先估算下当先任务需要的大致栈空间,OS没有提供可以查看栈空间使用情况的API
Lora任务指针
4.5 函数介绍
底层初始化,本例空
底层初始化,本例空
底层初始化,本例空
创建主任务
代码片段:
C |
主任务,代码发分为两部分,一部分是发送不定长数据;另一部分是上电后等待其它模块发送的数据,收到后打印到串口。
代码片段:
C |
注:本文部分内容来源于网络,如有侵权,请及时联系我们。
本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki:Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)
乖乖兔爸爸 2024-10-10 15:50