Substituindo o firmware original do Sonoff

Substituindo o firmware original do Sonoff

O Sonoff é uma solução simples e prática para acionamento de cargas AC. O mesmo já conta com um firmware que possui recursos bem interessantes e ainda conta com o app eWeLink que funciona em dispositivos móveis Android e iOS, e permite controlar o módulo remotamente através da internet. Certo… Mediante estas informações, então por qual motivo eu faria a substituição de firmware do Sonoff?! Bom… continua a leitura aí, pois vou te mostrar qual a justificativa pra isso.

Se tratando de substituição de firmware do Sonoff, você provavelmente deve estar pensando:

“Por qual motivo eu devo trocar o firmware do Sonoff?”

Se você já possui um sistema de gerenciamento e controle de cargas AC e tudo neste sistema está centralizado, qualquer nova solução que você adicionar, deve ter a possibilidade de ser controlada pelo seu sistema. Obviamente não vai ser interessante ter que controlar um dispositivo deste sistema através de um software externo. Caso você esteja utilizando um protocolo de comunicação específico, é ideal que o dispositivo que vai incluir em seu sistema, também possa ser controlado por tal protocolo. O Sonoff rodando o firmware original de fábrica, não vai permitir que você possa inseri-lo em um sistema alternativo, ou seja, você poderá usar apenas o app eWeLink ou outra ferramenta liberada pelo fabricante. Além disso, considerando que você esteja controlando uma lâmpada através do Sonoff, só irá conseguir fazer o acionamento da lâmpada através do aplicativo ou pelo push button que o módulo possui. Se quiser utilizar um interruptor pulsador, por exemplo, para que tenha um controle a mais sobre a lâmpada, isto não será possível, a não ser que faça uma pequena gambiarra e solde um interruptor pulsador em paralelo com o push button do módulo.

Portanto, a substituição de firmware do Sonoff vai te dar mais liberdade para utilizar o módulo dentro do seu próprio sistema ou em sistemas desenvolvidos por terceiros.

O mais interessante é que a substituição de firmware é um procedimento simples. Se você já está familiarizado com o envio de códigos ao ESP8266, então vai ser mais fácil ainda carregar outro código no Sonoff.

Para demonstrar esse procedimento de substituição de firmware do Sonoff, vou utilizar o código de um webserver simples, onde vamos ter uma página web que terá um botão para ligar e desligar o relé e consequentemente acender e apagar a lâmpada conectada ao Sonoff.

ATENÇÃO: A SUBSTUIÇÃO DO FIRMWARE PADRÃO DE FÁBRICA DO SONOFF É UM PROCESSO IRREVERSÍVEL! OU SEJA, APÓS SUBSTITUIR O FIRMWARE ORIGINAL, NÃO HÁ COMO FAZER A INSTALAÇÃO NOVAMENTE E O MÓDULO NÃO IRÁ MAIS FUNCIONAR COM O APLICATIVO eWeLink. PORTANTO, SÓ EXECUTE OS PROCEDIMENTOS AQUI ENSINADOS, CASO VOCÊ REALMENTE QUEIRA UTILIZAR FIRMWARES DE TERCEIROS OU UTILIZAR SEUS PRÓPRIOS CÓDIGOS. FAÇA POR SUA CONTA E RISCO!

Você vai precisar dos seguintes itens:

Relé WiFi Interruptor Inteligente Sonoff
Barra de pinos fêmea
Ferro de solda e estanho
Adaptador Conversor USB Serial TTL PL2303HX (ou outro conversor USB serial)
Cabos jumper macho-fêmea
– Lâmpada
– Receptáculo (boquilha)
– Cabo paralelo de 1,5mm ou 2,5mm
– Tomada (Rede alternada de 127V)
– Roteador com conexão WiFi

Se estiver utilizando o PL2303HX e o mesmo não é reconhecido no seu Windows, acesse a postagem Conversor USB Serial TTL PL2303HX – Instalação no Windows 10, veja como resolver e em seguida retorne para continuar.

Conforme mencionado na postagem Conhecendo o Sonoff Relé WiFi para Automação Residencial, o Sonoff é baseado no ESP8266. Na tabela abaixo você pode ver quais pinos do ESP8266 são utilizados no Sonoff e suas funções:

img01_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

Portanto, para substituir o firmware padrão do módulo, basta conectar o ESP8266 do Sonoff ao computador através de um conversor USB serial e enviar o novo código / firmware através da IDE do Arduino.

Na imagem abaixo temos a parte superior da placa do Sonoof e em destaque estão os pinos referente ao ESP8266:

img02_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

Veja que a placa já conta com os terminais 3.3V / RX / TX / GND / GPIO14. Para poder fazer as conexões nestes terminais, é necessário soldar uma barra de pinos. Veja na imagem abaixo que soldei uma barra fêmea de 5 vias:

img03_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

Com a barra de pinos soldada, basta conectar os terminas do ESP8266 ao conversor USB serial e fazer o carregamento do novo código.

Veja na tabela abaixo como deve ser feita a conexão entre o conversor USB serial e o Sonoff:

img04_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

Se precisar conferir a ordem dos pinos no Sonoff, basta acessar esta imagem.

Para fazer o envio de códigos ao ESP8266 é necessário que a GPIO0 esteja conectada ao GND pelo menos quando conectar o adaptador a porta USB. Portanto, mantenha pressionado o botão do Sonoff, conecte o conversor USB serial ao computador e em seguida solte o botão. Veja abaixo como deve ser feito:

img05_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

Ao realizar este procedimento o ESP8266 entra em modo de gravação.

Se você utiliza alguma versão da IDE do Arduino inferior a 1.6.12, acesse a postagem Wemos D1 – Configurando a IDE do Arduino, veja como instalar o pacote ESP8266 na IDE e em seguida retorne para continuar.

Copie o código abaixo e cole na IDE do Arduino:

No código você deverá inserir o nome da sua rede WiFi na linha const char* ssid = “NOME DA SUA REDE WIFI”; e a senha deverá inserir na linha const char* password = “SENHA DA SUA REDE WIFI “;:

img06_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

O código está configurado para utilizar IP fixo, portanto, você terá que inserir mais algumas informações:

img07_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

– No “IPAdress ip”, coloque um endereço de IP livre da sua rede;

– No “IPAdress gateway”, coloque o endereço de gateway da sua rede;

– No “IPAdress subnet”, coloque as informações de máscara de sub-rede da sua rede.

Se você não sabe como ter acesso a essas informações, sugiro que leia a postagem Descobrindo a faixa de IP do seu roteador. De posse das informações, preencha os parâmetros no código e prossiga.

No menu “Ferramentas” da IDE, selecione a opção “Placas”, role a lista e selecione “Generic ESP8266 Module”:

img08_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

Ainda no menu “Ferramentas”, configure o “Flash Mode” como DOUT e “Flash Size” como1M (64K SPIFFS). Veja na imagem abaixo como deverá ficar:

img09_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

No menu “Ferramentas”, selecione a opção “Porta” e marque a porta COM em que sua placa foi alocada:

img10_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

Veja que no meu caso a placa foi alocada na COM20, porém, o seu módulo pode ter sido alocado em uma COM de outro valor. Caso não saiba em qual porta COM sua placa foi alocada, basta retornar no menu Iniciar do Windows, acessar a opção Dispositivos e Impressoras e verificar a porta em que seu conversor USB serial está conectado, retornar na IDE e selecionar a porta COM.

Em seguida, clique no botão para enviar o código ao ESP8266 e aguarde o carregamento.

OBS: após enviar um código ao ESP8266, sempre que for enviar um novo código será necessário desconectar o conversor da USB, colocar a GPIO0 conectada ao GND (manter pressionado o botão do Sonoff antes de conectar o conversor USB serial) e inserir o conversor novamente na porta USB. Caso não faça desta forma, irá receber os erros espcomm_sync failed / espcomm_open failed / espcomm_upload_mem failed. Se tentar carregar o código no ESP8266 sem o mesmo estar em modo de gravação, também irá receber o erro:

img11_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

Após o arquivo ser carregado no ESP8266, abra o navegador, digite o endereço de IP (IPAdress ip) que você inseriu no código e a página web será aberta:

img12_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

A página web possui um botão que será responsável por ligar / desligar o relé do Sonoff.

Com a página web funcionando, basta desconectar o conversor USB serial do computador, desconectar os cabos do Sonoff, colocar a tampa do módulo e em seguida conecte a alimentação da rede AC aos terminais do borne de entrada (input) e depois conecte aos terminais de saída (output) os fios que serão conectados ao receptáculo da lâmpada:

ATENÇÃO: MUITO CUIDADO AO EXECUTAR PRÁTICAS QUE ENVOLVAM TENSÃO / CORRENTE ALTERNADA! FAÇA TODAS AS LIGAÇÕES COM O CIRCUITO COMPLETAMENTE DESLIGADO E ANTES DE FAZER OS TESTES VERIFIQUE CADA UMA DAS LIGAÇÕES PARA ELIMINAR A POSSIBILIDADE DE CURTO ENTRE FASE / NEUTRO OU FASE / FASE.

img13_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

Novamente abra o navegador, digite o endereço de IP (IPAdress ip) que você inseriu no código e a página será carregada. Pressione o botão para acender / apagar a lâmpada e veja que o estado atual é atualizado na página.

Você pode acessar a página através de um smartphone ou tablet. Veja abaixo o resultado final após a substituição do firmware original do Sonoff:

Nesta postagem não utilizei a GPIO14, contudo, você pode modificar o código e utilizar esta GPIO para conectar um interruptor pulsador e fazer o acionamento do relé ou pode também conectar um sensor de temperatura. O LED do Sonoff (GPIO13) também não foi utilizado e o botão (GPIO0) foi utilizado apenas para colocar o ESP8266 em modo de gravação.

Agora que você já sabe como fazer a substituição do firmware padrão do Sonoff, ficou fácil inseri-lo no seu projeto de automação residencial para controle de cargas AC sem ter que depender de um aplicativo externo para controle do mesmo. Além disso, você pode utilizá-lo com outras soluções, como por exemplo, o protocolo MQTT, Sonoff-HomeAssistant, Sonoff-Tasmota ou qualquer outro firmware ou código que tenha capacidade de controlar o ESP8266 e fornecer os recursos que você precisa.

Gostou desta postagem? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.

Substituindo o firmware original do Sonoff
3 votos / Média de avaliação: 5 / Pontuação: 100%


Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação pela Faculdade Presidente Antônio Carlos, fundador e CEO da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 13 comentários para esta postagem
  1. Carlos Amaral às 18:23

    Amigo
    Muito boa e completa sua explicação.
    Tenho um sistema de automação aqui em casa que envia comandos por Wi-Fi (IP). Você sabe se no firmware original consegue receber comandos via IP??
    Pode ma enviar um exemplo?
    Obrigado

  2. Thiago às 14:04

    Euler, parabéns pelo post, estou dando uma olhada no seu blob e aprendendo bastante, obrigado!

    Uma dúvida, após fazer essa ligação no relê a lâmpada continua funcionando normalmente no interruptor? ou tenho que fazer alguma ligação adicional?

    Abraço!

    • Euler Oliveira Autor às 18:14

      Olá Thiago.

      Agradeço pelo comentário!

      O exemplo utilizado neste artigo se trata apenas de controle através da página web. Para utilizar o interruptor em conjunto com a página web é necessário fazer a implementação.

      Em breve vou publicar o artigo ensinando a utilizar o Sonoff com um aplicativo para dispositivos móveis, onde o controle poderá ser feito de forma remota e também será mantido o uso do interruptor pulsador.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *