Sunteți pe pagina 1din 18

Configurar o ESP8266(Esp-12) com Arduino Uno

PROJETO: CONTROLE DE LMPADA PELA WEB E


INTERRUPTOR CONVENCIONAL

Primeiramente, a CASAi gostaria de agradecer por ter solicitado este e-book.


com imensa satisfao que disponibilizamos uma parte do nosso treinamento Casa
Inteligente para que voc possa aplicar no seu projeto ou para seu hobby.

O intuito deste material trazer conhecimento das melhores ferramentas da


atualidade com um baixo custo. No curso Casa Inteligente da CASAi, ensinamos
passo a passo como controlar os equipamentos de sua casa atravs da Internet,
gerando assim mais economia, comodidade e segurana para voc e sua famlia.

Neste e-book, estaremos detalhando como configurar o ESP-12 com Arduino no


modo standalone onde o ESP-12 trabalhar sem a necessidade do Arduino como
controlador a cada passo ser explicado o funcionamento e a configurao para o
correto funcionamento deste projeto.

Este material faz parte do treinamento Casa Inteligente da CASAi o resultado final
ser o controle de uma lmpada atravs da web sem perder o controle pelo
interruptor convencional.

Sem mais delongas, vamos colocar as mos obra.

Para montar este projeto, precisaremos de alguns componentes.

1) Arduino Uno;
2) Cabo USB para conexo do Arduino;
3) ESP-12;
4) Jumpers (utilizaremos macho x macho);
5) 1 Push-button;
6) 1 led;
7) 6 resistores de 10k;
8) 1 lmpada;
9) 1 receptculo (bocal) com fiao para rede eltrica;

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

10) 1 Interruptor de lmpada;


11) 1 modulo Rel;
12) Protoboard.

Parte 1: Ligaes no Arduino

Montaremos as ligaes eltricas no Arduino Uno, sendo que este servir apenas
para emular a porta COM para gravar na memria do ESP-12 e fornecer a carga de
3.3v.

Figura 1 Arduino Uno

Conforme imagem acima, vamos destacar por itens:

1: TX Utilizardo para transmitir os dados da IDE Arduino para o ESP-12;

2: RX Utilizado para monitorar a COM e ver como o ESP-12 est se


comportando;

3: 3.3v Utilizado para alimentar o ESP-12, estaremos utilizando a alimentao


do Arduino por questo de praticidade, mas pode ser utilizada outra fonte de
alimentao para o ESP-12. Lembrando que o ESP8266 trabalha com 3.3v.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

4: GND Utilizado para alimentar o ESP-12, estaremos utilizando a alimentao


do Arduino por questo de praticidade, mas pode ser utilizada outra fonte de
alimentao para o ESP-12;

5 e 6 : GND / RESET Nestes pontos iremos fazer um chaveamento desta duas


portas, desta forma estamos transformando o Arduino em uma interface entre o
ESP-12 e o Computador. Pode-se usar outro adaptador USB para ligar o seu ESP-12,
mas optamos pelo Arduino, pois assim no h a necessidade de comprar outro
componente para configurar o seu ESP-12.

Parte 2: Ligaes do ESP-12

Abaixo, teremos as ligaes do ESP-12:

Figura 2 ESP-12

1: TXD Ser ligado no TX do Arduino(Parte 1, item 1), isso mesmo, no TX, pois
neste caso o Arduino ser somente uma interface para conectar o ESP-12;

2: RXD Ser ligado no RX do Arduino(Parte 1, item 2);

3: GPIO5 Ser nosso controle do interruptor para acionamento da lmpada


manualmente;

4: GPIO4 Ser a porta que ir ligar ou desligar nossa lmpada;

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

5: GPIO0 Utilizado para habilitar o ESP-12 para gravao na memoria;

6: GPIO15 - Utilizado para habilitar o ESP-12 para gravao na memoria;

7: GND Alimentao do ESP-12, neste caso estamos utilizando o GND do


Arduino, mas poderia ser de outra fonte de alimentao;

8: RST Utilizado para fazer o reset do ESP-12 e prepara-lo para gravao;

9: EN ou CH-PD Utilizado para habilitar o ESP-12 para gravao na memoria.

10 : GPIO12 Utilizemos apenas para visualizar se o ESP-12 est disponvel para


gravao.

11 : VCC Alimentao do ESP-12, neste caso estamos utilizando o GND do


Arduino, mas poderia ser de outra fonte de alimentao de 3.3v.

Parte 3: Interruptor manual

Figura 3 Interruptor Manual

1: Ser ligado no 3.3v para controle de passagem da corrente. Note que os


interruptores tem 3 posies, mas apenas uma extremidade e o centro podem ter
contatos eltricos, desta forma definimos o central como o primeiro.

2: Sero ligados 2 fios, onde um ser conectado no GPIO5 do ESP-12 e o outro


no GND.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

Parte 4: Protoboard

Figura 4 - Protoboard

1: Ser ligado o 3.3v do Arduino(Parte 1, item 3);

2: Ser ligado o VCC do ESP-12(Parte 2, item 11);

3: Ser ligado o GND do Arduino(Parte 1, item 4);

4: Ser ligado o GND do ESP-12(Parte 2, item 7);

5: Ser ligado o EN ou CH_PD(Parte 2, item 9);

6: Utilizaremos um resistor de 10k apenas para segurana do ESP-12


controlando a entrada da corrente eltrica.

7: Ser ligado o GPIO12 do ESP-12(Parte 2, item 10);

8: Utilizaremos um led para visualizar se o ESP-12 est disponvel para gravao.


Ao resetar o ESP-12, o led ir piscar.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

9: Necessitamos colocar um resistor de 10k entre o 7 e 8 para segurana da


corrente no Led.

10 : Ser ligado o GPIO0(Parte 2, item 5);

11 : Colocaremos um resistor de 10k apenas por segurana do ESP-12

12 : Utilizaremos este jumper somente quando formos fazer as gravaes no ESP-


12;

13 : Ser ligado o GPIO15 do ESP-12(Parte 2, item 6);

14 : Colocaremos um resistor de 10k apenas por segurana do ESP-12

15 : Ser ligado o item 1 do interruptor(Parte 3, item 1);

16 : Ser ligada a outra ponta do item 2 do interruptor(Parte 3, item 2);

17 : Colocar um push-button para resetar o ESP-12;

18 : Ser ligado a conexo entre push-button e o GND;

19 : Ser ligado o RST do ESP-12(Parte 2, item 8);

20 : Colocaremos um resistor de 10k apenas por segurana do ESP-12.

Parte 5: Lmpada

Figura 5 Fiao eltrica da lmpada

1: Ser ligado na sada do mdulo Rel;

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

2: Ser ligada na entrada do mdulo Rel;

3: Ser ligada diretamente na rede eltrica.

Parte 6: Mdulo RELE

Figura 6 Mdulo Rel

1: Ser ligado o GPIO5 do ESP-12(Parte 2, item 3);

2: Ser ligado o GND, podendo ser ligada na mesma alimentao do ESP-12


(Parte 4, item 2);

3: Ser ligada a alimentao de 3.3v a 5v, podendo ser ligada na mesma


alimentao do ESP-12 (Parte 4, item 4);

4: Ser ligado o fio da rede eltrica (Parte 5, item 2);

5: Ser ligado o fio para a lmpada (Parte 5, item 1). Note que, temos duas
extremidades no rel, ento qual delas utilizar? Na placa normalmente existem as
marcaes NA e NF, onde significam respectivamente Normalmente Aberto e
Normalmente Fechado. Caso esteja apenas uma representao grfica que voc no
identifique qual o NA e qual o NF, basta escolher uma extremidade e ligar a
tomada na rede eltrica. Se a lmpada acender voc escolheu a sada NA.
Utilizaremos o NF, pois queremos que somente seja acionado quando a porta digital
esteja alimentando. CUIDADO COM A ENERGIA ELTRICA. MUITA ATENO.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

Aps todas a ligaes, o resultado final ficar assim:

Parte 7: IDE Arduino

Agora, aps todas as ligaes concludas estaremos estudando o cdigo da IDE


Arduino. Caso ainda no tenha o programa, baixe em www.arduino.cc.

Estaremos configurando a IDE para transmitir para o nosso ESP-12

1) V em Arquivo > Preferncias

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

Em seguida, no campo URLs Adicionais de Gerenciadores de Placas:


informe o seguinte caminho:
http://arduino.esp8266.com/package_esp8266com_index.json e clique em OK.

Assim, poderemos adicionar as bibliotecas do ESP8266 nossa IDE Arduino.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

2) Siga em Ferramentas > Placa: Arduino/Genuino Uno > Gerenciador de


Placas...

Este procedimento demora um pouco devido verificao de todas as placas


disponveis. Ao carregar localize o esp8266, escolha a ultima verso disponvel e
clique em Instalar.

Aps a instalao, clique em Fechar e siga em Ferramentas > Placa:


Arduino/Genuino Uno, agora veja que foram instaladas novas placas. Escolha
Generic ESP8266 Module.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

Note que, ao voltar no menu Ferramentas, aumentaram as opes, deixe as


suas configuraes conforme abaixo:

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

3) Substitua o cdigo abaixo na imagem abaixo:

Pelo cdigo:
//Chamando as bibliotecas ESP8266WebServer.h, ESP8266mDNS.h, ESP8266WiFi.h, WiFiClient.h
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>

//Definindo a porta digital 5 como o interruptor do nosso sistema


#define interruptor 5

//Declarando a variavel mdns com a classe MDNSResponder, iremos utilizar para montar nosso servidor Web
MDNSResponder mdns;

//Informar as credenciais da rede para conectar o ESP. Informe os dados da sua rede Wifi atual
const char* redeWifi = "NOME_DA MINHA_REDE_WIFI";
const char* senhaWifi = "SENHA_DA_MINHA_REDE_WIFI";

// Definindo a porta para comunicao


ESP8266WebServer server(80);

//Declarando a varivel webPage como String e passando o valor nulo. Nela estaremos construindo nossa pgina para controle da lampada
String webPage = "";

//Declarando a variavel com Inteiro e passando o valor 4, que ser nossa porta digital que iremos controlar a lampada
int lampada = 4;

//Declarando as varireis interAnt e interAtual e definindo o valor 0 (desligado) para as duas. Atraves delas estaremos controlando o estado do
interruptor
int interAnt = 0;
int interAtu = 0;

//Iniciando o void Setup da IDE Arduino


void setup(void){
//Utilizando a variavel webPage colocamos o cdigo HTML que desejamos no nosso site
webPage ="<p><a href=\"www.casai.com.br\"><img alt=\"\" src=\"http://casai.com.br/images/CASAi_100_xxx.png\" style=\"width: 100px;
height: 62px\" /></a></p>";

//Podemos dividir em 2 partes "<a href=\"lamp1Lig\"><button>LIGAR</button></a>" controla o botao ligar


//"<a href=\"lamp1Desl\"><button>DESLIGAR</button></a>" controla o botao Desligar
webPage += "<a href=\"lampLig\"><button>LIGAR</button></a>&nbsp;<a href=\"lampDesl\"><button>DESLIGAR</button></a>";

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

//Preparando as portas digitais, definido atraves do comando pinMode que a lampada ser um controle de sada
pinMode(lampada, OUTPUT);

//Definindo atraves do digitalWrtite que sempre iniciar como LOW ou seja, desligada.
digitalWrite(lampada, LOW);

//Definindo tambm pelo pinMode que o interruptor um controle de entrada.


pinMode(interruptor, INPUT);

//Dando uma pausa de 10 milissegundos para iniciar a conexao


delay(10);

//Definido a velocidade de conexo da Serial do ESP-12


Serial.begin(115200);

//Conectando na rede wifi com os dados passados


WiFi.begin(redeWifi, senhaWifi);

//Imprime a quebra de uma linha na Serial


Serial.println("");

//Aguardando conexo, somnete sair deste While quando conectar na rede Wifi
//Assim sair do lao somente quando o Wifi.status() for igual ao WL_CONNECTED
while (WiFi.status() != WL_CONNECTED) {
//Dando uma pausa de 500 milissegundos enquanto conecta na rede Wifi
delay(500);
//Impressao na serial o "." at a conexao ser efetuada
Serial.print(".");
}
//Ao sair do lao Imprime a quebra de uma linha na Serial
Serial.println("");

//Se chegou aqui a conexo foi bem sucedida, informando na Serial a Rede conectada
Serial.print("Conectado a Rede: ");
Serial.println(redeWifi);

//e o IP que o ESP-12 se registrou na rede


Serial.print("Endereco IP: ");
Serial.println(WiFi.localIP());

//Iniciando o servidor web com o IP recebido do DHCP


if (mdns.begin("esp8266", WiFi.localIP())) {
Serial.println("Servidor Web Inicializado");
}

//Montando o servidor com a variave webPage


server.on("/", [](){
server.send(200, "text/html", webPage);
});

//Lendo as aes ao clicar em um dos botes


server.on("/lampLig", [](){
server.send(200, "text/html", webPage);

//Caso encontre o texto lampLig, aciona a porta digital da lampada como HIGH, ou seja ligada
digitalWrite(lampada, HIGH);
delay(100);
});

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

server.on("/lampDesl", [](){
server.send(200, "text/html", webPage);
//Caso encontre o texto lampDesl, aciona a porta digital da lampada como LOW, ou seja desligada
digitalWrite(lampada, LOW);
delay(100);
});

//Informando para o servidor que est disponivel para receber comandos


server.begin();
Serial.println("HTTP SERVER INICIADO");
}

//Iniciando o void loop do Arduino


void loop(void){
//Este comando fica acionando a comunicao do Servidor(Navegador Web) com o Cliente(ESP-12)
//Por estar dentro do loop, isto acontece infinitamente
server.handleClient();

//Na variavel interAtu, iremos ler qual o estado da porta digital do interruptor
// para isso usamos o comando digitalRead, sendo como retorno 0 desligado e 1 ligado
interAtu = digitalRead(interruptor);

//Caso a variavel interAnt seja diferente da interAtu e a interAtu for igual a 1


if ((interAnt != interAtu)&&(interAtu == 1)){
//ligaremos a porta digital da lampada
digitalWrite(lampada, HIGH);
//e deixaremos a variavel interAnt igual a interAtu
interAnt = interAtu;
}
//Caso a variavel interAnt seja diferente da interAtu e a interAtu for igual a 0
if ((interAnt != interAtu)&&(interAtu == 0)){
//desligaremos a porta digital da lampada
digitalWrite(lampada, LOW);
//e deixaremos a variavel interAnt igual a interAtu
interAnt = interAtu;
}
//Deixamos um delay de 10 milisegundos para que cada ao seja executada
//utilizado apenas para que ao operar pela Web no se tenha uma diferena de tempo com o interruptor
delay(10);
}

Dentro do cdigo deixamos comentado cada comando. Cada comentrio est


iniciado por //.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

4) Antes de compilar e gravar este script no ESP-12, vamos abrir a janela


de Monitor de Serial para acompanhar o que o ESP-12 estar respondendo. Para
isto, siga em Ferramentas > Monitor Serial.

Ser apresentada a janela abaixo, apenas minimize-a.

5) Tudo pronto, agora conecte o cabo USB no Arduino e no computador.


No se esquea de fechar o jumper do GPIO0(Parte 4, item 12) e pressionar o boto
do push-button para fazer o reset do ESP-12(Parte 4, item 17). Em seguida, clique no
boto Carregar.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

Note que na parte inferior ir carregar nosso projeto para o ESP-12 e todas as
informaes necessrias sero apresentadas nesta parte em preto.

Enquanto est carregando o script, o led TX do Arduino ficar piscando e RX


ficar acesso, isto sinal que est fazendo a comunicao com o ESP-12. Ao concluir
estaremos com a seguinte informao:

Veja no Monitor da Serial que o nosso ESP-12 se conectou nossa rede Wifi.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

Se voc conseguiu chegar at aqui e no apresentou nenhum erro ao carregar


o seu script no ESP-12, faa um teste, ligue o plugue da tomada na rede eltrica e
utilize o interruptor para ligar e desligar a lmpada. Funcionou? Parabns seu ESP-
12 est configurado. Mas calma, ainda no acabou, vamos controlar agora pela
Web.

Mas, se apresentou erros ao compilar ou no funcionou ao acionar o


interruptor, no se preocupe, no final listamos alguns erros e solues.

Parte 8: Servidor Web

Agora, vamos abrir nosso browser (Internet Explorer, Chrome, Opera, Firefox entre
outros). Na barra de endereos coloque o IP que vimos que o DHCP deu para nosso
ESP-12. No meu caso foi o 192.168.1.18.

Agora, use os botes LIGAR e DESLIGAR para acender a sua lmpada, caso note que
esto invertidos, ou seja, ao clicar em LIGAR ele apaga a lmpada e vice e versa,
experimente trocar o fio da lmpada ligada ao rel (Parte 6, item 5). Desligue da
rede eltrica antes, evite choques.

Parabns voc conseguiu configurar o ESP-12. Agora, pode incorporar no


seu projeto.

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).
Configurar o ESP8266(Esp-12) com Arduino Uno

Gostou do nosso e-book? Este s uma pequena parte do que temos no curso Casa
Inteligente CASAi, l ensinamos a montar um projeto completo para a sua casa,
desde o conceito dos componentes at a construo de placas de circuito e a
confeco de caixas plsticas para colocar suas placas e dar um toque totalmente
profissional ao seu projeto.

Durante todo o curso, temos um frum para esclarecer as dvidas e trocar


conhecimento.

O curso voltado para as pessoas que desejam automatizar a sua casa, hobbistas ou
para quem deseja trabalhar vendendo o servio de automao residencial.
Atualmente, automatizar uma casa muito caro, mas com o curso Casa Inteligente
voc conseguir montar o seu projeto com um custo muito baixo.

Erro Comum

Ao tentar compilar e gravar no ESP-12 pode apresentar o erro:


espcomm_upload_mem failed Este erro apresentado quando o ESP-12 no est
disponvel para gravao, verifique se conectou todos os jumpers das ligaes do
ESP-12 protoboard.

Se todos esto corretamente conectados, verifique se o jumper do GPIO0(Parte 4,


item 12) est conectado e pressione o boto do push-button para resetar o ESP-
12(Parte 4, item 17).

Caso o erro apresentado no seja o apresentado acima, sugerimos que refaa todo o
e-book, pois alguma coisa ficou para trs.

Caso tenha dvidas, entre em contato conosco atravs do e-mail:


contato@casai.com.br

E-book desenvolvido por CASAi - 2017 / Pode ser reproduzido mediante a indicao do autor (Casai.com.br).

S-ar putea să vă placă și