项目简介
本项目基于C语言和Linux框架构建,是一个LoRa网关项目。其核心功能为接收并处理LoRa无线信号,随后将处理后的信号转发至服务器。项目实现了硬件抽象层(HAL),可与LoRa集中器(如SX1302)进行通信,同时包含处理网络数据包的程序。
项目的主要特性和功能
- 硬件抽象层(HAL):提供与LoRa集中器通信的接口,支持SPI和USB通信,能读取和写入寄存器、配置无线电参数以及处理GPS同步。
- 数据包转发:
packet_forwarder
程序可接收LoRa集中器的数据包并转发到服务器,也能接收服务器数据包并发送给集中器。 - GPS同步:启用GPS模块时,
packet_forwarder
利用GPS时间戳同步系统时间,确保数据时间戳准确。 - 频谱扫描:可检测特定频率信号强度,帮助识别干扰或可用频道。
- 多线程处理:采用多线程技术并行处理数据包的接收与发送,提高处理效率。
- 日志记录和错误处理:将接收到的数据包记录到CSV文件,提供错误处理和日志记录功能,便于监控系统性能和状态。
安装使用步骤
编译与安装
- 从项目根目录编译和安装所有库与测试程序:
- 清理并编译所有内容:
make clean all
- 安装可执行文件和关联文件到指定目录:
- 编辑项目根目录的
target.cfg
文件,配置可执行文件的安装位置。 - 按如下步骤避免安装文件时输入用户密码:
- 在运行
scp
命令的主机上,以运行scp
的用户身份执行ssh-keygen -t rsa
,按回车键跳过密码短语。 - 将生成的公钥文件
~/.ssh/id_rsa.pub
传输到目标主机:ssh-copy-id -i ~/.ssh/id_rsa.pub user@host_dest
- 在运行
- 执行安装命令:
make install
- 若要安装数据包转发器的JSON配置文件:
make install_conf
- 编辑项目根目录的
- 清理并编译所有内容:
- 从PC进行交叉编译:
- 将目标平台编译器的二进制文件路径添加到
PATH
环境变量。 - 设置
ARCH
环境变量为arm
。 - 设置
CROSS_COMPILE
环境变量为目标平台编译器的前缀。 - 以树莓派为例:
export PATH=[path]/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
- 在设置环境变量的同一控制台执行:
make clean all
- 将目标平台编译器的二进制文件路径添加到
运行程序
- 安装依赖库:确保安装
parson
和base64
库以及必要的系统库。 - 配置参数:根据需求配置
packet_forwarder
的命令行参数,如服务器地址、端口、GPS配置等。 - 运行
packet_forwarder
程序,它会自动连接LoRa集中器并开始接收和发送数据包。
监控和调试
通过查看日志文件和运行plot_rssi_histogram.py
脚本分析信号强度和频率分布,使用test_loragw_*
系列测试程序进行调试和校准。
注意事项
确保LoRa集中器和GPS模块正确连接,并根据硬件和软件环境进行必要配置。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】