Índice:
- Etapa 1: Diagrama de Circuito e Proteções de Circuito
- Etapa 2: construção
- Etapa 3: Programação do WiFi Shield
- Etapa 4: adicionar leds indicadores (opcional)
- Etapa 5: Definir a configuração por meio da página da Web integrada
- Etapa 6: Ajuda - Sem dados
Vídeo: Hub NMEA / AIS barato - ponte RS232 para Wifi para uso a bordo: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
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
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í 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
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)
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
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:
Um escudo de WiFi ESP8266 mais barato para Arduino e outros micros: 6 etapas (com imagens)
Um ESP8266 WiFi Shield mais barato para Arduino e outros Micros: Atualização: 29 de outubro de 2020Testado com a biblioteca de placas ESP8266 V2.7.4 - atualização de trabalhos: 23 de setembro de 2016 Não use a biblioteca de placas Arduino ESP V2.3.0 para este projeto. Atualização de trabalho V2.2.0: 19 de maio de 2016 Rev 14 deste projeto revisa bibliotecas e código para funcionar com
DHT12 (sensor de temperatura e umidade i2c barato), uso rápido e fácil: 14 etapas
DHT12 (sensor de temperatura e umidade i2c barato), uso rápido e fácil: Você pode encontrar atualizações e outras no meu site https://www.mischianti.org/2019/01/01/dht12-library-en/. Gosto do sensor que pode ser usado com 2 fios (protocolo i2c), mas eu adoro o barato. Esta é uma biblioteca Arduino e esp8266 para a série DHT12 o
Lâmpada de garrafa de xarope de bordo Neopixel Light Up: 4 etapas (com fotos)
Lâmpada de garrafa de xarope de bordo Neopixel Light Up: Em uma classe própria em agitações de desktop.Inspirada pela sinalização de néon de lanchonetes de beira de estrada e a lâmpada de torneira de água corrente Neopixel.Faça uma. Pelo menos compre uma nova garrafa de xarope 100% canadense antes que o NAFTA seja renegociado
IOT123 - JIG DE PROGRAMAÇÃO A BORDO ATTINY85: 3 etapas
IOT123 - ATTINY85 ONBOARD PROGRAMMING JIG: Nos designs de BRICK, eu mencionei que os orifícios adjacentes ao ATTINY85 não foram usados, para permitir um programador de pogo pin enquanto o DIP8 é soldado ao PCB. Este é aquele programador de pogo pin. Este é realmente apenas um adaptador para
Retrofit o RockBand Hub para uso de PC (sem alimentação externa): 4 etapas
Retrofit o RockBand Hub para uso do PC (sem alimentação externa): Tudo bem, enquanto procurava um gamepad usb com preço decente, eu entrei em um GameStop. Lá eu encontrei um gamepad usb de 10 dólares, mas também notei que eles tinham um rockband usado hub com fonte de alimentação por 2 dólares. Bem, isso realmente me dá dois