RAK811 Python 3 Bibliothèque et interface de ligne de commande pour une utilisation avec le chapeau Raspberry Pi Lora (P).
La bibliothèque expose le module RAK811 aux commandes comme décrit dans les documents suivants:
L'interface de ligne de commande expose tous les appels de l'API à la ligne de commande.
raspi-config )dialout et gpio (c'est la valeur par défaut pour l'utilisateur pi ) Le package est installé à partir de PYPI:
sudo pip3 install rak811 La commande pip3 fait partie du package python3-pip . S'il manque sur votre système, exécutez:
sudo apt-get install python3-pipPISUPPLY fournit des instructions détaillées pour configurer votre Raspberry Pi.
Si vous ne connaissez pas le niveau du micrologiciel de votre module, exécutez les commandes suivantes:
rak811 hard-reset
rak811 version Pour le firmware v2.0.x, utilisez la commande rak811 et le module Python, pour v3.0.x, utilisez la commande rak811v3 et le module Python rak811_v3 .
Enregistrez votre appareil sur thethingsNetwork à l'aide de l'ID unique de votre module RAK811 (périphérique EUI).
Vous pouvez récupérer votre appareil EUI avec la commande suivante (v2.0.x):
rak811 hard-reset
rak811 get-config dev_eui Remarque : La commande rak811 hard-reset n'est nécessaire qu'une seule fois après (re) démarrer votre Raspberry Pi pour activer le module.
ou (v3.0.x):
rak811v3 set-config lora:join_mode:0
rak811v3 get-config lora:status | grep DevEui Envoyez votre premier message Lorawan avec l'extrait de code Python suivant:
(L'application EUI et la clé d'application sont copiées textuellement de la console 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 ()Votre premier message doit apparaître sur la console TTN!
Voir l'exemple de répertoire sur GitHub:
api_demo.py : démo la plupart des appels de l'API v2.0.xotaa.py / otaa_v3.py : exemple OTAAotaa_v3_class_c.py : Exemple OTAA avec l'appareil en mode C de classe Cabp.py / abp_v3.py : exemple abpp2p.py / p2p_v3.py : exemple p2pp2p.sh / p2p_v3.sh : exemple p2p basé sur l'interface de ligne de commande (voir ci-dessous) Pour exécuter les exemples, copiez d'abord le ttn_secrets_template.py à ttn_secrets.py et entrez vos touches Lorawan thethingsNetwork.
Remarque : vous n'avez pas besoin de hard_reset le module chaque fois que vous exécutez un script. Cependant, vous devez le faire la première fois après un (re) démarrage pour activer le module.
Exemple de code pour utiliser la bibliothèque avec Balenacloud: exemple RAK811 de base avec Balenacloud (firmware v2.0.x).
La commande rak811 expose tous les appels de la bibliothèque à la ligne de commande:
$ 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.Exemple de session:
$ 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 Remarque : Pour votre première session après le démarrage, vous devrez faire un hard-reset au lieu d'une commande reset lora pour activer le module.
La commande rak811v3 expose les appels de bibliothèque suivants à la ligne de commande:
$ 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.Exemple de session:
$ 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