使用33厘米频段Reyax Rylr998Lora®模块的Python程序,用于以下方式:
这里没有线程,只有异步的非阻滞I/O调用。
注意:我建议将Rylr998连接到Reyax Ryls135 USB,至1.8V/3.3V/5V TTL UART桥,可从亚马逊获得。使用此硬件和Raspberry Pi 4(或5-尚未测试),该软件与Digipi Appliance软件兼容,而无需修改/boot/config.txt 。
警告:Windows需要windows-curses ,该Windows curses the python 3.11起不实现curses.set_escdelay() 。在display.py中注释cur.set_escdelay(1) ,并自行运行。文本处理在Windows中是不稳定的,而set_escdelay()函数丢失。如果您在Windows中的WSL2下在Ubuntu或Debian下运行,您将不会遇到此问题。
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 Rylr998Lora®模块。敲木,我没有问题,但是麻省理工学院的许可证没有保修。检查您的连接!在任何情况下,在Rylr998Lora®模块上都有5V。只有3.3V。
确保禁用串行端口上的登录外壳,但启用了串行端口。在sudo raspi-config中,选择接口选项,然后选择串行。回答“否”对“您想让登录外壳可以通过串行访问?”并回答“是”,以“您喜欢启用串行端口硬件?”。
/boot/config.txt附加
disable-bt=1
enable-uart=1 禁用蓝牙服务
sudo systemctl disable hciuart.serviceuart1 。我在/etc/rc.local中这样做sudo dtoverlay uart1我建议Reyax Ryls135 USB至1.8V/3.3V/5V TTL UART桥,可从亚马逊和其他供应商获得。
与GPIO相似,只有VDD进入转换器的3.3V输出。 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的非块I/O(第7卷第7卷,第7卷,Python confistrency jump-start Series)。于2023年1月22日从https://superfastpython.com/python-asyncio-jump-start/ ISBN-13 979-8361197620检索
诅咒 - 字符细胞显示器的终端处理
“ Reyax Rylr998 Rylr498Lora®在指挥指南”(C)2021 Reyax Technology Co。,Ltd。从https://reyax.com//upload/products_download/download/download_file/lora_at_command_rylr998_rylr498_en.en.pdf检索,从https://reyax.com//upload/products_download/download/download/download_file/download_file/products_download/download/download_file/products_download/products_download/
Lora®Mark和徽标是Semtech Corporation或其分支机构的商标。

此屏幕截图显示了运行rlyr998.py程序的mobaxterm会话。黄色文字是发件人的文字。收到的文字是洋红色。当rylr998.py检测到收到的文本时,如果消息足够长,则“ lora”指示器会闪烁绿色;文本的传输闪烁“ Lora”指示器红色。显示了最后一个接收的消息的ADDR(地址),RSSI和SNR值。短信限制为40个字符(此版本)。
这是一项正在进行的工作。我要花时间在Python诅咒库中添加类似IRC的显示功能,并刻意用所有的懒惰来慢慢地,慢慢地,如果我在专业上进行此操作,我将被解雇和黑名单;如果我在大学上大学,则不受学位和一大量掠夺性私人学生贷款的驱逐和驱逐出境;如果我是院士,则被拖累和解冻。我不隶属于Semtech Corporation。