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
4 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 43 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.

  3. Ezio às 21:46

    Ola, estou com dois modulos sonoff com o botao GPIO0 sem funcionar com o firmware original, ou seja quando pressiono o botao ele aciona a carga e caso mantenho pressionado por 5-7 segundos ele permite realizar o pareamento com a rede wi-fi, e no caso esses dois que tenho não estão fazendo nenhuma das duas funções, ao pressionar não acende a carga muito menos permite parear, haveria alguma outra forma de parear e acionar a carga, sem alterar o firmware original?

  4. Gustavo às 08:15

    Bom dia
    Excelente post!
    Esse sonoff seria a solução que estou procurando mas ao invés de usar um interruptor pulsador eu preciso utilizar um interruptor simples, é possível fazer isso de alguma forma?

    Desde já agradeço sua atenção

  5. BiLL Scorpion às 22:24

    Mas nesse caso aí eu terei que acessar um endereço diferente, abrir uma página diferente para cada Sonoff? Não tem como fazer de uma forma que apareça vários “controles” do Sonoff em uma só pagina?

  6. Alian às 23:24

    Olá.
    Parabéns pelo projeto, muito bom.
    Vou tentar fazer aqui.
    Tem como ler a potência que está sendo consumida e fazer uma condição para desarmar e rearmar o rele?

  7. Reginaldo às 20:20

    Parabéns, Euler, pelo trabalho. Muito bem organizado e apresentado de forma bastante objetiva.
    Você não mencionou a integração com dispositivos de comando de voz, como o Alexa. Certamente esse recurso também se perde com a substituição do firmware.
    Aproveitando a oportunidade, eu gostaria de integrar o Sonoff com a placa de comando de aparelhos de ar condicionado tipo Split. Vc tem algum trabalho sobre isso? Ou saberia onde encontrar?
    Saudações e sucesso no seu empreendimento.

  8. Márcio Marques às 07:59

    Bom trabalho Euler!! Mas no final de fazer flash, o meu sonoff só funciona se eu tiver a Alimentação de 3,3V ligada . Ou seja, com a Alimentação 220V não funciona o relé. Tens ideia porque isto acontece? Obrigado

    • Euler Oliveira Autor às 08:51

      Olá Márcio Marques.

      Primeira vez que vejo acontecer isso.

      Sugiro que refaça o procedimento, seguindo a risca os passos mencionados neste artigo.

  9. Cristiano às 09:24

    Ótimo trabalho amigo.parabéns, so tive um.probleminha, o sonoff so funciona se estiver usando a mesma rede em que o mesmo esta conectado, como faço para poder funciona com outro ip externo?

  10. Alexandre às 10:46

    Bom dia, seguindo as dicas do seu blog consegui fazer o Flash do Sonoff 4 canais porem com o firmware “Tasmota” que apresenta algumas funçoes interessantes como mqtt, autenticaçao, todas as versoes do sonoff disponives como o touch e o pro que possuem outras funçoes, agora consigo utilizar os 4 botoes do sonoff independente do software ewlink

  11. Tiago Daros às 21:17

    boa noite!!

    Mestre, tenho uma automação protocolo Zigbee, e minha central tem um IP próprio para controles internos e outro IP para controle Remoto, seria possivel atraves desses modulos Sonoff fazer a alteração de Firmware??? tenho ideia de substituir o Firmware do modulo T1 de 3 gangs..

    abraços

      • tiago daros às 10:27

        Tenho certa dificuldade em expressar o que estou pensando… hahaha

        Vamos lá,

        Hoje eu tenho em minha casa uma Automação gerenciada pelo protocolo ZIGBEE(ontem desmontei um modulo relé, e o codigo do processador ZIGBEE é ETRX357-LRS)

        porem eu comprei uns modulos relé Basico da SONOFF e também o Touch T1, e quero fazer esses modulos sonoff conversar com minha central zigbee, como posso fazer essas alterações??

        abraços!

        • Euler Oliveira Autor às 11:17

          Olá Tiago Daros.

          Numa rápida pesquisa que fiz aqui, não consegui identificar nenhum dispositivo ou meio de comunicar uma rede ZigBee com uma rede WiFi.

          • tiago daros às 16:22

            ola novamente…

            eu tenho outra informação…

            minha central aceita integrar equipamentos via protocolo TCP/IP e HTTP…

            nesse caso conseguiria fazer a integração dos Sonoffs??

            abras

          • Euler Oliveira Autor às 17:51

            Olá Tiago Daros.

            Neste caso é provável que consiga, mas para isto deverá fazer a programação correta do Sonoff/ESP8266 para atender as requisições HTTP vindas da sua central ZigBee.

  12. Emanuel Vidal às 19:17

    Muito bom este seu post estava procurando algo assim bem detalhado, gostei do seu código bem comentado parabéns, minha duvida se vc puder me ajudar, eu estou querendo automatizar a iluminação e outras coisas aqui em casa e fiquei na duvida se o ESP8266 seria o ideal pois comprei um q veio com uma fonte pequena acoplada, um projeto como o Sonoff, só q depois de um tempo ligado eu não consigo mais me comunicar com a placa pelo ip, ela não abre mais a pagina, apesar de estar ligada, só responde depois q eu reinicio a energia, sera q é falha do projeto q eu comprei??, pois tenho medo de compra um monte deste Sonoff e ficar com este problema q inviabilizaria a automação!!! ai vi q vc também postou sobre arduino e acionamento RF, vc acha o arduino e RF mais confiável ou esse Sonoff e bom de fato?? tem relatos sobre o travamento?? q acha posso comprar???

Deixe uma resposta

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