Índice:

Hub NMEA / AIS barato - ponte RS232 para Wifi para uso a bordo: 6 etapas
Hub NMEA / AIS barato - ponte RS232 para Wifi para uso a bordo: 6 etapas

Vídeo: Hub NMEA / AIS barato - ponte RS232 para Wifi para uso a bordo: 6 etapas

Vídeo: Hub NMEA / AIS barato - ponte RS232 para Wifi para uso a bordo: 6 etapas
Vídeo: Учебное пособие по дрону «Следуй за мной» с использованием APM и Mission Planner 2024, Maio
Anonim
Hub NMEA / AIS barato - RS232 para ponte Wifi para uso a bordo
Hub NMEA / AIS barato - RS232 para ponte Wifi para uso a bordo
Hub NMEA / AIS barato - RS232 para ponte Wifi para uso a bordo
Hub NMEA / AIS barato - RS232 para ponte Wifi para uso a bordo
Hub NMEA / AIS barato - RS232 para ponte Wifi para uso a bordo
Hub NMEA / AIS barato - RS232 para ponte Wifi para uso a bordo
Hub NMEA / AIS barato - RS232 para ponte Wifi para uso a bordo
Hub NMEA / AIS barato - RS232 para ponte Wifi para uso a bordo

Atualização 9 de janeiro de 2021 - Adicionada conexão TCP extra e reutilização da última conexão se mais clientes se conectarem; Atualização 13 de dezembro de 2020 - Adicionada nenhuma versão de configuração do código para barcos com roteadores existentes

Introdução

Esta ponte NMEA / AIS RS232 para WiFi é baseada no ESP8266-01 WiFi Shield. AIS é um sistema de identificação automática para mostrar a posição de navios próximos. NMEA 0183 é o padrão da National Marine Electronics Association usado para mensagens GPS.

A ponte RS232 para WiFi foi modificada do ESP8266-01 WiFi Shield para ser alimentado por uma bateria de 12 V e aceitar uma entrada RS232 (+/- 15 V) e criar uma rede local que transmite os dados via TCP e UDP. Ele foi desenvolvido em conjunto com Jo, que queria operar uma rede local independente, barata e simples para acessar os dados de seu AIS de qualquer lugar em seu iate. Este módulo resultante cria um Ponto de Acesso (um Roteador) e configura um servidor TCP para até 4 conexões e também transmite os dados em um grupo de transmissão UDP. Uma página da Web de configuração é fornecida para definir os números das portas TCP e UDP, a potência do WiFi Tx e a taxa de transmissão RS232 de entrada. Ao contrário do WiFi Shield, não há botão de configuração, portanto, uma vez construído, o módulo pode ser completamente vedado à prova d'água. Os circuitos de proteção são incluídos para tornar este dispositivo robusto contra fiação incorreta. Embora projetado com NMEA (GPS) e AIS em mente, o módulo irá lidar com quaisquer dados RS232 com taxas de transmissão entre 4800 e 38400 (e outros editando o esboço do Arduino).

Recursos

  • Usa o módulo ESP8266-01 barato e disponível: - Outros módulos ESP8266 também podem ser usados
  • Robusto: - O circuito possui várias proteções integradas para evitar erros durante a instalação da fiação.
  • Eficiente em termos de energia: - Uma fonte de alimentação do conversor DC-DC alimenta de forma eficiente a unidade a partir de uma bateria de 12 V e a potência do WiFi Tx pode ser reduzida para economizar mais energia.
  • Simples de usar: - Basta conectar uma fonte de 5,5 V a 12 V e a linha RS232 TX e, em seguida, conectar seu receptor à rede e conectar ao serviço TCP ou UDP para receber os dados. Pode ser rapidamente trocado por um sobressalente se a unidade falhar
  • Simples de configurar: - Não há necessidade de reprogramação, nenhum modo de configuração especial. É fornecida uma página de configuração que permite definir a taxa de transmissão RS232 e a potência de transmissão WiFi e os números das portas para os servidores TCP e UDP
  • Versão opcional sem configuração: - Há também outro esboço onde toda a configuração é pré-programada. Isto é para aquelas situações que já possuem uma rede local rodando com seu próprio roteador (Ponto de Acesso)

Suprimentos:

Este ESP8266-01 RS232 para WiFi Bridge precisa das seguintes peças, ou similar. Os preços apresentados aqui são de agosto de 2020 e excluem os custos de envio e algum tipo de caixa de plástico: -

Módulo WiFi ESP8266-01 - ~ US $ 1,50 online (arrisque-se) OU para um produto confiável SparkFun ESP8266-01 - US $ 6,95

MPM3610 3.3V Buck Converter Adafruit - US $ 5.95 5V a 21V de entrada, OU DC-DC 3A Buck Step-down Power Supply Module online Aliexpress ~ US2.00

Elemento 14 do cabeçalho de 10 pinos - US $ 0,40 (ou Faixa de terminal do cabeçalho de 28 pinos da Jaycar AU $ 0,95)

1 off 1N5711 Schottky Diode Digikey US $ 1,15 (ou Jaycar AU $ 1,60)

2 off 1N4001 Diodes SparkFun US $ 0,30 (ou 1N4004 Jaycar AU $ 1,00) Qualquer 1A 50V ou diodo superior servirá, por exemplo, 1N4001, 1N4002, 1N4003, 1N4004

1 desligado 2N3904 transistor NPN SparkFun US $ 0,50 (ou Jaycar AU $ 0,75 qualquer NPN de uso geral com Vce> 40V, Hfe> 50 a 1mA, Ic> 50mA, por exemplo, BC546, BC547, BC548, BC549, BC550, 2N2222

6 x resistores 3K3, por exemplo 3K3 resistores - Digikey - US $ 0,60 (ou 3K3ohm 1/2 Watt 1% Resistores de filme de metal - Pk.8 da Jaycar AU $ 0,85)

3 resistor 330R elemento 14 US $ 0,10 (ou 330ohm 1/2 Watt 1% Resistores de filme metálico - Pk.8 da Jaycar AU $ 0,85)

1 elemento de resistor de 10K 14 US $ 0,05 (ou resistores de filme de metal de 0,5 Watt de 10k Ohm - Pacote de 8 da Jaycar AU $ 0,85)

Placa Vero (links e barramentos) Jaycar HP9556 OR (tira de cobre) (tira de cobre), por ex. Jaycar HP9540 ~ AU $ 5,50

e uma caixa de plástico e fio de conexão.

Custo total ~ US $ 9,90 + frete e caixa de plástico (em agosto de 2020) usando Aliexpress ESP8266-01 e módulo DC-DC OU ~ US $ 19,30 usando módulo Sparkfun ESP8266-01 e conversor Adafruit DC-DC buck. Barato o suficiente para fazer algumas peças sobressalentes.

Para programar o RS232 para WiFi Bridge, você também precisa de um cabo USB para serial. Aqui, um cabo USB para TTL serial SparkFun (US $ 10,95) é usado porque tem extremidades bem etiquetadas e tem suporte de driver para uma ampla gama de sistemas operacionais. Incluindo o cabo de programação, o custo de apenas um RS232 para ponte WiFi é de ~ US $ 20 a US $ 24 (mais frete e uma caixa).

Etapa 1: Diagrama de Circuito e Proteções de Circuito

Diagrama de circuito e proteções de circuito
Diagrama de circuito e proteções de circuito

Acima está o diagrama de circuito do RS232 para WiFi Bridge (versão pdf). Ele foi adaptado do ESP8266-01 Wifi Shield e modificado para aceitar RS232 e uma alimentação de 5 V a 12 V (bateria). O conversor DC para DC fornece operação eficiente de energia a partir de uma bateria de 12 V para uso noturno quando não há energia solar e o uso de energia é escasso.

Uma série de proteções de circuito foram incorporadas ao circuito. As conexões no lado esquerdo do circuito são usadas apenas durante a construção para programar / depurar a unidade. Os resistores 330R R6 e R7 protegem contra curto-circuito de uma saída TX para uma saída TX durante a programação / depuração. Ao programar, você conecta TX a RX e RX a TX. A saída de depuração TX deve ser conectada a uma entrada RX UART 3v3 para ver a saída de depuração (consulte os comentários no esboço ESP8266_NMEA_BRIDGE.ino).

As conexões no lado direito do circuito são usadas para conectar a unidade completa à fonte de alimentação e à fonte NMEA / AIS RS232. Essas são as únicas conexões que precisam estar acessíveis depois que a unidade for construída. Mantenha essas conexões em pares.

O 2N3904 fornece a inversão e a mudança de nível do sinal RS232 +/- 15V para a entrada TTL UART para o ESP2866. A tensão reversa entre o Emissor e a Base do 2N3904 é especificada para suportar pelo menos 6V. O D4 limita a tensão da Base Emissora reversa para ser inferior a 1 V quando a entrada RS232 é -15 V.

Finalmente, “os drivers e receptores RS-232 devem ser capazes de suportar curto-circuito indefinido ao aterramento” (wikipédia RS232), portanto, se você acidentalmente conectar as linhas RS232 aos terminais da fonte de alimentação, não deve danificar o dispositivo NMEA / AIS.

Fonte de energia

O diodo D1 evita que a tensão reversa seja aplicada ao conversor DC-DC se acontecer de você trocar as conexões + V e GND ao fazer a fiação. D1 tem uma pequena corrente de fuga. D2 fornece um caminho de baixa tensão para essa corrente de fuga para manter a tensão reversa no conversor DC-DC abaixo de -0,3V. O resistor 330R (R10) na linha RS232 GND fornece proteção contra curto-circuito da bateria ao aterramento se o cabo da bateria + ve estiver conectado ao fio GND da fonte de alimentação da placa enquanto o GND RS232 estiver conectado.

O conversor DC-DC é classificado para entrada operacional de até 21 V, portanto, é adequado para uma bateria de 12 V enquanto está sendo recolocado. Uma bateria com carga total pode ser de até ~ 14,8 V e a tensão do carregador pode ser superior, 16 V ou mais. A classificação de entrada de 21 V do conversor DC-DC é classificada para lidar com isso. A conexão de alimentação reversa acidental (no meio da noite e com mau tempo) está protegida. A tensão máxima absoluta para a entrada do conversor é de 28 V e, portanto, pode suportar um sinal RS232 conectado a ele. A tensão RS232 é especificada para ser inferior a +/- 25V.

Se você acidentalmente conectar os cabos de sua fonte de alimentação às conexões RS232 TX / GND (trocadas ou não), os resistores 10K e 330R protegerão contra curto-circuito na fonte de alimentação.

Em resumo, o circuito é protegido contra troca de energia e condutores RS232 e conexão dos fios desses pares em qualquer direção. A mistura de fios, um de cada par, não está protegida em todas as combinações, portanto, mantenha o RS232 e os cabos de alimentação emparelhados e conecte-os aos pares.

A corrente média usada pela placa é de cerca de 100mA (dependendo da potência de transmissão do WiFi e da taxa de dados). Se um regulador linear simples fosse usado para alimentar a placa com uma bateria de 12 V, o consumo de energia seria 12 V x 100 mA = 1,2 W ou 1,2 Ahrs durante 12 noites. Usando o conversor DC para DC, que é aproximadamente 70% eficiente, reduz essa carga para 0,47 W ou 0,47 Ahrs em uma noite de 12 horas.

Etapa 2: construção

Construção
Construção
Construção
Construção
Construção
Construção

Construí esta unidade usando um pequeno pedaço de placa vero com links e barramentos de energia (versão em pdf). Aqui estão as vistas superior e inferior do tabuleiro concluído. Certifique-se de verificar cuidadosamente a fiação quando terminar. É fácil conectar ao pino errado quando você vira e conecta pela parte inferior.

Etapa 3: Programação do WiFi Shield

Programando o WiFi Shield
Programando o WiFi Shield

Cada ponte RS232 para WiFi precisa ser programada uma vez, apenas e nunca mais. Uma página da web interna fornece acesso às configurações disponíveis.

Instalando o suporte ESP8266

Para programar o escudo, siga as instruções fornecidas em https://github.com/esp8266/Arduino em Instalando com o gerenciador de placas. Ao abrir o Board Manager a partir do menu Tools → Board, selecione Type Contributed e instale a plataforma esp8266. Este projeto foi compilado usando o ESP8266 versão 2.6.3. As versões posteriores podem ser melhores, mas podem ter seus próprios bugs, pois a plataforma está evoluindo rapidamente.

Feche e abra novamente o IDE do Arduino e agora você pode selecionar “Módulo ESP8266 genérico” no menu Ferramentas → Placa.

Instalando Bibliotecas de Apoio

Você também precisa instalar, em https://www.forward.com.au/pfod/pfodParserLibraries/index.html, as versões mais recentes da biblioteca pfodESP8266BufferedClient (para pfodESP8266Utils.h e pfodESP8266BufferedClient.h) e biblioteca millisDelay (para millisDelay. h).

Baixe esses arquivos zip para o seu computador, mova-os para a sua área de trabalho ou alguma outra pasta que você possa encontrar facilmente e então use a opção de menu do IDE do Arduino Sketch → Import Library → Add Library para instalá-los. Você também precisa instalar a biblioteca SafeString. A biblioteca SafeString está disponível no gerenciador de biblioteca Arduino ou você pode baixar o arquivo SafeString.zip diretamente para instalação manual via Sketch → Import Library → Add Library

Pare e reinicie o IDE do Arduino e em Arquivo-> Exemplos você deve ver agora pfodESP8266BufferedClient e SafeString.

Programando a placa

Para programar a placa, coloque-a no modo de programação encurtando o link (canto inferior esquerdo). Em seguida, conecte o cabo serial UART USB para TTL

Observe com cuidado apenas conecte os condutores 3V3 TX / RX à conexão do lado esquerdo usando o 3V3 TX / RX do cabo USB para TTL do Sparkfun. As conexões do cabo são RX (amarelo), TX (laranja), VCC (5V) (vermelho), e GND (preto). Observe que o cabo amarelo (RX) está conectado ao pino TX na placa e o cabo laranja (TX) está conectado ao pino RX na placa. O cabo preto (GND) está conectado ao GND para o pino TX / RX

Nota: parece haver duas versões deste cabo. Versões mais antigas têm 5V Vcc e RX (marrom), TX (marrom / pêssego), VCC (vermelho) e GND (preto), em qualquer caso o cabo VCC não é usado aqui. Também há comentários de que o fio TX e RX estão invertidos em alguns casos. Se o Arduino IDE não puder programar a placa, tente trocar os cabos TX / RX. O 330R protege contra curtos TX-TX.

Alimente a placa com uma fonte ou bateria de 6 V a 12 V 500 mA ou maior. Conecte o cabo -Ve (GND) da fonte de alimentação primeiro para que a corrente da fonte de alimentação não tente fluir de volta pela conexão USB. De preferência, use uma fonte ou bateria isolada (flutuante) de 6 V a 12 V. Observe que os módulos Aliexpress DC-DC precisam de pelo menos uma alimentação de 6,5V.

Em seguida, conecte o cabo USB ao computador. Selecione sua porta COM no menu Ferramentas → Porta. Deixe a frequência da CPU, o tamanho do flash e a velocidade de upload em suas configurações padrão.

Verifique a foto e sua fiação. Consulte também as dicas de programação do ESP8266 (falha no espcomm) Compile o esboço ESP8266_NMEA_BRIDGE.ino. Em seguida, selecione Arquivo → Fazer upload ou use o botão de seta para a direita para compilar e fazer upload do programa. Dois arquivos são carregados. Se você receber uma mensagem de erro ao fazer o upload, verifique se as conexões do cabo estão conectadas nos pinos corretos e tente novamente.

Uma vez que a programação for concluída, remova o modo de programação encurtando o link e as conexões TX / RX de programação e, em seguida, desligue e ligue a alimentação para reiniciar a placa em seu modo normal.

Conecte o dispositivo NMEA / AIS.

Sem versão de configuração

Existe outra versão deste sketch, ESP8266_NMEA_BRIDGE_noCfg.ino, em que toda a configuração é pré-programada no código do sketch. Nesse caso, o hub NMEA se conecta a um roteador existente (ponto de acesso) para disponibilizar os dados para a rede.

A configuração está toda no topo do arquivo ESP8266_NMEA_BRIDGE_noCfg.ino.

// ================= CONFIGURAÇÃO HARD CODED ==================

const char ssid = "yourRouterSSID"; // defina o SSID de sua rede aqui const char password = "yourRouterPassword"; // defina a senha de sua rede aqui IPAddress staticIP (10, 1, 1, 190); // defina o IP estático do hub NMEA aqui. OBSERVAÇÃO, entre os números // certifique-se de que nenhum outro dispositivo esteja executando com este mesmo IP e que o IP esteja no intervalo de IP do seu roteador // intervalos de IP do roteador comuns são 10.1.1.2 a 10.1.1.254 // 192.168.1.2 a 192.168.254.254 e // 172.16.1.2 a 172.31.254.254 // o roteador é geralmente 10.1.1.1 ou 192.168.1.1 ou 172.16.1.1 dependendo de seu intervalo IPAddress udpBroadcaseIP (230, 1, 1, 1); // defina o IP de transmissão UDP aqui. NOTE o, entre os números. Este IP é independente do intervalo do roteador, não altere const uint16_t tcpPortNo = 10110; // definir porta do servidor tcp NMEA Não aqui const uint16_t udpPortNo = 10110; // definir porta de transmissão NMEA UDP Não aqui const unsigned int txPower = 10; // potência TX na faixa de 0 a 82; const unsigned int GPS_BAUD_RATE = 4800; // a taxa de transmissão serial do seu módulo GPS // ================= FIM DA CONFIGURAÇÃO HARD CODED ==============

Etapa 4: adicionar leds indicadores (opcional)

Adicionando LEDs indicadores (opcional)
Adicionando LEDs indicadores (opcional)

Meu consultor de vela neste projeto, Jo, sugeriu montar um LED Red Power e um LED Green Data no caso para indicar que as coisas estão funcionando. Aqui está o circuito modificado com esses dois leds adicionados. (versão em pdf)

R9 e R11 definem a corrente do Led e, portanto, o brilho. Use o maior resistor que torna os leds ainda visíveis. Eles serão difíceis de ver sob a luz direta do sol ou em uma cabine bem iluminada, portanto, monte a unidade em um canto escuro para obter visibilidade máxima. Jaycar tem leds de moldura adequados vermelho e verde (~ AU $ 2,75) e Sparkfun tem alguns leds vermelhos e verdes super brilhantes (US $ 1,70), mas quase qualquer LED vermelho e verde serve.

Etapa 5: Definir a configuração por meio da página da Web integrada

Definir a configuração por meio da página da Web integrada
Definir a configuração por meio da página da Web integrada
Definir a configuração por meio da página da Web integrada
Definir a configuração por meio da página da Web integrada
Definir a configuração por meio da página da Web integrada
Definir a configuração por meio da página da Web integrada
Definir a configuração por meio da página da Web integrada
Definir a configuração por meio da página da Web integrada

Ao ligar a placa após a programação, ela criará automaticamente uma rede local. Ou seja, ele se tornará um ponto de acesso local (roteador). O nome da rede começará com NMEA_ seguido por 12 dígitos hexadecimais exclusivos para cada placa, por exemplo. NMEA_18FE34A00239 A senha da rede local é sempre NMEA_WiFi_Bridge. Se você precisar trocar unidades no mar, desligue a antiga, instale a sobressalente e procure a nova rede NMEA_….. e use a senha NMEA_WiFi_Bridge para ingressar nela.

Se você não puder ver a rede, aproxime-se da placa de circuito e verifique se os cabos de alimentação estão conectados corretamente. Deve haver uma luz azul na placa ESP8266-01.

Depois de se conectar à rede com seu computador ou telefone celular, você pode abrir a página de configuração em https://10.1.1.1 (Observação: digite https://10.1.1.1, se você acabou de digitar 10.1.1.1 você pode fazer o Google tentar pesquisá-lo e falhar, pois você não está conectado à Internet)

A página de configuração permite definir a potência de transmissão WiFi. Números mais baixos para menos potência, alcance e consumo de corrente. Você também pode alterar os números das portas para as conexões TCP e UDP. O padrão 10110 é a porta designada para conexões NMEA, mas você pode escolher a sua própria, se desejar. Os números IP são fixos. Finalmente, você pode definir a taxa de transmissão para corresponder à sua fonte NMEA / AIS. 4800 baud é a taxa de baud padrão para NMEA. Enquanto 34800 baud é a taxa de baud padrão para AIS.

Depois de fazer suas seleções, clique em Enviar e uma página de resumo das alterações que foram armazenadas é exibida.

Se eles não estiverem corretos, use o botão Voltar do navegador para voltar e corrigi-los. Para aplicar as mudanças, o tabuleiro precisa ser reiniciado. Clicar no botão Aplicar estas alterações fará isso.

Assim que a placa for reiniciada, ela mostrará automaticamente a página de configuração novamente com a configuração atual.

Conecte seu computador ou dispositivo móvel à conexão TCP ou UDP e verifique se você está recebendo dados.

Pronto !! Vede tudo em uma caixa de plástico à prova d'água, deixando apenas os dois cabos de alimentação e os dois cabos RS232 livres.

Etapa 6: Ajuda - Sem dados

Depois de se conectar à rede e definir seu dispositivo móvel para se conectar ao TCP 10.1.1.1 e à porta que você definiu (ou entrar no grupo UDP multicast 230.1.1.1 com a porta que você definiu), se você ainda não conseguir quaisquer dados, tente os seguintes passos.

1) Verifique se o equipamento NMEA / AIS está ligado

2) Verifique se os cabos RS232 estão conectados da maneira correta.

3) Verifique a configuração de 'controle de fluxo' em seu equipamento NMEA / AIS. Defina como 'NENHUM' se for uma opção. Do contrário, escolha 'hardware' OU controle de fluxo RTS / CTS e faça um curto-circuito entre os pinos RTS e CTS e DSR do cabo NMEA / AIS. Para um conector DB-25, conecte os pinos 4, 5 e 6 juntos. Para um conector DB-9, conecte os pinos 6 e 7 e 8 juntos. Com o controle de 'hardware', o equipamento NMEA / AIS (o DTE) ativa o RTS (ReadyToSend) quando deseja enviar dados. Com essas conexões, o pino RTS aciona os pinos ClearToSend (CTS) e DataSetReady (DSR) que são inseridos de volta no equipamento NMEA / AIS para informar que o outro lado está pronto e capaz de receber dados.

Depurando

Para ativar a saída de depuração TX, descomente, ou seja, edite para #define DEBUGperto do topo do esboço ESP8266_NMEA_BRIDGE.ino.

Remova os cabos USB TX / RX e apenas conecte o cabo RX amarelo à saída TX de depuração. Deixe o cabo preto GND conectado ao GND para TX / RX. O Arduino IDE Serial Monitor agora mostrará mensagens de depuração.

Por padrão, o grupo multicast UDP é iniciado, mas você pode desativá-lo comentando, ou seja, editar para // #define UDP_BROADCAST próximo ao topo do esboço ESP8266_NMEA_BRIDGE.ino.

Conclusão

Esta ponte NMEA / AIS RS232 para WiFi é robusta e simples de usar. Ele funciona com eficiência com uma fonte de 12 baterias e é barato o suficiente para carregar uma reserva que você pode trocar no meio da viagem, se necessário.

Recomendado: