

라이브러리를 설치하려면 다음 명령을 실행합니다.
pip install ebyte-lora-e220여기에서 생성자의 예는 UART 인터페이스를 통과해야하며 (원하는 경우) 보조 핀, M0 및 M1을 통과해야합니다.
from lora_e220 import LoRaE220
from machine import UART
uart2 = UART ( 2 )
lora = LoRaE220 ( '400T22D' , uart2 , aux_pin = 15 , m0_pin = 21 , m1_pin = 19 ) code = lora . begin ()
print ( "Initialization: {}" , ResponseStatusCode . get_description ( code )) from lora_e220 import LoRaE220 , print_configuration
from lora_e220_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( "Retrieve configuration: {}" , ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )결과
----------------------------------------
Initialization: {} Success
Retrieve configuration: {} Success
----------------------------------------
HEAD : 0xc1 0x0 0x8
AddH : 0x0
AddL : 0x0
Chan : 23 -> 433
SpeedParityBit : 0b0 -> 8N1 (Default)
SpeedUARTDatte : 0b11 -> 9600bps (default)
SpeedAirDataRate : 0b10 -> 2.4kbps (default)
OptionSubPacketSett: 0b0 -> 200bytes (default)
OptionTranPower : 0b0 -> 22dBm (Default)
OptionRSSIAmbientNo: 0b0 -> Disabled (default)
TransModeWORPeriod : 0b11 -> 2000ms (default)
TransModeEnableLBT : 0b0 -> Disabled (default)
TransModeEnableRSSI: 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 . 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 . 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 . OPTION . subPacketSetting = SubPacketSetting . SPS_064_10
configuration_to_set . TRANSMISSION_MODE . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
configuration_to_set . TRANSMISSION_MODE . WORPeriod = WorPeriod . WOR_1500_010
configuration_to_set . TRANSMISSION_MODE . enableLBT = LbtEnableByte . LBT_DISABLED
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED
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 )
utime . sleep_ms ( 2000 )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' ])
utime . sleep_ms ( 2000 )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
LORA SMART HOME (LLCC68)은 중간 범위 실내 및 실내에서 실외 무선 응용 프로그램을위한 Sub-GHZ LORA® RF 트랜시버입니다. SPI 인터페이스. 핀 투 핀은 SX1262와 호환됩니다. SX1261, SX1262, SX1268 및 LLCC68은 4.2 MA의 활성 수신 전류 소비로 긴 배터리 수명을 위해 설계되었습니다. SX1261은 최대 +15 DBM을 전송할 수 있으며 SX1262, SX1268 및 LLCC68은 매우 효율적인 통합 전력 증폭기와 함께 최대 +22 dBM을 전송할 수 있습니다.
이 장치는 LPWAN 사용 사례에 대한 LORA 변조 및 레거시 사용 사례에 대한 FSK 변조를 지원합니다. 이 장치는 소비자 사용에 대한 다양한 응용 프로그램 요구 사항을 충족하도록 구성 가능합니다. 이 장치는 LORA Alliance®에서 발표 한 Lorawan® 사양에서 사용하는 SEMTECH 트랜시버와 호환되는 LORA 변조를 제공합니다. 이 라디오는 ETSI EN 300 220, FCC CFR 47 Part 15, China Regulatory Riarks 및 Japanese ARIB T-108을 포함하되 이에 국한되지 않는 라디오 규정 준수를 목표로하는 시스템에 적합합니다. 150MHz에서 960MHz까지의 지속적인 주파수 커버리지를 통해 전 세계의 모든 주요 서브 GHZ ISM 대역을 지원할 수 있습니다.
| LLCC68 | SX1278-SX1276 | |
|---|---|---|
| 거리 | > 11km | 8km |
| 요금 (로라) | 1.76kbps - 62.5kbps | 0.3kbps - 19.2kbps |
| 수면 전력 소비 | 2µA | 5µA |
Arduino, ESP32 또는 ESP8266 용 Ebyte Lora E220 LLCC68 장치의 라이브러리.
| 핀 번호 | 핀 항목 | 핀 방향 | 핀 응용 프로그램 |
|---|---|---|---|
| 1 | M0 | 입력 (약한 풀업) | M1과 협력하고 4 가지 운영 모드를 결정하십시오. 플로팅은 허용되지 않습니다. 땅에있을 수 있습니다. |
| 2 | M1 | 입력 (약한 풀업) | M0과 협력하고 4 가지 운영 모드를 결정하십시오. 플로팅은 허용되지 않습니다. 땅에있을 수 있습니다. |
| 3 | RXD | 입력 | TTL UART 입력 외부 (MCU, PC) TXD 출력 핀에 연결합니다. 오픈 드레인 또는 풀업 입력으로 구성 할 수 있습니다. |
| 4 | TXD | 산출 | TTL UART 출력 외부 RXD (MCU, PC) 입력 핀에 연결합니다. 오픈 드레인 또는 푸시 풀 출력으로 구성 할 수 있습니다 |
5 | 보조 | 산출 | 모듈의 작동 상태를 나타내고 외부 MCU를 깨우십시오. 자체 점검 초기화 절차 중에 핀은 낮은 레벨을 출력합니다. Open-Drain 또는 Push-Pull 출력으로 구성 할 수 있습니다 (플로팅이 허용됨). |
| 6 | VCC | 전원 공급 장치 3V ~ 5.5V DC | |
| 7 | Gnd | 지면 |
보시다시피 M0 및 M1 핀을 통해 다양한 모드를 설정할 수 있습니다.
| 방법 | M1 | M0 | 설명 |
|---|---|---|---|
| 정상 | 0 | 0 | UART 및 무선 채널이 열려 있으며 투명 전송이 켜져 있습니다. |
| 송신기 | 0 | 1 | 송신기 |
| 수신기 | 1 | 0 | WOR 리시버 (Apper Up Over Air의지지) |
| 깊은 수면 모드 | 1 | 1 | 모듈은 잠자리에 들어갑니다 (매개 변수를 구성 할 때 자동으로 깨어납니다) |
일부 핀은 정적으로 사용할 수 있지만 마이크로 컨트롤러에 연결하여 라이브러리에서 구성하면 성능을 얻고 소프트웨어를 통해 모든 모드를 제어 할 수 있습니다. 그럼에도 불구하고 우리는 다음에 더 잘 설명 할 것입니다.
내가 이미 말했듯이, 모든 핀을 마이크로 컨트롤러의 출력에 연결하는 것은 필수적이지 않습니다. 원하는 구성을 얻으려면 M0 및 M1 핀을 높거나 낮게 넣을 수 있습니다. AUX를 연결하지 않으면 라이브러리는 작업이 완료되도록 합리적인 지연을 설정합니다 ( 장치가 얼어 붙는 데 어려움이있는 경우 풀업 4.7K 저항 또는 장치에 더 잘 연결해야합니다. ).
데이터를 전송하는 경우 데이터를 사용하여 외부 MCU를 깨우고 데이터 전송 마감에서 높은 리턴을 할 수 있습니다.
수신 할 때, 버퍼가 비어 있으면 보조가 낮아지고 높게 반환됩니다.
또한 정기적 인 작동 (파워 온 및 수면/프로그램 모드)을 복원하기 위해 자체 체크에 사용됩니다.
ESP8266 연결 스키마는 동일한 전압의 논리 통신 (3.3V)에서 작동하기 때문에 더 간단합니다.
우수한 안정성을 얻기 위해 풀업 저항 (4,7kohm)을 추가하는 것이 필수적입니다.
| E22 | ESP8266 |
|---|---|
| M0 | D7 |
| M1 | D6 |
| TX | 핀 D2 (풀업 4,7kΩ) |
| RX | 핀 D3 (풀업 4,7kΩ) |
| 보조 | 핀 D5 (풀업 4,7kΩ) |
| VCC | 5V (그러나 3.3V에서 더 적은 전력으로 작동) |
| Gnd | Gnd |
ESP32에 대한 유사한 연결 스키마이지만 RX 및 TX의 경우 기본적으로 ESP32에는 소프트웨어가 없지만 3 개의 직렬이 있기 때문에 RX2 및 TX2를 사용합니다.
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| M1 | D19 |
| TX | PIN RX2 (풀업 4,7kΩ) |
| RX | PIN TX3 (풀업 4,7kΩ) |
| 보조 | PIN D18 (풀업 4,7kΩ) (D15에서 일어나기) |
| VCC | 5V (그러나 3.3V에서 더 적은 전력으로 작동) |
| Gnd | Gnd |
| M0 | 2 (전압 분배기) |
| M1 | 3 (전압 분배기) |
| TX | 핀 14 TX (풀업 4,7kΩ) |
| RX | 핀 13 RX (풀업 4,7kΩ) |
| 보조 | 핀 1 (풀업 4,7kΩ) |
| VCC | 5V |
| Gnd | Gnd |
여기에서 PCB를 주문할 수 있습니다
가이드의 6 부분에 대한 지침 및 어셈블리 비디오
여기에서 PCB를 주문할 수 있습니다
가이드의 6 부분에 대한 지침 및 어셈블리 비디오
LORA 또는 장거리 무선 데이터 원격 측정법은 NRF24L01 (433MHz, 868 MHz 또는 NRF24L01의 경우 2.4GHz에 대해 916MHz)보다 낮은 주파수에서 작동하는 SEMTECH가 개척 한 기술입니다.
| 이름 | 설명 | 주소 |
|---|---|---|
| addh | 모듈의 높은 주소 바이트 (기본 00h) | 00H |
| addl | 모듈의 낮은 주소 바이트 (기본 00h) | 01H |
| Sped | 데이터 속도 패리티 비트 및 공기 데이터 속도에 대한 정보 | 02H |
| 옵션 | 전송 유형, 패킷 크기, 특별한 메시지를 허용합니다 | 03H |
| 찬 | Communication Channel (410m + Chan*1m), 기본 17H (433MHz), 433MHz 장치에 대해서만 유효합니다. | 04H |
| 옵션 | 전송 유형, 패킷 크기, 특별한 메시지를 허용합니다 | 05H |
| Transmission_Mode | 전송 모드를 지정하는 많은 매개 변수 | 06H |
| 토굴 | 차단을 피하기위한 암호화 | 07H |
UART PARITY BIT : UART 모드는 커뮤니케이션 당사자마다 다를 수 있습니다.
| UART 패리티 비트 | 일정한 가치 |
|---|---|
| 8n1 (기본값) | Mode_00_8N1 |
| 8o1 | Mode_01_8O1 |
| 8e1 | Mode_10_8E1 |
| 8n1 (00) | Mode_11_8N1 |
UART BAUD RAPE : UART BAUD 요금은 커뮤니케이션 당사자마다 다를 수 있지만 (추천하지는 않았습니다). UART 보드 속도는 무선 전송 매개 변수와 관련이 없으며 무선 전송/수신 기능에 영향을 미치지 않습니다.
| TTL UART BAUD rate (bps) | 일정한 가치 |
|---|---|
| 1200 | UART_BPS_1200 |
| 2400 | UART_BPS_2400 |
| 4800 | UART_BPS_4800 |
| 9600 (기본값) | UART_BPS_9600 |
| 19200 | UART_BPS_19200 |
| 38400 | UART_BPS_38400 |
| 57600 | UART_BPS_57600 |
| 115200 | UART_BPS_115200 |
공기 데이터 속도 : 공기 데이터 속도가 낮을수록 전송 거리가 길고 간섭 방지 성능이 향상되고 전송 시간이 길어집니다. 공중 데이터 속도는 두 커뮤니케이션 당사자 모두에게 일정해야합니다.
| 공기 데이터 속도 (BPS) | 일정한 가치 |
|---|---|
| 2.4k | air_data_rate_000_24 |
| 2.4k | air_data_rate_001_24 |
| 2.4K (기본값) | air_data_rate_010_24 |
| 4.8k | air_data_rate_011_48 |
| 9.6k | air_data_rate_100_96 |
| 19.2k | air_data_rate_101_192 |
| 38.4K | air_data_rate_110_384 |
| 62.5k | air_data_rate_111_625 |
이것은 패킷의 최대 길이입니다.
데이터가 서브 포켓 길이보다 작을 때, 수신 끝의 직렬 출력은 중단되지 않은 연속 출력입니다. 수신 최종 직렬 포트는 데이터가 하위 패킷 길이보다 클 때 하위 패킷을 출력합니다.
| 패킷 크기 | 일정한 가치 |
|---|---|
| 200Bytes (기본값) | SPS_200_00 |
| 128 바디 | SPS_128_01 |
| 64 비트 | SPS_064_10 |
| 32 바디 | SPS_032_11 |
이 명령은 RSSI의 관리 유형을 활성화/비활성화 할 수 있으며 원격 구성을 관리해야합니다. 메시지의 RSSI 매개 변수가 아닙니다.
활성화되면 C0, C1, C2, C3 명령을 전송 모드 또는 WER 전송 모드로 보내어 레지스터를 읽을 수 있습니다. 레지스터 0x00 : 현재 주변 노이즈 RSSI 레지스터 0x01 : RSSI 데이터가 마지막으로 수신 된 경우 RSSI.
| RSSI 주변 노이즈 활성화 | 일정한 가치 |
|---|---|
| 할 수 있게 하다 | rssi_ambient_noise_enabled |
| 비활성화 (기본값) | rssi_ambient_noise_disabled |
SO와 같은 정의를 적용 하여이 상수 세트를 변경할 수 있습니다.
#define e220_22 // 기본값을 설정하지 않은 채 값
최대 전력으로 22dBm을 가진 E220에 적용됩니다.
낮은 전원 공급 장치 효율로 인해 저전력 변속기는 권장되지 않습니다.
| 전송 전력 (근사) | 일정한 가치 |
|---|---|
| 22dbm (기본값) | Power_22 |
| 17dBm | Power_17 |
| 13dbm | Power_13 |
| 10dbm | Power_10 |
최대 전력으로 30dbm을 가진 E220에 적용됩니다.
낮은 전원 공급 장치 효율로 인해 저전력 변속기는 권장되지 않습니다.
#e220_30을 정의하십시오
| 전송 전력 (근사) | 일정한 가치 |
|---|---|
| 30dbm (기본값) | Power_30 |
| 27dBM | Power_27 |
| 24dbm | Power_24 |
| 21dbm | Power_21 |
이 정의로 채널 주파수를 구성 할 수도 있습니다.
// 중 하나 #define frequency_433 #define frequency_170 #define frequency_470 #define frequency_868 #define frequency_915
활성화되면 모듈은 무선 데이터를 수신하며 직렬 포트 TXD를 통해 출력 후 RSSI 강도 바이트를 따릅니다.
| RSSI를 활성화합니다 | 일정한 가치 |
|---|---|
| 할 수 있게 하다 | rssi_enabled |
| 비활성화 (기본값) | rssi_disabled |
전송 모드 : 각 사용자 데이터 프레임의 처음 3 바이트는 고정 전송 모드에서 높은/낮은 주소 및 채널로 사용할 수 있습니다. 모듈은 전송 될 때 주소와 채널을 변경합니다. 프로세스를 완료 한 후 원래 설정으로 되돌아갑니다.
| 고정 변속기 활성화 비트 | 일정한 가치 |
|---|---|
| 고정 전송 모드 | ft_fixed_transmission |
| 투명 전송 모드 (기본값) | ft_transparent_transmission |
활성화되면 전송되기 전에 무선 데이터를 모니터링하여 어느 정도 간섭을 피하지만 데이터 지연을 유발할 수 있습니다.
| LBT 활성화 바이트 | 일정한 가치 |
|---|---|
| 할 수 있게 하다 | lbt_enabled |
| 비활성화 (기본값) | lbt_disabled |
WOR가 전송중인 경우 : WOR 수신기가 무선 데이터를 수신하고 직렬 포트를 통해 출력 한 후에는 1000ms를 기다리기 전에 WOR에 다시 들어갑니다. 사용자는 직렬 포트 데이터를 입력 하고이 기간 동안 무선을 통해 반환 할 수 있습니다. 각 직렬 바이트는 1000ms로 새로 고침됩니다. 사용자는 1000ms 이내에 첫 바이트를 전송해야합니다.
| 무선 웨이크 업 시간 | 일정한 가치 |
|---|---|
| 500ms | wake_up_500 |
| 1000ms | wake_up_1000 |
| 1500ms | wake_up_1500 |
| 2000ms (기본값) | wake_up_2000 |
| 2500ms | wake_up_2500 |
| 3000ms | wake_up_3000 |
| 3500ms | wake_up_3500 |
| 4000ms | wake_up_4000 |
먼저, 우리는 수신 버퍼에 무언가가 있는지 확인하기 위해 간단하지만 실용적인 방법을 소개해야합니다.
int availing ();
현재 스트림에 몇 바이트 수를 반환하는 것은 간단합니다.
일반/투명 전송 모드는 동일한 주소와 채널을 가진 모든 장치에 메시지를 보냅니다.
고정 전송에는 더 많은 시나리오가 있습니다
이제 당신은 당신의 일을 할 모든 정보가 있지만, 나는 모든 가능성을 더 잘 이해하기 위해 몇 가지 실제 예를 보여주는 것이 중요하다고 생각합니다.
Github 라이브러리