Одноканал LORA UDP Packet Packeter Идеально подходит для целей разработки или тестирования. Получает и передает двунаправленную. Этот проект идеально подходит для DIY одного из самых дешевых «шлюзов LORA», состоящего из одноразового компьютера и модуля LORA за 4 доллара.
Целью проекта является предоставление простого форварчика Lora для:
Наряду с сетевым соединением на вашем одностороннем компьютере (Wi-Fi, Ethernet ...) Следующие выводы на вашем устройстве должны быть выделены:
Пожалуйста, обратитесь к команде gpio readall (также проверьте следующие разделы), чтобы получить дополнительную информацию для вашей конкретной платы. Посмотрите также номера WindingPI, потому что файл конфигурации ожидает этой схемы нумерации.
Например:
+------+-----+----------+------+---+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. Однако рекомендуется использовать свою последнюю версию.
./build CommandPLATFORM=orangepipc ./build ) или оставьте сценарий сборки, чтобы автоматически определить его.spi-spidev . Кроме того, в /BOOT/Armbianenv.txt вам нужно добавить параметр 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=0/dev/spidev* каталогом, несмотря на загруженный драйвер spidev . Временный обходной путь для этого случая - переключение на старое ядро.gpio readall также будет отображать немного другую таблицу, спрятанные или показаны ряды.gpio readall , чтобы увидеть таблицу схемы расписания платыmakemake Создать config.json, копируя config.json.template:
gpio readallsudo ls /dev/spi* , где результаты, такие как EG "/dev/spidev1.0", соответствуют/dev/spidev <pichannelnumber> . <piportnumer>SX1261 , SX1262 или SX1268LLCC68SX1272 , SX1273 , SX1276 , SX1277 , SX1278 или SX1279RFM95 , RFM96 , RFM97 или RFM98gpio readall , чтобы проверить номера PIN -контактов, которые необходимо указать). Обратите внимание, что PIN_REST не является обязательным . Если он не используется, вы должны установить его на -1 и оставить штифт приемопередатчика плавающим или подключенным к VCC;Чтобы выполнить приложение:
./LoRaPktFwrdЧтобы выполнить приложение, а также указать сетевой интерфейс, используемый для генерации идентификатора:
./LoRaPktFwrd wlan0Чтобы получить поддерживаемые варианты CLI:
./LoRaPktFwrd -h Этот проект может быть установлен в качестве службы SystemD (см. File LoRaPktFwrd.service ), которая необязательно может запускаться автоматически после системных сапог. В качестве предпосылки убедитесь, что проект составлен (через команду make ), и он может правильно выполнять с вашим собственным файлом 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 Lora UDP Packet Packeter полагается на следующие программы и библиотеки:
При условии простых примеров Lora Trasmitter Arduino Project под названием «передача» в текущем каталоге. Подключите свой ESP8266/Arduino/любая плата через SPI в SX1278, составьте его, и он начнет передавать данные. Используя конфигурацию по умолчанию внутри «config.json.template» с точки зрения RF -спецификаций, приложение Foarder должен немедленно выбирать данные из передатчика.
Крошечная программа мониторинга температур, которая может работать в фоновом режиме и изменять контакты GPIO в ответ.
Достижение идеального времени передачи в нисходящей линии связи, по-видимому, сложно с комбинацией обычного одноборочного компьютера, оснащенного простым трансивером Lora. Причина этого сводится к неточным аппаратным часам компьютера в сочетании с нереальной природой Linux. Чтобы компенсировать это, этот проект направлен на приоритет очень высокого (почти в реальном времени) и увеличение использования ЦП (примерно 20%), чтобы частично компенсировать нерегулярные задержки ОС.
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