Pacote de pacote UDP de canal único LORA Ideal para fins de desenvolvimento ou teste. Recebe e transmite bidirecionalmente. Este projeto é ideal para DIY de um dos "gateways" mais baratos da Lora, composto por um computador de placa única e um módulo Lora de US $ 4.
O objetivo do projeto é fornecer um encaminhador Lora simples para:
Juntamente com a conexão de rede no seu computador único (Wi-Fi, Ethernet ...), os seguintes pinos no seu dispositivo devem ser alocados:
Consulte o comando gpio readall (verifique também as próximas seções) para obter mais informações para sua placa específica. Observe os números WiringPI também, porque o arquivo de configuração espera esse esquema de numeração.
Para por exemplo:
+------+-----+----------+------+---+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
As etapas a seguir foram testadas no Armbian v5.90. No entanto, é recomendável usar sua versão mais recente .
./build comandoPLATFORM=orangepipc ./build ) ou deixe o script de compilação para determinar automaticamente.spi-spidev . Além disso, em /boot/armbianenv.txt, você precisará adicionar parâmetro param_spidev_spi_bus=1 ou param_spidev_spi_bus=0 dependendo do modelo da placa. Para por exemplo:param_spidev_spi_bus=1 se considerarmos as seguintes sobreposições ativas: i2c0 i2c1 pps-gpio pwm spi-add-cs1 spi-spidev uart1 usbhost2 usbhost3param_spidev_spi_bus=0/dev/spidev* apesar do driver spidev carregado. Uma solução alternativa temporária para este caso está mudando para um kernel mais antigo.gpio readall também mostrará uma tabela ligeiramente diferente, tendo algumas linhas escondidas ou mostradas.gpio readall para ver a tabela de esquema de pinagem da placamakemake Criar config.json copiando config.json.template:
gpio readallsudo ls /dev/spi* onde os resultados como para EG "/dev/spidev1.0" correspondem a/dev/spidev <spichannelnumber> . <SpiPortnumer>SX1261 , SX1262 ou SX1268LLCC68SX1272 , SX1273 , SX1276 , SX1277 , SX1278 ou SX1279RFM95 , RFM96 , RFM97 ou RFM98gpio readall para verificar os números do WiringPI que precisam ser especificados). Observe que Pin_rest é opcional . Se não for usado, você deve configurá -lo como -1 e deixar o pino do transceptor flutuando ou conectado ao VCC;Para executar o aplicativo:
./LoRaPktFwrdPara executar o aplicativo e também especificar a interface de rede usada para geração de identificação:
./LoRaPktFwrd wlan0Para obter as opções de CLI suportadas:
./LoRaPktFwrd -h Este projeto pode ser instalado como um serviço Systemd (consulte o arquivo LoRaPktFwrd.service ), que opcionalmente pode começar automaticamente após as botas do sistema. Como pré -requisito, verifique se o projeto é compilado (através do comando make ) e é capaz de executar corretamente com seu próprio arquivo 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 O Packet Forwarder da Lora UDP conta com os seguintes programas e bibliotecas:
Fornecido é um exemplo simples de exemplo de Arduino Lora Trasmitter chamado "transmissão" no diretório atual. Conecte seu módulo ESP8266/arduino/qualquer placa via SPI para SX1278, compile -o e começará a transmitir dados. Usando a configuração padrão dentro de "config.json.template" em termos de especificações de RF, o aplicativo encaminhador deve escolher imediatamente os dados do transmissor.
Um minúsculo programa de monitor de temperatura que pode ser executado em segundo plano e modificar pinos GPIO em resposta.
Conseguir um tempo de transmissão de downlink perfeito parece ser difícil com a combinação de um computador de placa única comum equipada com um transceptor de Lora simples. A razão para isso se resume ao relógio impreciso de hardware do computador combinado com a natureza não real do Linux. Para compensar isso, este projeto visa funcionar com uma prioridade muito alta (quase real) e aumentar o uso da CPU (aproximadamente 20%) para compensar parcialmente os atrasos irregulares do sistema operacional.
https://github.com/jgromes/radiolib
https://github.com/adafruit/single_chan_pkt_fwd
https://github.com/orangepi-xunlong/wiringop
https://github.com/xpertsaveue/wiringop-zero
https://github.com/lora-nalt/packet_forwarder
https://www.gw-openscience.org/static/js/gpstimeutil.js
https://github.com/tencent/rapidjson