Sans transition UDP LORA UDP idéal à des fins de développement ou de test. Reçoit et transmet bidirectionnellement. Ce projet est idéal pour le bricolage de l'une des "passerelles" LORA les moins chères composées d'un ordinateur à bord unique et d'un module LORA de 4 $.
L'objectif du projet est de fournir un transfert de Lora simple pour:
Avec la connexion réseau sur votre ordinateur monomoteur (WiFi, Ethernet ...) Les épingles suivantes sur votre appareil doivent être allouées:
Veuillez vous référer à la commande gpio readall (consultez également les sections suivantes) pour obtenir plus d'informations pour votre carte particulière. Examinez également les numéros de câblage, car le fichier de configuration attend ce schéma de numérotation.
Pour EG:
+------+-----+----------+------+---+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
Les étapes suivantes ont été testées sur Armbian V5.90. Cependant, il est recommandé d'utiliser sa dernière version.
./build CommandePLATFORM=orangepipc ./build ) ou laissez le script de construction pour le déterminer automatiquement.spi-spidev . De plus, dans /boot/armbianenv.txt, vous devrez ajouter le paramètre param_spidev_spi_bus=1 ou param_spidev_spi_bus=0 selon le modèle de carte. Pour EG:param_spidev_spi_bus=1 Si nous considérons les superpositions actives suivantes: i2c0 i2c1 pps-gpio pwm spi-add-cs1 spi-spidev uart1 usbhost2 usbhost3param_spidev_spi_bus=0/dev/spidev* malgré le pilote spidev chargé. Une solution de contournement temporaire pour ce cas est de passer à un noyau plus ancien.gpio readall affichera également une table légèrement différente, se cachant ou illustré certaines lignes.gpio readall pour voir la table du schéma Pinout Boardmakemake Créer config.json en copiant config.json.template:
gpio readall miso / mosi et en particulier ".sudo ls /dev/spi* où les résultats comme pour eg "/dev/spidev1.0" correspondent à / dev / spidev <spichannelNumber> . <Spiportnumer>SX1261 , SX1262 ou SX1268LLCC68SX1272 , SX1273 , SX1276 , SX1277 , SX1278 ou SX1279RFM95 , RFM96 , RFM97 ou RFM98gpio readall pour vérifier les numéros de broches de câblage qui doivent être spécifiés). Veuillez noter que PIN_REST est facultatif . S'il n'est pas utilisé, vous devez le définir sur -1 et laisser la broche de l'émetteur-récepteur flottant ou connecté à VCC;Pour exécuter l'application:
./LoRaPktFwrdPour exécuter l'application et spécifier également l'interface réseau utilisée pour la génération d'ID:
./LoRaPktFwrd wlan0Pour obtenir les options CLI prises en charge:
./LoRaPktFwrd -h Ce projet peut être installé en tant que service SystemD (reportez-vous au fichier LoRaPktFwrd.service ) qui peut éventuellement démarrer automatiquement après les bottes du système. En tant que condition préalable, assurez-vous que le projet est compilé (via la commande make ) et il est capable de s'exécuter correctement avec votre propre fichier 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 Le transfert de paquets LORA UDP s'appuie sur les programmes et bibliothèques suivants:
Fourni est un simple exemple de projet Arduino Lora Trasmitte appelé "Transmit" dans le répertoire actuel. Offrez votre carte ESP8266 / Arduino / quelle que soit la carte via le module SPI vers SX1278, compilez-le et commencera à transmettre des données. En utilisant la configuration par défaut dans "config.json.emplate" en termes de spécifications RF, l'application de transfert doit immédiatement choisir les données de l'émetteur.
Un petit programme de moniteur de température qui peut s'exécuter en arrière-plan et modifier les broches GPIO en réponse.
La réalisation d'un calendrier de transmission de liaison descendante parfaite semble difficile avec la combinaison d'un ordinateur à carton ordinaire équipé d'un émetteur-récepteur LORA ordinaire. La raison pour cela se résume à l'horloge matérielle imprécise de l'ordinateur combiné à la nature non réelle de Linux. Pour compenser cela, ce projet vise à fonctionner avec une priorité très élevée (presque en temps réel) et une utilisation accrue du processeur (environ 20%) pour compenser partiellement les retards de SG irréguliers.
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