Dragino LoRa Shield:揭开LoRa神秘面纱,原来如此简单!
Dragino LoRa Shield:揭开LoRa神秘面纱,原来如此简单!

产品详情

  LoRa是Long Range的缩写。

  Long Range通信是低功耗广域网通信的基础,LoRa无线物联网网关设备制造商常与之相提并论的还有SigFox及NB-IoT,这些都是窄带通信中常见的技术。

  LoRa其实不是新东西,只不过一向比较低调,不曾出现在大众的眼前。但随着荷兰KPN及韩国SK网络的布署成功,LoRa及LoRaWAN一夜之间,成为了IoT的宠儿!

  LoRa的主要特性有如下三大特点:远距离,空空通信距离最大可达20公里;低功耗,LoRa结点使用电池供电的话,可以高达5至10年之久;低速率,传输速率较低,最高也就几百kbps。

  毫无疑问,LoRa无线物联网网关设备制造商这些特点,让热闹已久的IoT更是如虎添翼!

  抛开底层的技术细节,怎样才能快速体验LoRa带来的便利呢?让我们一起来揭开这层神秘的面纱。

  先准备必要的硬件。

  现在各种LoRa模块已非常丰富了,市面上大多数模块都是基于Semtech的SX1272或1276芯片,因此无论从功能还是从使用上来说都是大同小异。这里给大家准备两块来自Dragino的LoRa产品,使用SX1276来实现LoRa调制及解调功能。

图片

  Dragino LoRa Shield,提供了Arduino接口,可以与Arduino组合快速访问LoRa功能。

图片

  Arduino UNO R3,很常见也很便宜的一块开发板,深受电子爱好者喜爱。

图片

LoRa Shield与Arduino的组合

图片

  另一块用来实现通信的Dragino LoRa GPS Hat,与前面介绍的LoRa Shield不同的是这个上面多了个GPS模块。

  软件支持方面,Semtech专门为SX1272/SX1276推出了软件支持包,粹联科技LoRa无线物联网网关设备制造商一些模块厂商基于此API结合自己的设计进行了适当的修改。

  在Arduino平台,有两个比较有名的移植,一个是lmic,另一个是Radio Head。这里以lmic为例,lmic提供的示例代码中有一个raw文件,提供了基本的LoRa层通信API,只需要做很小的修改就可以对两块开发板进行适配。

  需要修改两个地方以适配特定的开发板,第一个是raw文件本身,如下:

  // Pin mapping

  const lmic_pinmap lmic_pins = {

  .nss = 10,

  .rxtx = LMIC_UNUSED_PIN,

  .rst = 9,

  .dio = {2, 6, 7},

  };

  这里修改的片选信号、复位信号及中断信号用到的引脚,SX1276通过SPI接口与Arduino进行通信,这些接口都是统一的。

  另一个需要修改的是lmic软件包中的config.h文件,主要包括两处修改:通信频段及芯片型号,修改如下:

  #define CFG_eu868 1

  //#define CFG_us915 1

  // This is the SX1272/SX1273 radio, which is also used on the HopeRF

  // RFM92 boards.

  //#define CFG_sx1272_radio 1

  // This is the SX1276/SX1277/SX1278/SX1279 radio, which is also used on

  // the HopeRF RFM95 boards.

  #define CFG_sx1276_radio 1

  第一行修改通信使用的频段,即ISM中的868MHz,后一个#define语句修改芯片型号。

  如此修改之后,LoRa无线物联网网关设备制造商就可以将编译的代码上传到两块开发板,打开串口程序,可以看到通信的过程,如下

  看到了么,两个串口终端输出的信号是一致的,就是循环收、发一条简单的信息。

  Arduino为我们屏蔽了太多的细节,真实的LoRa层通信要设置的参数主要包括如下一些:

  enum _cr_t { CR_4_5=0, CR_4_6, CR_4_7, CR_4_8 };

  enum _sf_t { FSK=0, SF7, SF8, SF9, SF10, SF11, SF12, SFrfu };

  enum _bw_t { BW125=0, BW250, BW500, BWrfu };

  这些定义信息与硬件参数对应,通过写寄存器的方式来进行调整,而写寄存器操作都被封装起来了,以API的形式提供调用。

  是不是很简单!

  不过这还只是冰山一角!

  LoRa通信只是两个结点间的直接通信,要与网络连接,我们还需要进一步了解LoRaWAN的一些细节,LoRa无线物联网网关设备制造商可以把LoRaWAN看作是网络层的通信协议,而LoRa只不过是物理层中的通信!

电脑版 | 手机版