Esp 01 firmware arduino. Firmware ESP8266, programação em Arduino IDE

22.02.2024

A empresa chinesa Espressif em 2014 começou a vender módulos Wi-Fi baseados em chips ESP8266. que imediatamente ganhou grande popularidade entre os rádios amadores devido ao seu baixo custo e grandes capacidades. Hoje existe um grande número de módulos diferentes baseados no chip ESP8266. Neste artigo falarei sobre o ESP-01;

Parâmetros Técnicos

Tensão de alimentação: 3V ~ 3,6V
Corrente operacional máxima: 220ma
Frequência operacional: 2,4 GHz
Modos: P2P (cliente), soft-AP (ponto de acesso)
Número de GPIOs: 2.
Memória flash: 1024 KB.
Potência de saída no modo 802.11b: +19,5dBm
Suporte padrão sem fio: 802.11 b/g/n
Dimensões: 24,8 mm x 14,3 mm x 8 mm

Informações gerais sobre ESP-01

Essencialmente, o chip ESP8266 é um microcontrolador em miniatura com um transmissor Wi-Fi que pode operar com total autonomia, sem uma placa Arduino adicional. Usando o módulo ESP-01, você pode transmitir dados de temperatura, umidade, ligar um relé e assim por diante. Para facilitar o uso do chip ESP8266, o fabricante fabricou uma série de módulos do ESP-01 ao ESP-14. O primeiro desta série é o módulo ESP-01 (também existe o ESP-01S, falaremos mais sobre isso um pouco mais tarde), que é um dos famosos pelo preço e pequeno tamanho, apenas 14,3 mm por 24,8 mm. Mas tem duas desvantagens: um número limitado de pinos GPIO programáveis ​​e sua localização inconveniente (inconveniente para o layout).


O módulo ESP-01 é uma pequena placa preta na qual estão localizados dois chips principais, um microcontrolador ESP8266 e uma memória flash de 1 MB. Perto está um ressonador de quartzito e uma antena impressa. A placa possui dois LEDs, vermelho e azul. O LED vermelho acende quando o módulo está ligado e o azul pisca quando os comandos são executados (o LED vermelho foi removido do NSP-01S devido ao consumo constante de energia). Para conectar o módulo ESP-01 são fornecidos oito pinos (duas fileiras de quatro pinos, passo de 2,54 mm), dois dos já prontos são entrada-saída digital, suportando modulação por largura de pulso. Embora o módulo tenha dois pinos GPIO por padrão, você pode usar outros pinos disponíveis se tiver a ferramenta de solda necessária.


Atribuição de pinos
GND:"-" fonte de alimentação do módulo
GPIO2:(E/S digital programável)
GPIO0:(E/S digital programável, também usado para modos de inicialização)
RX: Recepção UART
TX: Transmissão UART
CH_PD:(ligar/desligar, deve ter saída para 3,3 V diretamente ou através de um resistor)
RST: redefinir, você precisa puxá-lo para 3,3V
VCC: Fonte de alimentação do módulo “3,3 V”

Conexão do módulo
Para operar o módulo ESP-01 é necessária uma fonte de alimentação DC, que deve fornecer 3,3 V e corrente de pelo menos 250 mA. Infelizmente, o estabilizador padrão instalado no Arduino não é capaz de fornecer a corrente necessária para o funcionamento do ESP-01 (se você decidir conectar o ESP-01 de qualquer maneira, espere uma operação instável e reinicializações constantes). Além disso, o sinal lógico deste módulo é projetado para 3,3 V, ou seja, uma tensão de 3,3 V deve ser aplicada ao pino RX, e uma tensão de 3,3 V será fornecida a partir do pino TX (o mesmo para os demais pinos ). Se você precisar conectar o módulo ao Arduino ou a outros controladores que produzam 5V no pino lógico, você deve usar resistores ou um módulo de nível lógico, se conectar diretamente, o módulo irá quebrar;

Atenção! ESP-01 são muito caprichosos quando se trata de fonte de alimentação, você precisa usar um regulador de tensão externo de 3,3V, usarei um adaptador USB como primeiro exemplo

Pela tabela acima, pode-se observar que o módulo ESP-01 pode operar em diversos modos sleep, com mínimo consumo de corrente, são chamados por software, exceto o último “Power Off”, para habilitar este modo, você preciso instalar um jumper entre GPIO16 e RST, mais tarde darei um exemplo.

Instalando ESP8266 no Arduino IDE

Baixe o programa Arduino IDE do site arduino.cc
Em seguida, você precisa instalar a placa ESP no Arduino IDE. Para fazer isso, execute o programa Arduino IDE e abra: Arquivo -> Configurações.
Em uma nova janela aberta, no campo “ Links adicionais para PCB Manager:»adicionar link:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Na janela aberta, procure por " esp8266 por ESP8266 Comunidade sim" e pressione " Instalar". A instalação levará alguns minutos, então a mensagem “ Instalado", clique em " Fechar«

Clique em " Ferramentas -> Placas -> Módulo Generis ESP8266«.

Agora você precisa conectar o módulo ESP-01 ao computador através de um adaptador USB especial no chip CH340G


Ajustando a frequência do processador " Frequência da CPU: "80 MHz"", velocidade " Velocidade de upload: "115200"" e selecione " Porta«.

Em seguida, carregamos um esboço que fará o ESP8266 piscar o LED.

/* Testado no Arduino IDE 1.8.5 Data do teste 15/06/2018 */ #define TXD 1 // GPIO1 / TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay( 1000);

... Em geral, este material não se limita a apenas um tópico sobre Arduino.

O tópico do ESP8266 é bastante difícil. Mas, se você trabalhar com esses módulos Wi-Fi no ambiente de desenvolvimento Arduino IDE, o limite de entrada cai para um nível aceitável para o usuário médio do Arduino. E não só o cara do Arduino, mas qualquer pessoa que tenha vontade de inventar algo sobre IoT (Internet das Coisas), sem perder muito tempo lendo a documentação do chip e estudando a API desses módulos.

Este vídeo duplica completamente o material apresentado no artigo abaixo.

Bom, já sabemos como conectar o ESP8266 e colocá-lo em modo de programação, agora vamos passar para algo mais útil.

Direi desde já que assim que programarmos o módulo no ambiente de desenvolvimento Arduino, destruiremos o firmware nativo e não poderemos mais trabalhar com o módulo usando comandos AT. Pessoalmente, isso não me deixa com frio/calor, mas se alguém precisar, no final do artigo mostrarei como fazer o flash do firmware nativo de volta no módulo, ou algum tipo de bootloader como o NodeMcu.

Para começar, baixe a versão mais recente do Arduino IDE no site oficial, atualmente é 1.6.7. Versões mais antigas como 1.0.5. não cabem porque simplesmente não têm a funcionalidade necessária, e dançar com pandeiro não nos interessa, certo?

Lançamos o ambiente de desenvolvimento e vamos imediatamente para Arquivo/Configurações:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Então vá em Ferramentas/Placa:/Gerenciador de Placa...:

Uma janela do gerenciador de placa aparecerá na nossa frente, role até o final, e se tudo for feito corretamente veremos algo assim:

Clique com o cursor na inscrição " esp8266 por Comunidade ESP8266"depois disso temos um botão “Instalar”, selecione a versão desejada, pego a mais recente, hoje é 2.1.0 e instalo. O ambiente de desenvolvimento fará o download dos arquivos necessários (cerca de 150 megabytes) e ao lado do inscrição " esp8266 por Comunidade ESP8266 Aparecerá ""INSTALLED", ou seja, instalado:

Percorremos a lista de placas e vemos que temos muitos ESPs diferentes na lista, pegue o “Módulo ESP8266 Genérico”:

Vá em “Ferramentas” e selecione a porta COM desejada (para mim é COM32) Arduino ou conversor USB UART, em seguida defina a velocidade de upload: “115200”:

Definimos a velocidade para 74880 e “NL & CR” e novamente desligamos e ligamos a energia e ele responderá com algumas informações de depuração:

Observe que 74880 não é a velocidade principal do ESP8266, apenas envia informações de depuração para ele. Se o módulo não enviar nada para o console, algo pode estar conectado incorretamente.

Por padrão, a velocidade deve ser 115200, mas em alguns casos pode ser 9600 e outros... Então tente encontrá-la.

Após selecionar a velocidade desejada, enviamos o módulo “AT” e ele deverá responder que está tudo “OK”. O comando "AT+GMR" exibe informações sobre o firmware.

Antes de começar a atualizar o ESP8266 no IDE do Arduino, aconselho você a ler o artigo até o final.

Agora vamos tentar atualizar o ESP8266 via Arduino IDE. Colocamos o módulo em modo de programação (escrevi como fazer isso em um artigo anterior).

Vamos adicionar um LED padrão ao pisca-pisca:

// Por Sr. digitalWrite(TXD, ALTO);

Piscou? Então tudo foi feito corretamente. Onde consegui que o LED esteja conectado ao primeiro pino? No artigo anterior há uma imagem com pinagens de diferentes módulos, e há uma marcação das portas ao usar o bootloader Arduino (os pinos estão marcados em rosa).

Piscar um LED é claro que é bom, mas precisamos instalar algum tipo de servidor web ou começar a controlar o LED pelo menos usando botões no navegador, certo? Mas falarei sobre isso em outra ocasião.

E agora como fazer flashback do firmware nativo e como atualizar um módulo com bootloaders de terceiros. Para ESP8266 existe um programa como NodeMCU Flasher, que foi originalmente projetado para atualizar o carregador de inicialização NodeMCU. Mas, como se viu, ele atualiza perfeitamente outro firmware.

Anexarei um arquivo com este programa e firmware ao artigo por conveniência, mas você sempre pode baixar uma nova versão do NodeMCU Flasher.

Na pasta “nodemcu-flasher-master” existem 2 pastas, Win64 e Win32, e dependendo da profundidade de bits do seu sistema operacional, selecione a que você precisa. A seguir, na pasta Release, execute “ESP8266Flasher.exe” e veja a interface do programa:

Selecione a porta COM desejada e vá até a aba “Config”, retire a cruz ao lado de “INTERNAL://NODEMCU” e coloque um ponto abaixo, como na imagem:

(Se quiser fazer o flash do bootloader NodeMCU, retire a cruz onde não estava, e coloque onde estava, ou seja, próximo a “INTERNAL://NODEMCU”).

Em seguida, clicamos na engrenagem e selecionamos onde nosso firmware está localizado, o firmware geralmente está no formato *.bin (no arquivo anexo é “v0.9.5.2 AT Firmware.bin” que está na pasta principal), e selecione também “0x00000” como e superior.

Voltamos novamente à aba “Operação”, colocamos o módulo em modo de programação e clicamos em “Flash”:

É isso, o módulo começou a piscar, depois de piscar, não esqueça de reiniciar o módulo e pronto, ele está piscando com o firmware que precisamos.

Verificamos com o comando AT “AT+GMR” se fizemos tudo corretamente:

Como você pode ver, tudo correu bem.

Moule esp-01
Diagrama da conexão correta do módulo esp-01 para programação e firmware.

O módulo pisca passando para o modo de programação; para isso, mantenha pressionado o botão FLASH e, sem soltá-lo, pressione brevemente o botão RESET e solte FLASH.
O módulo é colocado no modo de programação.
No terminal neste momento você pode ver

ets 8 de janeiro de 2013, primeira causa: 2, modo de inicialização: (1.6)
modo de inicialização:(1,6) - reinicialize via RESET no modo de programação
modo de inicialização: (1,7) - reinicialização no modo de programação - o que não é totalmente correto.

Para o firmware vou usar o programa PROGRAMADOR DE FIRMWARE NODEMCU
(Um arquivo com o programa será anexado ao tópico)
Descompacte o arquivo e execute no meu caso a versão de 32 bits do programa\Win32\Release\ESP8266Flasher.exe
A gente configura para o módulo, no meu caso é 1 Megabyte de memória flash ou 8 Megabits.




O primeiro passo é apagar a memória com um arquivo vazio de 1 MB.
Este é um item opcional. Você pode pular o apagamento e ir para o firmware.
Quem tem mais ou menos memória precisa de um arquivo vazio de tamanho adequado.
A seguir, determinamos qual firmware é necessário!
Você pode usar firmware pronto no NODEMCU ou montá-lo de um designer com os módulos necessários.
Por exemplo, um dos antigos e comprovados NODEMCU

Construtor wifi-iot.com/
Construtor nodemcu-build.com/
ou baixe o mais recente

Problemas com firmware
Se O módulo esp8266 não está piscando, verifique os pull-ups e a conexão correta ao GND GPIO0. E também se o RX TX está confuso.
No terminal você pode verificar se boot mode:(1,6) ou boot mode:(1,7) é exibido.

Se após firmware malsucedido o módulo não funciona, tente apagar a memória com um arquivo vazio do tamanho da sua memória.

Se O módulo não funciona após firmware bem-sucedido e envia lixo infinito para a porta (o LED de transmissão de dados pode piscar), isso acontece ao atualizar as compilações mais recentes do Nodemcu, então você também precisará atualizar o arquivo na área de memória, dependendo do chip de memória.
As informações sobre memória foram retiradas do site nodemcu.
0x7c000 para 512 kB, módulos como ESP-01,03,07
0xfc000 para 1 MB, módulos como ESP8285, PSF-A85 mas também algumas variedades de esp-01,01s
0x1fc000 para 2 MB
0x3fc000 para 4 MB, tipo de módulo ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini etc.

Se tudo mais falhar, escreva...

Vou adicionar o grupo oficial do fabricante do equipamento

No processo de estudo e desenho de projetos cada vez mais complexos, chega o momento em que surge a necessidade e o desejo de aprender a trabalhar com um tipo de comunicação tão comum como o WiFi. Uma vez que este tipo de comunicação pode permitir-lhe criar confortavelmente uma única rede para os seus dispositivos domésticos inteligentes e controlá-los, por exemplo, a partir de um telemóvel, tablet ou computador, ou seja, criar uma verdadeira casa inteligente que custará você dezenas de vezes menos do que comprar soluções prontas na loja. O uso do WiFi, claro, não se limita a isso e são tantos os exemplos de utilização desse tipo de comunicação que não adianta listá-los, e se você acessou esta página significa que já precisa usar WiFi por algum motivo, você só precisa descobrir como trabalhar com ele corretamente.

Vamos descobrir isso com base no módulo WiFi mais barato e popular ESP8266-01. Você pode comprar o módulo WiFi ESP8266-01 em nosso site.

Uma das principais vantagens desse módulo é a presença de memória e microcontrolador próprio na placa, o que permite trabalhar de forma independente, carregando o sketch diretamente no próprio módulo.

Na verdade, existem muitas modificações no módulo WiFi ESP8266 e não as listaremos aqui. Depois de aprender como trabalhar com um, você poderá facilmente começar a trabalhar com outros; Gostaria de observar imediatamente que trabalhar com WiFi pode parecer uma tarefa bastante difícil, e se você tem poucos projetos concluídos em sua bagagem, é melhor abandonar a comunicação WiFi por enquanto e usar comunicações de rádio em seus projetos, trabalhando com os quais é muito mais fácil de entender. Comunidades inteiras e fóruns temáticos são criados para trabalhar com módulos WiFi, o que mais uma vez prova o quão difícil é para a maioria das pessoas compreender imediatamente este tipo de comunicação e, após reler todas as informações, a maioria simplesmente desiste. Muito provavelmente, não conseguirei encaixar todas as informações importantes apenas neste artigo, e não faz sentido fazê-lo, caso contrário, resultará em outra bagunça. Tentarei seguir o caminho de uma sequência estrita dos pontos mais importantes, para que você possa começar a entender o princípio de funcionamento desse tipo de comunicação e depois simplesmente desenvolver suas próprias habilidades nesse sentido.

Então, vamos começar e primeiro dar uma olhada nos pinos do módulo WiFi ESP8266-01.

CCV- fonte de alimentação do módulo de 3V a 3,6V

GND- Terra.

RST- Redefinir saída responsável por reinicializar o módulo.

CH_PD- “chip power-down” quando a energia é fornecida a ele, a operação do módulo é ativada.

Texas- transferência de dados (interface UART)

RX- recepção de dados (interface UART)

GPIO0

GPIO2- porta de E/S de uso geral

Os pinos GPIO0 e GPIO2 são exatamente os mesmos pinos digitais com os quais trabalhamos nas placas Arduino para interligação com diversos sensores, e são utilizados no caso de implementação de operação independente no microcontrolador WiFi interno do módulo ESP8266-01.

Para alimentar o módulo ESP8266-01 de forma confiável, use uma fonte de alimentação externa estabilizada de 3,3 V e é melhor não tentar tirar energia da sua placa Arduino, pois o módulo consome corrente de até 215mA e isso pode acabar mal para sua placa de depuração. Espero que onde conseguir uma fonte de alimentação estabilizada de 3,3 V não seja um problema para você, caso contrário, é claramente muito cedo para você lidar com este módulo. Por exemplo, gosto de usar este módulo de potência YWRobot de 3,3 V e 5,0 V para montar rapidamente circuitos em placas de ensaio, o que permite obter rapidamente uma tensão estabilizada de 3,3 V ou 5 V nos caminhos de alimentação correspondentes da placa de ensaio.

Conectando o plus (+) da nossa fonte de alimentação de 3,3 V ao pino CCV módulo ESP8266-01 e menos (-) traga a fonte de alimentação para a saída GND. Neste estado, o LED vermelho do módulo acenderá, sinalizando que a alimentação está conectada corretamente. Para que o módulo seja acionado é necessário também conectar o plus (+) fonte de alimentação com saída CH_PD módulo ESP8266-01 e é aconselhável fazer isso diretamente através de um resistor de 10 kOhm. Agora, quando ligarmos a energia, o LED vermelho do módulo deverá acender e o LED azul deverá piscar rapidamente algumas vezes. Se é isso que acontece com você, então está tudo bem, você conectou tudo corretamente e seu módulo está funcionando. Caso contrário, verifique novamente a conexão ou substitua o módulo, pois provavelmente não está funcionando.

Vamos em frente. Para trabalhar com o módulo WiFi ESP8266, precisamos de um adaptador USB-UART. Existem diferentes adaptadores, por exemplo: FT232RL, CP2102, PL2303. Mas assumiremos que você não possui esses adaptadores e usaremos uma placa Arduino como adaptador USB-UART. Usarei uma placa Arduino NANO para isso, mas você pode usar qualquer outra que estiver à sua disposição. A conexão em qualquer placa é idêntica. Fazemos a conexão de acordo com o diagrama a seguir.

Vejamos o que fizemos aqui. Observe imediatamente que conectamos os pinos da placa Arduino com um jumper RST E GND. Essa manipulação desativa o microcontrolador e nos permite fazer um verdadeiro adaptador USB-UART a partir de nossa placa Arduino.

Como alimentamos o módulo WiFi ESP8266-01 a partir de uma fonte de alimentação externa separada, lembre-se de que devemos sempre conectar o aterramento de todas as fontes de alimentação em nossos projetos. Portanto, conectamos a saída GND Placas Arduino com terra (-) nossa fonte de alimentação externa de 3,3 V projetada para alimentar o módulo ESP8266-01.

Conclusão Texas conecte sua placa Arduino ao pino Texas Módulo ESP8266-01. Esta linha transmitirá dados do módulo WiFi para a placa Arduino. Qualquer pessoa familiarizada com a interface UART pode se perguntar: “Mas como pode ser isso? Em todos os lugares eles ensinaram que o TX deve se conectar ao RX, o TX transmite informações e o RX recebe”. E você estará certo. Isso mesmo, o TX está sempre conectado ao RX, mas no caso em que fazemos um adaptador UART do Arduino é necessário conectar os dispositivos diretamente. Considere isso a exceção à regra.

Linha RX Também conectamos sua placa Arduino diretamente na linha RX Módulo ESP8266-01. Esta linha transmitirá informações da placa Arduino para a placa do módulo WiFi. Mas fazemos essa conexão através de um chamado divisor de tensão, composto por dois resistores com valores nominais de 1 kOhm e 2 kOhm. Precisamos reduzir a tensão nesta linha usando dois resistores (divisor de tensão), pois a placa Arduino transmite um sinal lógico com tensão de 5V, e o módulo WiFi opera com tensão de 3,3V. Para converter o sinal lógico, poderíamos usar uma placa conversora de nível lógico especial, o que seria mais correto, mas novamente, vamos supor que você não tenha uma, e tivemos que seguir um caminho mais simples e fazê-lo usando um divisor de tensão.

Agora conectamos tudo o que é necessário para trabalhos futuros, mas ainda temos mais 3 pinos não utilizados ( GPIO0, GPIO2 E RST) sobre Módulo WiFi ESP8266-01. Para uma operação estável do módulo WiFi, precisamos puxar esses pinos não utilizados restantes para o positivo (+) linhas de energia do módulo através de resistores de 10 kOhm.

Isso nos salvará de diversas interferências (interferências) e tornará a operação do módulo estável. É melhor fazer isso imediatamente. Caso contrário, não se surpreenda se seu módulo estiver constantemente sobrecarregado, produzir informações incompreensíveis ou não querer funcionar. Usar resistores pull-up em pinos não utilizados de um microcontrolador deve ser uma regra prática se você deseja uma operação estável em seus projetos.

E novamente verificamos a funcionalidade do módulo WiFi ESP8266-01. Ligue a energia e veja se o LED vermelho acende e o LED azul pisca algumas vezes. Se tudo acontecer assim, ótimo, vamos em frente. Caso contrário, verificamos a correcção das ligações, bem como a qualidade de todos os contactos. Pode ser apenas uma situação trivial quando você verificou tudo dez vezes e se certificou de que tudo estava conectado corretamente, mas ao ligar o módulo, você vê que o LED azul não se comporta adequadamente, fica constantemente aceso, piscando constantemente, ou não responde a nada. Isto pode ser devido a mau contato em alguma linha. Por exemplo, ao montar um circuito em uma placa de ensaio, um dos resistores não fica bem encaixado em seu lugar e isso causa interferência. Verifique a qualidade das conexões. O módulo é muito sensível. Não negligencie isso. Este é um motivo comum para operação instável.

Em geral, terminamos a conexão. Agora precisamos preparar o programa Arduino IDE para funcionar com o módulo WiFi ESP8266-01. Para isso, precisamos baixar e instalar no Arduino IDE o arquivo necessário com bibliotecas, exemplos e placas ESP, que posteriormente nos permitirão fazer upload de esboços diretamente para o microcontrolador do módulo ESP8266-01, alterar o firmware, etc. Para os fins deste artigo, provavelmente não precisaremos dessas configurações, mas me parece que depois de descobrirmos como conectar o módulo, o procedimento estará correto se baixarmos imediatamente tudo o que é necessário para trabalhar com o Arduino IDE . Tudo aqui é simples em princípio.

Inicie o programa IDE do Arduino e vá para o menu "Arquivo" - "Configurações"

Na janela que aparece, no campo superior escrevemos “esp8266”. Como resultado, teremos apenas o firmware necessário na janela. Ao clicar no firmware, um botão aparecerá "Instalação". Clique no botão "Instalação" e espere até que tudo esteja instalado. O arquivo é bastante grande, cerca de 150 megabytes, então você terá que esperar.

Após a conclusão da instalação. Reinicializamos o Arduino IDE e vemos como as novas placas ESP apareceram no menu “Ferramentas” - “Placas”. Isso é tudo. Concluímos a configuração do Arduino IDE. Não precisamos dessas configurações por enquanto, mas em trabalhos futuros não poderemos passar sem elas.

Temos tudo conectado e preparado, agora podemos começar a entender os controles. Na verdade, agora continuaremos verificando e configurando o módulo usando comandos AT, e não há como ficar sem ele. Os módulos WiFi são implementados de forma que toda a comunicação com eles ocorra por meio dos chamados comandos AT, que são conectados ao firmware do módulo. Não listaremos todos os comandos AT aqui, existem muitos deles e se você quiser estudar tudo com atenção, poderá encontrá-los facilmente na Internet. E agora usaremos apenas o mais necessário para começar.

E assim, conectamos nossa placa Arduino através de um cabo USB ao computador. E uma fonte de energia externa que alimenta Módulo WiFi ESP8266-01 Não há necessidade de ligá-lo ainda. Lançamos o programa Arduino IDE, selecionamos nossa placa Arduino no menu “Ferramentas”, no meu caso é Arduino NANO, e você seleciona a sua. Além disso, não se esqueça de selecionar a porta à qual nosso Arduino está conectado. Espero que você entenda tudo isso e saiba como fazer.

Monitoramento de porta aberta "Ferramentas" - "Monitor de Porta". Selecionando a velocidade da porta 74880 (nesta velocidade o módulo inicia) e selecione “NL & CR” na lista à esquerda

Agora conectamos uma fonte de alimentação externa que alimenta nosso módulo WiFi. Depois disso, você deverá ver aproximadamente as seguintes informações no monitor da porta.

Aqui vemos algumas informações sobre nosso módulo WiFi (velocidade, quantidade de memória interna, etc.). As informações recebidas podem diferir dependendo da versão do firmware do módulo WiFi. Não vamos nos concentrar nisso. Outra coisa é importante. Abaixo vemos um conjunto de caracteres sem sentido, isso significa que a velocidade da porta (74880 baud) que definimos é adequada apenas para o carregamento inicial do módulo para ver esta informação normalmente, mas esta velocidade não é adequada para comunicação normal com o módulo Wi-Fi.

Para selecionar a velocidade correta da porta, simplesmente alteraremos a velocidade da porta e enviaremos símbolos para a porta (o campo na parte superior e o botão enviar) NO até obtermos uma resposta OK. Se você tentar enviar caracteres agora NO para a porta a uma velocidade de 74880, você receberá mais um ou dois caracteres sem sentido em resposta.

Tente definir imediatamente a velocidade para 115200 baud e enviar um comando AT. Na maioria das vezes, os módulos são atualizados nessa velocidade.

Esta é a imagem que você deve ver no monitor da sua porta. Se você ainda receber um conjunto incompreensível de caracteres em resposta, diminua a velocidade e reenvie NO comandos até que a resposta volte OK. Se você tentou todas as velocidades e não obteve a resposta correta, então você está sem sorte e o módulo é atualizado com firmware em uma velocidade fora do padrão. Então, tudo o que resta é atualizar o módulo com firmware normal, mas este é um tópico para um artigo separado.

Espero que esteja tudo bem e que você tenha selecionado a velocidade correta. A propósito, se você tentar desligar e ligar o módulo WiFi novamente depois de selecionar a velocidade correta, então, em vez das mesmas informações iniciais que foram exibidas corretamente a uma velocidade de 74880 baud, você irá, pelo contrário, você verá um conjunto confuso de caracteres, mas no final você verá a palavra “pronto” ". Mas temos a oportunidade de visualizar essas informações iniciais na forma normal na velocidade correta, para isso precisamos reinicializar programaticamente o módulo usando o comando AT; AT+RST.

Para descobrir a versão do firmware do seu módulo WiFi ESP8266-01, você precisa enviar um comando para o monitor da porta AT+GMR e em resposta você receberá aproximadamente as seguintes informações:

O módulo WiFi ESP8266-01 pode operar nos modos ponto de acesso e cliente. Para permitir que o módulo opere em todos os modos ao mesmo tempo, envie o comando para o monitor de porta AT+CWMODE=3 e em resposta você deve receber OK.

Equipe AT+CWLAP permitirá que você visualize todos os pontos de acesso WiFi que seu módulo vê atualmente. Meu módulo, por exemplo, atualmente vê apenas três pontos de acesso WiFi em sua área de cobertura. A resposta deve ser algo assim:

Por exemplo, sabemos a senha do terceiro ponto de acesso e para conectar-se a ele executamos o comando AT+CWJAP="nome","senha", no meu caso este comando se parece com AT+CWJAP="dsl_unlim_512_home","11111111", ao qual obtemos uma resposta bem-sucedida:

Os parâmetros do comando são gravados na memória flash do módulo WiFi ESP8266-01, e se desligarmos o módulo e ligá-lo novamente, ele se conectará automaticamente a este ponto de acesso. Olha, por acaso não deixe espaço no comando, caso contrário você receberá uma resposta ERRO. Observe que nas versões de firmware mais recentes é recomendado usar o comando AT+CWJAP_CUR, ou seja, o comando ficará assim AT+CWJAP_CUR="nome","senha". Se de repente esquecemos a qual ponto de acesso nosso módulo está conectado, precisamos enviar um comando AT+CWJAP? ou AT+CWJAP_CUR? e em resposta receberemos o ponto de acesso ao qual o módulo WiFi está conectado no momento.

Com conexão e configuração inicial Módulo WiFi ESP8266-01 nós descobrimos isso. O módulo funciona e está pronto para a implementação de seus projetos futuros. Simplesmente não é possível analisar todos os exemplos possíveis de trabalho com este módulo no âmbito de um artigo, e trataremos disso nos artigos seguintes. E para aqueles que não estão muito familiarizados com programação, mas realmente desejam começar a gerenciar rapidamente seus projetos usando WiFi, recomendo apresentá-los ao designer de projetos RemoteXY WiFi. Este site irá ajudá-lo a criar facilmente uma interface de controle para seu celular ou tablet e usá-la para controlar seu dispositivo ao qual você conecta um módulo WiFi.

Muitos usuários já voltaram suas atenções para o chip ESP8266-12, lançado pela Espressif. Seu custo é significativamente mais barato em comparação com uma placa adaptadora Bluetooth padrão e, apesar de suas dimensões menores, possui capacidades significativamente maiores. Agora todos os entusiastas da casa têm a oportunidade de trabalhar em uma rede Wi-Fi em dois modos ao mesmo tempo, ou seja, conectar seu computador a qualquer ponto de acesso ou ligá-lo como tal.

Por outro lado, você precisa entender corretamente que tais placas não são apenas escudos destinados apenas à comunicação Wi-Fi. O próprio ESP8266 é um microcontrolador que possui interfaces UART, GPIO e SPI próprias, ou seja, pode ser utilizado como equipamento totalmente autônomo. Após o lançamento deste chip, muitos o chamaram de uma verdadeira revolução e, com o tempo, tais dispositivos começarão a ser integrados até mesmo nos tipos mais simples de equipamentos, mas por enquanto o dispositivo é relativamente novo e não existe firmware estável para ele. Muitos especialistas ao redor do mundo estão tentando inventar seu próprio firmware, porque carregá-los na placa não é difícil, mas apesar de várias dificuldades, o dispositivo já pode ser considerado bastante adequado para o trabalho.

No momento, apenas duas opções de utilização deste módulo estão sendo consideradas:

  • Usando a placa em combinação com um microcontrolador adicional ou um computador que controlará o módulo via UART.
  • Gravação independente de firmware para o chip, o que permite utilizá-lo posteriormente como um dispositivo autossuficiente.

É bastante natural que não consideremos firmware independente neste caso.

Olhando pela facilidade de uso e bom desempenho, muitas pessoas preferem o modelo ESP8266 entre os diversos microcontroladores. A conexão e atualização do firmware deste dispositivo é extremamente simples e acessível, e é realizada no mesmo hardware em que o equipamento está conectado ao computador. Ou seja, também via conversor USB-TTL ou, caso alguém prefira outras opções de conexão, pode ser feito via RPi e Arduino.

Como verificar?

Para verificar a funcionalidade de um dispositivo recém-adquirido, você precisará usar uma fonte especial de tensão estabilizada de 3,3 volts. É importante notar imediatamente que a faixa real de tensão de alimentação deste módulo é de 3 a 3,6 volts, e fornecer uma tensão aumentada levará imediatamente ao fato de que você simplesmente danificará seu ESP8266. O firmware e outros softwares podem começar a funcionar incorretamente após tal situação e você precisará reparar o dispositivo ou consertá-lo de alguma forma.

Para determinar a funcionalidade deste modelo de microcontrolador, basta conectar três pinos:

  • CH_PD e VCC estão conectados à fonte de 3,3 volts.
  • GND se conecta ao terra.

Se você não estiver usando um ESP-01, mas sim algum outro módulo, e ele já possuir inicialmente uma saída GPIO15, então neste caso será necessário conectá-lo adicionalmente ao terra.

Se o firmware de fábrica inicializou normalmente, neste caso você poderá ver e a luz azul piscará algumas vezes. No entanto, é importante notar que nem todos os dispositivos da série ESP8266 possuem um indicador de energia vermelho. O firmware em alguns dispositivos não permite que o indicador vermelho acenda se o módulo não tiver um (em particular, isso se aplica ao modelo ESP-12).

Uma vez conectado, um novo ponto de acesso será ativado em sua rede sem fio, que se chamará ESP_XXXX, e poderá ser descoberto em qualquer dispositivo que tenha acesso a Wi-Fi. Neste caso, o nome do ponto de acesso depende diretamente do fabricante do firmware que você está utilizando e, portanto, pode ser algo diferente.

Se o ponto ainda aparecer, você pode continuar experimentando, caso contrário você precisará verificar novamente a fonte de alimentação, bem como a exatidão das conexões GND e CH_PD, e se tudo estiver conectado corretamente, provavelmente você ainda está tentando use um módulo quebrado ou ligado. Ele simplesmente possui firmware instalado com configurações fora do padrão.

Como conectá-lo rapidamente?

O kit padrão necessário para conectar este módulo inclui o seguinte:

  • o próprio módulo;
  • placa de ensaio sem solda;
  • um conjunto completo de fios fêmea-macho destinados a uma placa de ensaio ou um cabo especial DUPONT M-F;
  • Conversor USB-TTL baseado em PL2303, FTDI ou algum chip similar. A melhor opção é se RTS e DTR também forem enviados para o adaptador USB-TTL, pois graças a isso você pode conseguir um carregamento bastante rápido do firmware de algum UDK, Arduino IDE ou Sming, sem precisar nem mesmo alternar manualmente o GPIO0 para o terra.

Se você estiver usando um conversor de 5 volts, neste caso você precisará adquirir um estabilizador de energia adicional baseado no chip 1117 ou similar, bem como uma fonte de alimentação (para um 1117 padrão, mesmo um 5 comum - carregador de smartphone volt é bastante adequado). Recomenda-se não usar o Arduino IDE ou USB-TTL como fonte de alimentação para o ESP8266, mas sim usar um separado, pois isso pode acabar com muitos problemas.

Um conjunto expandido para garantir uma operação confortável e constante do módulo requer o uso de resistores, LEDs e chaves DIP adicionais. Além disso, você também pode usar um monitor USB barato, que permitirá monitorar constantemente a quantidade de corrente consumida e também fornecerá um pouco de proteção para o barramento USB contra

O que devo fazer?

Em primeiro lugar, vale ressaltar o fato de que no ESP8266 os controles podem ser um pouco diferentes dependendo do modelo específico que você está usando. Existem muitos desses módulos disponíveis hoje, e a primeira coisa que você precisa é identificar o modelo que está usando e decidir sua pinagem. Nesta instrução falaremos sobre como trabalhar com o módulo ESP8266 ESP-01 V090, e se você estiver utilizando algum outro modelo com pino GPIO15 (HSPICS, MTDO), será necessário puxá-lo para o chão tanto para a partida padrão do o módulo e usar o modo firmware.

Depois disso, verifique novamente se a tensão de alimentação do módulo conectado é de 3,3 volts. Conforme mencionado acima, a faixa permitida é de 3 a 3,6 volts e, se aumentar, o dispositivo falha, mas a tensão de alimentação pode até ser significativamente inferior aos 3 volts indicados nos documentos.

Se você estiver usando um conversor USB-TTL de 3,3 volts, conecte o módulo exatamente como no lado esquerdo da imagem abaixo. Se você usar exclusivamente USB-TTL de cinco volts, preste atenção no lado direito da figura. Pode parecer para muitos que o circuito certo é mais eficiente devido ao fato de utilizar uma fonte de alimentação separada, mas na verdade, no caso de usar um conversor USB-TTL de 5 volts, é altamente desejável fazer também um divisor de resistor adicional para garantir a correspondência de níveis lógicos de três e cinco volts, ou simplesmente use o módulo de conversão de nível.

Recursos de conexão

A figura à direita mostra a conexão do UTXD (TX), bem como do URXD (RX) deste módulo à lógica TTL de cinco volts, e tais procedimentos são realizados apenas por sua própria conta e risco. Para o ESP8266, a descrição diz que o módulo só funciona efetivamente com lógica de 3,3 volts. Na grande maioria dos casos, mesmo trabalhando com lógica de cinco volts, o equipamento não falha, mas tais situações ocorrem ocasionalmente, portanto tal conexão não é recomendada.

Se você não tiver a oportunidade de usar um conversor USB-TTL especializado de 3,3 volts, poderá usar um divisor de resistor. Também é importante notar que na imagem certa, o estabilizador de potência 1117 está conectado sem fiação adicional, e esta é uma tecnologia realmente funcional, mas ainda é melhor usar o diagrama de conexão 1117 com fiação do capacitor - você precisa verificar com a ficha técnica do ESP8266 para o seu estabilizador ou use um módulo totalmente pronto baseado na base 1117.

Para iniciar o módulo, você precisa abrir o circuito GPIO0-TND, após o qual você pode aplicar energia. Vale ressaltar que tudo precisa ser feito exatamente nesta ordem, ou seja, primeiro certifique-se de que o GPIO0 está “pendurado no ar”, e só então alimente CH_PD e VCC.

Como conectar corretamente?

Se você puder reservar mais de uma noite para conectar corretamente o módulo ESP8266, poderá usar uma opção mais estável. No diagrama acima você vê uma opção de conexão com download automático de firmware.

Vale ressaltar que a imagem acima não mostra o uso de GPIOs ou ADCs gratuitos, e a conexão deles dependerá diretamente do que exatamente você deseja implementar, mas se quiser garantir a estabilidade, lembre-se de colocar todos os GPIOs na alimentação e ADCs ao terra usando resistores pull-up.

Se necessário, os resistores de 10k podem ser substituídos por quaisquer outros na faixa de 4,7k a 50k, excluindo GPIO15, pois seu valor não deve ultrapassar 10k. O valor do capacitor que suaviza as pulsações de alta frequência pode ser ligeiramente diferente.

Conectar RESET e GPIO16 através do uso de um resistor de sono profundo de 470 Ohm pode ser necessário ao usar o modo apropriado, pois para sair do modo de sono profundo, o módulo executa uma reinicialização completa aplicando um nível baixo ao GPIO16. Sem esta conexão, o modo de suspensão profunda do seu módulo durará para sempre.

À primeira vista, pode parecer que GPIO0, GPIO1 (TX), GPIO2, GPIO3 (RX) e GPIO15 estão ocupados, então você não poderá usá-los para seus propósitos, mas na verdade isso está longe de ser o caso. Um nível suficientemente alto em GPIO0 e GPIO2, bem como um nível baixo em GPIO15, pode ser necessário apenas para a inicialização do módulo e, no futuro, você poderá usá-los a seu critério. A única coisa que vale a pena observar é lembrar de garantir os níveis exigidos antes de realizar uma reinicialização completa do seu equipamento.

Você também pode usar TX, RX como alternativa ao GPIO1 e GPIO3, mas não se esqueça que após a inicialização do módulo, cada firmware começa a “puxar” o TX, ao mesmo tempo que envia informações de depuração para o UART0 na velocidade de 74480, mas após o o download for bem sucedido, eles podem ser usados ​​não apenas como UART0 para trocar dados com outro dispositivo, mas também como GPIOs padrão.

Para módulos que possuem um número pequeno de pinos cabeados (por exemplo, ESP-01), não há necessidade de conectar pinos desfeitos, ou seja, apenas GND, CH_PD, VCC, GPIO0, GPIO2 e RESET são cabeados no ESP-01 , e estes são os que você precisa e que precisarão ser apertados. Não há necessidade de soldar diretamente no chip ESP8266EX e depois puxar os pinos desencapados, a menos que você realmente precise.

Esses diagramas de fiação foram utilizados após um grande número de experimentos realizados por especialistas qualificados e coletados de uma grande variedade de informações. É importante notar que mesmo tais esquemas não podem ser considerados ideais, uma vez que uma série de outras opções não menos eficazes podem ser utilizadas.

Conexão via Arduino

Se por algum motivo você não tiver um conversor USB-TTL de 3,3 volts, o módulo WiFi ESP8266 pode ser conectado via Arduino com um conversor integrado. Aqui você precisará primeiro voltar sua atenção para três elementos principais:

  • Quando utilizado com o ESP8266, o Arduino Reset é inicialmente conectado ao GND para evitar a inicialização do microcontrolador, e nesta forma foi utilizado como um conversor USB-TTL transparente.
  • RX e TX não foram conectados “na encruzilhada”, mas diretamente - RX-RX (verde), TX-TX (amarelo).
  • Todo o resto está conectado exatamente como descrito acima.

O que considerar

Este circuito também requer a correspondência dos níveis TTL de 5 volts no Arduino, bem como de 3,3 volts no ESP8266, mas pode funcionar muito bem de qualquer maneira.

Quando conectado a um ESP8266, o Arduino pode ser equipado com um regulador de potência que não suporta a corrente exigida pelo ESP8266, portanto, você precisará verificar a ficha técnica daquele que está usando antes de ativá-lo. Não tente conectar nenhum outro componente que consuma energia ao ESP8266, pois isso pode simplesmente fazer com que o regulador de energia embutido no Arduino falhe.

Há também outro esquema de conexão ESP8266 e Arduino que usa SoftSerial. Como para a biblioteca SoftSerial a velocidade da porta 115200 é muito alta e não pode garantir um funcionamento estável, este método de conexão não é recomendado, embora haja alguns casos em que tudo funciona de forma bastante estável.

Conexão via RaspberryPi

Se você não tiver nenhum conversor USB-TTL, poderá usar o RaspberryPi. Neste caso, para o ESP8266, a programação e a conexão são feitas de forma quase idêntica, mas tudo aqui não é tão conveniente, e além disso você também precisará usar um estabilizador de energia de 3,3 volts.

Para começar, conectamos RX, TX e GND do nosso dispositivo ao ESP8266, e pegamos GND e VCC daquele projetado para 3,3 volts. Aqui, atenção especial deve ser dada ao fato de que é necessário conectar todos os dispositivos GND, ou seja, o estabilizador RaspberryPi e o ESP8266. Se o estabilizador embutido no modelo do seu dispositivo pode suportar até 300 miliamperes de carga adicional, então, neste caso, conectar o ESP8266 é bastante normal, mas tudo isso é feito por sua própria conta e risco.

Configurando parâmetros

Depois de descobrir como conectar o ESP8266, você precisa se certificar de que os drivers dos seus dispositivos estão instalados corretamente, como resultado uma nova porta serial virtual foi adicionada ao sistema. Aqui você precisará usar um programa - um terminal de porta serial. Em princípio, você pode escolher qualquer utilitário de acordo com seu gosto, mas você deve entender corretamente que qualquer comando enviado para a porta serial deve ter os caracteres finais CR+LF no final.

Os utilitários CoolTerm e ESPlorer são bastante difundidos, e este último permite que você não entre no ESP8266 e, ao mesmo tempo, facilita o trabalho com scripts lua no NodeMCU, para que possa ser usado como um terminal padrão.

Para se conectar normalmente, você terá que trabalhar muito, já que o firmware do ESP8266 é muito variado e a ativação pode ser feita em diferentes velocidades. Para decidir a melhor opção, você precisará passar por três opções principais: 9600, 57600 e 115200.

Como classificar?

Para começar, conecte-se à porta serial virtual no programa do terminal, definindo os parâmetros para 9600 8N1, em seguida, execute uma reinicialização completa do módulo, desconectando CH_PD (chip enable) da fonte de alimentação e, em seguida, reative-o sacudindo CH_PD. Você também pode realizar um breve RESET ao terra para reinicializar o módulo e observar os dados no terminal.

Em primeiro lugar, os LEDs do dispositivo devem aparecer exatamente como mostrado no procedimento de teste. Você também deve observar um conjunto de caracteres diferentes no terminal, que terminará com a linha pronta, e caso não esteja, é feita uma reconexão ao terminal em uma velocidade diferente, seguida de uma reinicialização do módulo.

Ao ver esta linha em uma das opções de velocidade, você pode considerar o módulo pronto para funcionar.

Como atualizar o firmware?

Depois de instalar o ESP8266, levará apenas alguns segundos para conectar o dispositivo e então você poderá começar a atualizar o firmware. Para instalar um novo software, você precisa fazer o seguinte.

Para começar, baixe a nova versão do firmware do site oficial e também baixe um utilitário especial para firmware. Aqui, atenção especial deve ser dada ao sistema operacional instalado na máquina com a qual o ESP8266 funciona. É melhor conectar o dispositivo a sistemas anteriores ao Windows 7.

Para sistemas operacionais Windows padrão, seria ideal usar um programa chamado XTCOM UTIL, que é especialmente conveniente de usar se o firmware consistir em apenas um arquivo. A melhor opção multiplataforma é o utilitário esptool, que, no entanto, requer python, bem como a necessidade de especificar parâmetros através da linha de comando. Além disso, o ESP8266 permite conectar convenientemente as funções principais com a ferramenta Flash Download Tool, que possui um número bastante grande de configurações, bem como uma tecnologia conveniente para instalar firmware a partir de vários arquivos.

Em seguida, desconecte seu programa de terminal da porta serial, e também desconecte completamente o CH_PD da fonte de alimentação, conecte o GPIO0 do módulo ao GND, e depois disso o CH_PD pode ser retornado. Por fim, basta executar o programa de firmware modular e carregá-lo no relé ESP8266.

Na grande maioria dos casos, o firmware é carregado no módulo a uma velocidade em torno de 115200, mas um modo especial fornece distribuição automática de velocidade, como resultado o firmware pode ser executado a uma velocidade superior a 9600, atualizando as funções disponíveis do ESP8266. Para conexão foi utilizado Arduino ou USB-TTL - não desempenha um papel especial aqui, e aqui a velocidade máxima já depende do comprimento dos fios, do conversor utilizado e de uma série de outros fatores.