RAK811 Python 3 Library และอินเทอร์เฟซบรรทัดคำสั่งสำหรับใช้กับหมวก Raspberry Pi Lora (P)
ไลบรารีเปิดเผยโมดูล RAK811 ที่คำสั่งตามที่อธิบายไว้ในเอกสารต่อไปนี้:
อินเทอร์เฟซบรรทัดคำสั่งเปิดเผยการเรียก API ทั้งหมดไปยังบรรทัดคำสั่ง
raspi-config )dialout และ gpio (นี่เป็นค่าเริ่มต้นสำหรับผู้ใช้ pi ) แพ็คเกจถูกติดตั้งจาก PYPI:
sudo pip3 install rak811 คำสั่ง pip3 เป็นส่วนหนึ่งของแพ็คเกจ python3-pip หากขาดหายไปในระบบของคุณให้เรียกใช้:
sudo apt-get install python3-pipPisupply ให้คำแนะนำโดยละเอียดสำหรับการกำหนดค่า Raspberry Pi ของคุณ
หากคุณไม่ทราบระดับเฟิร์มแวร์ของโมดูลของคุณเรียกใช้คำสั่งต่อไปนี้:
rak811 hard-reset
rak811 version สำหรับเฟิร์มแวร์ v2.0.x ให้ใช้คำสั่ง rak811 และโมดูล Python สำหรับ v3.0.x ใช้คำสั่ง rak811v3 และโมดูล rak811_v3 Python
ลงทะเบียนอุปกรณ์ของคุณบน THETHINGSNETWORK โดยใช้ ID ที่ไม่ซ้ำกันของโมดูล RAK811 ของคุณ (อุปกรณ์ EUI)
คุณสามารถดึงอุปกรณ์ของคุณ EUI ด้วยคำสั่งต่อไปนี้ (v2.0.x):
rak811 hard-reset
rak811 get-config dev_eui หมายเหตุ : คำสั่ง rak811 hard-reset เป็นสิ่งจำเป็นเพียงครั้งเดียวหลังจาก (อีกครั้ง) การบูต RASPBERRY PI ของคุณเพื่อเปิดใช้งานโมดูล
หรือ (v3.0.x):
rak811v3 set-config lora:join_mode:0
rak811v3 get-config lora:status | grep DevEui ส่งข้อความ Lorawan ครั้งแรกของคุณด้วยข้อมูลตัวอย่าง Python Code ต่อไปนี้:
(แอพ EUI และปุ่มแอพถูกคัดลอกคำต่อคำจากคอนโซล 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 ()ข้อความแรกของคุณควรปรากฏบนคอนโซล TTN!
ดูไดเรกทอรีตัวอย่างบน GitHub:
api_demo.py : การสาธิตส่วนใหญ่ของการโทร v2.0.x API ส่วนใหญ่otaa.py / otaa_v3.py : ตัวอย่าง otaaotaa_v3_class_c.py : ตัวอย่าง OTAA พร้อมอุปกรณ์ในโหมดคลาส Cabp.py / abp_v3.py : ตัวอย่าง ABPp2p.py / p2p_v3.py : ตัวอย่าง p2pp2p.sh / p2p_v3.sh : ตัวอย่าง P2P ตามอินเตอร์เฟสบรรทัดคำสั่ง (ดูด้านล่าง) ในการเรียกใช้ตัวอย่างก่อนอื่นคัดลอก ttn_secrets_template.py ไปยัง ttn_secrets.py และป้อนคีย์ lorawan ของคุณ
หมายเหตุ : คุณไม่จำเป็นต้อง hard_reset โมดูลทุกครั้งที่คุณเรียกใช้สคริปต์ อย่างไรก็ตามคุณต้องทำมันเป็นครั้งแรกหลังจากการบูต (RE) เพื่อเปิดใช้งานโมดูล
ตัวอย่างรหัสเพื่อใช้ไลบรารีกับ Balenacloud: ตัวอย่างพื้นฐาน RAK811 กับ Balenacloud (เฟิร์มแวร์ v2.0.x)
คำสั่ง rak811 เปิดเผยการโทรไลบรารีทั้งหมดไปยังบรรทัดคำสั่ง:
$ 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.ตัวอย่างเซสชัน:
$ 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 หมายเหตุ : สำหรับเซสชันแรกของคุณหลังจากบูตคุณจะต้องทำ hard-reset แทนคำสั่ง reset lora เพื่อเปิดใช้งานโมดูล
คำสั่ง rak811v3 เปิดเผยการเรียกไลบรารีต่อไปนี้ไปยังบรรทัดคำสั่ง:
$ 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.ตัวอย่างเซสชัน:
$ 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