Reenvío de paquetes Lora UDP de un solo canal ideal para fines de desarrollo o prueba. Recibe y transmite bidireccionalmente. Este proyecto es ideal para el bricolaje de una de las "puertas" más baratas de Lora que consiste en una computadora de una sola placa y un módulo Lora de $ 4.
El objetivo del proyecto es proporcionar un reenvío de Lora simple para:
Junto con la conexión de red en su computadora de un solo tablero (WiFi, Ethernet ...) se deben asignar los siguientes pines en su dispositivo:
Consulte el comando gpio readall (también verifique las siguientes secciones) para obtener más información para su placa en particular. Observe también los números de cableado, porque el archivo de configuración espera ese esquema de numeración.
Por ejemplo:
+------+-----+----------+------+---+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
Los siguientes pasos se han probado en Armbian V5.90. Sin embargo, se recomienda usar su última versión.
./buildPLATFORM=orangepipc ./build ) o deje el script de compilación para determinarlo automáticamente.spi-spidev . Además, en /boot/armbianenv.txt deberá agregar el parámetro param_spidev_spi_bus=1 o param_spidev_spi_bus=0 dependiendo del modelo de placa. Por ejemplo:param_spidev_spi_bus=1 Si consideramos las siguientes superposiciones activas: i2c0 i2c1 pps-gpio pwm spi-add-cs1 spi-spidev uart1 usbhost2 usbhost3param_spidev_spi_bus=0/dev/spidev* a pesar del controlador spidev cargado. Una solución temporal para este caso es cambiar a un núcleo más antiguo.gpio readall también mostrará una tabla ligeramente diferente, con algunas filas ocultas o mostradas.gpio readall para ver la tabla de esquema de pinout de placamakemake Crear config.json copiando config.json.template:
gpio readallsudo ls /dev/spi* donde los resultados como para EG "/dev/spidev1.0" corresponden a/dev/spidev <spichannelnumber> . <spiportnumer>SX1261 , SX1262 o SX1268LLCC68SX1272 , SX1273 , SX1276 , SX1277 , SX1278 o SX1279RFM95 , RFM96 , RFM97 o RFM98gpio readall para verificar los números de pin de cableado que deben especificarse). Tenga en cuenta que PIN_REST es opcional . Si no se usa, debe configurarlo en -1 y dejar el pin del transceptor flotando o conectado a VCC;Para ejecutar la aplicación:
./LoRaPktFwrdPara ejecutar la aplicación y también especificar la interfaz de red utilizada para la generación de ID:
./LoRaPktFwrd wlan0Para obtener las opciones de CLI compatibles:
./LoRaPktFwrd -h Este proyecto se puede instalar como un servicio Systemd (consulte el archivo LoRaPktFwrd.service ) que opcionalmente puede comenzar automáticamente después de que el sistema se inicie. Como requisito previo, asegúrese de que el proyecto esté compilado (a través del comando make ) y puede ejecutarse correctamente con su propio archivo 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 Packet Reengers se basa en los siguientes programas y bibliotecas:
Proporcionado es un simple proyecto de Lora TRASMITTER ARDUINO llamado "transmisión" en el directorio actual. Enganche su módulo ESP8266/Arduino/cualquier tabla a través de SPI al módulo SX1278, compilarlo y comenzará a transmitir datos. Usando la configuración predeterminada dentro de "config.json.template" en términos de especificaciones de RF, la aplicación Reense debe elegir inmediatamente los datos del transmisor.
Un pequeño programa de monitor de temperatura que puede ejecutarse en segundo plano y modificar pines GPIO en respuesta.
Lograr los tiempos de transmisión de enlace descendente perfectos parece ser difícil con la combinación de una computadora de un solo tablero ordinaria equipada con un transceptor lora lora. La razón de eso se reduce al reloj de hardware impreciso de la computadora combinado con la naturaleza de tiempo no real de Linux. Para compensarlo, este proyecto tiene como objetivo que se ejecute con una prioridad muy alta (casi en tiempo real) y un mayor uso de la CPU (aproximadamente 20%) para compensar parcialmente los retrasos del sistema operativo irregular.
https://github.com/jgromes/radiolib
https://github.com/adafruit/single_chan_pkt_fwd
https://github.com/orangepi-xunlong/wiringop
https://github.com/xpertsavueue/wiringop-zero
https://github.com/lora-net/packet_forwarder
https://www.gw-openscience.org/static/js/gpstimeutil.js
https://github.com/tencent/rapidjson