Einzelkanal Lora UDP -Paketsportfahrer ideal für Entwicklung oder Testzwecke. Empfängt und überträgt bidirektional. Dieses Projekt ist ideal für DIY eines der billigsten "Gateways" von Lora, das aus einem Ein-Board-Computer und einem 4-Dollar-Lora-Modul besteht.
Ziel des Projekts ist es, einen einfachen Lora -Spediteur für:
Zusammen mit der Netzwerkverbindung auf Ihrem Single-Board-Computer (WLAN, Ethernet ...) müssen die folgenden Stifte auf Ihrem Gerät zugewiesen werden:
Weitere Informationen für Ihr bestimmtes Board finden Sie im Befehls gpio readall (auch die nächsten Abschnitte). Schauen Sie sich auch die Verdrahtungs -PI -Nummern an, da die Konfigurationsdatei dieses Nummerierungsschema erwartet.
Für zB:
+------+-----+----------+------+---+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
Die folgenden Schritte wurden auf Armbian V5.90 getestet. Es wird jedoch empfohlen, seine neueste Version zu verwenden.
./buildPLATFORM=orangepipc ./build ) oder lassen Sie das Build -Skript, um sie automatisch zu bestimmen.spi-spidev -Overlay hinzufügen. Zusätzlich in /boot/armbianenv.txt Sie müssen abhängig vom Boardmodell Parameter param_spidev_spi_bus=1 oder param_spidev_spi_bus=0 hinzufügen. Für zB:param_spidev_spi_bus=1 Wenn wir die folgenden aktiven Overlays betrachten: i2c0 i2c1 pps-gpio pwm spi-add-cs1 spi-spidev uart1 usbhost2 usbhost3param_spidev_spi_bus=0/dev/spidev* -Verzeichnis trotz des geladenen spidev -Treibers sein. Eine vorübergehende Problemumgehung für diesen Fall ist die Umstellung in einen älteren Kernel.gpio readall zeigt auch eine etwas andere Tabelle an, wobei einige Zeilen versteckt oder angezeigt werden.gpio readall aus, um die Tabelle Pinout -Pinout -Schema zu sehenmakemake Config.json erstellen, indem Sie config.json.template kopieren:
gpio readall -Befehlssudo ls /dev/spi* wobei Ergebnisse wie für z. "/Dev/spidev1.0"/dev/spidev <spichannelnumber> entsprechen. <Piportnumer>SX1261 , SX1262 oder SX1268LLCC68SX1272 , SX1273 , SX1276 , SX1277 , SX1278 oder SX1279RFM95 , RFM96 , RFM97 oder RFM98gpio readall aus, um die Verdrahtungs -Pin -Nummern zu überprüfen, die angegeben werden müssen). Bitte beachten Sie, dass Pin_rest optional ist. Wenn es nicht verwendet wird, sollten Sie es auf -1 einstellen und den Stift des Transceivers schweben oder mit VCC angeschlossen werden.Um die Anwendung auszuführen:
./LoRaPktFwrdUm die Anwendung auszuführen und die für die ID -Generierung verwendete Netzwerkschnittstelle anzugeben:
./LoRaPktFwrd wlan0Um die unterstützten CLI -Optionen zu erhalten:
./LoRaPktFwrd -h Dieses Projekt kann als Systemd -Dienst installiert werden (siehe Datei LoRaPktFwrd.service ), die optional nach den Systemstiefeln automatisch starten kann. Stellen Sie als Voraussetzung sicher, dass das Projekt zusammengestellt wird (über den Befehl make ) und es kann mit Ihrer eigenen config.json -Datei korrekt ausgeführt werden.
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 überprüfen Lora UDP Packet Spediteur verlässt sich auf die folgenden Programme und Bibliotheken:
Bereitgestellt ist ein einfaches Beispiel für das Arduino -Projekt von Lora Trasmitter, das im aktuellen Verzeichnis "Sende" bezeichnet wird. Haken Sie Ihr ESP8266/Arduino/Egal ob Board über SPI an das SX1278 -Modul, kompilieren Sie es und es wird mit der Übertragung von Daten beginnen. Verwenden der Standardkonfiguration in "config.json.template" in Bezug auf HF -Spezifikationen sollte die Spediteur -App Daten sofort aus dem Sender auswählen.
Ein winziges Temperaturmonitorprogramm, das im Hintergrund ausgeführt und als Reaktion auf GPIO -Stifte geändert werden kann.
Das Erreichen eines perfekten Downlink-Übertragungszeitpunkts scheint schwierig zu sein, wenn ein gewöhnlicher Einzelboard-Computer mit einem einfachen LORA-Transceiver ausgestattet ist. Der Grund dafür hängt davon ab, dass die ungenaue Hardware-Uhr des Computers in Kombination mit der Nicht-Real-Zeit von Linux kombiniert wird. Um es zu kompensieren, zielt dieses Projekt mit einer sehr hohen (nahezu Echtzeit-) Priorität und einer erhöhten CPU -Nutzung (ungefähr 20%), um die unregelmäßigen OS -Verzögerungen teilweise auszugleichen.
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