import serial import time # Configurações da porta serial SERIAL_PORT = 'COM13' # Altere para a porta correta BAUD_RATE = 9600 # Taxa de baud padrão do módulo # Inicializa a conexão serial ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1) def send_command(command): """Envia um comando para o módulo LoRa.""" ser.write(command) time.sleep(0.1) response = ser.read_all() return response def configure_module(): """Configura o módulo LoRa com parâmetros específicos.""" # Exemplo de comando para configurar o módulo (substitua pelos comandos corretos) command = bytes([0xC0, 0x00, 0x08, 0x00, 0x00, 0x62, 0x00, 0x17, 0x03, 0x00, 0x00]) response = send_command(command) print(f"Configuração enviada, resposta: {response}") def read_configuration(): """Lê a configuração atual do módulo LoRa.""" # Comando para ler a configuração (substitua pelo comando correto) command = bytes([0xC1, 0x00, 0x08, 0x00, 0x00, 0x62, 0x00, 0x17, 0x03, 0x00, 0x00]) response = send_command(command) print(f"Configuração atual, resposta: {response}") def send_data(data): """Envia dados através do módulo LoRa.""" ser.write(data.encode()) print(f"Dados enviados: {data}") def receive_data(): """Recebe dados do módulo LoRa.""" data = ser.read_all() try: # Tenta decodificar os dados como UTF-8 decoded_data = data.decode('utf-8') print(f"Dados recebidos: {decoded_data}") except UnicodeDecodeError: # Se falhar, exibe os dados brutos em hexadecimal print(f"Dados recebidos (brutos): {data.hex()}") return data if __name__ == "__main__": try: # Configura o módulo configure_module() # Lê a configuração atual read_configuration() # Envia dados send_data("Olá, LoRa!") # Aguarda e recebe dados time.sleep(2) receive_data() except Exception as e: print(f"Ocorreu um erro: {e}") finally: # Fecha a conexão serial ser.close()