概述
引言
如果您只关心:打造一个 LoRaWAN 网关,请参考《花一个小时,打造自己的LoRaWAN网关》
https://blog.csdn.net/jiangjunjie_2005/article/details/79758720
本文介绍 LoRaWAN 网关(以下简称网关)的源代码和二次开发的步骤。尽管它需要一点儿 Linux 知识,然而,这是每个“有耐心”的人都可以掌握的。
1 网关的构成
如下图所示,网关是 LoRaWAN 模组和 loraserver 的桥梁。
它接收模组的 LoRa 数据包,封装成特定格式的 UDP 包发送给 loraserver,这称之为上行(UpLink);下行(DownLink)是一个逆过程,即从 loraserver -> 模组。
它的硬件构成是 2 部分:SX1301 收发 LoRa,ARM+Linux 负责驱动和协议转换。
很明显,源代码运行在 Linux 之上,并且是标准的 C 语言。
2 为什么它会基于 ARM+Linux
Linux 没有版权纠纷,并且开源免费,加上强大的网络功能,这让它成为智能设备的首选操作系统。
ARM 功耗低,性价比高,工具链成熟,强大的生态圈,这让它成为智能设备的首先 CPU。
敏捷开发和精益设计在国外深入人心,智能产品一般先在 RaspberryPi(树莓派,典型的 ARM+Linux)上验证,扩大了这 ARM+Linux 的疆域。
3 我怎么登录 Linux 系统
至少有 2 种办法登录网关的 Linux 系统,无论哪一种方法,用户名和密码分别为:guest rimelink
3.1 串口登录
拿一根 USB 转串口线,连接网关的 GRT 引脚,打开 TeraTerm 串口软件,配置 115200-8-n-1 即可登录网关的 Linux 系统。
串口登录的优势很大,它可以查看 Linux 启动日志,判断硬件正确性;缺点是需要串口工具和安装驱动。
下载 TeraTerm 串口软件:http://www.rimelink.com/nd.jsp?id=33#_np=105_315
3.2 网络登录
从路由器查询 LoRa 基站的 IP(下例为 192.168.1.121),通过 putty 软件可登录网关的 Linux 系统。
网络登录的好处是不依赖额外的硬件(串口工具);缺点是需要查询 IP,无法诊断硬件故障。
下载 putty 软件:http://www.rimelink.com/nd.jsp?id=33#_np=105_315
从路由器查询 IP :http://lora.timeddd.com/forum.php?mod=viewthread&tid=893
4 源代码是如何组织的
网关的源代码有 2 部分,如下图所示。
SX1301 驱动代码 cd /home/rime/lora_gateway/libloragw/; ls -l
LoRa 转 UDP 代码 cd /home/rime/packet_forwarder/lora_pkt_fwd/; ls -l
5 如何查看/修改/编译源代码
登录网关 Linux 系统后,可以使用 less 命令查看源代码;使用 vi 可以编辑修改源代码。
因为网关 Linux 自带了 gcc 编译器环境,修改后的代码可以原地编译,不需要交叉编译器。
如果修改了 SX1301 驱动代码,这需要优先编译,因为 LoRa 转 UDP 代码依赖它。
先进入该目录 cd /home/rime/lora_gateway/libloragw/
执行 make 编译 sudo make clean all
小窍门:sudo 是让 guest 用户拥有 root 权限,clean 用于清除“旧”的编译文件,all 用于编译和链接生成可执行文件。
编译 LoRa 转 UDP 代码和上面相似。
先进入该目录 cd /home/rime/packet_forwarder/lora_pkt_fwd
执行 make 编译 sudo make clean all
6 如何运行二次开发后的代码
现代的 Linux 系统都是基于 systemd 来管理 service,二次开发并编译代码后,重启 service 即可生效。
重启 service 命令 sudo systemctl restart rime_gateway.service
最后
以上就是震动银耳汤为你收集整理的打造自己的LoRaWAN网关,进阶1:构建软件的全部内容,希望文章能够帮你解决打造自己的LoRaWAN网关,进阶1:构建软件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复