Controlando o Sonoff através do Blynk e Interruptor Pulsador

Controlando o Sonoff através do Blynk e Interruptor Pulsador

Em artigos anteriores apresentei e ensinei a utilizar o Sonoff Básico e ensinei a fazer a substituição de firmware da placa para uso de códigos alternativos. Nesta postagem vou ensinar a utilizar o Sonoff em conjunto com o Blynk para fazer o acionamento de uma lâmpada remotamente através de smartphone ou tablet. Além disso, um interruptor pulsador vai ser conectado no Sonoff, permitindo uma segunda forma de acionamento da lâmpada.

Se você ainda não conhece o Sonoff ou o Blynk, recomendo que leia estes artigos antes de continuar:

Conhecendo o Sonoff Relé WiFi para Automação Residencial

Substituindo o firmware original do Sonoff

Conhecendo o Blynk

A integração entre Sonoff e Blynk é ideal para usuários que já possuem um sistema de automação residencial todo gerenciado pelo Blynk e que desejam controlar cargas AC remotamente através do Sonoff sem depender do aplicativo eWeLink. Conforme mencionei no artigo Substituindo o firmware original do Sonoff, 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 externo, 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, ao final deste artigo teremos uma lâmpada conectada ao Sonoff sendo acionada remotamente através de um smartphone com o app Blynk e acionada manualmente através de um interruptor pulsador.

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 O BLYNK COM O SONOFF. FAÇA POR SUA CONTA E RISCO!

Para prosseguir 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
– Chave Gangorra KCD1-101 NA Preta 2T (Pulsante)
– 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.

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

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

 img02_controlando_o_sonoff_atraves_do_blynk_e_interruptor_pulsador_arduino_esp8266_nodemcu_automacao_web_android_iphone_app_ewelink

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 a barra fêmea de 5 vias já soldada na placa:

img03_controlando_o_sonoff_atraves_do_blynk_e_interruptor_pulsador_arduino_esp8266_nodemcu_automacao_web_android_iphone_app_ewelink

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.

Clique AQUI e veja como fazer a instalação do pacote de bibliotecas do Blynk na IDE do Arduino e em seguida retorne para continuar.

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

No código vá até a linha char auth[] = “YourAuthToken”; apague o texto YourAuthToken e adicione o seu AuthToken (para mais detalhes sobre como obter o AuthToken, clique AQUI):

 img06_controlando_o_sonoff_atraves_do_blynk_e_interruptor_pulsador_arduino_esp8266_nodemcu_automacao_web_android_iphone_app_ewelink

Você deverá inserir o nome da sua rede WiFi na linha char ssid[] = “NOME DA SUA REDE WIFI”; e a senha deverá inserir na linha char pass[] = “SENHA DA SUA REDE WIFI”;:

img07_controlando_o_sonoff_atraves_do_blynk_e_interruptor_pulsador_arduino_esp8266_nodemcu_automacao_web_android_iphone_app_ewelink

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

Terminado o carregamento do código, abra o app Blynk em seu dispositivo móvel Android ou iOS, faça login e acesse o seu projeto. Se ainda não tem o projeto criado no Blynk, clique AQUI e leia a postagem para aprender a fazer as devidas configurações do projeto. Seu projeto deverá ser criado com as seguintes configurações:

Na tela principal do projeto, vá até a lista de widgets, selecione o “Button” para que ele seja inserido no contêiner do app:

img13_controlando_o_sonoff_atraves_do_blynk_e_interruptor_pulsador_arduino_esp8266_nodemcu_automacao_web_android_iphone_app_ewelink

Com o widget inserido no contêiner principal, clique sobre ele para acessar as configurações. Em “OUTPUT” selecione o tipo de pino “Virtual” e V2. As configurações deverão ficar similar a imagem abaixo:

img14_controlando_o_sonoff_atraves_do_blynk_e_interruptor_pulsador_arduino_esp8266_nodemcu_automacao_web_android_iphone_app_ewelink

O Blynk pode controlar de forma direta os pinos digitais e analógicos da plataforma sem que seja necessário escrever uma linha de código. Contudo, controlar entradas e saídas da plataforma não é suficiente, logo, se faz necessário a troca de informação com qualquer tipo de dado.

Para possibilitar o envio de qualquer tipo de dado da plataforma (ESP8266, por exemplo) para o aplicativo e do aplicativo para a plataforma, foram criados os pinos virtuais. A partir destes pinos, você pode trocar qualquer tipo de informação entre o app no dispositivo móvel e a plataforma. Logo, você pode processar algo na plataforma e em seguida enviar o resultado para o aplicativo. Veja que definimos o pino virtual V2 nas configurações do botão e este pino será responsável por acionar o relé do Sonoff e controlar o estado atual da lâmpada (ligada / desligada).

Terminado a configuração do widget, clique no botão de “Play” para iniciar a conexão e em seguida confira se o Sonoff está online:

img15_controlando_o_sonoff_atraves_do_blynk_e_interruptor_pulsador_arduino_esp8266_nodemcu_automacao_web_android_iphone_app_ewelink

Desconecte o conversor USB serial do computador e desconecte os cabos do Sonoff. Conecte um dos terminais do interruptor pulsador ao GND da placa e o outro terminal conecte a GPIO14. Veja na imagem abaixo como a conexão deve ser feita:

img16_controlando_o_sonoff_atraves_do_blynk_e_interruptor_pulsador_arduino_esp8266_nodemcu_automacao_web_android_iphone_app_ewelink

Note que fixei os dois cabos com cola quente para não ter problema de mau contato. Coloque 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.

Feito as conexões o resultado final da montagem será similar a imagem abaixo:

img17_controlando_o_sonoff_atraves_do_blynk_e_interruptor_pulsador_arduino_esp8266_nodemcu_automacao_web_android_iphone_app_ewelink

Com o Sonoff alimentado pela rede AC, clique no botão de “Play” para iniciar a conexão. Agora basta pressionar o botão no app Blynk para acender ou apagar a lâmpada. Pressione também o interruptor pulsador para acender ou apagar a lâmpada. Note que o estado atual da lâmpada é mostrado no app Blynk independentemente se o acionamento é feito pelo aplicativo ou pelo interruptor pulsador.

Veja no vídeo abaixo o resultado final:

Aliado ao firmware original do Sonoff o app eWeLink já faz o acionamento remoto do relé instalado na placa e também permite o acionamento manual através do push button que faz parte do módulo, contudo, não há como utilizar o GPIO14 para conexão do interruptor pulsador, por exemplo. Logo, o uso do Blynk no Sonoff, permite controlar o módulo remotamente e permite também o uso da GPIO14 para acionamento de algum outro módulo, componente ou leitura de um sensor digital.

Na próxima postagem sobre o Sonoff e o Blynk vou ensinar a utilizar um sensor de temperatura e mostrar as informações no aplicativo.

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.

Controlando o Sonoff através do Blynk e Interruptor Pulsador
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 9 comentários para esta postagem
  1. Wellington Dias às 23:46

    Top d+ @Euler Oliveira
    Parabéns e obrigado por compartilhar!
    Fiquei com uma duvida…. O blink mantem sempre a conexão com o sonoff para saber o estado da lampada(tipo socket) ou o aplicativo fica sempre solicitando o estado?
    Agradeço se puder responder, novamente Obrigado por compartilhar 🙂

  2. Marlon às 14:33

    Artigo muito bom! Parabéns. Tenho uma dúvida simples, já tenho alguns Sonoff e pretendo utilizá-los com pulsadores do tipo que são vendidos em lojas de material de construção. Tem algum problema? Existem diferenças entre esses pulsadores e o que você utilizou?

  3. Leandro Alves Silva às 22:46

    Consegui fazer funcionar, porem eles ficam desligando sozinhos.
    Alguém pode me ajudar? Todo cabo que coloco com mais de cm faz o aparelho desamar.

  4. lucas às 15:07

    Mesmo seguindo os passos do artigo, quando descarrego o programa é mostrado o erro descrito na 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.

    O que pode ser?

Deixe uma resposta

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