单道通道Lora UDP数据包转发器非常适合开发或测试目的。双向接收和传输。该项目非常适合DIY的最便宜的Lora“网关”之一,该项目由单板计算机和4美元的Lora模块组成。
该项目的目的是为:
除了您的单板计算机(WiFi,以太网...)上的网络连接外,必须分配设备上的以下引脚:
请参阅命令gpio readall (也要检查下一个部分),以获取更多特定董事会的信息。还要查看WireingPI号码,因为配置文件期望该编号方案。
例如:
+------+-----+----------+------+---+OrangePiH3+---+------+----------+-----+------+
| GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO |
+------+-----+----------+------+---+----++----+---+------+----------+-----+------+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 12 | 0 | SDA.0 | ALT2 | 0 | 3 || 4 | | | 5V | | |
| 11 | 1 | SCL.0 | ALT2 | 0 | 5 || 6 | | | 0v | | |
| 6 | 2 | PA6 | OFF | 0 | 7 || 8 | 0 | OFF | TxD3 | 3 | 13 |
| | | 0v | | | 9 || 10 | 0 | OFF | RxD3 | 4 | 14 |
| 1 | 5 | RxD2 | OFF | 0 | 11 || 12 | 1 | OUT | PD14 | 6 | 110 |
| 0 | 7 | TxD2 | OFF | 1 | 13 || 14 | | | 0v | | |
| 3 | 8 | CTS2 | OFF | 0 | 15 || 16 | 0 | IN | PC04 | 9 | 68 |
| | | 3.3v | | | 17 || 18 | 1 | IN | PC07 | 10 | 71 |
| 64 | 11 | MOSI | ALT3 | 0 | 19 || 20 | | | 0v | | |
| 65 | 12 | MISO | ALT3 | 0 | 21 || 22 | 0 | OFF | RTS2 | 13 | 2 |
| 66 | 14 | SCLK | ALT3 | 0 | 23 || 24 | 0 | ALT3 | CE0 | 15 | 67 |
| | | 0v | | | 25 || 26 | 0 | OFF | PA21 | 16 | 21 |
| 19 | 17 | SDA.1 | ALT3 | 0 | 27 || 28 | 0 | ALT3 | SCL.1 | 18 | 18 |
| 7 | 19 | PA07 | OFF | 0 | 29 || 30 | | | 0v | | |
| 8 | 20 | PA08 | OFF | 0 | 31 || 32 | 0 | OFF | RTS1 | 21 | 200 |
| 9 | 22 | PA09 | OFF | 0 | 33 || 34 | | | 0v | | |
| 10 | 23 | PA10 | OFF | 0 | 35 || 36 | 0 | OFF | CTS1 | 24 | 201 |
| 20 | 25 | PA20 | OFF | 0 | 37 || 38 | 0 | OFF | TxD1 | 26 | 198 |
| | | 0v | | | 39 || 40 | 0 | OFF | RxD1 | 27 | 199 |
| 4 | 28 | PA04 | ALT2 | 0 | 41 || 42 | 0 | ALT2 | PA05 | 29 | 5 |
+------+-----+----------+------+---+----++----+---+------+----------+-----+------+
| GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO |
+------+-----+----------+------+---+OrangePiH3+---+------+----------+-----+------+
___
_/ SX1278 module
| --------------
--- | ANT GND |===== Pin #20 [OrangePiH3 Physical]
| GND DIO1 |===== Pin #18 [OrangePiH3 Physical] / [a.k.a WiringPi pin ## 10]
| DIO2 |
| DIO3 |
| VCC |===== Pin # 1 [OrangePiH3 Physical]
| MISO |===== Pin #21 [OrangePiH3 Physical] / [[a.k.a WiringPi pin ## 12]]
| MOSI |===== Pin #19 [OrangePiH3 Physical] / [[a.k.a WiringPi pin ## 11]]
| SLCK |===== Pin #23 [OrangePiH3 Physical] / [[a.k.a WiringPi pin ## 14]]
| NSS |===== Pin #12 [OrangePiH3 Physical] / [a.k.a WiringPi pin ## 6]
| DIO0 |===== Pin #16 [OrangePiH3 Physical] / [a.k.a WiringPi pin ## 9]
| REST |===== optional, if it isn't used leave floating or connect to VCC
| GND |
--------------
git clone --recurse-submodules https://github.com/zhgzhg/LoRaPacketForwarder.git
已在Armbian v5.90上测试了以下步骤。但是,建议使用其最新版本。
./build命令PLATFORM=orangepipc ./build )或留下构建脚本以自动确定它。spi-spidev覆盖层。此外,在/boot/armbianenv.txt中,您需要添加参数param_spidev_spi_bus=1或param_spidev_spi_bus=0取决于板模型。例如:param_spidev_spi_bus=1如果我们考虑以下活动覆盖层: i2c0 i2c1 pps-gpio pwm spi-add-cs1 spi-spidev uart1 usbhost2 usbhost3param_spidev_spi_bus=0spidev驱动程序,但指示这可能是缺失/dev/spidev*目录。这种情况的临时解决方法正在切换到较旧的内核。gpio readall命令还将显示一个略有不同的表,隐藏或显示一些行。gpio readall以查看板引脚方案表make编译这个项目make编译这个项目通过复制config.json.template来创建config.json:
gpio readall命令的后缀sudo ls /dev/spi*的输出,其中例如“/dev/spidev1.0”的结果对应于/dev/spidev <spichannelnumber> 。 <spiportNumer>SX1261 , SX1262或SX1268LLCC68SX1272 , SX1273 , SX1276 , SX1277 , SX1278或SX1279RFM95 , RFM96 , RFM97或RFM98gpio readall以检查需要指定需要指定的WiringPi PIN号)。请注意, PIN_REST是可选的。如果不使用它,则应将其设置为-1,并将收发器的销浮动或连接到VCC;执行该应用程序:
./LoRaPktFwrd执行应用程序并指定用于ID生成的网络接口:
./LoRaPktFwrd wlan0要获得受支持的CLI选项:
./LoRaPktFwrd -h可以将该项目安装为SystemD服务(请参阅文件LoRaPktFwrd.service ),该服务可以在系统启动后自动启动。作为先决条件,请确保(通过make命令)编译了该项目,并且能够使用您自己的config.json文件正确执行。
sudo make installsudo make uninstallsudo systemctl enable LoRaPktFwrd.servicesudo systemctl disable LoRaPktFwrd.service sudo service LoRaPktFwrd start
sudo service LoRaPktFwrd restart
sudo service LoRaPktFwrd stop
sudo service LoRaPktFwrd status
sudo journalctl -n 100 -f -u LoRaPktFwrd.service Lora UDP数据包转发器依赖以下程序和库:
提供的是一个简单的Lora Trasmitter示例Arduino Project,称为“当前目录”中的“ Transmit”。将您的ESP8266/arduino挂钩/通过SPI到SX1278模块的任何板,对其进行编译,并将开始传输数据。在RF规格方面,使用“ config.json.template”内部的默认配置,转发器应用程序应立即从发射机中选择数据。
一个微小的温度监视器程序,可以在后台运行并修改GPIO引脚以响应。
通过配备普通Lora收发器的普通单板计算机的组合,实现完美的下行链路变速箱正时似乎很困难。原因归结为计算机的不精确硬件时钟与Linux的非真实时间性质相结合。为了弥补这一点,该项目的目标是以很高(几乎实时)的优先级运行,并增加了CPU使用率(约20%),以部分弥补不规则的OS延迟。
https://github.com/jgromes/radiolib
https://github.com/adafruit/single_chan_pkt_fwd
https://github.com/orangepi-xunlong/wiringop
https://github.com/xpertsavenue/wiringop-zero
https://github.com/lora-net/packet_forwarder
https://www.gw-openscience.org/static/js/gpstimeutil.js
https://github.com/tencent/rapidjson