agrobot_base/Python/lora_E220.py

69 lines
2.0 KiB
Python

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()