Índice:

Comunicação simples do Arduino LoRa (mais de 5 km): 9 etapas
Comunicação simples do Arduino LoRa (mais de 5 km): 9 etapas

Vídeo: Comunicação simples do Arduino LoRa (mais de 5 km): 9 etapas

Vídeo: Comunicação simples do Arduino LoRa (mais de 5 km): 9 etapas
Vídeo: Comunicação de loga distância mais de 3km com lora e Arduino 2024, Novembro
Anonim
Comunicação simples do Arduino LoRa (mais de 5 km)
Comunicação simples do Arduino LoRa (mais de 5 km)

Vamos testar o E32-TTL-100 com minha biblioteca. É um módulo transceptor sem fio, opera em 410 441 MHz (ou 868 MHz ou 915 MHz) baseado no RFIC SX1278 original da SEMTECH, transmissão transparente está disponível, nível TTL. O módulo adota a tecnologia de espalhamento espectral LORA.

Suprimentos

  • Arduino UNO
  • Dispositivos LoRa e32

Opcional

  • Escudo Mischianti Arduino LoRa (código aberto)
  • Escudo Mischianti WeMos LoRa (código aberto)

Etapa 1: especificações dos dispositivos

O módulo possui algoritmo de Correção de Erro Forward FEC, que garante sua alta eficiência de codificação e bom desempenho de correção. No caso de interferência repentina, ele pode corrigir os pacotes de dados interferidos automaticamente, de modo que a confiabilidade e o alcance da transmissão sejam melhorados de maneira correspondente. Mas sem o FEC, esses pacotes de dados só podem ser descartados. E com a criptografia e descriptografia rigorosas, a interceptação de dados torna-se inútil. A função de compressão de dados pode diminuir o tempo de transmissão e a probabilidade de haver interferência, enquanto melhora a confiabilidade e a eficiência da transmissão.

  • Tamanho do módulo: 21 * 36 mm
  • Tipo de antena: SMA-K (impedância de 50Ω)
  • Distância de transmissão: 3000m (máx.)
  • Potência máxima: 2dB (100mW)
  • Taxas de ar: 2,4 kbps (6 níveis opcionais (0,3, 1,2, 2,4, 4,8, 9,6, 19,2 kbps)
  • Comprimento de emissão: 512ByteReceive
  • comprimento: 512Byte
  • Interface de comunicação: UART - 8N1, 8E1, 8O1,
  • Oito tipos de taxa de transmissão UART, de 1200 a 115200 bps (padrão: 9600)
  • Suporte RSSI: Não (processamento inteligente integrado)

Etapa 2: Tipo de transmissão

Tipo de transmissão
Tipo de transmissão

Transmissão transparente Isso pode ser considerado como um “modo de demonstração”, por padrão você pode enviar mensagens para todos os dispositivos do mesmo endereço e canal configurado.

Transmissão fixa

Neste tipo de transmissão você pode especificar um endereço e um canal para onde deseja enviar a mensagem. Você pode enviar mensagem para:

  • Dispositivo especificado com endereço baixo, endereço alto e canal predeterminados.
  • Transmitir mensagem para um conjunto de dispositivos de canal Modo normal Basta enviar a mensagem.

Etapa 3: modo do dispositivo

Modo normalSimplesmente enviar mensagem.

Modo de despertar e modo de economia de energia

Como você pode querer, se um dispositivo estiver no modo Despertar pode “despertar” um ou mais dispositivos que estão no modo de economia de energia com uma comunicação de preâmbulo.

Modo programa / hibernar

Com esta configuração, você pode alterar a configuração do seu dispositivo.

Etapa 4: Dispositivo de fiação

Dispositivo de Fiação
Dispositivo de Fiação
Dispositivo de Fiação
Dispositivo de Fiação

Aqui o esquema de conexão do dispositivo, este é um totalmente conectado, com gerenciamento de pino M0 e M1 permite alterar a modalidade do dispositivo, para que você possa alternar para o modo de configuração ou despertar com o programa, a biblioteca ajuda em tudo isso Operação.

Etapa 5: configuração

Configuração
Configuração

Existe um comando especificado para definir e obter a configuração

void setup () {Serial.begin (9600); atraso (500); // Iniciar todos os pinos e UART e32ttl100.begin (); ResponseStructContainer c; c = e32ttl100.getConfiguration (); // É importante obter o ponteiro de configuração antes de todas as outras operações Configuration configuration = * (Configuration *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); printParameters (configuração); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation (); // É importante obter o ponteiro de informações antes de todas as outras operações ModuleInformation mi = * (ModuleInformation *) cMi.data; Serial.println (cMi.status.getResponseDescription ()); Serial.println (cMi.status.code); printModuleInformation (mi); }

Etapa 6: Resultado da configuração

E o resultado se torna

Começar com sucesso 1 ---------------------------------------- HEAD BIN: 11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433 MHz SpeedParityBit BIN: 0 -> 8N1 (padrão) SpeedUARTDataRate BIN: 11 -> 9600bps (padrão) SpeedAirDataRate BIN: 10 -> 2,4 kbps (padrão) OptionTrans BIN: 0 - > Transmissão transparente (padrão) OptionPullup BIN: 1 -> TXD, RXD, AUX são push-pulls / pull-ups OptionWakeup BIN: 0 -> 250ms (padrão) OptionFEC BIN: 1 -> Ligue a chave de correção de erro de encaminhamento (padrão) OptionPower BIN: 0 -> 20dBm (padrão) ---------------------------------------- Sucesso 1 ---------------------------------------- HEAD BIN: 11000011 195 C3 Modelo no.: 32 Versão: 44 Recursos: 14 ----------------------------------------

Etapa 7: enviar mensagem

Enviar mensagem
Enviar mensagem

Aqui está um esboço simples para enviar uma mensagem a todos os dispositivos anexados ao canal

void loop () {// Se algo disponível if (e32ttl100.available ()> 1) {// leia a mensagem String ResponseContainer rc = e32ttl100.receiveMessage (); // Algo dá errado imprimir erro if (rc.status.code! = 1) {rc.status.getResponseDescription (); } else {// Imprime os dados recebidos Serial.println (rc.data); }} if (Serial.available ()) {String input = Serial.readString (); e32ttl100.sendMessage (entrada); }}

Etapa 8: escudo para Arduino

Escudo para Arduino
Escudo para Arduino

Eu também crio um escudo para o Arduino que se torna muito útil para prototipagem.

E eu o lanço como um projeto de código aberto aqui

www.pcbway.com/project/shareproject/LoRa_E32_Series_device_Arduino_shield.html

Etapa 9: Biblioteca

Biblioteca
Biblioteca

Repositório GitHub

Fórum de suporte

Documentação adicional

Recomendado: