原创 物联网系统中的Lora是什么?一种Lora模组的使用推荐

2024-9-30 12:02 292 2 3 分类: 物联网


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
dev_lora_send("abcdefghijklmnopqrstuvwxyz", strlen("abcdefghijklmnopqrstuvwxyz"));

2 dev_lora_module_packet_init

功能:该函数用于,将发送数据长度写入Lora模块寄存器。

参数:

参数

释义

len

发送数据长度

返回值:无

示例:

C
dev_lora_module_packet_init(strlen("abcdefghijklmnopqrstuvwxyz"));

4 Demo实战

4.1 概述

  1. 上电后,模组会一直等待其它lora模块发送的数据。
  2. 上电后,模组会每隔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没有提供可以查看栈空间使用情况的API

  • lora_rtx_task_ref

Lora任务指针

4.5 函数介绍

  • Phase1Inits_enter

底层初始化,本例空

  • Phase1Inits_exit

底层初始化,本例空

  • Phase2Inits_enter

底层初始化,本例空

  • Phase2Inits_exit

创建主任务

代码片段:

C
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_exit\n");

  • _task

主任务,代码发分为两部分,一部分是发送不定长数据;另一部分是上电后等待其它模块发送的数据,收到后打印到串口。

代码片段:

C
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 %s\n", rcv_data.len, rcv_data.data);
free(rcv_data.data);
rcv_data.data = NULL;
}
}
}

注:本文部分内容来源于网络,如有侵权,请及时联系我们。

本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki:Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)

文章评论1条评论)

登录后参与讨论

乖乖兔爸爸 2024-10-10 15:50

刚刚看到 :  Cisco 退出 LoRA联盟啦!!!  或许可以为 LoRA 划句号了!
相关推荐阅读
AmaziotIOT牛牛 2024-10-12 11:40
物联网行业硬件设计常见便携电源方案_电池详解
01什么是电池电池(Battery)指盛有电解质溶液和金属电极以产生电流的杯、槽或其他容器或复合容器的部分空间,能将化学能转化成电能的装置。具有正极、负极之分。随着科技的进步,电池泛指能产生电能的小型...
AmaziotIOT牛牛 2024-10-12 11:38
物联网行业中模具面板的常见材料以及定制工艺分析
01亚克力面版亚克力面板,是根据用户提供的图纸,使用亚克力原材料,通过印刷添加颜色、图案、文字、标识指示等信息,后期再进行钻孔、外形切割工艺制作得到的满足设计要求的面板。既可用于设备装饰外观,也能做透...
AmaziotIOT牛牛 2024-10-12 11:36
物业网行业中的模具定制_钣金工艺材料介绍
01材料介绍钣金、CNC、3D打印,是现阶段市面上针对设备外壳、结构件,最常见的三种加工方式。各有各的优缺点,而钣金加工相对来说又因成型简单、效率高、成本低的特点,在样品、小批量、大批量生产上,都存在...
AmaziotIOT牛牛 2024-10-12 11:32
物联网行业中的定制天线的设计流程
01前期评估天线需求前期评估主要针对无线产品项目,天线形式以及性能的评估,以分析此项目的可行性。最好先提供芯片或者模块的规格书,可以方便了解这款天线的相关信息,比如天线调试频段,所需要匹配的阻抗。另外...
AmaziotIOT牛牛 2024-10-12 11:29
物联网行业中的天线相关性能指标参数详解
01天线相关性能指标参数基础天线的指标参数分为两部分:1. 电路参数,天线高效率辐射的保证,天线应用的必要条件2. 辐射参数,天线应用的本质,天线应用的充分条件02电路参数一、驻波比(Voltage ...
AmaziotIOT牛牛 2024-10-12 11:27
二次电池分类以及应用场景详解
01二次电池(充电电池)简介二次电池是相对于一次电池,在实际使用过程中一次电池放电结束后即报废,二次电池可以进行再次充电,活性物质的能够发生可逆的氧化还原反应。一次电池和二次电池的区别如下:从结构上看...
EE直播间
更多
我要评论
1
2
关闭 站长推荐上一条 /5 下一条