
LoRa是Long Range的缩写。 Long Range通信是低功耗广域网通信的基础,常与之相提并论的还有SigFox及NB-IoT,这些都是窄带通信中常见的技术。LoRa其实不是新东西,只不过一向比较低调,不曾出现在大众的眼前。但随着荷兰KPN及韩国SK网络的布署成功,LoRa及LoRaWAN一夜之间,成为了IoT的宠儿! LoRa的主要特性
毫无疑问,这些特点,让热闹已久的IoT更是如虎添翼! 抛开底层的技术细节,怎样才能快速体验LoRa带来的便利呢?让我们一起来揭开这层神秘的面纱。 先准备必要的硬件。 现在各种LoRa模块已非常丰富了,市面上大多数模块都是基于Semtech的SX1272或1276芯片,因此无论从功能还是从使用上来说都是大同小异。这里给大家准备两块来自Dragino的LoRa产品,使用SX1276来实现LoRa调制及解调功能。 ![]() LoRa Shield,提供了Arduino接口,可以与Arduino组合快速访问LoRa功能。 ![]() Arduino UNO R3,很常见也很便宜的一块开发板,深受电子爱好者喜爱。 ![]() 合体图,LoRa Shield与Arduino的组合 ![]() 另一块用来实现通信的LoRa GPS Hat,与前面介绍的LoRa Shield不同的是这个上面多了个GPS模块。 软件支持方面,Semtech专门为SX1272/SX1276推出了软件支持包,一些模块厂商基于此API结合自己的设计进行了适当的修改。在Arduino平台,有两个比较有名的移植,一个是lmic,另一个是Radio Head。这里以lmic为例,lmic提供的示例代码中有一个raw文件,提供了基本的LoRa层通信API,只需要做很小的修改就可以对两块开发板进行适配。 需要修改两个地方以适配特定的开发板,第一个是raw文件本身,如下
这里修改的片选信号、复位信号及中断信号用到的引脚,SX1276通过SPI接口与Arduino进行通信,这些接口都是统一的。 另一个需要修改的是lmic软件包中的config.h文件,主要包括两处修改:通信频段及芯片型号,修改如下
第一行修改通信使用的频段,即ISM中的868MHz,后一个#define语句修改芯片型号。 如此修改之后,就可以将编译的代码上传到两块开发板,打开串口程序,可以看到通信的过程,如下 ![]() ![]() 看到了么,两个串口终端输出的信号是一致的,就是循环收、发一条简单的信息。 Arduino为我们屏蔽了太多的细节,真实的LoRa层通信要设置的参数主要包括如下一些
这些定义信息与硬件参数对应,通过写寄存器的方式来进行调整,而写寄存器操作都被封装起来了,以API的形式提供调用。 是不是很简单! 不过这还只是冰山一角!LoRa通信只是两个结点间的直接通信,要与网络连接,我们还需要进一步了解LoRaWAN的一些细节,可以把LoRaWAN看作是网络层的通信协议,而LoRa只不过是物理层中的通信! 没关系,后面我们再来聊其它的一些细节,包括LoRaWAN、网关,转发器,还有与Internet的对接! |
标准协议分为ABC三类,但是必须配一个Lora网关,也就是13系芯片设备,成品在3000左右。
而且只能组星型网,没有zigbee、6lowPan协议的自组网与中继功能。
号称的传输距离远是伴随着速率的快速下降的。
做个低速率的监控、抄表还是不错的,能体现低频+扩谱的覆盖优势。
由于没有IP层协议,多个重叠的Lora网将严重互相干扰。
点评
这是LoRa的优缺点吗
朋友你知道的太多了,小心有人要杀人灭口呀