단일 채널 LORA UDP 패킷 전환기 개발 또는 테스트 목적에 이상적입니다. 양방향으로 수신하고 변환합니다. 이 프로젝트는 단일 보드 컴퓨터와 4 달러짜리 LORA 모듈로 구성된 가장 저렴한 LORA "게이트웨이"중 하나의 DIY에 이상적입니다.
이 프로젝트의 목표는 간단한 lora 포워더를 제공하는 것입니다.
단일 보드 컴퓨터의 네트워크 연결 (WiFi, 이더넷 ...)과 함께 장치의 다음 핀을 할당해야합니다.
특정 보드에 대한 자세한 정보를 얻으려면 명령 gpio readall (다음 섹션을 확인)을 참조하십시오. 구성 파일은 해당 번호 구성 체계를 기대하기 때문에 Wiringpi 번호도 살펴보십시오.
예를 들어 :
+------+-----+----------+------+---+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에서 다음 단계가 테스트되었습니다. 그러나 최신 버전을 사용하는 것이 좋습니다.
./buildPLATFORM=orangepipc ./build ) 또는 빌드 스크립트를 남겨 두어 자동으로 결정하십시오.spi-spidev 오버레이를 추가해야 할 수도 있습니다. 또한 /boot/armbianenv.txt 에서는 보드 모델에 따라 parameter parameter paramer parameter paramer parameter 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/spidev <spichannelnumber> .SX1261 , SX1262 또는 SX1268LLCC68SX1272 , SX1273 , SX1276 , SX1277 , SX1278 또는 SX1279RFM95 , RFM96 , RFM97 또는 RFM98gpio readall 실행하여 지정 해야하는 배선부 핀 번호를 확인하십시오). PIN_REST 는 선택 사항 입니다 . 사용되지 않으면 -1로 설정하고 Transceiver의 핀을 VCC에 연결하거나 연결합니다.응용 프로그램 실행 :
./LoRaPktFwrd응용 프로그램을 실행하고 ID 생성에 사용되는 네트워크 인터페이스도 지정합니다.
./LoRaPktFwrd wlan0지원되는 CLI 옵션을 얻으려면 :
./LoRaPktFwrd -h 이 프로젝트는 시스템 부츠 후에 선택적으로 자동으로 시작될 수있는 SystemD 서비스 (File LoRaPktFwrd.service 참조)로 설치할 수 있습니다. 전제 조건으로 프로젝트가 make 명령을 통해 컴파일되었는지 확인하고 자신의 config.json 파일로 올바르게 실행할 수 있습니다.
sudo make install 수 있습니다.sudo 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 패킷 포워더는 다음 프로그램 및 라이브러리에 의존합니다.
현재 디렉토리에서 "Transmit"이라는 간단한 Lora Trasmitter 예제 Arduino 프로젝트가 제공됩니다. SPI를 통해 모든 보드를 SX1278 모듈로 ESP8266/Arduino/모든 보드에 연결하고 컴파일하면 데이터 전송을 시작합니다. "config.json.template"내부의 기본 구성을 RF 사양 측면에서 사용하면 전달자 앱은 송신기에서 즉시 데이터를 선택해야합니다.
백그라운드에서 실행되고 응답으로 GPIO 핀을 수정할 수있는 작은 온도 모니터 프로그램.
일반적인 다운 링크 전송 타이밍을 달성하는 것은 일반 LORA 트랜시버가 장착 된 일반 단일 보드 컴퓨터의 조합으로 어려운 것으로 보입니다. 그 이유는 컴퓨터의 부정확 한 하드웨어 시계에 이르렀습니다. 이 프로젝트를 보상하기 위해이 프로젝트는 매우 높은 (거의 실시간) 우선 순위로 실행되며 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