

여기에서 생성자의 예는 UART 인터페이스를 통과해야하며 (원하는 경우) 보조 핀, M0 및 M1을 통과해야합니다.
라이브러리를 설치하려면 다음 명령을 실행합니다.
pip install ebyte-lora-e22-rpi from lora_e22 import LoRaE22
import serial
loraSerial = serial . Serial ( '/dev/serial0' ) #, baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
lora = LoRaE22 ( '400T22D' , loraSerial , aux_pin = 18 , m0_pin = 23 , m1_pin = 24 ) code = lora . begin ()
print ( "Initialization: {}" , ResponseStatusCode . get_description ( code )) from lora_e22 import LoRaE22 , print_configuration
from lora_e22_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( "Retrieve configuration: {}" , ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )결과
# ----------------------------------------
# HEAD : 0xc1 0x0 0x9
#
# AddH : 0x0
# AddL : 0x0
#
# Chan : 23 -> 433
#
# SpeedParityBit : 0b0 -> 8N1 (Default)
# SpeedUARTDatte : 0b11 -> 9600bps (default)
# SpeedAirDataRate : 0b10 -> 2.4kbps (default)
#
# OptionSubPacketSett: 0b0 -> 240bytes (default)
# OptionTranPower : 0b0 -> 22dBm (Default)
# OptionRSSIAmbientNo: 0b0 -> Disabled (default)
#
# TransModeWORPeriod : 0b11 -> 2000ms (default)
# TransModeTransContr: 0b0 -> WOR Receiver (default)
# TransModeEnableLBT : 0b0 -> Disabled (default)
# TransModeEnableRSSI: 0b0 -> Disabled (default)
# TransModeEnabRepeat: 0b0 -> Disabled (default)
# TransModeFixedTrans: 0b0 -> Transparent transmission (default)
# ----------------------------------------
desidered 매개 변수 만 설정할 수 있고 다른 하나는 기본값으로 설정됩니다.
configuration_to_set = Configuration ( '400T22D' )
configuration_to_set . ADDL = 0x02
configuration_to_set . ADDH = 0x01
configuration_to_set . CHAN = 23
configuration_to_set . NETID = 0
configuration_to_set . SPED . airDataRate = AirDataRate . AIR_DATA_RATE_100_96
configuration_to_set . SPED . uartParity = UARTParity . MODE_00_8N1
configuration_to_set . SPED . uartBaudRate = UARTBaudRate . BPS_9600
configuration_to_set . OPTION . subPacketSetting = SubPacketSetting . SPS_064_10
configuration_to_set . OPTION . transmissionPower = TransmissionPower ( '400T22D' ).
get_transmission_power (). POWER_10
# or
# configuration_to_set.OPTION.transmissionPower = TransmissionPower22.POWER_10
configuration_to_set . OPTION . RSSIAmbientNoise = RssiAmbientNoiseEnable . RSSI_AMBIENT_NOISE_ENABLED
configuration_to_set . TRANSMISSION_MODE . WORTransceiverControl = WorTransceiverControl . WOR_TRANSMITTER
configuration_to_set . TRANSMISSION_MODE . enableLBT = LbtEnableByte . LBT_DISABLED
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED
configuration_to_set . TRANSMISSION_MODE . enableRepeater = RepeaterModeEnableByte . REPEATER_DISABLED
configuration_to_set . TRANSMISSION_MODE . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
configuration_to_set . TRANSMISSION_MODE . WORPeriod = WorPeriod . WOR_1500_010
configuration_to_set . CRYPT . CRYPT_H = 1
configuration_to_set . CRYPT . CRYPT_L = 1
# Set the new configuration on the LoRa module and print the updated configuration to the console
code , confSetted = lora . set_configuration ( configuration_to_set )각 매개 변수에 대한 상수 클래스를 만듭니다. 여기에서 AirDatarate, UARTBAudrate, uartparity, TransmissionPower, Forc
여기에서 보내는 데이터의 예는 문자열을 전달할 수 있습니다.
lora . send_transparent_message ( 'pippo' ) lora . send_fixed_message ( 0 , 2 , 23 , 'pippo' )여기서 수신자 코드
while True :
if lora . available () > 0 :
code , value = lora . receive_message ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
time . sleep ( 2 )RSSI를 받으려면 구성에서 활성화해야합니다.
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED수신자 _message 메소드에서 플래그를 true로 설정합니다.
code , value , rssi = lora . receive_message ( True )결과
Success!
pippo
여기에서 보내는 데이터의 예는 사전을 전달할 수 있습니다.
lora . send_transparent_dict ({ 'pippo' : 'fixed' , 'pippo2' : 'fixed2' }) lora . send_fixed_dict ( 0 , 0x01 , 23 , { 'pippo' : 'fixed' , 'pippo2' : 'fixed2' })여기서 수신자 코드
while True :
if lora . available () > 0 :
code , value = lora . receive_dict ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
print ( value [ 'pippo' ])
time . sleep ( 2 )RSSI를 받으려면 구성에서 활성화해야합니다.
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDlecce_dict 메소드에서 플래그를 true로 설정하십시오.
code , value , rssi = lora . receive_dict ( True )결과
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
E22
| 핀 번호 | 핀 항목 | 핀 방향 | 핀 응용 프로그램 |
|---|---|---|---|
| 1 | M0 | 입력 (약한 풀업) | M1과의 작업 및 4 가지 작동 모드를 결정하십시오. 플로팅이 허용되지 않으며 접지 될 수 있습니다. |
| 2 | M1 | 입력 (약한 풀업) | M0과의 작업 및 4 가지 작동 모드를 결정하십시오. 플로팅이 허용되지 않으며 접지 될 수 있습니다. |
| 3 | RXD | 입력 | TTL UART 입력은 외부 (MCU, PC) TXD 출력에 연결합니다. 오픈 드레인 또는 풀업 입력으로 구성 할 수 있습니다. |
| 4 | TXD | 산출 | TTL UART 출력은 외부 RXD (MCU, PC) InputPin에 연결됩니다. 오픈 드레인 또는 푸시 풀 출력으로 구성 할 수 있습니다 |
5 | 보조 | 산출 | Indicare lo stato di funzionamento del modulo e riattivare l 'mcu esterno 당. Durante la procedura di inizializziane di autocontrollo, il pin emette una bassa tensione. può essere configurato come uscita open-drain o 출력 푸시 풀 (è consentito non metterlo a terra, ma se hai recipei, ad esempio ti si freeze il dispositivo è piceribile mettere una retistenza di pull-up da 4.7ko meglio collegar al ispositivo). |
| 6 | VCC | 전원 공급 장치 2.3V ~ 5.5V DC | |
| 7 | Gnd | 지면 |
보시다시피 M0 및 M1 핀을 통해 다양한 모드를 설정할 수 있습니다.
| 방법 | M1 | M0 | 설명 |
|---|---|---|---|
| 정상 | 0 | 0 | UART 및 무선 채널이 개방되어 있으며 투명 전송이 켜져 있습니다 (특수 명령을 통해 공기를 통한 구성 지원) |
| WOR 모드 | 0 | 1 | WOR 송신기 및 WOR 수신기로 정의 할 수 있습니다 |
| 구성 모드 | 1 | 0 | 사용자는 직렬 포트를 통해 레지스터에 액세스하여 모듈의 작동 상태를 제어 할 수 있습니다. |
| 깊은 수면 모드 | 1 | 1 | 수면 모드 |
보시다시피 정적 방식으로 사용할 수있는 핀이 있지만, 라이브러리에 연결하면 성능을 얻고 소프트웨어를 통해 모든 모드를 제어 할 수 있지만 다음에 더 잘 설명 할 것입니다.
| addh | 모듈의 높은 주소 바이트 (기본 00H) | 00H-FFH |
| addl | 모듈의 낮은 주소 바이트 (기본 00H) | 00H-FFH |
| Sped | 데이터 속도 패리티 비트 및 공기 데이터 속도에 대한 정보 | |
| 찬 | Communication Channel (410m + Chan*1m), 기본 17H (433MHz), 433MHz 장치에만 유효합니다. | 00H-1FH |
| 옵션 | 전송 유형, 패킷 크기, 특수 메시지가 허용됩니다 | |
| Transmission_Mode | 전송 모드를 지정하는 많은 매개 변수입니다 |
옵션
전송 유형, 풀업 설정, 모닝 타임, FEC, 전송 전력
UART PARITY BIT : UART 모드는 커뮤니케이션 당사자마다 다를 수 있습니다.
| 4 | 3 | UART 패리티 비트 | 일정한 가치 |
| 0 | 0 | 8n1 (기본값) | Mode_00_8N1 |
| 0 | 1 | 8o1 | Mode_01_8O1 |
| 1 | 0 | 8 E1 | Mode_10_8E1 |
| 1 | 1 | 8n1 (00) | Mode_11_8N1 |
UART BAUD RATE : UART BAUD 비율은 커뮤니케이션 당사자마다 다를 수 있으며 UART Baud 요율은 무선 전송 매개 변수와 관련이 없으며 무선 전송 / 수신 기능에 영향을 미치지 않습니다.
| 7 | 6 | 5 | TTL UART BAUD rate (bps) | 일정한 가치 |
| 0 | 0 | 0 | 1200 | UART_BPS_1200 |
| 0 | 0 | 1 | 2400 | UART_BPS_2400 |
| 0 | 1 | 0 | 4800 | UART_BPS_4800 |
| 0 | 1 | 1 | 9600 (기본값) | UART_BPS_9600 |
| 1 | 0 | 0 | 19200 | UART_BPS_19200 |
| 1 | 0 | 1 | 38400 | UART_BPS_38400 |
| 1 | 1 | 0 | 57600 | UART_BPS_57600 |
| 1 | 1 | 1 | 115200 | UART_BPS_115200 |
공기 데이터 속도 : 공기 데이터 속도가 낮을수록 전송 거리가 길고, 방해 성능이 향상되고, 전송 시간이 길어지면, 공기 데이터 속도는 두 커뮤니케이션 당사자 모두에게 동일하게 유지해야합니다.
| 2 | 1 | 0 | 공기 데이터 속도 (BPS) | 일정한 가치 |
| 0 | 0 | 0 | 0.3k | air_data_rate_000_03 |
| 0 | 0 | 1 | 1.2k | air_data_rate_001_12 |
| 0 | 1 | 0 | 2.4K (기본값) | air_data_rate_010_24 |
| 0 | 1 | 1 | 4.8k | air_data_rate_011_48 |
| 1 | 0 | 0 | 9.6k | air_data_rate_100_96 |
| 1 | 0 | 1 | 19.2k | air_data_rate_101_192 |
| 1 | 1 | 0 | 38.4K | air_data_rate_110_384 |
| 1 | 1 | 1 | 62.5k | air_data_rate_111_625 |
#### 서브 패킷 설정
이것은 패킷의 최대 렌트입니다.
데이터가 서브 패킷 길이보다 작을 때, 수신 끝의 직렬 출력은 중단되지 않은 연속 출력입니다. 데이터가 서브 패킷 길이보다 큰 경우, 수신 최종 직렬 포트가 하위 패킷을 출력합니다.
| 7 | 6 | 패킷 크기 | 일정한 가치 |
| 0 | 0 | 240 바보 (기본값) | SPS_240_00 |
| 0 | 1 | 128 바디 | SPS_128_01 |
| 1 | 0 | 64 비트 | SPS_064_10 |
| 1 | 1 | 32 바디 | SPS_032_11 |
#### RSSI 주변 노이즈 활성화
이 명령은 RSSI의 관리 유형을 활성화/비활성화 할 수 있으며 원격 구성을 관리하는 것이 중요합니다. 메시지의 RSSI 매개 변수가 아닙니다.
활성화되면 C0 C1 C2 C3 명령을 전송 모드로 보내거나 WER 전송 모드로 보내어 레지스터를 읽을 수 있습니다. 레지스터 0x00 : 현재 주변 노이즈 RSSI 레지스터 0x01 : RSSI 데이터가 마지막으로 수신 된 경우 RSSI.
| 5 | RSSI 주변 노이즈 활성화 | 일정한 가치 |
| 0 | 할 수 있게 하다 | rssi_ambient_noise_enabled |
| 1 | 비활성화 (기본값) | rssi_ambient_noise_disabled |
#### RSSI 활성화
활성화되면 모듈은 무선 데이터를 수신하고 직렬 포트 TXD를 통해 출력 후 RSSI 강도 바이트를 따릅니다.
#### 전송 유형
전송 모드 : 고정 된 전송 모드에서 각 사용자 데이터 프레임의 처음 3 바이트는 높은/낮은 주소 및 채널로 사용할 수 있습니다. 모듈은 전송시 주소와 채널을 변경합니다. 프로세스를 완료 한 후 원래 설정으로 되돌아갑니다.
#### 리피터 기능을 활성화합니다
#### 전송 전에 데이터를 모니터링합니다
활성화되면 전송되기 전에 무선 데이터를 모니터링하여 어느 정도 간섭을 피할 수 있지만 데이터 지연을 유발할 수 있습니다.
#### WOR
WER 송신기 : 기능을 수신하고 전송하는 모듈이 켜지고 데이터를 전송할 때 모닝 코드가 추가됩니다. 수신이 켜져 있습니다.
수신기 : 모듈은 데이터를 전송할 수 없으며 모니터링 모드에서 작동합니다. 모니터링 기간은 다음과 같습니다 (WOR 사이클)은 많은 전력을 절약 할 수 있습니다.
#### Wor Cycle
WOR가 전송중인 경우 : WOR 수신기가 무선 데이터를 수신하고 직렬 포트를 통해 출력 한 후에는 1000ms를 기다리기 전에 WOR에 다시 들어갑니다. 사용자는 직렬 포트 데이터를 입력 하고이 기간 동안 무선을 통해 반환 할 수 있습니다. 각 직렬 바이트는 1000ms로 새로 고침됩니다. 사용자는 1000ms 이내에 첫 바이트를 전송해야합니다.
먼저 우리는 수신 버퍼에 무언가가 있는지 확인하기 위해 간단하지만 유용하게 방법을 소개해야합니다.
int available ();그것은 단순히 현재 스트림에 몇 바이트 수를 반환합니다.
정상/투명 전송 모드는 동일한 주소와 채널을 가진 모든 장치에 메시지를 보내는 데 사용됩니다.
LORA E22 전송 시나리오, 라인은 채널입니다
고정 전송에는 더 많은 시나리오가 있습니다
LORA E22 전송 시나리오, 라인은 채널입니다
이제 당신은 당신의 일을 할 모든 정보를 가지고 있지만, 모든 가능성을 더욱 위상하고 더 나은 현실적인 예를 보여주는 것이 중요하다고 생각합니다.
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E22 장치 : 설정 및 기본 사용
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E22 장치 : 라이브러리
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E22 장치 : 구성
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E22 장치 : 고정 변속기 및 RSSI
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E22 장치 : 전력 저장 및 구조화 된 데이터 전송
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E22 장치 : 리피터 모드 및 원격 설정
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E22 장치 : WOR 마이크로 컨트롤러 및 Arduino Shield
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E22 장치 : WOR 마이크로 컨트롤러 및 Wemos D1 Shield
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E22 장치 : WOR 마이크로 컨트롤러 및 ESP32 DEV V1 SHIELD