Índice:

Gateway UDP / IP serial para Arduino baseado no escudo ESP8266: 8 etapas
Gateway UDP / IP serial para Arduino baseado no escudo ESP8266: 8 etapas

Vídeo: Gateway UDP / IP serial para Arduino baseado no escudo ESP8266: 8 etapas

Vídeo: Gateway UDP / IP serial para Arduino baseado no escudo ESP8266: 8 etapas
Vídeo: Web Client using Arduino UNO and Ethernet Shield 2024, Julho
Anonim
Gateway serial UDP / IP para Arduino baseado em ESP8266 Shield
Gateway serial UDP / IP para Arduino baseado em ESP8266 Shield

Já publiquei em 2016 este instrutível "Como fazer seu próprio gateway Wifi para conectar seu Arduino à rede IP". Pois fiz algumas melhorias no código e ainda estou usando esta solução.

No entanto, agora existem alguns protetores ESP8266 que permitem fazer exatamente o mesmo sem soldar, desde que você não esteja usando placas Micro ou Nano.

Este instrutível explicará como usar esses escudos ESP82 como gateway UDP / IP serial.

Isso faz parte de uma infraestrutura de automação residencial global que você pode conferir aqui

Mais informações sobre o escudo com este instrutível

Suprimentos

1 Arduino Mega (o melhor é ter pelo menos 1 Mega para desenvolvimento e 1 Uno para a fase de execução)

1 Rokoo ESP8266 ESP-12E UART WIFI Convertisseur

1 FTDI 3.3v

2 fios da placa de ensaio

Etapa 1: Como funciona?

Como funciona ?
Como funciona ?

O Gateway é baseado em um módulo ESP8266

Este módulo é conectado de um lado com o link serial do outro lado para a rede IP com o Wifi.

Ele atua como uma caixa preta. Os pacotes de dados vindos do link serial são enviados para uma porta IP / Udp e vice-versa.

Você só precisa definir sua própria configuração (IP, WIFI …) assim que ligar o Gateway pela primeira vez.

Ele pode transferir dados ASCII brutos e binários (sem HTTP, JSON …)

Ele é projetado para conectar objetos com softwares caseiros de servidores que precisam de transferências rápidas e frequentes de pacotes curtos de dados.

Etapa 2: Quais são as funções principais?

Em geral, é uma caixa preta que converte dados seriais em pacote UDP de ambas as maneiras.

Mas o gateway também pode atuar por conta própria, enviando informações internas ao servidor e recebendo alguns comandos do servidor.

O Arduino pode enviar e receber mensagens para / de um servidor conectado pela Internet apenas imprimindo / lendo um link serial. O desenvolvedor do Arduino não precisa se preocupar com o protocolo IP.

Além disso, ele fornece um GPIO que pode ser usado pelo Arduino para verificar se o Gateway está conectado corretamente ao WIFI e o Gateway pode trocar automaticamente entre 2 SSID diferentes em caso de falha

O Gateway tem 2 modos de execução diferentes que são selecionados pela configuração de um GPIO

Configurando GPIO para aterrar e o Gateway entra no modo de configuração.

Configurando GPIO livre e o Gateway entra no modo de execução de gateway.

Além disso, a configuração UDP / IP do Gateway pode ser modificada remotamente

Etapa 3: construção do material

Construção de material
Construção de material

Muito poucas coisas são necessárias

1 ESP8266 Shield - Eu encontrei este Módulo de Placa Extend de Escudo WiFi Serial UNO R3 ESP8266 por menos de 9 €

1 UNO que é o alvo do Arduino

1 Mega que é a ferramenta de desenvolvimento arduino (você pode fazer sem, mas é bastante difícil de depurar)

1 FTDI 3.3 / 5v para desenvolvimento

Alguns fios

Etapa 4: Baixe o código do gateway

Baixe o código do gateway
Baixe o código do gateway

Durante esta etapa, o Arduino é usado apenas para alimentar (com USB ou outra fonte de alimentação) no escudo ESP8266

Conecte o ESP8266 GPIO4 ao aterramento (para entrar no modo de configuração)

Tome cuidado para definir o FTDI para 3,3 V conforme exigido pela blindagem

Conecte o FTDI à blindagem (RX para TX)

Defina o interruptor de proteção para 1: desligado 2: desligado 3: ligado 4: ligado

Conecte o lado USB do FTDI ao seu computador

Reinicie a blindagem com o botão ESP-RST

Baixe o código do gateway lá no GitHub

Abra o IDE Arduino

  • Selecione a porta do monitor FTDI
  • Abra o IDE Serial Monitor - defina a velocidade para 38400
  • Selecione a placa do módulo ES8266 genérico
  • Atualize o firmware do escudo com o código do gateway

Defina o interruptor 3: desligado 4: desligado

Abra o IDE Serial Monitor

Reinicie a blindagem com o botão ESP-RST

Você deve ver mensagens no monitor começando com "Inicialização EEPROM" "Inicialização concluída"….

É hora de fazer a configuração

Etapa 5: vamos fazer a configuração do gateway

Ao baixar o código do gateway pela primeira vez, o ESP8266 Eeprom será inicializado com os valores padrão. Você verá este tipo de mensagem "definir parâmetro: x tamanho: yy"

Você pode encontrar esses valores dentro da definição de código de paramValue. É claro que você pode alterar esses valores padrão antes de baixar o código, mas também pode definir sua configuração por comando mais tarde. Isso é melhor se você planeja ter um gateway multipe e manter apenas uma versão do código.

Use a porta serial do monitor para enviar o comando (defina como NL e CR).

Como o SSID não está definido atualmente, espere por "Não foi possível conectar-se ao seu segundo tentar novamente: 5"

Em seguida, uma varredura de WIFI será iniciada automaticamente

É hora de definir seus SSIDs com os seguintes comandos:

  • SSID1 = sua escolha1
  • PSW1 = yourpsw1
  • SSID2 = sua escolha2
  • PSW2 = yourpsw2
  • SSID = 1 (para escolher com qual SSID começar)
  • ReiniciarWifi

Após alguns segundos você pode verificar a conexão com o comando "ShowWifi". Você deve ver o endereço IP que o gateway obteve do seu servidor DNS. Se for o caso, é hora de ir mais longe

É hora de definir o endereço do servidor IP inserindo os 4 subendereços (servidor que executará o código de teste Java). Por exemplo:

  • "IP1 = 192"
  • "IP2 = 168"
  • "IP3 = 1"
  • "IP4 = 10"

Ao enviar um comando vazio, você verá todos os comandos suportados que poderá usar posteriormente para atender às suas necessidades. Todos os valores dos parâmetros são armazenados no Eeprom e precisam ser reiniciados para serem levados em consideração.

Remova o fio de configuração

O escudo agora está funcionando como um gateway

Etapa 6: Baixe o exemplo de código do Arduino

Baixe o exemplo de código do Arduino
Baixe o exemplo de código do Arduino

Primeiro baixe o código principal do Arduino lá no GitHub

Em seguida, baixe o código do Arduino, esta definição de comandos e este código de link serial em seu librairies

Em seguida, abra o código principal com um novo IDE Arduino

Desligue a chave de proteção 1 e 2 para liberar o link serial 0 do Arduino para conexão USB

Reinicie o escudo

Conecte os fios FTDI ao Mega Serial 2 (TX FTDI para RX Mega e assim por diante)

Inicie um novo IDE Arduino (ou uma ferramenta TTY), conecte o FTDI Usb e comece a monitorar o link serial

Faça upload do código do Arduino dentro do Mega

Defina a chave de proteção 1 e 2 para conectar o link serial 0 do Arduino

Reinicie o escudo

Você deve ver esta mensagem "start usb print" no monitor

Etapa 7: vamos fazer o lado do servidor

O exemplo de servidor é um programa Java que você pode baixar aqui no GitHub

Basta executá-lo e olhar para o console Java e olhar para o monitor FTDI

Você verá trocas de dados entre o servidor e o Arduino

Etapa 8: para ir mais longe

Ir adiante
Ir adiante
Ir adiante
Ir adiante

Este exemplo de código do Arduino é baseado em uma estrutura que faz parte da minha infraestrutura de automação residencial.

Se você está interessado nesta infraestrutura, me avise. Vou publicar fontes.

Se você deseja apenas usar o gateway, pode simplificar o código do Arduino.

Depois de desenvolver e testar seu código em um Arduino Mega, você pode substituí-lo facilmente por um Uno!

Além disso, você pode conectar um fio entre Arduino GPIO 7 e ESP8266 GPIO 5 se quiser que seu Arduino verifique a conexão Wifi

Recomendado: