Neste projeto você vai aprender como ligar e desligar lâmpadas via Wifi de forma bem fácil, vamos utilizar uma placa NodeMCU, uma fonte para protoboard e um módulo relé 5v com 4 saídas.
1-Ligações
As ligações sem as lâmpadas ficam assim.
As lâmpadas devem ser ligadas igual o nosso projeto de acionamento via Bluetooth.
Se você ainda não configurou seu Arduino IDE para trabalhar com o NodeMCU veja nosso post “Como configurar o Arduino IDE para trabalhar com o NodeMCU”
3 – Definindo o algorítimo de comando.
O algorítimo usado pra o acionamento está logo abaixo.
//—————————————————————–início———————————————————————————————-
#include <Servo.h>
#include <ESP8266WiFi.h>
Servo myservo;// criar o dispositivo servo
//Nome da sua rede Wifi
const char* ssid = “nome da sua rede wifi”;
//Senha da rede
const char* password = “senha da rede”;
//IP do ESP (para voce acessar pelo browser)
IPAddress ip(192,168,100,200); // este ip deve ser parecido ao ip do seu computador mudando somente o final da numeração
//IP do roteador da sua rede wifi
IPAddress gateway(192,168,100,1);
//Mascara de rede da sua rede wifi
IPAddress subnet(255, 255, 255, 0);
//Criando o servidor web na porta 80
WiFiServer server(80);
//Funcao que sera executada apenas ao ligar o ESP8266
void setup() {
Serial.begin(115200);
delay(10);
//Preparando o GPIO2 onde estão ligadas as lâmpadas
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
pinMode(D3, OUTPUT);
pinMode(D4, OUTPUT);
//Garantindo que as portas estejam desligadas ao iniciar o sistema, quando recebe 1 a porta desliga
digitalWrite(D1, 1);
digitalWrite(D2, 1);
digitalWrite(D3, 1);
digitalWrite(D4, 1);
// resposta na serial sobre o status da conexão wifi
Serial.println();
Serial.println();
Serial.print(“Connecting to “);
Serial.println(ssid);
//Conectando a rede Wifi
WiFi.config(ip, gateway, subnet);
WiFi.begin(ssid, password);
//Verificando se esta conectado,
//caso contrario, espera um pouco e verifica novamente.
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);// durante a tentativa de conexão será gerado um ponto final a cada tentativa
}
Serial.println(“”);
Serial.println(“WiFi connected”);
//Iniciando o servidor Web
server.begin();
Serial.println(“Server started”);
// Print the IP address
Serial.println(WiFi.localIP());
}
//Função que sera executada indefinidamente enquanto o ESP8266 estiver ligado.
void loop() {
//Verificando se o servidor esta pronto.
WiFiClient client = server.available();
if (!client) {
return;
}
//Verificando se o servidor recebeu alguma requisicao
Serial.println(“new client”);
//while (!client.available()) {
//delay(1);
//}
//Obtendo a requisição vinda do browser
String req = client.readStringUntil(‘\r’);
client.flush();
//Iniciando o buffer que ira conter a pagina HTML que será enviada para o browser.
String buf = “”;
buf += “HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\n”;
buf += “<h3>ESP8266 Servidor Web</h3>”;
buf += “<p>L1 <a href=\”?function=L1_on\”><button>LIGA</button></a><a href=\”?function=L1_off\”><button>DESLIGA</button></a></p>”;
buf += “<p>L2 <a href=\”?function=L2_on\”><button>LIGA</button></a><a href=\”?function=L2_off\”><button>DESLIGA</button></a></p>”;
buf += “<p>L3 <a href=\”?function=L3_on\”><button>LIGA</button></a><a href=\”?function=L3_off\”><button>DESLIGA</button></a></p>”;
buf += “<p>L4 <a href=\”?function=L4_on\”><button>LIGA</button></a><a href=\”?function=L4_off\”><button>DESLIGA</button></a></p>”;
buf += “<h1>www.eletronicaeprogramacao.com</h1>”;
buf += “</html>\n”;
//Enviando para o browser a ‘pagina’ criada.
client.print(buf);
client.flush();
//Analisando a requisicao recebida para decidir se liga ou desliga
/////////////////////////////////////////////////////////////////////
if (req.indexOf(“L1_on”) != -1)
{
digitalWrite(D1, 0);
}
else if (req.indexOf(“L1_off”) != -1)
{
digitalWrite(D1, 1);
}
//////////////////////////////////////////////////////////////////////
if (req.indexOf(“L2_on”) != -1)
{
digitalWrite(D2, 0);
}
else if (req.indexOf(“L2_off”) != -1)
{
digitalWrite(D2, 1);
}
//////////////////////////////////////////////////////////////////////
if (req.indexOf(“L3_on”) != -1)
{
digitalWrite(D3, 0);
}
else if (req.indexOf(“L3_off”) != -1)
{
digitalWrite(D3, 1);
}
//////////////////////////////////////////////////////////////////////
if (req.indexOf(“L4_on”) != -1)
{
digitalWrite(D4, 0);
}
else if (req.indexOf(“L4_off”) != -1)
{
digitalWrite(D4, 1);
}
//////////////////////////////////////////////////////////////////////
else
{
//Requisicao invalida!
client.stop();
}
}
//—————————————————————————–fim——————————————————————————
Copie este algorítimo e modifique se achar necessário, está bem comentado para facilitar o entendimento, ele cria uma página dentro do NodeMCU e você pode acessar de qualquer computado ou celular dentro da mesma rede digitando o IP que você configurou no algorítimo.
4- Recomendações
É altamente recomendável o uso da fonte externa pois o consumo do módulo relé pode chegar a 220 mA, que para a saída USB do computador já é muito, o não uso pode levar a queima da saída USB.
É necessário conectar os negativos da fonte e do NodeMCU para funcionar corretamente.
Caso queira usar a placa desconectada do PC é só desligar o cabo USB e conectar o positivo 5v da fonte ao pino VIN do NodeMCU.
Dependendo do modelo de sua placa do NodeMCU você precisará instalar o drive CH340 e identificar a porta correta utilizada.
Clique no link e instale o driver, em alguns casos o programa identifica a porta correta e conecta automaticamente, mas se isso não ocorre vá no gerenciador de dispositivos identifique o drive instalado e veja a porta correta.
Bom dia!
Gostaria de saber mas sobre os Arduinos.
Olá, obrigado por entrar em contato!
Esta placa que usei é um pouco superior ao Arduino e facilita muito por ter wifi integrado, além de ficar mais em conta.
Tenho alguns projetos em Arduino também, logo vou posta-los.
oi amigo parabens pelo artigo voce poderia me enviar o codigo deste projetor de acender lampadas por favor?
Boa tarde José Luiz, está tudo na postagem, é só clicar nos textos em azul e baixar, todos os códigos estão disponíveis, assim como o aplicativo e o projeto do aplicativo para edição.
AMEI E VAI ME AJUDAR MT A MONTAR MEU PROJETINHO DE IOT E AUTOMACAO COM O ARDUINO ESP8266