Программа Python для двухсторонних текстовых сообщений с 33-сантиметровым модулем REYAX RYLR998 LORA®, либо с:
Здесь нет нитей, только асинхронные неблокирующие вызовы ввода-вывода.
Примечание: я рекомендую подключить RYLR998 к мосту REYAX RYLS135 USB с 1,8 В/3,3 В/5 В TTL UART, доступный на Amazon. С этим оборудованием и Raspberry Pi 4 (или 5-не протестированным) программное обеспечение совместимо с программным обеспечением Digipi Appliance без модификации /boot/config.txt .
ПРЕДУПРЕЖДЕНИЕ: Windows требует от windows-curses , которые не реализуют curses.set_escdelay() как Python 3.11. Прокомментируйте cur.set_escdelay(1) в display.py и запустите свой собственный риск. Обработка текста в Windows неустойчива, с отсутствием функции set_escdelay() . Если вы запускаете под Ubuntu или Debian в WSL2 в Windows, у вас не будет этой проблемы.
usage: rylr998.py [-h] [--debug] [--factory] [--noGPIO] [--addr [0..65535]] [--band [902250000..927750000]] [--pwr [0..22]]
[--mode [0 | 1 | 2,30..60000,30..60000]] [--netid [3..15 | 18]] [--parameter [7..11,7..9,1..4,4..24]] [--echo]
[--port [/dev/ttyS0../dev/ttyS999 | /dev/ttyUSB0../dev/ttyUSB999 | COM0..COM999]]
[--baud (300 | 1200 | 4800 | 9600 | 19200 | 28800 | 38400 | 57600 | 115200)]
options:
-h , --help show this help message and exit
--debug log DEBUG information
--factory Factory reset to manufacturer defaults. BAND: 915MHz, UART: 115200, Spreading Factor: 9, Bandwidth: 125kHz (7), Coding Rate:
1, Preamble Length: 12, Address: 0, Network ID: 18, CRFOP: 22
--noGPIO Do not use rPI.GPIO module even if available. Useful if using a USB to TTL converter with the RYLR998.
rylr998 config:
--addr [0..65535] Module address (0..65535). Default is 0
--band [902250000..927750000]
Module frequency (902250000..927750000) in Hz. NOTE: the full 33cm ISM band limits 902 MHz and 928 MHz are guarded by the
maximum configurable bandwidth of 500 KHz (250 KHz on either side of the configured frequency). See PARAMETER for bandwidth
configuration. Default: 915000000
--pwr [0..22] RF pwr out (0..22) in dBm. Default: FACTORY setting of 22 or the last configured value.
--mode [0 | 1 | 2,30..60000,30..60000]
Mode 0: transceiver mode. Mode 1: sleep mode. Mode 2,x,y: receive for x msec sleep for y msec and so on, indefinitely.
Default: 0
--netid [3..15 | 18] NETWORK ID. Note: PARAMETER values depend on NETWORK ID. Default: 18
--parameter [7..11,7..9,1..4,4..24]
PARAMETER. Set the RF parameters Spreading Factor, Bandwidth, Coding Rate, Preamble. Spreading factor 7..11, default 9.
Bandwidth 7..9, where 7 is 125 KHz (only if spreading factor is in 7..9) ; 8 is 250 KHz (only if spreading factor is in
7..10) ; 9 is 500 KHz (only if spreading factor is in 7..11). Default bandwidth is 7. Coding rate is 1..4, default 4.
Preamble is 4..25 if the NETWORK ID is 18 ; otherwise the preamble must be 12. Default: 9,7,1,12
--echo Retransmit received message
serial port config:
--port [/dev/ttyS0../dev/ttyS999 | /dev/ttyUSB0../dev/ttyUSB999 | COM0..COM999]
Serial port device name. Default: /dev/ttyS0
--baud (300 | 1200 | 4800 | 9600 | 19200 | 28800 | 38400 | 57600 | 115200)
Serial port baudrate. Default: 115200pi@raspberrypi: ~ /RYLR998-LoRa$ python3 rylr998.py --pwr 22 --port /dev/ttyS0 --band 902687500 --netid 6 pip install asyncio и так далее.
Соединения GPIO следующие:
Предупреждение: поймите это неправильно, и вы можете жарить свою Raspberry Pi 4 и свой модуль REYAX RYLR998 LORA®. У меня не было проблем, нокаутируйте Вуд, но лицензия MIT поставляется без гарантии. Проверьте свои соединения! Ни при каких обстоятельствах 5 В к модулю RYLR998 LORA®. Только 3,3 В.
Убедитесь, что логин оболочка над последовательным портом отключена, но серийный порт включен. В sudo raspi-config выберите параметры взаимодействия, затем выберите Serial. Ответьте «Нет» на », вы бы хотели, чтобы оболочка входа была доступна по сериалу?» и ответьте «Да», чтобы «вам понравилось, чтобы вам было включено аппаратное обеспечение последовательного порта?».
Отключить Bluetooth в /boot/config.txt , добавившись
disable-bt=1
enable-uart=1 Отключить сервис Bluetooth с
sudo systemctl disable hciuart.serviceuart1 с объектом наложения дерева устройств перед запуском кода. Я делаю это в /etc/rc.local с sudo dtoverlay uart1Я рекомендую REYAX RYLS135 USB до 1,8 В/3,3 В/5 В моста UART UART, доступный от Amazon и других поставщиков.
Подобно GPIO, только VDD переходит к выходу 3,3 В конвертера; RX и TX заменяются, как обычно; и GND идет в GND. Смотрите картинки ниже.


asyncio.BoundedSemaphore() на логический флаг.waitForReply достаточно.xcvr(...) : eloop = urwid . AsyncioEventLoop ( loop = asyncio . get_event_loop ())
uloop = urwid . MainLoop ( widget , event_loop = eloop )
uloop . start () # main_loop.py suggests using this instead of run(). и xcvr(...) перед raise KeyboardInterrupt
uloop . stop ()xcvr(stdscr) , один входной символ за раз, как функция состояния и текущего входного символа.refresh() при изменении окна, мы называем win.noutrefresh() и устанавливаем грязный бит.curses.doupdate() , и грязный бит сбрасывается. Это оптимизация.Brownlee, J., Ph.D. (2022). Python Asyncio Jump-Start: асинхронное программирование и неблокирующий ввод/вывод с Coroutines (Vol. 7, 7 томов., Серия Python Complorurence Jump-Start). Получено 22 января 2023 года с https://superfastpython.com/python-asyncio-jump-start/ isbn-13 979-8361197620
Проклятия-обработка терминалов для дисплеев характерных клеток
«REYAX RYLR998 RYLR498 LORA® AT Command Guide» (C) 2021 REYAX Technology Co., Ltd. Получено 22 января 2023 года, по адресу https://reyax.com//upload/products_download/download_file/lora_at_command_rylr998_rylr498_en.pdf
Марк и логотип Lora® - товарные знаки Semtech Corporation или ее филиалов.

На этом скриншоте показана сеанс MobaxTram, работающий на программе rlyr998.py . Желтый текст - это отправитель. Полученный текст - пурпурный. Когда rylr998.py обнаруживает полученный текст, индикатор «Lora» мигает зеленый, если сообщение достаточно длинное; Передача текста мигает индикатор «Лора» красным. Значения ADDR (адрес), RSSI и SNR представлены последним полученным сообщением. Текстовые сообщения ограничены 40 символами (в этой версии).
Это работа в процессе. Я медленно и сознательно уделяю своим временем функции дисплея, похожих на IRC, с библиотекой Python Cryses со всеми причитающимися ленивцами, настолько медленно, что меня уволят и будут уволены, если бы я делал это профессионально; пролетел и изгнал без степени и лодочнику хищных частных студенческих ссуд по уротевым процентным ставкам, если я учился в колледже; и защищен и развернулся, если бы я был академиком. Я не связан с Semtech Corporation.