This program connects to the network, sends, and receives data via the LoRaWAN protocol. After initialization, the device attempts to join the network in OTAA mode, with the RGB light brightness showing the connection status. Once connected, it sends data 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_lora470 = DTU_LoRaWAN()
dtu_lora470.set_join_mode(0)
dtu_lora470.config_OTAA('2fd1549588a2f196', '00000000000000000000000000000000', '059d230cf60aaf212783b4b7e801a389')
dtu_lora470.set_frequency_band_mask('0400')
dtu_lora470.set_rx_window_param(0, 0, 505300000)
dtu_lora470.set_class_mode(2)
dtu_lora470.set_uplink_downlink_mode(1)
dtu_lora470.join(1, 1, 8, 10)
rgb.setColorAll(0xff6666)
while not dtu_lora470.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_lora470.send_data('012345678', 1, 15)
print(dtu_lora470.check_downlink_data())
wait(5)
wait_ms(2)
dtu_lora470 = DTU_LoRaWAN()
modbus._mdbus_uart.any()
dtu_lora470.check_downlink_data()
dtu_lora470.check_join_status()
dtu_lora470.check_uplink_status()
dtu_lora470.set_frequency_band_mask('0001')
dtu_lora470.set_rx_window_param(0, 0, 505300000)
dtu_lora470.set_class_mode(0)
dtu_lora470.set_uplink_downlink_mode(1)
dtu_lora470.config_OTAA('', '', '')
dtu_lora470.get_ABP_config()
dtu_lora470.get_OTAA_config()
dtu_lora470.join(1, 1, 8, 1)
dtu_lora470.join(0)
dtu_lora470.read()
dtu_lora470.readline()
dtu_lora470.read(10)
dtu_lora470.read_coils(1, 1, 0)
dtu_lora470.read_discrete_inputs(1, 1, 0)
dtu_lora470.read_holding_registers(1, 1, 0, True)
dtu_lora470.read_input_registers(1, 1, 0, True)
dtu_lora470.receive_data()
dtu_lora470.send_data('')
dtu_lora470.set_join_mode(0)
dtu_lora470.set_uplink_app_port(1)
dtu_lora470.write('')
dtu_lora470.write(''+"\r\n")
dtu_lora470.write_multiple_coils(1, 1, 0)
dtu_lora470.write_multiple_registers(1, 1, 0, True)
dtu_lora470.write(bytes([0, 0, 0]))
dtu_lora470.write_single_coil(1, 1, 0)
dtu_lora470.write_single_register(1, 1, 0, True)