12 Comentários

Interruptor Wifi para Lâmpada – Firmware

Interruptor Wifi para Lâmpada - Instalação
Este post faz parte da série Interruptor Wifi para Lâmpada. Leia também os outros posts da série:

Seguindo nosso projeto de um interruptor WiFi para lâmpada, hoje daremos mais um passo. Iremos nesse artigo preparar a inteligência do nosso projeto, o firmware que será gravado no ESP8266-01.

Caso tenha perdido a primeira etapa do nosso projeto, poderá conferir os detalhes no nosso primeiro artigo da série, onde fizemos a apresentação do projeto e apresentamos o hardware proposto.

Correções no circuito

Antes de começarmos a falar do firmware temos que fazer algumas atualizações no nosso projeto. O circuito proposto na versão inicial apresentou algumas instabilidades na inicialização do ESP-01. Isso ocorre pois o módulo pode entrar em modo programação e não iniciar o firmware corretamente. Fiz um artigo explicando como configurar os GPIOs do ESP-01 para evitar esse problema.

A versão atualizada do circuito também está disponível no github assim como o layout modificado da placa. O esquema elétrico pode ser conferido na imagem a seguir:

Esquema elétrico do projeto.
Figura 1 - Esquema Elétrico

Firmware do ESP8266-01

O firmware foi desenvolvido e gravado no ESP utilizando a IDE do arduino. Para fazer a configuração da IDE para utilizar os módulos ESP e para saber como gravar o módulo no mesmo ambiente podemos seguir este artigo disponibilizado aqui mesmo no Embarcados.

O firmware foi codificado para conectar na sua rede WiFi. Para isso, é necessário, no código, inserir o nome da sua rede (SSID) e a senha. Para evitar que o módulo pegue um IP diferente cada vez que se conectar, precisamos fixa-lo, ajustando o IP, DNS e máscara da rede no código.

A estrutura do código é simples, ele recebe uma requisição do aplicativo através do método GET e responde enviando uma mensagem via HTTP, essa mensagem segue a seguinte estrutura: [{Lampada:XX,Led:XX}]. XX é o estado da lâmpada que pode ser ON ou OFF, ZZ é o estado da função Led (falaremos sobre essa função mais a frente). A requisição do app pode solicitar o status da lâmpada e função led (/?status), controlar a lampada (/?lamp=on/off) ou a função led (/?led=on/off).

Controlando o sistema via browser.
Figura 2 - Simulação via browser

Esse projeto foi pensado para ser algo fácil e didático, a segurança das informações não foram consideradas. As mensagens trocadas não contêm nenhum tipo de criptografia e podem ser vistas facilmente através de qualquer browser. Caso precise de algum tipo de segurança sinta-se livre para modificar o código como quiser.

A função led foi pensada para ajudar a encontrar o interruptor quando o ambiente está escuro. Dessa forma, um led irá operar de forma inversa à lâmpada. Sempre que a lâmpada estiver desligada o led estará ligado. Seja por questão de economia de energia ou simplesmente por estar atrapalhando o sono quando em um quarto, você pode não querer este led aceso. Para isto poderá desligar a função.

Alem de ser controlada pelo aplicativo, a lâmpada também pode ser ligada ou desligada ao receber um pulso de um botão ou interruptor. A função que faz o tratamento da chave no ESP-01 já faz um debounce por software para evitar ruídos. Caso tenha algum problema com o código ou tenha que retirar o ESP da placa, aproveitamos a modificação do circuito para inserir na placa um jumper que permite fazer o acionamento da lâmpada direto pelo interruptor. A placa pode ser adquirida com a equipe MAZZA G-TEC que está apoiando este projeto em conjunto com o Embarcados.

Segue o código que deve gravado no ESP8266-01:

Mesmo sem o aplicativo, podemos começar a fazer simulações com nosso código utilizando um browser, só precisamos digitar na URL o IP do nosso módulo seguido da requisição que desejamos:

  • http://192.168.0.118/?lamp=off
  • http://192.168.0.118/?led=on
  • http://192.168.0.118/?status

Para isso precisamos estar conectados na mesma rede que o ESP.

Conclusão

Estamos finalizando mais uma etapa do nosso projeto, no próximo artigo faremos nosso aplicativo para Android utilizando a ferramenta APP Inventor do MIT. Se tiver alguma dúvida ou problema com o código deixe seu comentário para que possamos ajudar. Até a próxima.

Outros artigos da série

<< Interruptor Wifi para Lâmpada - HardwareInterruptor Wifi para Lâmpada - Aplicativo >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Arduino » Interruptor Wifi para Lâmpada - Firmware
Comentários:
Notificações
Notificar
guest
12 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Gustavo
Gustavo
27/07/2019 11:48

Alguém conseguiu descobrir o que e o VR "U" ?

WELLINGTON RODRIGUES COSTA
WELLINGTON RODRIGUES COSTA
27/07/2019 10:02

Caso queira adicionar botões na página web . Tipo liga. desliga o que teria que fazer no codigo

Alessandro Pinho
Alessandro Pinho
16/09/2017 15:16

Queria usar a mesma estrutura do código porém em rede externa

Paulo Henrique Amigoni
Paulo Henrique Amigoni
13/12/2016 08:41

Vou testar ... mais gostaria de saber se vc tem algo desse jeito mais usando junto o interruptor three way ... caso ele pode ligar pela web e desligar pelo interruptor e vice versa

Josemar Alves de Carvalho
Josemar
Reply to  Paulo Henrique Amigoni
16/12/2016 08:55

Ola Paulo Henrique.

Este projeto foi pensado para usar um interruptor simples (ou um botão qualquer). Por conta da distancia dos interruptores não acho que atualmente seja viável utilizar interruptores paralelos. Talvez uma modificação no código ajude, vou pensar nisso e fazer alguns testes.

É possível ligar e desligar tanto pelo interruptor quanto pelo celular utilizando a rede wifi. O módulo e o celular tem que estar na mesma rede.

Abraço.

Paulo Henrique Amigoni
Paulo Henrique Amigoni
Reply to  Josemar
16/12/2016 09:01

Show de bola...
mais ainda não testei o seu cod ... mais da para adaptar porque eu to usando um sensor de tensão tbm .. então sei qual é o status que ta a lampada .. se ela ta ligada ou desligada

Josemar Alves de Carvalho
Josemar
Reply to  Paulo Henrique Amigoni
16/12/2016 09:30

Isso mesmo, através do comando STATUS o módulo te retorna o estado da lâmpada.

DIEGO APARECIDO GONCALVES
DIEGO APARECIDO GONCALVES
Reply to  Josemar
12/03/2019 12:05

Josemar, também sou formado pela USJT. Tenho uma dúvida em relação a esta questão. Se por algum motivo cai o sinal do Wifi.. Eu consigo controlar a lâmpada?

Bitous
Rogerio Morais
23/11/2016 11:08

Gostei muito deste Artigo, muito fácil e claro!
E já faz quase tudo o que eu precisava e com EQ ainda pra ajudar!

Josemar Alves de Carvalho
Josemar
Reply to  Rogerio Morais
24/11/2016 14:38

Bom que gostou Rogério, logo estará disponível o artigo sobre o aplicativo.

Carlos Oliveira
Carlos Oliveira
14/11/2016 08:25

Parabéns pelo artigo, bem didático.

Josemar Alves de Carvalho
Josemar
Reply to  Carlos Oliveira
14/11/2016 10:02

Obrigado Carlos, que bom que curtiu.

Talvez você goste:

Séries



Outros da Série

Menu

WEBINAR
 
NVIDIA JETSON – A Inteligência Artificial na palma de sua mão

Data: 08/07 às 14:00h Apoio: Arrow | NVIDIA
 
INSCREVA-SE AGORA »



 
close-link

WEBINAR
 
Redes Mesh para Monitoramento
e Controle de Sensores

Data: 15/07 às 14:00h Apoio: Artimar| Microchip| Tecsus
 
INSCREVA-SE AGORA »



 
close-link