

Aquí un ejemplo de constructor, debe pasar la interfaz UART y (si lo desea, pero se recomienda) el pin aux, M0 y M1.
Para instalar la biblioteca, ejecute el siguiente comando:
pip install ebyte-lora-e32-rpi from lora_e32 import LoRaE32
import serial
loraSerial = serial . Serial ( '/dev/serial0' ) #, baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
lora = LoRaE32 ( '433T20D' , loraSerial , aux_pin = 18 , m0_pin = 23 , m1_pin = 24 ) code = lora . begin ()
print ( ResponseStatusCode . get_description ( code )) from lora_e32 import LoRaE32 , print_configuration , Configuration
from lora_e32_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )El resultado
----------------------------------------
HEAD : 0b11000000 192
AddH : 0
AddL : 2
Chan : 23 -> 433
SpeedParityBit : 0b0 -> 8N1 (Default)
SpeedUARTDatte : 0b11 -> 9600bps (default)
SpeedAirDataRate : 0b10 -> 2.4kbps (default)
OptionTrans : 0b1 -> Fixed transmission (first three bytes can be used a
s high/low address and channel)
OptionPullup : 0b1 -> TXD, RXD, AUX are push-pulls/pull-ups (default)
OptionWakeup : 0b0 -> 250ms (default)
OptionFEC : 0b1 -> Turn on Forward Error Correction Switch (Default)
OptionPower : 0b0 -> 20dBm (Default)
----------------------------------------
configuration_to_set = Configuration ( '433T20D' )
configuration_to_set . ADDL = 0x02
configuration_to_set . OPTION . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
code , confSetted = lora . set_configuration ( configuration_to_set )El objeto de configuración tiene muchos parámetros.
class Configuration :
class Speed :
def __init__ ( self , model ):
self . model = model
self . airDataRate = AirDataRate . AIR_DATA_RATE_010_24
self . uartBaudRate = UARTBaudRate . BPS_9600
self . uartParity = UARTParity . MODE_00_8N1
class Option :
def __init__ ( self , model ):
self . model = model
self . transmissionPower = TransmissionPower ( self . model ). get_transmission_power (). get_default_value ()
self . fec = ForwardErrorCorrectionSwitch . FEC_1_ON
self . wirelessWakeupTime = WirelessWakeUpTime . WAKE_UP_250
self . ioDriveMode = IODriveMode . PUSH_PULLS_PULL_UPS
self . fixedTransmission = FixedTransmission . TRANSPARENT_TRANSMISSION
class Configuration :
def __init__ ( self , model ):
self . HEAD = 0
self . ADDH = 0
self . ADDL = 0
self . SPED = Speed ( model )
self . CHAN = 23
self . OPTION = Option ( model )Creo una clase de constantes para cada parámetro, aquí una lista: Airdatarate, Uartbaudrate, Uartparity, TransmissionPower, ForwardErrorcorrectionSwitch, Wirelesswakeuptime, IODRIVEMODE, TRANSMISIÓN FIJA
Aquí un ejemplo de datos de envío, puede pasar una cadena
lora . send_transparent_message ( 'pippo' ) lora . send_fixed_message ( 0 , 2 , 23 , 'pippo' )Aquí el código receptor
while True :
if lora . available () > 0 :
code , value = lora . receive_message ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
time . sleep ( 2 )Resultado
Success!
pippo
Aquí un ejemplo de datos de envío, puede aprobar un diccionario
lora . send_transparent_dict ({ 'pippo' : 'fixed' , 'pippo2' : 'fixed2' }) lora . send_fixed_dict ( 0 , 0x01 , 23 , { 'pippo' : 'fixed' , 'pippo2' : 'fixed2' })Aquí el código receptor
while True :
if lora . available () > 0 :
code , value = lora . receive_dict ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
print ( value [ 'pippo' ])
time . sleep ( 2 )Resultado
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
Creo una biblioteca para administrar la serie EBYTE E32 de dispositivos Lora, muy potente, simple y barato dispositivo.
Lora E32-TTL-100
Puede encontrar aquí AliExpress (dispositivo de 3 km) AliExpress (dispositivo de 8 km)
Pueden trabajar a una distancia de 3000m a 8000m, y tienen muchas características y parámetros.
Así que creo esta biblioteca para simplificar el uso.
Consulte mi artículo para obtener un esquema actualizado
Puedes encontrar mi biblioteca aquí.
Para descargar.
Haga clic en el botón Descargas en la esquina superior derecha, cambie el nombre de la carpeta sin comprimir Lora_e32.
Verifique que la carpeta Lora_e32 contenga Lora_e32.cpp y Lora_e32.h.
Coloque la carpeta de biblioteca Lora_e32 su carpeta / bibliotecas /.
Es posible que deba crear la subcarpeta de las bibliotecas si es su primera biblioteca.
Reinicie el ide.
E32 TTL 100
Puedes comprar aquí AliExpress
| Pin No. | Artículo de PIN | Dirección del alfiler | Aplicación PIN |
|---|---|---|---|
| 1 | M0 | Entrada (Plegada débil) | Trabajar con M1 y decidir los cuatro modos de operación. Floating no está permitido, puede estar molido. |
| 2 | M1 | Entrada (Plegada débil) | Trabajar con M0 y decidir los cuatro modos de operación. No se permiten flotar, puede estar molido. |
| 3 | Rxd | Aporte | Entradas TTL UART, se conecta a la salida TXD externa (MCU, PC). Se puede configurar como entrada de drenaje abierto o pull-up. |
| 4 | TXD | Producción | Salidas de ttl uART, se conecta a la entrada externa RXD (MCU, PC). Se puede configurar como salida de drenaje abierto o push-pull |
| 5 | Aux | Producción | Para indicar el estado de trabajo del módulo y despierta el MCU externo. Durante el procedimiento de inicialización de autoevaluación, el PIN genera bajo nivel. Se puede configurar como salida de drenaje abierto orpush-Pull (se permite flotar). |
| 6 | VCC | Fuente de alimentación 2.3V ~ 5.5V DC | |
| 7 | Gnd | Suelo | Como puede ver, puede establecer varios modos a través de pines M0 y M1. |
| Modo | M1 | M0 | Explicación |
|---|---|---|---|
| Normal | 0 | 0 | UART e Wireless Channel es bueno para ir |
| Acelerador | 0 | 1 | Igual que se agrega un código de preámbulo a los datos transmitidos para despertar el receptor. |
| De ahorro de energía | 1 | 0 | UART se desactiva y la conexión inalámbrica está en modo WOR (Wake On Radio), lo que significa que el dispositivo se encenderá cuando hay datos que se recibirán. No está permitida la transmisión. |
| Dormir | 1 | 1 | Utilizado en la configuración de los parámetros. Transmitir y recibir discapacitados. |
Como puede ver, hay algunos pines que se pueden usar de manera estática, pero si la conecta a la biblioteca que obtiene en rendimiento y puede controlar todo el modo a través del software, pero vamos a explicar mejor a continuación.
Como ya digo que no es importante conectar todo el PIN a la salida del microcontrolador, puede poner pines M0 y M1 a alta o baja para obtener una configuración desiderada, y si no conecta AUX, la biblioteca establece un retraso razonable para asegurarse de que la operación esté completa .
Al transmitir datos se pueden usar para despertar MCU externo y devolver un alto al final de la transferencia de datos.
Lora E32 Aux Pin en la transmisión
Al recibir AUX bajando y regrese alto cuando el búfer está vacío.
Lora E32 Aux Pin en la recepción
También se utiliza para la autoevaluación para restaurar el funcionamiento normal (en modo de encendido y sueño/programa).
Lora E32 Aux Pin en la autoevaluación
El esquema de conexión ESP8266 es más simple porque funciona a la misma tensión de comunicaciones lógicas (3.3V).
Lora E32 TTL 100 WEMOS D1 Totalmente conectado
Es importante agregar resistencia pull-up (4,7 kohm) para obtener una buena estabilidad.
| M0 | D7 |
|---|---|
| M1 | D6 |
| Rx | Pin D2 (pullup 4,7kΩ) |
| Tx | Pin D3 (pullup 4,7kΩ) |
| Aux | D5 (entrada) |
| 3.3V | Gnd |
El voltaje de trabajo Arduino es de 5V, por lo que necesitamos agregar un divisor de voltaje en el pin M0 y M1 del módulo Lora para evitar daños, puede obtener más información aquí divisor de voltaje: calculadora y aplicación.
Puede usar una resistencia de 2kohm a GND y 1KOHM de la señal que la junta en RX.
Lora e32 ttl 100 arduino totalmente conectado
| M0 | 7 (divisor de voltaje) |
|---|---|
| M1 | 6 (divisor de voltaje) |
| Rx | PIN D2 (Divisor de voltaje y 4,7kΩ y voltaje) |
| Tx | Pin D3 (pullup 4,7kΩ) |
| Aux | 5 (entrada) |
| VCC | 3.3V |
| Gnd | Gnd |
| Adjunta | Byte de dirección alta del módulo (el 00h predeterminado) | 00h-ffh |
|---|---|---|
| Complemento | Byte de dirección baja del módulo (el 00H predeterminado) | 00h-ffh |
| Acelerado | Información sobre la velocidad de datos Bit de paridad y la velocidad de datos del aire | Chan |
| Canal de comunicación (410m + Chan*1M), predeterminado 17H (433MHz), válido solo para el dispositivo 433MHz | 00h-1fh |
|---|
OPCIÓN
Tipo de transmisión, configuración de pull-up, tiempo de atención, FEC, potencia de transmisión
Bit de paridad UART: el modo _uart puede ser diferente entre las fiestas de comunicación
| 7 | 6 | Uart Parity Bit | Const Value | | --- | --- | --- | --- | --- | | 0 | 0 | 8N1 (predeterminado) | MODE_00_8N1 | | 0 | 1 | 8O1 | MODE_01_8O1 | | 1 | 0 | 8 E1 | MODE_10_8E1 | | 1 | 1 | 8N1 (igual a 00) | MODE_11_8N1 |
UART BAUD Tasa: la tasa de baudios de UART puede ser diferente entre las partes de comunicación, la tasa de baudios UART no tiene nada que ver con los parámetros de transmisión inalámbrica y no afectará las características inalámbricas de transmisión / recepción.
| 5 | 43 | TTL UART BAUD TASA (BPS) | Valor constante |
|---|---|---|---|
| 0 | 0 | 0 | 1200 |
| 0 | 0 | 1 | 2400 |
| 0 | 1 | 0 | 4800 |
| 0 | 1 | 1 | 9600 (predeterminado) |
| 1 | 0 | 0 | 19200 |
| 1 | 0 | 1 | 38400 |
| 1 | 1 | 0 | 57600 |
| 1 | 1 | 1 | 115200 |
Velocidad de datos del aire: cuanto menor sea la velocidad de datos del aire, más larga es la distancia de transmisión, un mejor rendimiento anti-interferencia y un tiempo de transmisión más largo, la velocidad de datos del aire debe mantener lo mismo para ambas partes de comunicación.
| 2 | 1 | 0 | Velocidad de datos del aire (bps) | Valor constante |
|---|---|---|---|---|
| 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 (predeterminado) | 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 | 19.2k (igual a 101) | AIR_DATA_RATE_110_192 |
| 1 | 1 | 1 | 19.2k (igual a 101) | AIR_DATA_RATE_111_192 |
Modo de transmisión: en el modo de transmisión fijo, los primeros tres bytes de la trama de datos de cada usuario se pueden usar como dirección y canal altos/bajos. El módulo cambia su dirección y canal cuando se transmite. Y volverá a la configuración original después de completar el proceso.
| 7 | Bit de habilitación de transmisión fija (similar a Modbus) | Valor constante |
|---|---|---|
| 0 | Modo de transmisión transparente | Ft_transparent_transmission |
| 1 | Modo de transmisión fijo | Ft_fixed_transmission |
Modo de unidad IO: este bit se usa para la resistencia de extracción interna del módulo. También aumenta la adaptabilidad del nivel en caso de drenaje abierto. Pero en algunos casos, puede necesitar pull-up externo
resistor.
| 6 | Modo de unidad IO (predeterminado 1) | Valor constante |
|---|---|---|
| 1 | Salidas de pulsador de empuje TXD y AUX, entradas de extracción RXD | IO_D_MODE_PUSH_PULLS_PULL_UPS |
| 0 | TXD 、 salidas de colector abierto aux, entradas de colector rxd abierto | Io_d_mode_open_collector |
Tiempo de atención inalámbrico: el módulo de transmisión y recepción funciona en el modo 0, cuyo tiempo de retraso no es válido y puede ser un valor arbitrario, el transmisor funciona en el modo 1 puede transmitir el código de preámbulo del tiempo correspondiente continuamente, cuando el receptor funciona en el modo 2, el tiempo significa el tiempo de intervalo de monitor (activación inalámbrica). Solo los datos del transmisor que funcionan en el modo 1 pueden ser
recibió.
| 5 | 4 | 3 | Hora de atención inalámbrica | Valor constante |
|---|---|---|---|---|
| 0 | 0 | 0 | 250 ms (predeterminado) | Wake_up_250 |
| 0 | 0 | 1 | 500 ms | Wake_up_500 |
| 0 | 1 | 0 | 750 ms | Wake_up_750 |
| 0 | 1 | 1 | 1000 ms | Wake_up_1000 |
| 1 | 0 | 0 | 1250 ms | Wake_up_1250 |
| 1 | 0 | 1 | 1500 ms | Wake_up_1500 |
| 1 | 1 | 0 | 1750 ms | Wake_up_1750 |
| 1 | 1 | 1 | 2000 ms | Wake_up_2000 |
FEC: Después de apagar FEC, la velocidad de transmisión de datos real aumenta, mientras que la capacidad anti-interferencia disminuye. Además, la distancia de transmisión es relativamente corta, ambas partes de comunicación deben mantener en las mismas páginas sobre el encendido o el encendido FEC.
| 2 | Interruptor FEC | Valor constante |
|---|---|---|
| 0 | Apagar FEC | Fec_0_off |
| 1 | Encienda FEC (predeterminado) | Fec_1_on |
Potencia de transmisión
Puede cambiar este conjunto de constante aplicando una definición como así:
Aplicable para E32-TTL-100, E32-TTL-100S1, E32-T100S2.
La potencia externa debe asegurarse de la capacidad de la salida de corriente de más de 250 mA y asegurarse de que la fuente de alimentación se extienda dentro de los 100 mV.
No se recomienda la transmisión de baja potencia debido a su baja fuente de alimentación
eficiencia.
| 1 | 0 | Potencia de transmisión (aproximación) | Valor constante |
|---|---|---|---|
| 0 | 0 | 20dbm (predeterminado) | Power_20 |
| 0 | 1 | 17dbm | Power_17 |
| 1 | 0 | 14dbm | Power_14 |
| 1 | 1 | 10dbm | Power_10 |
Aplicable para E32-TTL-500。
La potencia externa debe asegurarse de la capacidad de la salida actual de más de 700 mA y asegurarse de que la fuente de alimentación se extienda dentro de los 100 mV.
No se recomienda una transmisión de baja potencia debido a su baja eficiencia de suministro de energía.
| 1 | 0 | Potencia de transmisión (aproximación) | Valor constante |
|---|---|---|---|
| 0 | 0 | 27dbm (predeterminado) | Power_27 |
| 0 | 1 | 24 dbm | Power_24 |
| 1 | 0 | 21dbm | Power_21 |
| 1 | 1 | 18dbm | Power_18 |
Aplicable para E32-TTL-1W, E32 (433T30S), E32 (868T30), E32 (915T30)
La potencia externa debe asegurarse de la capacidad de la salida actual de más de 1A y asegurarse de que la fuente de alimentación se extienda dentro de los 100 mV.
No se recomienda la transmisión de baja potencia debido a su baja fuente de alimentación
eficiencia.
| 1 | 0 | Potencia de transmisión (aproximación) | Valor constante |
|---|---|---|---|
| 0 | 0 | 30dbm (predeterminado) | Power_30 |
| 0 | 1 | 27dbm | Power_27 |
| 1 | 0 | 24 dbm | Power_24 |
| 1 | 1 | 21dbm | Power_21 |
Puede configurar OLSO de frecuencia de canal con esta definición:
El modo de transmisión normal/transparente se usa para enviar mensajes a todos los dispositivos con la misma dirección y canal.
Los escenarios de transmisión de Lora E32, las líneas son canales
De la misma manera, creo un conjunto de método para usar con transmisión fija
Debe cambiar solo el método de envío, porque el dispositivo de destino no recibe el preámbulo con la dirección y el canal.
La transmisión fija tiene más escenarios