Índice:

Um escudo de WiFi ESP8266 mais barato para Arduino e outros micros: 6 etapas (com imagens)
Um escudo de WiFi ESP8266 mais barato para Arduino e outros micros: 6 etapas (com imagens)

Vídeo: Um escudo de WiFi ESP8266 mais barato para Arduino e outros micros: 6 etapas (com imagens)

Vídeo: Um escudo de WiFi ESP8266 mais barato para Arduino e outros micros: 6 etapas (com imagens)
Vídeo: operador no talento#shorts #viral #caminhão #retroescavadeira #trending #rainerhonorato #maquinas 2024, Julho
Anonim
Um escudo de WiFi ESP8266 mais barato para Arduino e outros micros
Um escudo de WiFi ESP8266 mais barato para Arduino e outros micros
Um escudo de WiFi ESP8266 mais barato para Arduino e outros micros
Um escudo de WiFi ESP8266 mais barato para Arduino e outros micros

Atualização: 29 de outubro de 2020

Testado com a biblioteca de placa ESP8266 V2.7.4 - funciona

Atualização: 23 de setembro de 2016

Não use a biblioteca de placas Arduino ESP V2.3.0 para este projeto. V2.2.0 funciona

Atualização: 19 de maio de 2016

A Rev 14 deste projeto revisa as bibliotecas e o código para funcionar com o plug-in V2.2 do IDE ESP8266.com

Atualização: 17 de dezembro de 2105

A Rev 11 deste projeto limpa outras tentativas de conexão se já estiver conectada. Também usa o tempo limite definido pela configuração da web. Rev 10 ignorou a configuração de tempo limite.

Atualização: 11 de novembro de 2015

Esta é a Rev 10 deste projeto. O Rev 10 usa uma biblioteca WiFi sem bloqueio, pfodESP8266WiFi, que permite maior rendimento, especialmente para clientes Windows. Também permite a configuração da página da web da taxa de transmissão serial.

Atualização: 23 de outubro de 2015

Esta é a Rev 8 deste projeto. A Rev 8 melhorou o código ESP8266 que é mais confiável. NOTA: Cada pacote enviado interrompe esse código até que o receptor (cliente) reconheça o pacote. Isso pode levar entre 10 ms e 200 ms. Durante esse tempo, os dados seriais de entrada do UART não estão sendo processados. O buffer serial de entrada pode armazenar 256 bytes. A 9600 baud, leva cerca de 270 ms para preencher o buffer, portanto, contanto que você mantenha a taxa de baud serial em 9600 ou menos, você não deve perder nenhum dado de saída enquanto o ESP8266 está enviando o pacote anterior. Isso fornece uma boa conexão wi-fi. Se a conexão WiFi for ruim, um pacote pode ser perdido e ter que ser retransmitido pelo ESP826, então o buffer de entrada serial pode ficar cheio se você estiver tentando enviar muitos dados e alguns deles puderem ser perdidos.

Atualização: 20 de setembro de 2015

Esta é a Rev 3 deste projeto. A Rev 3 adiciona uma configuração de tempo limite de conexão à configuração da página da web. Caso não haja envio ou recebimento de dados nesse período o WiFi Shield fecha a conexão e aguarda por uma nova. Isso garante que o WiFi Shield se recupere de conexões 'meio fechadas' que acontecem quando o cliente simplesmente desaparece devido a uma conexão wi-fi ruim, perda de energia no roteador ou desligamento forçado do cliente. Consulte Detecção de conexões de soquete TCP / IP parcialmente abertas (descartadas) para obter mais detalhes.

O tempo limite de conexão padrão é de 15 segundos. mas pode ser alterado conforme necessário. Definir como 0 significa nunca expirar. Ao usar o pfodDesigner, defina uma atualização do menu que seja menor que o tempo limite de conexão.

Introdução

Esta é a Rev 11 do ESP8266-01 WiFi Shield e é uma alternativa ao Barato / Simples Wifi Shield para Arduino e outros micros. Se você está fazendo apenas um Wifi Shield, o projeto mais simples de conectar é o Escudo Wifi Simples / Barato para Arduino e outros micros. No entanto, se você já tem um módulo ESP8266-01, pode usar estas instruções para fazer um WiFi Shield usando-o.

Se você tiver um dos outros módulos simples do ESP8266, desde que o módulo tenha GPIO0 e GPIO2 disponíveis, você pode usar estas instruções. Se o módulo tornar o GPIO15 acessível, VOCÊ DEVE conectá-lo ao GND através de um resistor com um valor entre 3K3 e 10K

O Rev 10 não precisa de nenhuma E / S adicional na placa Arduino, além de TX / RX e alimentação de 5 V e GND. Rev 10 usa GPIO0 e GPIO2 como o ConfigLink, conforme descrito nesta página, ESP8266-01 Pin Magic. Além disso, os esboços de código usados no Rev10 agora são exatamente os mesmos usados no Cheap / Simple Wifi Shield para Arduino e outros micros. Ele também substitui a placa filha da fonte de alimentação de 5 V a 3 V por 3 componentes discretos e usa uma rede de resistores para os cinco resistores 3K3. A primeira versão Rev 1 está aqui.

Essas instruções também estão disponíveis em www.pfod.com.au.

Recursos

  • Usa o módulo ESP8266-01 barato e disponível: - Outros módulos ESP8266 também podem ser usados
  • Simples de usar: - A blindagem compatível de 5 V e 3,3 V atua como uma ponte UART para WiFi. Ele configura um servidor no IP e na porta que você configura e, uma vez conectado, apenas passa os dados de e para a conexão serial. Nenhuma biblioteca é necessária no micro de conexão, apenas uma conexão Serial (UART), para que possa ser usada para qualquer microprocessador que tenha uma porta serial. Ele também pode ser modificado para ser configurado para fazer uma conexão de cliente (com login opcional) a um servidor remoto.
  • Simples de configurar: - Encurtar um link e energizar a blindagem, coloca-o no modo de configuração. Neste modo, ele cria um ponto de acesso seguro ao qual você pode se conectar através do seu celular ou computador. Em seguida, abrir https://10.1.1.1 apresenta uma página da web onde você pode configurar o nome e a senha da sua rede e o IP e o número da porta em que o escudo deve escutar as conexões. A página da web de configuração usa validação HTML5 para verificar as configurações do usuário.

Etapa 1: Lista de peças

Este ESP8266-01 WiFi Shield precisa das peças a seguir ou semelhantes. Os preços apresentados aqui são de 30 de agosto de 2015 e excluem os custos de envio: -

  • Módulo WiFi ESP8266-01 - ~ US $ 2,50 online (arrisque-se) OU para um produto confiável SparkFun ou Adafruit ESP8266-01 - US $ 6,95
  • Uno Protoshield - US $ 1,88 (ou ProtoShield Basic para Arduino da Jaycar AU $ 4,95)
  • Elemento 14 do cabeçalho de 36 pinos - US $ 0,95 (ou 4 conectores sem solda - 10 pinos direto da SparkFun US $ 1,50 ou Faixa de terminal do cabeçalho de 40 pinos da Jaycar AU $ 0,95)
  • LD1117V33 Elemento regulador de 3,3 V 14 - US $ 0,67
  • 1 off 1N5819 Schottky Diode Element14 - US $ 0,16 (ou Jaycar AU $ 0,80) (Qualquer diodo Schottky servirá)
  • BOURNS 4606X-101-332LF REDE DE RESISTORES, 3K3 - US $ 0,27 (Esses resistores pull-up podem ter qualquer valor na faixa de 3K3 a 10K), você também pode usar apenas 5 x resistores discretos de 3K3 em vez de Rev 1, por exemplo, 3K3 resistores - Digikey - US $ 0,52 (ou 3K3ohm 1/2 Watt 1% Resistores de filme metálico - Pk.8 da Jaycar AU $ 0,55)
  • 1 elemento resistor 330R desligado 14 US $ 0,05 OU Resistor Sparkfun 330 Ohm 1/6 Watt PTH - pacote de 20 US $ 0,95 (ou 330 ohm 1/2 Watt 1% Resistores de filme metálico - Pk.8 de Jaycar AU $ 0,55)

  • 1 elemento capacitor desligado de 0,1uF 14 - US $ 0,21 OU Sparkfun US $ 0,25
  • 1 fora do elemento capacitor 10uF 14 - US $ 0,11 OU Sparkfun US $ 0,45

Custo total ~ $ 6,80 + frete (em agosto de 2015) OU ~ US $ 11,25 usando o módulo Sparkfun ou Adafruit ESP8266-01

Para programar a blindagem com a configuração do botão de pressão e o programa de ponte UART para WiFi, você também precisa de um cabo USB para serial. Aqui, um cabo USB para TTL serial SparkFun (US $ 9,95) é usado porque tem extremidades bem etiquetadas e tem suporte de driver para uma ampla gama de sistemas operacionais, mas você também pode usar o cabo USB para TTL serial da Adafruit - Cabo de depuração / console para Raspberry Pi que é o mesmo preço.

Incluindo o cabo de programação, o custo de apenas um WiFi Shield é de aproximadamente US $ 16,75. Uma pesquisa rápida encontra Arduino WiFi Shields custando no mínimo US $ 30 até mais de US $ 70. Portanto, mesmo incluindo o custo único do cabo de programação, esta blindagem é mais barata do que as outras blindagens disponíveis, além de ser muito mais fácil de configurar e usar.

Etapa 2: construção

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

O esquema acima (ESP8266_01_WiFi_Shield_R2.pdf) mostra a disposição das peças necessárias para esta blindagem. Existem apenas seis componentes, além do módulo ESP8266-01.

O diodo 1N5819 protege a entrada ESP8266-01 RX das saídas de 5 V do microprocessador. O resistor 330ohm (R6) fornece proteção contra curto-circuito na saída TX do ESP8266-01, se o D1 do microprocessador for acidentalmente transformado em uma saída. É necessário algum tipo de alimentação 3V3. O pino 3V3 do Arduino UNO não é forte o suficiente para fornecer o módulo ESP2866. Aqui, um regulador de três terminais de 5 V a 3,3 V LD1117V33 é usado. O capacitor de 10uF é necessário para estabilizar o regulador LD1117V33, para que seja montado o mais próximo possível da saída do regulador.

Aqui estão as vistas superior e inferior do tabuleiro concluído.

A parte superior da placa parece limpa. O fundo do tabuleiro parece um ninho de rato.

Certifique-se de verificar cuidadosamente a fiação quando terminar, especialmente a fiação para os pinos do ESP8266-01 e do regulador de três terminais LD1117V33. É fácil conectar ao pino errado quando você vira e conecta pela parte inferior. O regulador é montado de cabeça para baixo para manter a guia de metal, que está eletricamente conectada ao pino de saída, longe dos pinos da placa.

Etapa 3: Programação do WiFi Shield

Programando o WiFi Shield
Programando o WiFi Shield
Programando o WiFi Shield
Programando o WiFi Shield
Programando o WiFi Shield
Programando o WiFi Shield

O WiFi Shield precisa ser programado uma vez, apenas e nunca mais, com a configuração da página da web e o código Serial to WiFi Bridge.

Para programar o escudo, siga as etapas 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 1.6.4-673-g8cd3697. Versões posteriores são 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.

Você também precisa instalar a versão mais recente de pfodESP2866BufferedClient.zip. Esta biblioteca funciona com o plug-in IDE ESP8266.com V2.2. Se você instalou anteriormente a biblioteca pfodESP2866WiFi, exclua o diretório da biblioteca completamente.

  1. Baixe este arquivo pfodESP2866BufferedClient.zip para o seu computador, mova-o para a sua área de trabalho ou alguma outra pasta que você possa encontrar facilmente
  2. Em seguida, use a opção de menu Arduino 1.6.5 IDE Sketch → Import Library → Add Library para instalá-la. (Se o Arduino não permitir a instalação porque a biblioteca já existe, localize e exclua a pasta pfodESP8266BufferedClient mais antiga e importe esta)
  3. Pare e reinicie o IDE do Arduino e em Arquivo-> Exemplos você deve ver agora pfodESP8266BufferedClient.

Definir a senha do ponto de acesso de configuração

Depois de instalar a biblioteca pfodESP8266BufferedClient, abra o IDE do Arduino e copie este esboço, ESP8266_WifiShield.ino, para o IDE. Antes de programar o escudo, você precisa definir sua própria senha para o ponto de acesso de configuração.

No modo de configuração, o WiFi Shield configura um ponto de acesso seguro chamado pfodWifiWebConfig com uma senha contida em um código QR anexado ao escudo. Esta conexão segura evita que alguém ouça sua conexão enquanto você configura o SSID e a senha de sua rede real. Você deve gerar sua própria senha para seus escudos. Um programa java SecretKeyGenerator está disponível aqui, que gera chaves de 128 bits aleatórias e grava arquivos QR.png. Outra alternativa é usar QR Droid Private (do Google Play) para criar um QR Code para sua própria senha escolhida.

Em ambos os casos, você precisa atualizar o #define próximo ao topo do esboço com sua própria senha.

// =============== início das configurações de pfodWifiWebConfig ==============

// atualize esta definição com a senha de seu código QR //https://www.forward.com.au/pfod/secureChallengeResponse/keyGenerator/index.html #define pfodWifiWebConfigPASSWORD "b0Ux9akSiwKkwCtcnjTnpWp"

Você também pode definir seu próprio nome de ponto de acesso de configuração, se desejar.

Programando o escudo

Para programar a blindagem, remova-o da placa Arduino, dê um curto no FLASH_LINK (mostrado aqui com um link de curto azul no meio da placa) e conecte o cabo USB para serial como mostrado na foto. Verifique a foto e sua fiação.

O cabo RX se conecta a D0 e o cabo TX se conecta a D1. O VCC (+ 5V) se conecta ao pino 5V e o GND se conecta ao pino GND na blindagem. Curta o FLASH_LINK conforme mostrado acima. A foto acima é para o cabo USB SparkFun para serial. Se você estiver usando o cabo Adafruit, ele não terá os terminais marcados, mas será codificado por cores, vermelho é alimentação, preto é aterramento, verde é TX e branco é RX.

Verifique cuidadosamente as conexões VCC e GND, pois é fácil causar um curto-circuito na fonte de alimentação USB se você estiver com um pino desligado

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

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. Assim que a programação for concluída, remova o link de curto de FLASH_LINK.

Anexando o código QR de configuração

Você precisará de sua senha de ponto de acesso de configuração exclusiva toda vez que precisar configurar o escudo, portanto, é conveniente anexá-lo como um código QR ao escudo (ou à sua caixa). Aqui está o arquivo de apresentação do Open Office que foi usado para imprimir o código QR e os detalhes da conexão para este projeto. Substitua o código QR e o texto da senha pelo seu próprio e exclusivo para completar o escudo.

Etapa 4: Configurando o WiFi Shield

Configurando o WiFi Shield
Configurando o WiFi Shield
Configurando o WiFi Shield
Configurando o WiFi Shield
Configurando o WiFi Shield
Configurando o WiFi Shield

Qualquer escudo WiFi precisa ser configurado com o nome da rede e a senha da rede local. Ele também precisa receber um IP e um número de porta para escutar as conexões. Todos os outros escudos WiFi têm o IP e a porta não codificados no esboço e codificam o nome da rede e a senha ou usam um método proprietário com aplicativos proprietários para se conectar à rede local. Isso é muito restritivo quando você tem vários dispositivos em um ambiente em evolução. Este WiFi Shield usa um método de página da web de código aberto para configurar o nome e a senha da rede, o endereço IP e o número da porta

O ESP8266-01 tem um número muito limitado de saídas disponíveis, apenas GPIO0 e GPIO2. Neste projeto, após a inicialização, o código no ESP2866-01 verifica se o GPIO2 está aterrado e, se estiver, define o ESP8266-01 no modo de configuração. No entanto, o aterramento da entrada GPIO2 deve ser atrasado até depois que o ESP8266-01 terminar de ligar. Se o GPIO2 estiver aterrado durante a inicialização, o módulo ESP8266-01 não iniciará normalmente. Esse atraso no aterramento do GPIO2 é obtido usando GPIO0 como o aterramento. Após a inicialização do ESP8266-01, o código setup () torna o GPIO0 uma saída e o define como BAIXO. Isso então aterrará o GPIO2 se o CONFIG_LINK estiver em curto.

A primeira versão deste projeto (Rev 1), usou uma E / S digital Arduino extra para fazer esse aterramento, que exigia código extra no esboço do Arduino. Rev 2+, remove a necessidade de qualquer código extra no esboço do Arduino, exceto um pequeno atraso no início de setup () para ignorar a saída de depuração do ESP8266.

Para testar a configuração do WiFi Shield ESP8266-01, basta conectá-lo a uma placa Arduino, fazer um curto no CONFIG_LINK (link de curto azul à esquerda da imagem) e aplicar energia à placa Arduino.

Neste modo de configuração, o módulo ESP8266 configura um ponto de acesso seguro com o nome pfodWifiWebConfig. Este ponto de acesso aparecerá no seu celular e no seu computador. Para se conectar a este ponto de acesso, você precisará inserir a senha exclusiva do seu escudo. Você pode digitar a senha manualmente, mas é mais fácil e confiável escanear o código QR que você anexou anteriormente ao seu escudo, usando um aplicativo de scanner QR, como QR Droid Private

Em seguida, copie e cole a senha na tela de configuração de WiFi do seu celular para conectá-lo ao ponto de acesso de configuração.

Em seguida, abra um navegador da web e digite o URL https://10.1.1.1 Isso retornará a página da web de configuração.

O WiFi Shield preenche automaticamente o SSID da rede com a rede local com a melhor intensidade de sinal. Qual geralmente será o que você deseja. Caso contrário, basta sobrescrever essa entrada. Você deve inserir um SSID de rede, uma senha e uma portaNo. O campo do endereço IP é opcional. Se você deixar em branco, o WiFi Shield usará DHCP para obter seu endereço IP em sua rede local. Geralmente, é mais fácil especificar um endereço IP específico para que você possa se conectar facilmente a esse escudo.

A Rev 10 também permite que você configure a taxa de transmissão serial para este escudo. O padrão é 19200, mas os exemplos aqui usam 9600, portanto, altere a taxa de transmissão para 9600

Se o seu navegador for compatível com HTML5, a página da web validará a entrada antes de enviá-la.

Quando você clica no botão Configurar, o WiFi Shield processa os resultados e os armazena na EEPROM e, em seguida, exibe uma página de resposta, como a acima, informando para desligar e ligar a rede para se conectar.

Etapa 5: usando o WiFi Shield

Usando o WiFi Shield
Usando o WiFi Shield
Usando o WiFi Shield
Usando o WiFi Shield
Usando o WiFi Shield
Usando o WiFi Shield

Em um projeto completo, você montaria um botão momentâneo do lado de fora da caixa do projeto conectado ao CONFIG_LINK e instruiria o usuário a pressionar o botão e então ligar o dispositivo para entrar no modo de configuração. O código que você carregou no ESP8266-01 também direciona o pino GPIO0 do ESP8266 BAIXO quando o módulo está no modo de configuração, então você pode conectar um resistor de 270 ohm e LED entre o trilho de 3,3 V e GPIO0 e montar o LED na parte externa da caixa, para indicar ao usuário que ele está no modo de configuração.

A Rev 10 também permite que você configure a taxa de transmissão serial para este escudo. O padrão é 19200, mas os exemplos aqui usam 9600, portanto, altere a taxa de transmissão para 9600 na página de configuração acima

Como mencionado acima, qualquer esboço que você carregue em seu Arduino, ou outro microprocessador, precisa de um pequeno atraso para pular a saída de depuração do módulo ESP8266. Fora isso, para receber e enviar dados via WiFi, a partir do seu sketch, basta ler e escrever na sua porta serial (conectada a D0, D1) a 9600 baud. Portanto, para ignorar a saída de depuração do ESP8266, adicione um pequeno atraso no início do método setup ()

void setup () {

atraso (1000); // espere aqui por um segundo, deixe o ESP8266 completar a inicialização // isso também pula a saída de depuração do WiFi Shield na inicialização // antes de iniciar a conexão serial. … outro código de configuração aqui

O exemplo aqui usa um Arduino UNO, mas você pode usar qualquer microprocessador, com base em 5V ou 3,3V, que tenha um UART. Se você usar um microprocessador de 3,3 V, precisará fornecer 5 V à fonte de alimentação do WiFi Shield. Este 5 V também será conectado ao pino de 5 V da blindagem, portanto, você precisa verificar se isso é aceitável para o micro ao qual está conectando a blindagem.

Como teste dessa blindagem, o pfodApp foi usado para ligar e desligar o LED do Uno via wi-fi. Primeiro, o pfodDesigner foi usado para criar um menu simples.

NOTA: A versão mais recente do pfodApp envia msgs keepAlive para que o escudo wi-fi não expire

Em seguida, o código foi gerado para a conexão serial a 9600 baud e transferido o arquivo para o PC, usando transferência de arquivo wi-fi.

A configuração do esboço () não precisava ter o atraso (1000) adicionado porque o analisador pfod ignora quaisquer caracteres fora de {}, mas foi incluído porque é recomendado para esta placa WiFi.

O esboço completo, ESP8266_UnoLedControl.ino, está aqui. Observe que não há código WiFi especial, o esboço apenas lê e grava na saída serial.

Remova o WiFi Shield, selecione Ferramentas → Placa → Uno no Arduino IDE e programe este esboço no UNO. NOTA: você deve remover o escudo WiFi para programar o UNO porque o USB está conectado aos pinos TX / RX do UNO.

Conecte o WiFi Shield novamente, ele se conectará automaticamente à sua rede local e iniciará um servidor na porta que você configurou. Em pfodApp você pode configurar uma conexão para este dispositivo. Consulte pfodAppForAndroidGettingStarted.pdf para obter os detalhes.

Em seguida, conecte-se para ligar e desligar o LED do Uno em seu celular Android via wi-fi.

Pronto !!

Etapa 6: extensões para o escudo WiFi e conclusões

Adicionando Suporte ao Cliente

Conforme apresentado aqui, o escudo WiFi pode ser configurado para ser executado como um servidor ouvindo em um IP e número de porta especificados. No entanto, o pfodWifiConfig também fornece suporte para armazenar e recuperar as configurações do cliente, bem como as configurações do servidor. Portanto, ao adicionar esses campos à página da web de configuração e salvar / carregar os valores do cliente, você também pode usar este escudo WiFi para se conectar a um servidor remoto, com um nome de usuário e senha do cliente, e enviar dados para lá.

Adicionando botão de configuração externa e Led

Como mencionado acima, em um aplicativo real, você montaria um botão momentâneo do lado de fora da caixa do seu projeto conectado ao CONFIG_LINK e instruiria o usuário a pressionar o botão e então ligar o dispositivo para entrar no modo de configuração. O código que você carregou no ESP8266-01 conduz o pino GPIO0 BAIXO quando o módulo está no modo de configuração, então você pode conectar um resistor de 270 ohm e LED entre o trilho de 3,3 V e GPIO0 e montar o led na parte externa da caixa, para indicar ao usuário que ele está no modo de configuração.

Conclusão

Este Rev 2 do ESP8266-01 WiFi Shield usa o módulo ESP8266-01 barato e disponível. Outros módulos ESP8266 também podem ser usados.

Uma vez programado, você nunca precisará programá-lo novamente para definir ou alterar as configurações de rede. Todos eles podem ser configurados por meio de uma página da web em uma rede WiFi temporária segura.

É simples de fazer interface com qualquer micro que tenha um UART e funcione com microprocessadores de 5V ou 3,3V.

Nenhuma biblioteca é necessária para conectar a este escudo. Ele funciona como uma ponte serial para wi-fi simples.

Recomendado: