This program uses the LoRaWAN 915 DTU module to connect to the network in OTAA mode. During the connection, the brightness of the RGB light changes to indicate the connection status. Once connected, the device sends data "012345678" every 5 seconds and checks for downlink data.
from m5stack import *
from m5ui import *
from uiflow import *
from base.DTU_LoRaWAN import DTU_LoRaWAN
import time
j = None
rgb.setColorAll(0xcc6600)
dtu_lora915 = DTU_LoRaWAN()
dtu_lora915.set_join_mode(0)
dtu_lora915.config_OTAA('d896e0ff00000241', '0000000000000001', '98929b92f09e2daf676d646d0f61d251')
dtu_lora915.set_frequency_band_mask('0001')
dtu_lora915.set_rx_window_param(0, 0, 923300000)
dtu_lora915.set_class_mode(2)
dtu_lora915.set_uplink_downlink_mode(1)
dtu_lora915.join(1, 1, 8, 15)
rgb.setColorAll(0xff6666)
while not dtu_lora915.check_join_status():
print('waiting join....')
for j in range(101):
rgb.setBrightness(j)
wait_ms(10)
for j in range(100, -1, -1):
rgb.setBrightness(j)
wait_ms(10)
print('connected!')
rgb.setBrightness(100)
rgb.setColorAll(0x33ff33)
while True:
dtu_lora915.send_data('012345678', 1, 15)
print(dtu_lora915.check_downlink_data())
wait(5)
wait_ms(2)
dtu_lora915 = DTU_LoRaWAN()
dtu_lora915.any()
dtu_lora915.check_downlink_data()
dtu_lora915.check_join_status()
dtu_lora915.check_uplink_status()
dtu_lora915.set_frequency_band_mask('0001')
dtu_lora915.set_rx_window_param(0, 0, 923300000)
dtu_lora915.set_class_mode(0)
dtu_lora915.set_uplink_downlink_mode(1)
dtu_lora915.config_OTAA('', '', '')
dtu_lora915.get_ABP_config()
dtu_lora915.get_OTAA_config()
dtu_lora915.join(1, 1, 8, 1)
dtu_lora915.join(0)
dtu_lora915.read()
dtu_lora915.readline()
dtu_lora915.read(10)
dtu_lora915.read_coils(1, 1, 0)
dtu_lora915.read_discrete_inputs(1, 1, 0)
dtu_lora915.read_holding_registers(1, 1, 0, True)
<img class="blockly_svg" src=" https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/static/assets
/img/uiflow/blockly/atomic_base/dtu_lorawan_915/uiflow_block_base_lorawan915_read_input_registers.svg">
dtu_lora915.read_input_registers(1, 1, 0, True)
dtu_lora915.receive_data()
dtu_lora915.send_data('')
dtu_lora915.set_join_mode(0)
dtu_lora915.set_uplink_app_port(1)
dtu_lora915.write('')
dtu_lora915.write(''+"\r\n")
dtu_lora915.write_multiple_coils(1, 1, 0)
dtu_lora915.write_multiple_registers(1, 1, 0, True)
dtu_lora915.write(bytes([0, 0, 0]))
dtu_lora915.write_single_coil(1, 1, 0)
dtu_lora915.write_single_register(1, 1, 0, True)