33cm 밴드 REYAX RYLR998 LORA® 모듈을 사용하여 2 방향 문자 메시지를위한 파이썬 프로그램 :
여기에는 스레드가 없으며 비동기 비 블로킹 I/O 호출 만 있습니다.
참고 : RYLR998을 Reyax Ryls135 USB에 연결하는 것이 좋습니다. 이 하드웨어와 Raspberry Pi 4 (또는 5- 아직 테스트되지 않은)를 사용하면 소프트웨어는 /boot/config.txt 의 수정없이 Digipi Appliance 소프트웨어와 호환됩니다.
경고 : Windows에는 Python 3.11의 curses.set_escdelay() 구현하지 않는 windows-curses 필요합니다. 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 RYLR998 LORA® 모듈을 볶을 수 있습니다. 나는 문제가 없었고, 우드를 노크했지만 MIT 라이센스에는 보증이 제공되지 않습니다. 연결을 확인하십시오! 어떠한 상황에서도 RYLR998 LORA® 모듈에 5V를 적용하십시오. 3.3V 만.
직렬 포트 위의 로그인 쉘이 비활성화되어 있는지 확인하지만 직렬 포트가 활성화되어 있는지 확인하십시오. sudo raspi-config 에서 인터페이스 옵션을 선택한 다음 직렬을 선택하십시오. "아니오"대답 "로그인 쉘에 액세스 할 수 있도록 하시겠습니까?" 그리고 "예"에 대답하십시오.
추가하여 /boot/config.txt 에서 bluetooth를 비활성화하십시오
disable-bt=1
enable-uart=1 Bluetooth 서비스를 비활성화하십시오
sudo systemctl disable hciuart.serviceuart1 활성화하십시오. 나는 /etc/rc.local 에서 이것을한다 sudo dtoverlay uart1Amazon 및 기타 공급 업체에서 제공하는 REYAX RYLS135 USB를 1.8V/3.3V/5V TTL UART Bridge로 권장합니다.
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 : 코 루틴이있는 비동기 프로그래밍 및 비 차단 I/O (Vol. 7, 7 Vols., Python 동시성 점프 스타트 시리즈). 2023 년 1 월 22 일 https://superfastpython.com/python-asyncio-jump-start/ ISBN-13 979-8361197620에서 검색했습니다
저주-문자 세포 디스플레이의 터미널 처리
"REYAX RYLR998 RYLR498 LORA®에서 명령 안내서"(C) 2021 Reyax Technology Co., Ltd. 2023 년 1 월 22 일 https://reyax.com//upload/products_download/download_file/lora_at_command_rylr998_rylr498_en.pdf에서 검색했습니다
LORA® 마크 및 로고는 Semtech Corporation 또는 그 계열사의 상표입니다.

이 스크린 샷은 rlyr998.py 프로그램을 실행하는 MOBAXTER 세션을 보여줍니다. 노란색 텍스트는 발신자의 텍스트입니다. 받은 텍스트는 마젠타입니다. rylr998.py가 수신 된 텍스트를 감지하면 메시지가 충분히 길면 "lora"표시기가 녹색으로 깜박입니다. 텍스트의 전송은 "lora"표시기를 빨간색으로 깜박입니다. 마지막 수신 메시지의 addr (주소), RSSI 및 SNR 값이 표시됩니다. 문자 메시지는 40 자로 제한됩니다 (이 버전에서).
이것은 진행중인 작업입니다. 나는 Python Curses 라이브러리와 함께 IRC와 같은 디스플레이 기능을 추가하는 데 시간을내어 모든 기한 과도하게 천천히 고의적으로 이루어 지므로 천천히 전문적으로 해고 할 때 해고되고 블랙리스트에 올랐습니다. 내가 대학에있을 때는 유용한 이자율로 약정과 약탈 적 사립 학생 대출의 보트로 배치를받지 않고 추방되었습니다. 내가 학계 인 경우 손상되고 해제되었습니다. 나는 Semtech Corporation과 제휴하지 않습니다.