你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
你觉得这篇文章怎么样?
使用Raspberry Pi 2 + iC880A为Things Network Calderdale构建第一个网关
上个月,我写了关于物联网 (TTN) — 一个免费和开放的LoRaWAN为物联网应用提供动力的数据网络 - 以及我们如何在Calderdale创建了一个社区,我们的当务之急是使用它来支持众包的洪水传感器网络。
这篇文章摘录了上一次结束的地方,详细介绍了用于构建DIY网关(也称为“接入点”或“基站”)的硬件,以及软件,配置和初始测试。
请注意,有许多现成的LoRaWAN网关,以及更简单/更便宜的DIY解决方案。 然而,这里采用的方法在成本,灵活性和性能方面提供了良好的平衡,同时使我们能够更多地了解LoRaWAN如何工作。
硬件
前端由IMST iC880ALoRaWAN“集中器”板提供; 它集成了两个Semtech SX1257收发器IC和一个SX1301基带处理器。 能够模拟具有10条并行解调路径的49x LoRa解调器的组合,以便接收在不同信道上以不同扩频因子同时发送的多达8个LoRa分组。
这听起来很复杂,这要归功于LoRa的调制格式,它能够以非常适中的发射功率电平实现如此令人难以置信的范围,同时还支持每个网关数千个节点。 在实践中,有些细节你可能不需要担心,虽然无线电和MAC层配置是可能的,并且在某些情况下可能是需要的。
选择Raspberry Pi 2 Model B来运行网关软件,并通过SPI与集线器连接,并使用一个非常简单的由跳板构建的分线/踢脚板。 iC880A的连接细节可在相关文档中找到,并注意除了SPI连接之外,还需要Raspberry Pi上的标准GPIO引脚来复位模块。
这些电路板被放置在一个压铸铝外壳内,以提供射频屏蔽(RF Screening),这是为电源插座,开关和LED钻孔,以及链式钻/提供以太网访问。
软件
最新的Raspbian Jessie Lite图像被下载并写入Micro SD卡。 然后在启动Raspberry Pi之后,接着按照以下通常的顺序:
$ sudo apt-get update
$ sudo apt-get upgrade
并且:
$ sudo apt-get install git wiringpi
克隆软件源和WiringPi需要Git提供一个简单的机制来切换复位集中器板的GPIO引脚。
通过编辑/ etc / hostname以及/ etc / hosts中的相应条目来更改主机名
树莓派配置工具接下来运行:
$ sudo raspi-config
要启用通过SPI总线的通信,先选择高级选项(9),然后选择SPI(A6),然后选择启用SPI并在启动时加载内核模块。
由于我们使用的是16GB Micro SD卡,因此在重新启动之前,还使用raspi-config工具来扩展根文件系统来填充此文件系统。
来自IMST的文件建议从Semtech提供的参考资源中构建LoRaWAN软件。 然而,这些有各种更新的叉子正在由 GitHub organisation组织下的The Things Network维护。
苏黎世的物联网通过提供一个 自动化的安装程序已经更进一步。 尽管我不满意这个步骤,比如将Raspberry Pi重命名为通用名称(ttn-gateway),并从源代码构建WiringPi,而不是简单地使用Raspbian存储库中提供的软件包。
因此,我使用了install.sh 脚本 作为一个crib手动安装,并执行如下:
-
得到了 自动化安装程序的SPI分支 (git clone, git checkout...)
-
克隆和构建LoRa网关应用程序
-
克隆和构建数据包转发应用程序
-
创建bin目录,加上poly_pkt_fwd的符号链接,并复制到global_conf.json文件
-
省略了创建local_conf.json或重置网关ID
-
将start.sh复制到bin目录,并将数据包转发器设置为服务
请注意,在构建网关应用程序时:
-
libloragw / library.cfg文件必须更新,以便将PLATFORM设置为imst_rpi(请参阅install.sh中相应的sed行)
-
调试可以通过在libloragw / library.cfg中设置适当的变量来打开
如果应用程序在配置后没有成功启动,那么打开SPI,设备寄存器和HAL等的调试功能可以证明是非常宝贵的。
另请注意,如果您要使用提供的服务描述文件(在启动时启用应用程序),则需要确保软件和配置已移至/ opt / ttn-gateway下的预期位置,否则请修改此作为适当的。
在某些时候,我可能会克隆安装程序存储库并稍微修改脚本以适应我自己的口味。虽然最好是将网关和数据包转发器应用程序通过Debian存储库和apt-get进行正确的打包和安装,并将配置保存在更合适的位置(如/ etc / ttn /),而不是与可执行文件放在一起bin目录。
此时我能够运行一个测试传输的实用程序,并确认SPI和软件的操作。
虽然我应该注意到,频谱分析仪有一个连接到它的端口的小天线,并没有直接连接,所以忽略电平测量。 而且,在这一点上,网关从没有提供足够电流的电源运行,所以当集中器被提供足够的功率时,发射突发可能看起来有点不同。
配置
所以现在我们有两个软件构成,lora_gateway和packet_forwarder。 但是这些提供了什么?
lora_gateway主要是一个库libloragw.a为构建一个网关提供了基础,该网关通过特定硬件平台的library.cfg文件进行配置,并与运行该软件的计算机进行接口,以及可选的调试等。帮助程序 还提供了使您能够记录收到的数据包并测试SPI并进行传输。
然后,packet_forwarder建立在库(a.k.a.“driver”或“HAL”)之上,以通过IP / UDP链路将通过空中接口接收的分组转发到主机。 除了上行链路操作之外,网关还支持发送由服务器生成的下行链路(到节点)分组,例如, 进行时间同步。 请注意,此时不支持一般的下行数据业务。
在撰写本文时,实际上有四个数据包转发应用程序:
-
基本。顾名思义!只需通过UDP将收到的数据包转发给主机。
-
全球定位系统。添加对aGPS接收器的支持,以实现绝对时间同步和网关本地化。
-
信标。与gps一样,但增加了对发送节点同步信标数据包的支持。
-
聚。与信标一样,但增加了对多个服务器和其他功能的支持。
poly_pkt_forward应用程序似乎是首选的应用程序,即使您不需要某些更高级的功能,也可以提高稳定性。
数据包转发应用程序由通用的global_conf.json文件配置,该文件提供所需的大部分配置,包括收发器,无线电信道,MAC和网络密钥等。然后通过local_conf.json提供站点配置(如图所示上面),这允许额外的设置和默认值被覆盖。主要有:
-
网关ID。这是由前缀FFE加上Raspberry Pi上的以太网接口MAC地址构成的。
-
联系电子邮件和说明。
-
GPS坐标和高度。启用fake_gps作为接收模块在这一点上是不适合的。
-
服务器地址和端口。那些由The Things Network运营的服务器。
在最后一个配置点上,请注意,您可以同样为自己的服务器配置详细信息。
配置完成后,可以使用以下命令手动启动数据包转发器:
$ ./poly_pkt_fwd
一旦满足网关数据包转发器成功启动,Pi就会关闭。.
网站安装
其压铸铝外壳中的网关安装在壁式安装的较大的钢制IP防护罩内。这包括可用于频谱监测的未来宽带SDR接收机的大量空间。DIN导轨安装在机柜的底部。
目前,我们已经安装了电源分配和一个5V电源,具有足够的备用容量,另外还有更多的PSU空间,以便我们稍后需要其他电压轨。
在机箱的顶部,我们有安装在天线之前避雷器,重10mm2 线连接这些到一个专用的接地棒。
在内部,我们可以看到两条同轴电缆穿过868MHz和GPS天线。在左边是25-3,0000MHz天线的N型馈通。在左侧有一个备用装置,将来可以通过同轴继电器将该天线连接到另一个进入车间的馈线,以便与其他设备一起使用。
测试
安装网关是时候把这个测试。目前我们唯一完整的LoRaWAN节点是 Flood Network新传感器的原型,因此我们决定通过The Things Network API来发现它. 幸好,我们可以!
接下来是什么? 那么,我们计划:
-
与Flood Network合作,以获得更多的在线传感器
-
映射第一个网关的覆盖范围
-
与当地的黑客空间Bridge Rectifier合作,在线获得第二个网关