项目简介
本项目基于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】