Olá a Todos!
No post de hoje, aprenderemos como construir um controle remoto WI-FI, de 3 Canais com dois NondeMCU ESP8266, para controlar cargas de qualquer tipo, que podem ser: uma lâmpada, um motor, um ar condicionado, um portão eletrônico, um ventilador, ou seja, qualquer coisa que você deseje controlar, você pode com esse controle remoto sem fio.
A quantidade de chaves “canais” só depende do que você deseja em seu projeto e da disponibilidade da quantidade de portas que o ESP8266 tem.
Esse projeto foi inspirado no nosso projeto anterior que faz a comunicação entre 4 ESPs NodeMCU ESP8266, sem a necessidade de um Modem Roteador, uma comunicação direta com uma Central ESP, sem a necessidade de internet, ou modem para ligá-los em rede.
Que você pode ver clicando no link abaixo!
Postamos esse artigo devido a uma dúvida de um dos nossos inscritos que queria construir um tipo de controle de ESP para ESP com vários botões de acionamento, decidimos trazer isso a todos, pois acreditamos que se um tem essa dúvida, dezenas de outros inscritos também devem ter.
Que você pode ver clicando no link abaixo!
- Comunicação entre 4 ESPs com central ESP sem Roteador!
Postamos esse artigo devido a uma dúvida de um dos nossos inscritos que queria construir um tipo de controle de ESP para ESP com vários botões de acionamento, decidimos trazer isso a todos, pois acreditamos que se um tem essa dúvida, dezenas de outros inscritos também devem ter.
Para a realização deste procedimento, é necessário você já ter as bibliotecas do ESP instalada na IDE Arduíno.
Se você ainda não instalou, confira o nosso Post:
Depois de tudo instalado, proponho prosseguirmos…
Neste projeto, nós iremos criar um Controle Remoto Wi-Fi com o ESP8266, que pode acionar qualquer tipo de carga, só dependerá do tipo de evento que você irá fazer, podendo ser usado para, por exemplo, interruptores inteligentes sem fio para automação residencial.
Neste projeto, nós iremos criar um Controle Remoto Wi-Fi com o ESP8266, que pode acionar qualquer tipo de carga, só dependerá do tipo de evento que você irá fazer, podendo ser usado para, por exemplo, interruptores inteligentes sem fio para automação residencial.
É um controle remoto que você pode levar no bolso, como um controle de portão de garagem, ou colocar em qualquer lugar, como um interruptor na parede que, quando pressionado, ativa algum dispositivo. É como os dispositivos inteligentes como os da Amazon Dash Button, só que do tipo FVM = “Faça Você Mesmo”.
Você pode se interessar também!
- Controlando LEDs com dois ESP8266 utilizando Protocolo ESP-NOW
- Como Ler Valores Analógicos ADC Usando NodeMCU ESP8266 - IDE Arduíno!
- Como Hackear Circuito Módulo Relé para funcionar com ESP8266 & ESP32 com 3.3V
- Como utilizar o Botão Flash do NodeMCU ESP8266
- Piscando LEDs Independentes sem delay() utilizando Função millis()
- Alarme de Segurança com Sensor PIR e ESP8266 - Sensor de Movimento
Descrição!
Controle de dispositivos, chave sem fio, interruptor sem fio, etc., não é uma ideia nova, e este conceito foi popularizado pela Amazon que criou o interruptor Dash, sendo um pequeno interruptor que envia comandos instantaneamente a um dispositivo remotamente, e hoje podemos ver dezenas de modelos de fabricantes diferentes no mercado.Mas… como as plaquinhas do ESP são tão baratas, podemos fazer um projeto semelhante que funciona como o interruptor Dash, mas de uma forma mais econômica.
Logo abaixo temos o código inscrito na IDE Arduíno, para que deseja uma melhor explicação, temos o vídeo no nosso canal do YouTube no final desse Post que explica passo a passo os principais conceitos dessa programação.
Código Fonte do Transmissor "Controle"
//==================================================================================//
// Created by: Engineer Jemerson Marques, On: 10.06.2019 - FVM Learning website //
// Available at: https://www.fvml.com.br and on Youtube channel //
// https://www.youtube.com/c/FVMLearning - I hope you have fun - Good luck //
//----------------------------------------------------------------------------------//
//------------------------------------------------------------------------------------
// Libraries Needed For This Project
//------------------------------------------------------------------------------------
#include <ESP8266WiFi.h> // The Basic Function Of The ESP NODE-MCU
//------------------------------------------------------------------------------------
// Defining I/O Pins
//------------------------------------------------------------------------------------
#define LEDBOARD 2 // WIFI Module LED
#define BUTTON_1 D1 // Button 1 channel one
#define BUTTON_2 D2 // Button 2 channel two
#define BUTTON_3 D3 // Button 3 channel three
//------------------------------------------------------------------------------------
// WIFI Authentication Variables
//------------------------------------------------------------------------------------
char ssid[] = "fvml"; // SSID of your AP
char pass[] = "fvmlearning"; // password of your AP
//------------------------------------------------------------------------------------
// WIFI Module Mode & IP
//------------------------------------------------------------------------------------
IPAddress server(192, 168, 4, 15); // IP address of the AP
WiFiClient client;
//====================================================================================
void setup() {
Serial.begin(9600);
pinMode(LEDBOARD, OUTPUT); // Initiate the Onboard Led Output
pinMode(BUTTON_1, INPUT_PULLUP); // Initiate the ESP Pin: INPUT_PULLUP - Its mean that you no need put resistor
pinMode(BUTTON_2, INPUT_PULLUP); // Initiate the ESP Pin: INPUT_PULLUP - Its mean that you no need put resistor
pinMode(BUTTON_3, INPUT_PULLUP); // Initiate the ESP Pin: INPUT_PULLUP - Its mean that you no need put resistor
WiFi.begin(ssid, pass); // connects to the WiFi AP
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
}
//====================================================================================
void loop() {
ReadButton_1();
ReadButton_2();
ReadButton_3();
}
//====================================================================================
void ReadButton_1() {
int reading = digitalRead(BUTTON_1);
if (reading == LOW) {
client.connect(server, 80);
digitalWrite(LEDBOARD, LOW);
client.print("BUTTON_1\r");
client.flush();
digitalWrite(LEDBOARD, HIGH);
client.stop();
} delay(75);
}
//====================================================================================
void ReadButton_2() {
int reading = digitalRead(BUTTON_2);
if (reading == LOW) {
client.connect(server, 80);
digitalWrite(LEDBOARD, LOW);
client.print("BUTTON_2\r");
client.flush();
digitalWrite(LEDBOARD, HIGH);
client.stop();
} delay(75);
}
//====================================================================================
void ReadButton_3() {
int reading = digitalRead(BUTTON_3);
if (reading == LOW) {
client.connect(server, 80);
digitalWrite(LEDBOARD, LOW);
client.print("BUTTON_3\r");
client.flush();
digitalWrite(LEDBOARD, HIGH);
client.stop();
} delay(75);
}
//====================================================================================
Código Fonte do Receptor "Central ESP"
//==================================================================================//
// Created by: Engineer Jemerson Marques, On: 10.06.2019 - FVM Learning website //
// Available at: https://www.fvml.com.br and on Youtube channel //
// https://www.youtube.com/c/FVMLearning - I hope you have fun - Good luck //
//----------------------------------------------------------------------------------//
//------------------------------------------------------------------------------------
// Libraries Needed For This Project
//------------------------------------------------------------------------------------
#include // The Basic Function Of The ESP NOD MCU
//------------------------------------------------------------------------------------
// WIFI Module Config
//------------------------------------------------------------------------------------
WiFiServer server(80);
IPAddress IP(192, 168, 4, 15);
IPAddress mask = (255, 255, 255, 0);
//------------------------------------------------------------------------------------
// Defining I/O Pins
//------------------------------------------------------------------------------------
#define LedBoard 2 // WIFI Module LED
#define LED1 D0 // LED Receiver One
#define LED2 D1 // LED Receiver Two
#define LED3 D2 // LED Receiver Three
//====================================================================================
void setup() {
pinMode(LedBoard, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
WiFi.mode(WIFI_AP);
WiFi.softAP("fvml", "fvmlearning");
WiFi.softAPConfig(IP, IP, mask);
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
digitalWrite(LedBoard, LOW);
String request = client.readStringUntil('\r');
client.flush();
if (request == "BUTTON_1") {
digitalWrite(LED1, !digitalRead(LED1));
digitalWrite(LedBoard, HIGH);
}
if (request == "BUTTON_2") {
digitalWrite(LED2, !digitalRead(LED2));
digitalWrite(LedBoard, HIGH);
}
if (request == "BUTTON_3") {
digitalWrite(LED3, !digitalRead(LED3));
digitalWrite(LedBoard, HIGH);
}
}
Aconselhamos baixar os arquivos originais, pois quando copiamos e colamos, sempre vem com erros, então estamos disponibilizando os arquivos para você fazer o download.
Arquivos para Download:
Opção 1: Arquivos código fonte
Opção 2: Arquivos código fonte
Você pode estar verificando o passo a passo com mais detalhes, assistindo o vídeo que postamos em nosso canal no YouTube logo abaixo.
E por hoje é só, espero que tenham gostado!
Qualquer dúvida, digita nos comentários que logos estaremos respondendo.
Lean Marques
ResponderExcluirLean Marques
1 segundo atrás
Então eu copiei os codigos e me deparei com dois erros mesmo depois de corrigir-los não funcionou por algum motivo
quando eu aperto botão do D1 o esp transmissor desliga o ledboard e o recepitor não faz nada
ambos ficam com os leds board acesos .
Achei o seguintes erros nos seu códigos:
No transmissor falta ( WiFi.mode(WIFI_STA);
No receptor falto (#include )
Porem mesmo alterando não funcionou você tem alguma ideia do que possa ser o problema?
Olá Lean Marques
ExcluirComo descrevi no Post, é melhor baixar os arquivos, pois quando copiamos do próprio site, algumas coisas, como acentuações ficam diferentes, então aconselho você a baixar direto, pois são os mesmos arquivos que utilizei sendo impossível de você encontrar algum erro.
Qualquer dúvida, estaremos à disposição.
Abraços.
Obrigada por Compartilhar
ResponderExcluirDeu muito certo aqui
parabéns pelo site, já me inscrevi.
bjs.
Olá!!!
ExcluirQue ótimo que funcionou para você, e muito obrigado por estar conosco.
Forte abraço.