Single Channel Lora UDP Paket Forwarder Ideal untuk tujuan pengembangan atau pengujian. Menerima dan mentransmisikan dua arah. Proyek ini sangat ideal untuk DIY dari salah satu "gateway lora" termurah yang terdiri dari komputer papan tunggal dan modul Lora $ 4.
Tujuan dari proyek ini adalah untuk memberikan Lora Forwarder sederhana untuk:
Seiring dengan koneksi jaringan pada komputer papan tunggal Anda (WiFi, Ethernet ...) Pin berikut pada perangkat Anda harus dialokasikan:
Silakan merujuk ke Command gpio readall (juga periksa bagian berikutnya) untuk mendapatkan informasi lebih lanjut untuk papan khusus Anda. Lihatlah nomor WiringPi juga, karena file konfigurasi mengharapkan skema penomoran itu.
Untuk misalnya:
+------+-----+----------+------+---+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
Langkah -langkah berikut telah diuji pada Armbian v5.90. Namun disarankan untuk menggunakan versi terbarunya .
./buildPLATFORM=orangepipc ./build ) atau tinggalkan skrip build untuk menentukannya secara otomatis.spi-spidev . Selain itu di /BOOT/armbianenv.txt Anda harus menambahkan parameter param_spidev_spi_bus=1 atau param_spidev_spi_bus=0 tergantung pada model papan. Untuk misalnya:param_spidev_spi_bus=1 Jika kita mempertimbangkan overlay aktif berikut: i2c0 i2c1 pps-gpio pwm spi-add-cs1 spi-spidev uart1 usbhost2 usbhost3param_spidev_spi_bus=0/dev/spidev* meskipun driver spidev yang dimuat. Solusi sementara untuk kasus ini beralih ke kernel yang lebih tua.gpio readall juga akan menampilkan tabel yang sedikit berbeda, memiliki beberapa baris tersembunyi atau ditampilkan.gpio readall untuk melihat tabel skema pinout papanmakemake Buat config.json dengan menyalin config.json.template:
gpio readallsudo ls /dev/spi* di mana hasil seperti misalnya "/dev/spidev1.0" sesuai dengan/dev/spidev <Pichannelnumber> . <Piportnumer>SX1261 , SX1262 , atau SX1268LLCC68SX1272 , SX1273 , SX1276 , SX1277 , SX1278 , atau SX1279RFM95 , RFM96 , RFM97 , atau RFM98gpio readall untuk memeriksa nomor pin wiringpi yang perlu ditentukan). Harap dicatat bahwa pin_rest adalah opsional . Jika tidak digunakan, Anda harus mengaturnya ke -1 dan membiarkan pin transceiver mengambang atau terhubung ke VCC;Untuk menjalankan aplikasi:
./LoRaPktFwrdUntuk menjalankan aplikasi dan juga menentukan antarmuka jaringan yang digunakan untuk pembuatan ID:
./LoRaPktFwrd wlan0Untuk mendapatkan opsi CLI yang didukung:
./LoRaPktFwrd -h Proyek ini dapat diinstal sebagai layanan SystemD (lihat file LoRaPktFwrd.service ) yang secara opsional dapat dimulai secara otomatis setelah sistem boot. Sebagai prasyarat, pastikan proyek disusun (melalui perintah make ) dan dapat dijalankan dengan benar dengan file config.json Anda sendiri.
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 Forwarder bergantung pada program dan perpustakaan berikut:
Disediakan adalah contoh Lora Trasmitter sederhana proyek Arduino yang disebut "Transmit" di direktori saat ini. Hook ESP8266/Arduino/papan apa pun Anda melalui modul SPI ke SX1278, kompilasi, dan itu akan mulai mengirimkan data. Menggunakan konfigurasi default di dalam "config.json.template" dalam hal spesifikasi RF, aplikasi Forwarder harus segera memilih data dari pemancar.
Program monitor suhu kecil yang dapat berjalan di latar belakang dan memodifikasi pin GPIO sebagai respons.
Mencapai waktu transmisi downlink yang sempurna tampaknya sulit dengan kombinasi komputer papan tunggal biasa yang dilengkapi dengan transceiver Lora biasa. Alasan untuk itu turun ke jam perangkat keras komputer yang tidak tepat dikombinasikan dengan sifat waktu linux yang tidak nyata. Untuk mengimbangi proyek ini bertujuan berjalan dengan prioritas yang sangat tinggi (hampir real time), dan peningkatan penggunaan CPU (sekitar 20%) untuk menebus sebagian penundaan OS yang tidak teratur.
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