RAK811 Python 3 Biblioteca y interfaz de línea de comandos para usar con el sombrero Raspberry Pi Lora (P).
La biblioteca expone el módulo RAK811 AT comandos como se describe en los siguientes documentos:
La interfaz de la línea de comandos expone todas las llamadas API a la línea de comando.
raspi-config )dialout y gpio (este es el valor predeterminado para el usuario pi ) El paquete está instalado desde PYPI:
sudo pip3 install rak811 El comando pip3 es parte del paquete python3-pip . Si falta en su sistema, ejecute:
sudo apt-get install python3-pipPisupply proporciona instrucciones detalladas para configurar su Raspberry Pi.
Si no conoce el nivel de firmware de su módulo, ejecute los siguientes comandos:
rak811 hard-reset
rak811 version Para el firmware v2.0.x, use el comando rak811 y el módulo Python, para v3.0.x use el comando rak811v3 y el módulo Python rak811_v3 .
Registre su dispositivo en la red de la red utilizando la ID única de su módulo RAK811 (dispositivo EUI).
Puede recuperar su dispositivo EUI con el siguiente comando (v2.0.x):
rak811 hard-reset
rak811 get-config dev_eui Nota : El comando rak811 hard-reset solo se necesita una vez después (re) arrancando su Raspberry Pi para activar el módulo.
o (v3.0.x):
rak811v3 set-config lora:join_mode:0
rak811v3 get-config lora:status | grep DevEui Envíe su primer mensaje de Lorawan con el siguiente fragmento de código Python:
(La aplicación APP EUI y la aplicación de la aplicación se copian a pie de la consola TTN)
#!/usr/bin/env python3
# V2.0.x firmware
from rak811 . rak811 import Mode , Rak811
lora = Rak811 ()
lora . hard_reset ()
lora . mode = Mode . LoRaWan
lora . band = 'EU868'
lora . set_config ( app_eui = '70B3D5xxxxxxxxxx' ,
app_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' )
lora . join_otaa ()
lora . dr = 5
lora . send ( 'Hello world' )
lora . close () #!/usr/bin/env python3
# V3.0.x firmware
from rak811 . rak811_v3 import Rak811
lora = Rak811 ()
lora . set_config ( 'lora:work_mode:0' )
lora . set_config ( 'lora:join_mode:0' )
lora . set_config ( 'lora:region:EU868' )
lora . set_config ( 'lora:app_eui:70B3D5xxxxxxxxxx' )
lora . set_config ( 'lora:app_key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' )
lora . join ()
lora . set_config ( 'lora:dr:5' )
lora . send ( 'Hello world' )
lora . close ()¡Su primer mensaje debería aparecer en la consola TTN!
Vea el directorio de ejemplo en GitHub:
api_demo.py : demo la mayoría de las llamadas de API v2.0.xotaa.py / otaa_v3.py : Ejemplo de OTAAotaa_v3_class_c.py : Ejemplo OTAA con dispositivo en modo Clase Cabp.py / abp_v3.py : ejemplo de ABPp2p.py / p2p_v3.py : ejemplo de P2Pp2p.sh / p2p_v3.sh : Ejemplo P2P basado en la interfaz de línea de comandos (ver más abajo) Para ejecutar los ejemplos, primero copie ttn_secrets_template.py a ttn_secrets.py e ingrese sus claves Lorawan thethingsnetwork.
Nota : No necesita hard_reset el módulo cada vez que ejecuta un script. Sin embargo, debe hacerlo la primera vez después de un (re) arranque para activar el módulo.
Código de muestra para usar la biblioteca con Balenacloud: ejemplo básico de RAK811 con Balenacloud (firmware v2.0.x).
El comando rak811 expone todas las llamadas de la biblioteca a la línea de comando:
$ rak811 --help
Usage: rak811 [OPTIONS] COMMAND [ARGS]...
Command line interface for the RAK811 module.
Options:
-v, --verbose Verbose mode
--help Show this message and exit.
Commands:
abp-info Get ABP info.
band Get/Set LoRaWan region.
clear-radio-status Clear radio statistics.
dr Get/set next send data rate.
get-config Get LoraWan configuration.
hard-reset Hardware reset of the module.
join-abp Join the configured network in ABP mode.
join-otaa Join the configured network in OTAA mode.
link-cnt Get up & downlink counters.
mode Get/Set mode to LoRaWan or LoRaP2P.
radio-status Get radio statistics.
recv-ex RSSI & SNR report on receive.
reload Set LoRaWan or LoRaP2P configurations to default.
reset Reset Module or LoRaWan stack.
send Send LoRaWan message and check for downlink.
set-config Set LoraWAN configuration.
signal Get (RSSI,SNR) from latest received packet.
sleep Enter sleep mode.
version Get module version.
wake-up Wake up.Ejemplo de sesión:
$ rak811 -v reset lora
LoRa reset complete.
$ rak811 -v set-config app_eui=70B3D5xxxxxxxxxx app_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LoRaWan parameters set
$ rak811 -v join-otaa
Joined in OTAA mode
$ rak811 -v dr
5
$ rak811 -v dr 4
Data rate set to 4.
$ rak811 -v send Hello
Message sent.
No downlink available.
$ rak811 -v send --port 4 --binary ' 01020211 '
Message sent.
Downlink received:
Port: 1
RSSI: -56
SNR: 31
Data: 123456 Nota : Para su primera sesión después del arranque, deberá hacer un hard-reset en lugar de un comando reset lora para activar el módulo.
El comando rak811v3 expone las siguientes llamadas de biblioteca a la línea de comando:
$ rak811v3 --help
Usage: rak811v3 [OPTIONS] COMMAND [ARGS]...
Command line interface for the RAK811 module.
Options:
-v, --verbose Verbose mode
-d, --debug Debug mode
--version Show the version and exit.
--help Show this message and exit.
Commands:
get-config Execute get_config RAK811 command.
hard-reset Hardware reset of the module.
help Print module help.
join Join the configured network.
receive-p2p Get LoraP2P message.
run Exit boot mode and enter normal mode.
send Send LoRaWan message and check for downlink.
send-p2p Send LoRa P2P message.
send-uart Send data to UART.
set-config Execute set_config RAK811 command.
version Get module version.Ejemplo de sesión:
$ rak811v3 -v set-config lora:work_mode:0
Configuration done
LoRa (R) is a registered trademark or service mark of Semtech Corporation or its affiliates. LoRaWAN (R) is a licensed mark.
RAK811 Version:3.0.0.14.H
UART1 work mode: RUI_UART_NORMAL, 115200, N81
UART3 work mode: RUI_UART_NORMAL, 115200, N81
LoRa work mode:LoRaWAN, join_mode:OTAA, MulticastEnable: false, Class: A
$ # The following is not necessary as in this case the module is already in OTAA mode!
$ rak811v3 -v set-config lora:join_mode:0
Configuration done
$ rak811v3 -v set-config lora:app_eui:70B3D5xxxxxxxxxx
Configuration done
$ rak811v3 -v set-config lora:app_key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Configuration done
$ rak811v3 -v join
Joined!
$ rak811v3 get-config lora:status | grep ' Current Datarate '
Current Datarate: 4
$ rak811v3 -v set-config lora:dr:5
Configuration done
$ rak811v3 -v send ' Hello '
Message sent.
No downlink available.
$ rak811v3 -v set-config lora:confirm:1
Configuration done
$ rak811v3 -v send --port 4 --binary ' 01020211 '
Message sent.
Send confirmed.
RSSI: -66
SNR: 6