Provisionamento bem-sucedido do ESP32 S2 Mini (e outros modelos incompatíveis com a ferramenta da Web ESPHome)
O provisionamento requer que você carregue pelo menos uma vez o firmware ESPHome via cabo USB . Após isso ser bem-sucedido, você então usa o OTA sem fio para carregar quaisquer atualizações futuras de firmware. Todos os problemas com USB e pressionamento de botão são então uma coisa do passado.
É por isso que é extremamente frustrante quando a ESP Web Tool não funciona com sua placa de microcontrolador e você simplesmente não consegue fazer a atualização inicial do firmware do ESPHome via USB
ESP32 S2 Mini é um exemplo popular de uma placa que não pode ser provisionada pelo ESPHome (por causa de sua estranha implementação USB). Com os passos abaixo, você consegue fazer isso de qualquer maneira. Graças ao novo firmware ESPHome e suas atualizações sem fio, você cura seus problemas USB, pois no futuro não precisará mais do modo de upload de firmware USB.
Visão geral rápida
Conectar e carregar um novo firmware via cabos USB é tecnicamente desafiador: pode funcionar perfeitamente com um tipo de microcontrolador e pode causar uma infinidade de problemas frustrantes e mensagens de erro com outro.
Por que as comunicações USB são tão propensas a erros
A comunicação via USB não é tecnicamente padronizada de forma rigorosa: existem diversas técnicas pelas quais microcontroladores e placas podem transferir informações via USB :
- Suporte USB nativo: microcontroladores mais novos vêm com suporte USB nativo integrado. No entanto, há diferentes níveis de suporte USB nativo .
- USB OTG (On-The-Go): encontrado em ESP32-S2 e ESP32-S3
- USB Serial/JTAG: encontrado em ESP32-C3
- Chips UART: microcontroladores sem suporte USB nativo usam chips UART separados nas placas do microcontrolador. Existem muitas famílias diferentes de chips UART , e elas exigem drivers especializados no seu PC que podem ou não fazer parte do SO. Alguns exigem instalação de driver separada.
O que piora as coisas é que as atualizações de firmware via USB exigem que o microcontrolador entre em um modo especial de upload de firmware . Algumas placas alternam para esse modo automaticamente, algumas alternam às vezes automaticamente e algumas exigem que o botão de inicialização seja pressionado durante uma reinicialização .
Como se isso não bastasse, algumas placas de microcontroladores, como a ESP32 S2 Mini, realmente alteram a porta USB ao alternar do modo normal para o modo de upload de firmware , interrompendo a conexão com ferramentas como a ESPHome Web Tool , que não esperam isso.
Mais ferramentas robustas para o resgate
Adafruit ESP Tool funciona de forma confiável com ESP32 S2 Mini e muitas outras placas de microcontroladores afetadas de forma semelhante. Ela roda dentro do seu navegador, assim como ESPHome Web Tools : ambas as ferramentas usam a mesma conexão serial da web dentro do navegador e exigem um navegador compatível, ou seja, Chrome . Uma vez conectadas a um microcontrolador, é assim que as ferramentas se parecem:
Arquivo de firmware necessário
Ambas as ferramentas fazem essencialmente a mesma coisa: elas carregam um arquivo de firmware binário para um microcontrolador.
O ESPHome Web Tool difere um pouco, pois ele suporta opcionalmente a função Prepare for first use, que em segundo plano baixa um arquivo de firmware ESPHome genérico para você. O Adafruit ESP Tool sempre quer que você forneça o (s) arquivo(s) de firmware para upload.
Aqui estão as duas opções que você tem:
- Provisionamento genérico: para imitar a funcionalidade Preparar para o primeiro uso e provisionar um microcontrolador de forma que ele possa ser adotado posteriormente pelo ESPHome , baixe o arquivo de firmware genérico que o ESP Web Tool usa.
- Configuração: para imitar a funcionalidade de instalação e carregar um arquivo de firmware recém-criado que funcione apenas para um microcontrolador específico , crie uma configuração ESPHome dedicada , deixe o ESPHome criar um arquivo de firmware para ele e baixe o arquivo para o seu computador.
De qualquer forma, você obtém um arquivo de firmware que o Adafruit ESP Tool pode carregar para seu microcontrolador. Aqui estão as instruções passo a passo para criar os arquivos de firmware binários para ambas as abordagens:
Baixando o arquivo de firmware genérico (também conhecido como Preparar para o primeiro uso na ferramenta da Web ESPHome)
O arquivo de firmware padrão usado pelo Prepare For First Use no ESPHome Web Tool não é oficialmente anunciado como um download separado. O ESPHome Web Tool o carrega de uma URL não pública que pode mudar sem aviso prévio.
Estes são os arquivos de firmware que usei para vários tipos de microcontroladores, disponíveis para download como arquivos zip que precisam ser descompactados antes do uso :
Microcontrolador | Arquivo de firmware de provisionamento ESPHome genérico (zip) | Tamanho original (KB) |
---|---|---|
ESP8266 | esphome-web-esp8266.factory.bin | 418 |
ESP32 | esphome-web-esp32.factory.bin | 1.602 |
ESP32-S2 | esphome-web-esp32s2.factory.bin | 864 |
ESP32-S3 | esphome-web-esp32s3.factory.bin | 1.365 |
ESP32-C3 | esphome-web-esp32c3.factory.bin | 1.516 |
Certifique-se de baixar e usar o arquivo de firmware para o tipo de microcontrolador que você está usando.
Arquivos de firmware para microcontroladores sem suporte a bluetooth ( ESP8266 e ESP32-S2 ) não incluem Improv-BLE ( configuração de WiFi via bluetooth). Seus tamanhos de arquivo de firmware são consideravelmente menores.
Esses arquivos de firmware podem estar obsoletos quando você ler isto: eles são baseados no ESPHome 2026.6.6 . Isso não é realmente um problema, pois você atualiza para a versão mais recente do ESPHome de qualquer maneira quando adota o dispositivo provisionado no seu ESPHome Dashboard .
No entanto, você pode tentar usar as URLs originais , esperando que elas ainda funcionem e, enquanto isso, apontem para uma versão mais recente do arquivo de firmware :
Microcontrolador | URLs de download do firmware original para preparar para o primeiro uso |
---|---|
ESP8266 | https://firmware.esphome.io/esphome-web/24.8.3/esphome-web-esp8266.factory.bin |
ESP32 | https://firmware.esphome.io/esphome-web/24.8.3/esphome-web-esp32.factory.bin |
ESP32-S2 | https://firmware.esphome.io/esphome-web/24.8.3/esphome-web-esp32s2.factory.bin |
ESP32-S3 | https://firmware.esphome.io/esphome-web/24.8.3/esphome-web-esp32s3.factory.bin |
ESP32-C3 | https://firmware.esphome.io/esphome-web/24.8.3/esphome-web-esp32c3.factory.bin |
Ou você descobre a url que o ESPHome Web Tool está usando agora : siga o mesmo procedimento que usei originalmente. Isso garante que você trabalhe com o arquivo de firmware mais recente e obtenha exatamente os mesmos resultados que obteria usando o ESPHome Web Tool hoje :
- Abra a ferramenta ESPHome Web no seu navegador.
- Conecte um microcontrolador suportado ao seu computador via cabo USB (por exemplo, ESP32 ou ESP32-C3 ). Não conecte o microcontrolador problemático .
- Depois que o ESPHome Web Tool estiver conectado, na página da web, clique com o botão direito do mouse no botão PREPARE FOR FIRST USE . Um menu de contexto é aberto. Clique em Inspect .
- Isso abre as ferramentas do desenvolvedor do navegador . Clique na aba Rede .
- Agora, clique normalmente em PREPARAR PARA O PRIMEIRO USO para realmente iniciar o upload do firmware.
- Na aba Network , você vê as URLs das quais a ferramenta baixa os arquivos. A lista contém um monte de arquivos javascript mais o arquivo binário de firmware que você está procurando. Ele carrega a extensão .bin :
- Ao passar o mouse sobre a entrada ou clicar com o botão direito do mouse, você verá a URL completa e poderá abri-la em uma aba separada do navegador (que basicamente fará o download).
Os arquivos de firmware são específicos para um determinado tipo de microcontrolador, então se você conectou um ESP32-C3 , você descobriu a url de download para o arquivo de firmware que funciona apenas para esse tipo de microcontrolador. Basta comparar a url que você descobriu com a tabela de urls de download que eu descobri há um tempo (veja acima). Se sua url corresponder à da tabela, então elas aparentemente não mudaram, e você pode simplesmente usar a url na tabela que corresponde ao seu tipo de microcontrolador.
Se, no entanto, a url for diferente das da tabela, então, aparentemente, a estrutura da url ou o local geral de download mudou. Neste caso, simplesmente tente ajustar a url que você acabou de descobrir para fazê-la apontar para o arquivo de firmware do tipo de microcontrolador que você precisa: substitua qualquer instância do tipo de microcontrolador, ou seja, c3 , na url que você acabou de descobrir, pelo tipo necessário , ou seja, s2 . Observe que o tipo de microcontrolador pode aparecer mais de uma vez na url. Substitua todas as ocorrências. Dessa forma, você obtém a url do microcontrolador que precisa.
Talvez existam maneiras mais fáceis de obter esses arquivos, e possivelmente eles até façam parte de um repositório público. Procurei por muitas horas sem sorte. Se você encontrar uma maneira melhor, deixe um comentário abaixo.
Criando arquivo de firmware para um microcontrolador específico (também conhecido como instalar na ferramenta da Web ESPHome)
Se você lida com apenas um microcontrolador e gostaria de colocá-lo para funcionar imediatamente , então é isso que você faz para criar o arquivo de firmware :
- No ESPHome Dashboard , clique em New Device e crie uma nova configuração. Certifique-se de especificar ESP32-S2 como tipo de dispositivo.
- Depois de criar a configuração , clique no menu de três pontos , escolha Instalar e clique em Download manual .
- Escolha o formato de fábrica como formato de arquivo e baixe o arquivo de firmware para o seu computador.
O arquivo de firmware que você acabou de criar só pode ser usado em um microcontrolador . Não o carregue para um monte de microcontroladores. Como o firmware já está personalizado (incluindo o nome do dispositivo), você clonaria microcontroladores e teria problemas com vários icrocontroladores usando o mesmo nome mDNS e as mesmas chaves de API.
Carregando Firmware
Depois de ter o arquivo de firmware em mãos – seja o genérico ou um personalizado que você criou por meio de uma configuração específica – você pode carregá-lo no seu microcontrolador.
Se você escolher carregar o arquivo de firmware genérico do ESPHome que você baixou de firmware.esphome.io , certifique-se de selecionar o arquivo de firmware para o seu tipo de microcontrolador ! Se você acidentalmente carregar o firmware feito para ESP32-S3 para um ESP32-S2 , o microcontrolador não responderá mais. Como os microcontroladores ESP têm um carregador de inicialização protegido contra gravação, você pode simplesmente repetir as etapas e carregar o arquivo de firmware correto para corrigir isso. Você não pode bloquear microcontroladores ESP .
Abra a ferramenta Adafruit ESP no seu navegador:
- Conecte o microcontrolador via cabo USB ao seu computador. Segure o botão de inicialização enquanto pressiona reset para forçá-lo a entrar no modo de upload de firmware .
- No seu navegador, navegue até a Adafruit ESP Tool . No canto superior direito, clique em Connect .
- Selecione o microcontrolador na caixa de diálogo e clique em Connect . Se a ferramenta relatar que nenhum dispositivo compatível foi encontrado, certifique-se de ter habilitado o modo de upload de firmware no microcontrolador: segure o botão de inicialização enquanto pressiona o botão de reinicialização .
- Uma vez conectado, na parte inferior da janela, clique em Erase para apagar a memória. Isso pode levar alguns segundos, e não há indicadores de progresso. A janela preta do terminal informa quando o processo de apagamento foi concluído.
- Clique no botão Choose file mais acima , depois selecione o arquivo de firmware que você criou e baixou. Clique em Program .
- O firmware é transferido para seu microcontrolador. Uma barra de progresso mostra o status.
- Após a transferência do firmware, clique em Desconectar e só então pressione o botão de reinicialização na placa do microcontrolador para garantir que ele inicialize a partir do firmware recém-carregado .
Configurar acesso WiFi
Se você usou o firmware de provisionamento padrão que você baixou do esphome.io , o dispositivo ainda não sabe como se conectar ao seu WiFi . Você precisa informar ao dispositivo o SSID do WiFi e a senha do WiFi antes que ele possa ficar online e ser descoberto pelo ESPHome .
Parte do firmware de provisionamento padrão do ESPHome é improv_serial ( o improv via BLE não está disponível com o ESP32 S2, pois ele não oferece suporte a bluetooth ).
O Improv_serial permite que você conecte o dispositivo via cabo USB e ESPHome Web Tool e, em seguida, configure seu WiFi no seu navegador.
O processo de provisionamento padrão usando [ESPHome Web Tool] ESPHome Web Tool falhou para seu microcontrolador específico (que é o motivo de você estar nesta página ). Felizmente, o Improv usa a porta USB padrão e não a porta USB secundária que se torna ativa no modo de upload de firmware . Então, a ESPHome Web Tool funciona muito bem – mesmo com placas problemáticas como ESP32 S2 Mini – uma vez que um microcontrolador esteja executando o firmware ESPHome .
Você pode configurar o WiFi agora (e concluir o processo de provisionamento ), ou fazê-lo mais tarde a qualquer momento. Só precisa ser feito antes que você possa ver e adotar o microcontrolador no ESPHome .
- Conecte o microcontrolador via cabo USB ao seu computador. Não habilite o modo de atualização de firmware . Em caso de dúvida, pressione o botão de reset uma vez.
- Certifique-se de ter fechado todas as outras ferramentas (por exemplo, o Adafruit flasher). Em seguida, abra a ESPHome Web Tool no seu navegador.
- Clique em CONNECT e selecione o microcontrolador na caixa de diálogo. Um ESP32 S2 Mini deve aparecer como TinyUSB nesta lista. Se você vir ESP32-S2 , então o microcontrolador está no modo de upload de firmware . Neste caso, pressione o botão de reset para retornar ao modo normal.
- Após conectar, clique no menu de três pontos e escolha Configurar Wi-Fi .
- Uma caixa de diálogo é aberta. Observe o nome temporário do dispositivo (por exemplo, esphome-web-8b87ca ). Com esse nome, o dispositivo aparecerá no ESPHome Dashboard depois que você configurar o WiFi .
- Clique em CONECTAR AO WI-FI , selecione o SSID do WiFi ao qual deseja se conectar e clique em CONECTAR . Após alguns segundos, você receberá uma confirmação de que o dispositivo está agora totalmente configurado.
- Clique em FECHAR , depois clique no menu de três pontos e escolha Desconectar .
Se você conseguir se conectar ao seu microcontrolador, mas depois de clicar em Configurar Wi-Fi , receber uma mensagem de erro informando que o Improv Wi-Fi Serial não foi detectado, então você conectou o microcontrolador no modo de upload de firmware (pressione o botão de reinicialização e tente novamente) ou carregou um arquivo de firmware errado que foi feito para um tipo diferente de microcontrolador (repita o provisionamento com o arquivo de firmware correto ).
Inundação de dispositivos descobertos
Se você provisionar vários microcontroladores dessa maneira, sempre que configurar o WiFi deles , a conexão será testada automaticamente, para que os dispositivos fiquem online e se conectem ao seu WiFi .
Mesmo que você os desligue e os coloque em uma gaveta imediatamente após a conclusão do processo de provisionamento, o ESPHome pode já ter coletado os dispositivos provisionados, e o Painel do ESPHome está sendo preenchido com dispositivos descobertos que estão prontos para serem adotados .
Mas não se preocupe: assim que um dispositivo descoberto fica online, após um período de carência, o ESPHome remove automaticamente o bloco novamente do painel.
Normalmente, dispositivos recém-provisionados aparecem com seu nome temporário enigmático no painel do ESPHome . No entanto, se você adotou esse dispositivo antes – mesmo que você o tenha excluído do ESPHome – ele aparece novamente com o último nome que foi atribuído a ele. Isso ocorre porque o ESPHome identifica novos dispositivos por seu endereço MAC – que não muda.