RAK831 PILOT GATEWAY评测
RAK831 PILOT GATEWAY是深圳市瑞科慧联科技推出的一款基于SX1301的LoRa网关产品,同国外的基于SX1301的产品来说,性能完全一致,但价格却便宜了许多,实在是玩转LoRaWAN的首选产品。
LoRaWAN热乎了一段时间,现在似乎处于不温不火的状态,典型的叫好不叫座!
撇开技术本身来说,一个产品真正要普及,牵涉的东西实在太多。成本自然不必说,要便宜,要好用,要易用,要...,太多了!就拿LoRaWAN来说,要想玩转LoRaWAN,LoRa结点产品或模块,现在市面上非常多,价格也便宜。但是最重要的一个东西LoRa网关,大多数产品价格都在2K+以上,这就有点尴尬了!
于是就有了各种低价的LoRa网关解决方案,C. Pham使用RPI和各种便宜的LoRa模块(大部分都是基于SX1272/SX1276)打造了一个低价的单通道LoRa网关,使用起来差强人意,剁手党们却已开始欢呼了。
然而该方案有局限,首先是单通道限制了其应用范围:做个DEMO尚可,因为没办法说服客户啊!其次是不能完全兼容LoRaWAN,不能胜任高端应用。
RAK831 PILOT GATEWAY是深圳市瑞科慧联科技推出的一款基于SX1301的LoRa网关产品,同国外的基于SX1301的产品来说,性能完全一致,但价格却便宜了许多,实在是玩转LoRaWAN的首选产品。
本次评测的PILOT GATEWAY套件包含网关、配套的电源,另外还有天线及GPS模块各一,简单的配置即可投入实际应用。
这就是LoRa网关,里面包含RAK831模块、转接板及RPI3一个,外壳是铝合金,非常轻便同时也非常坚固,主要的接口都引出来了。外壳手感不错!
连接上天线后,整体感觉更上一个台阶。
配套的电源,标准的RPI3电源配置要求,当网关工作时,模块峰值电流可能高达700mA,所以5V/2A是必须的配备。
附件包括天线及GPS各一,另外还有一个DC接口转换器,因为配套电源的输出是圆口,用这个接口才可以连接Micro USB供电接口,如果能配个标准的RPI3 DC电源不是更好么。
产品内部除了RPI3,还有RAK831及转接板,拆开来看看,毕竟眼见为实嘛!
拆解过程中的一张特写,近距离看看外盒的做工及质感,确实做得不错。
这就是RAK831网关模块,主要器件都使用金属罩保护,还可以屏蔽外部信号的干扰。
这个是转换板,将RPI3的GPIO接口引出,再与RAK831连接。
本套件的频率是868,另外还有433、915等不同ISM频段可选。后面我们将使用同频段的LoRa Mote来与设备进行通信并接入到TTN中,实现完整的LoRaWAN通信。
开箱及拆解过程中,我们完全可以看到产品设计及开发者对产品的态度,RAK831模块设计布局整洁,走线合理,焊接工艺不错,没有毛刺等现象,组装起来后更像是一件艺术器。
RAK831使用的是来自Semtech的SX1301芯片
SX1301芯片内置LoRa集中器IP核,是一款海量数字信号处理引擎,专门为全球ISM频段提供突破性的网关功能,主要特性如下
• X1257 Tx / Rx前端的灵敏度高达-142.5dBm
• 1 MHz偏移时的70 dB CW干扰抑制
• 能够以高达9dB的负SNR和CCR工作
• 仿真49x LoRa解调器和1x(G)FSK解调器
• 双数字TX&RX无线电前端接口
• 10个可编程并行解调路径
• 动态数据速率(DDR)适应
• 真正的天线分集或同时双频带操作
目前大部分现有网关都是基于SX1301芯,SX1301通过SPI接口与其它设备进行通信,本套件使用的是RPI3,模块与RPI3接口的连接图如下
接下来开始配置网关,具体来说就是通过配置RPI3来实现RAK831与RPI3之间的通信。不过上电之前,记得先把天线安装好。
要通过SPI接口来进行通信,首先要启用RPI3上的SPI接口接口,可以使用RPI的配置命令raspi-config命令来实现,启用SPI接口后要重启。
目前提供LoRa服务的ISP主要有TTN及Thingspeak,这里以TTN的配置为例。
典型的的LoRaWAN通信架构如下
LoRa 网络主要由终端(可内置 LoRa 模块)、网关(或称基站)、Server 和云四部分组成。LoRaWAN规范定义了三种设备类型。所有的LoRaWAN设备都必须实现A类,而B类和C类则是A类设备规范的扩展。RAK831在这里充当一个转发器,将来自结点的信息通过网络转发至TTN或Thingspeak等ISP。
TTN里面要先建立对应的网关,因为配置的是转发器,所以记得要做如下配置
本次测试时使用的网关配置如下
关键参数主要包括两个:一个是通信频段,这里使用的是868MHz;另外一个是接入服务器,由于868段已被ISM分配给了欧洲,这里就选用ttn-router-eu,是为了保持一致。
另外要记得eui的值,这个值在配置RAK831时要用到。执行如下命令下载代码文件到RPI3上
git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git
修改配置文件start.sh,如下
第一个参数是SX1301_RESET_BCM_PIN,前面的引脚映射图我们得知RPI3上使用的是17,所以这里也要改成17,另外一个是后面的检测网络连通的命令,默认使用的是google.com,这里已改成了baidu.com。
保存后执行目录下的install.sh开始安装程序,安装过程会询问一些具体的设置参数
网关参数设置可以是本地,也可以使用远程网络上的配置文件,这里询问是否使用远程配置,使用远程配置的话则将这些设置参数放到GITHUB上,可以集中管理,不过需要GITHUB所有者的批准。如果使用本地配置的话,则将配置参数放在本地,这里选择放在本地保存。
参考设置如下
{
"gateway_conf": {
"gateway_ID": "b827ebfffedb0113",
"servers": [
{
"server_address": "router.eu.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,
"serv_enabled": true
}
],
"ref_latitude": 50.0822850,
"ref_longitude": 14.4502592,
"ref_altitude": 40,
"contact_email": "malina@vanco.cz",
"description": "TTN Prague VanCo.cz"
}
}
必须的两个参数值为gateway_ID及servers,必须根据实际值来进行设置。
参数配置完成之后,就可以使用start.sh命令来启动网关程序了
启动程序后,树莓派控制台会显示一系列的log消息,TTN控制台上也会显示相关的连接信息,如下
这是TTN控制台上显示的网关已连接的信息。如果TTN控制台显示未连接,则需要重新检查参数设置,看是否配置正确,另外还有就是网关的网络配置是否正确,例如WiFi参数设置等。
网关配置正确后,接下来就要使用LoRa mote来连接网关并与之进行通信。本次测试使用了两个LoRa arduino shield扩展板,将扩展板安装到arduino上,扩展板通过SPI接口与Arduino进行通信
选择LoRa mote模块时,注意频段参数也要选择对应的型号即868MHz。客户端使用的软件库为lmic,lmic允许我们通过其提供的API来实现SX1272/SX1276兼容的相关通信。启动Arduino程序并添加lmic库支持后,打开库自带的ttn-abp.ino程序,修改并配置SPI相关的参数,然后编译并下载到Arduino开发板,稍等片刻,就可以在TTN的控制台上看到通信的信息了
这是控制台是显示的信息,主要包括时间,频率、CodeRate、SF及BW等LoRa相关的配置参数,最后两列显示的是传输时间及负载长度等。注意这里的dev addr,这是设备地址,接下来我们还会添加另外一个结点,可以通过设备地址来进行区分。
在TTN控制台上还可以查看每次通信的具体数据包内容,这里传送的主要是abp(activation-by-pernonal)信息,另外也可以使用otaa(over-the-air activation)来激活设备。
PILOT GATEWAY可以实现多通道通信,这里看到的是两个结点同时通过网关来发送信息的情况。注意设备地址,其中一个是0X03FF0002,另一个则是0X03FF0001。
至此,一个完整的LoRaWAN通信网络已搭建成功!
整个测试过程非常顺利。首先由于RAK831采用模块化设计,结合专门为RPI设计的扩展板,硬件组装非常容易,网关程序的设置过程由于使用了交互式脚本,只需要回答几个简单的问题就可以设置好参数,结合TTN的强大控制台功能,无论是诊断还是最终的查看通信过程,都非常容易。至于与之配套的LoRa mote,市面上亦有现成的模块供用户选择。总而言之,从无到有来搭建一个LoRa网络,不可谓不简单。
还在纠结LoRa玩不转么,有了RAK831,还具不不是难事!RAK831的价格是RMB820,相对来说,还在可以接受的范围之内。
参考资源:
RAKWIRELESS: http://www.rakwireless.com
TTN: http://thethingsnetwork.org/
网关程序下载:https://github.com/ttn-zh/ic880a-gateway.git