Comunicação entre 4 ESPs com central ESP sem Roteador
Hoje nós iremos fazer a comunicação entre 4 ESPs NodeMCU ESP8266, sem a necessidade de um Modem Roteador, essa comunicação será direta com uma Central ESP.
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.
Veja o nosso Post "Instalando Biblioteca do Módulo ESP8266 na IDE Arduíno"
Click no descrição abaixo para acessar o POSTAGEM.
Depois de tudo instalado, vamos seguir o passo a passo.
Montar os ESPs em uma Protoboard, se você tiver só uma Protoboard, ficará difícil montar o módulo, pois como podemos ver, não temos como utilizar os pinos na Protoboard, o NodeMCU não foi desenhado para este tipo de aplicação.
No entanto, podemos conectar três Protoboards uma na outra, como sugerido na imagem, juntas para podermos montar os 4 ESPs nas Protoboards e seguirmos o nosso esquema.
Se você não tem as Protoboards, não há do que se preocupar, devido aos números de pinos que serão utilizado, não ha tanta necessidade de termos as 3 Protoboard para isso.
Como serão colocados só uma chave tipo micro contact e um LED na Protoboard, podemos fazer com rabichos macho-fêmea facilmente, o mais trabalhoso será o servidor que terá a quantidade de LEDs maior seguindo a quantidade de CLIENTES que você irá colocar.
No entanto, podemos conectar três Protoboards uma na outra, como sugerido na imagem, juntas para podermos montar os 4 ESPs nas Protoboards e seguirmos o nosso esquema.
Se você não tem as Protoboards, não há do que se preocupar, devido aos números de pinos que serão utilizado, não ha tanta necessidade de termos as 3 Protoboard para isso.
Como serão colocados só uma chave tipo micro contact e um LED na Protoboard, podemos fazer com rabichos macho-fêmea facilmente, o mais trabalhoso será o servidor que terá a quantidade de LEDs maior seguindo a quantidade de CLIENTES que você irá colocar.
Então faça a montagem de acordo com o esquemático na imagem ilustrativa, tanto o esquemático do CLIENTE como o esquemático do SERVIDOR.
Se você é acostumado a fazer projetos com o ESP8266, já deve ter notado que não estou utilizando resistores, porque não é necessita usar resistores para ligar as chaves Micro Switch, pois podemos setar as portas de entrada dos ESPs com o comando Pull_Up, e assim evitar a utilização de resistores, e nos leds também não é necessário, pois as portas dos ESPs vão de 0 à 3,3v, e a alimentação da maioria dos leds é muito próximo a isso.
Depois de montado, verifique todas as conexões, as "portas" GPIO de saída para o led LED, verifique a polarização do LED, para não estar invertida, pois se tiver invertida o mesmo não irá acender, as GPIOs de entrada da Micro Switch, que deve seguir como no esquemático, um lado da chave vai para a porta que você programou, no nosso caso a porta é a D0 do ESP, depois de tudo verificado, faça o Upload do programa para os ESPs...
Opção 1: FVMLearning
Opção 2: FVMLearning
Para quem não baixou os códigos, abaixo o link para Download.
Link Direto:Opção 1: FVMLearning
Opção 2: FVMLearning
Depois de baixado os códigos, note que nos ESPs clientes, o que muda entre eles, são os números que demos a cada um deles: Cliente 01, Cliente 02 e etc... para cada ESP que você colocar como cliente, mude o número para Cliente 01, o próximo Cliente 02.... e assim sucessivamente.
Verifique também a porta que você colocou a Chave, e o LED, e veja a que está no código se são iguais, senão mudo ou no código ou na porta do ESP.
Verifique também a porta que você colocou a Chave, e o LED, e veja a que está no código se são iguais, senão mudo ou no código ou na porta do ESP.
Faça o Upload
Aguarde até carregar...
Faça isso para todos os ESPs.
Depois de ter concluído os Upload de todos os ESPs, incluindo o da Central.
Ligue o Serial Monitor.
Lembrando que estou usando a Central na porta USB somente para visualizar o comportamento dos ESPs, mas não é necessário, podendo ligar direto em uma fonte 5v, como os carregadores de celular, que seja USB 5V. Não recomendo utilizar os carregadores Fast Charger, devido sua saída ser de 5v à 8V, e isso pode esquentar bastante o regulador do ESP, e queimá-lo.
Lembrando que estou usando a Central na porta USB somente para visualizar o comportamento dos ESPs, mas não é necessário, podendo ligar direto em uma fonte 5v, como os carregadores de celular, que seja USB 5V. Não recomendo utilizar os carregadores Fast Charger, devido sua saída ser de 5v à 8V, e isso pode esquentar bastante o regulador do ESP, e queimá-lo.
Depois de tudo concluído.
Energize os ESPs... Com as fontes de carregador de Celular 5V
Energize os ESPs... Com as fontes de carregador de Celular 5V
Conecte um a um.
Para testar, vamos pressionar o botão primeiro ESP, e deve acender tanto o LED de indicação do ESP01 como também na central deve acender o LED correspondente ao ESP01, ou seja, Cliente 01.
Se no seu funcionou, siga para o próximo, pressione o botão do EPS02...
Se estiver funcionando, siga o mesmo passo para todos os ESPs que você colocou, é importante você acompanhar o comportamento dos Clientes no serial monitor, quando pressionamos o cliente correspondente, aparece a situação do mesmo.
Se estiver funcionando, siga o mesmo passo para todos os ESPs que você colocou, é importante você acompanhar o comportamento dos Clientes no serial monitor, quando pressionamos o cliente correspondente, aparece a situação do mesmo.
Essa nomenclatura que dei para o CLIENTE01 – 0 ou 1, é o Estado do mesmo, a qual 0 = Desligado e 1 = Ligado.
Isso serve para todos os clientes.
Você pode colocar o seu tipo de NOMENCLATURA, Só não esqueça de fazer em ambas as partes, no Cliente e no Server.
Para você que ver esse mesmo POST no tutorial do nosso canal no YouTube.
Fique à vontade para assistir no nosso canal.
Forte abraço.
Fique à vontade para assistir no nosso canal.
E por hoje é só, espero que tenham gostado!!!
Qualquer dúvida, digita nos comentários que logos estaremos respondendo.
Se inscreva no nosso Blog!!! Click aqui - FVM Learning!!!
Forte abraço.
Deus vos Abençoe
Shalom
Boa tarde!
ResponderExcluirTem como fazer esse mesmo projeto com o modem, seguindo esse mesmo conceito?
Quero ligar do mesmo jeito, só que com o modem, porque preciso colocar mais de 10 clientes.
Vou ficar aguardando.
Obrigado, e parabéns pelo Post, está ótimo.
Olá!
ResponderExcluirTem sim, e já estamos preparando o nosso tutorial sobre esse tipo de topologia com a comunicação entre ESPs com Modem Roteador.
Fica ligado, no nosso Blog e também no nosso canal no YouTube.
Abraços.
ja tem o video com esp e roteador
ResponderExcluirOlá
ExcluirEstamos finalizando o vídeo da comunicação entre ESPs com Roteador.
Fica ligado, em nossos canais.
Forte abraço.
Ola nao consigo baixar os codigos me redireciona pra outros sites
ResponderExcluirOlá JUSSARA
ExcluirOs sites são patrocínios, você entra neles e aguarda os 5 segundos que eles requerem depois click em SKIP e será redirecionado para o site para baixar, se tiver dúvidas veja essa rápido tutorial.
https://www.fvml.com.br/2019/04/como-baixar-arquivos-adfly-encurtanet.html
Forte abraço.
Não consigo fazer download dos códigos poderia enviar por email?
ResponderExcluirOlá!!!
ExcluirOs links estão funcionando perfeitamente.
Você precisa aguardar o tempo de 5 segundos do comercial do site, depois click em SKIP na parte superior direito e será redirecionado para baixar os arquivos. Qualquer dúvida, veja essa rápido tutorial.
https://www.fvml.com.br/2019/04/como-baixar-arquivos-adfly-encurtanet.html
Forte abraço.
Olá, já tem o código com 10 clientes com roteador ?
ResponderExcluirOlá!!!
ResponderExcluirEstamos finalizando o nosso material de, comunicação entre ESPs com Roteador.
E nele você pode colocar quantos clientes quiser.
Se inscreve em nossos canais, e não perca quando postarmos.
Forte abraço.
o link disponível direciona para um dropbox não acessível.
ResponderExcluirOlá!!!
ExcluirAcabamos de testar o Link, e está funcionando perfeitamente.
Mas, mesmo assim colocamos outra opção de link para baixar.
Abraços.
Boa sorte.
Olá boa tarde, gostaria de usar um sensor ultra-sônico para ligar e desligar ao invés de um botão, poderia me ajudar ?
ResponderExcluirOlá Ϟ PATRIK
ExcluirTecnicamente, não tem muito mistério.
//Primeiro você carrega a biblioteca do sensor ultra-sônico
#include
//Depois você define os pinos para o trigger e echo, escolha uma porta vazia que tenha no //seu ESP
#define Trigger D5
#define Echo D6
//Depois você inicializa o sensor nos pinos que já foram definidos
Ultrasonic ultrasonic(Trigger, Echo);
void setup()
{
Serial.begin(9600);
}
void loop()
{
float MicroCent; //Aqui criamos ums float para pegar os dados do sensor, que será convertido para centímetro
long microsec = ultrasonic.timing(); // Recebe os dados do sensor
MicroCent = ultrasonic.convert(microsec, Ultrasonic::CM); // converte para centímetro
E depois de tudo convertido, você pode usar o parâmetro de distância para poder acionar a carga com um if, por exemplo:
if (MicroCent < 20){
"Coloque o acionamento aqui"
}
}
É isso!!!
Espero ter ajudado, forte abraço, e boa sorte.
Se inscreva em nosso site:
https://draft.blogger.com/follow.g?view=FOLLOW&blogID=5745325357530072225
Abraços.
AMIGO QUERO COLOCAR DOIS ESP01 PARA RECEBER COMANDO UM DO OUTRO E ACIONAREM OS RELES. ME AJUDA NESSE PROJETO ???
ResponderExcluirOlá!!!
ExcluirTemos esse projeto já feito, veja nesse endereço do nosso canal no youtube.
https://www.youtube.com/watch?v=9oHvm6WGhjY
Aproveita e se inscreve lá também.
Forte abraço.
Boa noite!
ResponderExcluirEsse código funciona com o ESP32?
Olá @EDMILSON
ExcluirAcredito que sim, não testei, pois não disponho de um em nossa bancada, mas o princípio é válido para os dois, o que pode diferenciar, seria a biblioteca, mas o demais são iguais.
Se possível nos dê o feedback, para que outros possam também tirar suas dúvidas.
Forte abraço.
Olá, boa noite, sem roteador ficamos presos com apenas 4 ESP ? ou podemos adiconar mais ? Quero trabalhar com 8 ESP.
ResponderExcluirOlá @Ϟ PATRIK
ExcluirDê um alhada no nosso outro Post que trata da mesma comunicação, só que com o roteador, ficando assim com bastante ESP para se conectar.
https://www.fvml.com.br/2019/08/comunicacao-entre-4-esp8266-com-central.html
Aproveita e se inscreve em nosso Blog.
Abraços
Olá, boa tarde.
ExcluirEu olhei sim mas não consegui usar o mesmo.
Como faço para alterar o nome da rede neste sem roteador, pois não estou conseguindo alterar, quando altero o mesmo apresenta erro, pode me ajudar alterar o programa abaixo?
Nome da rede para SAIVW
e senha pode ser a mesma.
char* ESPssid; // NOME DA REDE WIFI
char* ESPpassword; // SENHA DA REDE WIFI
String Message; // MENSAGEM A RECEBER DOS CLIENTES "VAGAS"
#define MAXSC 15 // NÚMERO MÁXIMO DE CLIENTES "VAGAS"
WiFiServer ESPServer(9001); // SERVIDOR E O NÚMERO DO PORTA
WiFiClient ESPClient[MAXSC]; // OS CLIENTES "VAGAS" E SERVIDOR
//------------------------------------------------------------------------------------
// DEFINIÇÃO DOS PINOS DO ESP8266 NODE MCU
void setup(){
lcd.begin (20,4); // CONFIGURAÇÃO DO DISPLAY
pinMode(CHAVE, INPUT);
pinMode(LED0, OUTPUT); // WIFI - LUZ DO LED DA PLACA
//------------------------------------------------------------------------------------
// HABILITANDO MONITOR SERIAL
Serial.begin(115200); // CCOMUNICAÇÃO COM COMPUTADOR
//------------------------------------------------------------------------------------
// HABILITANDO ACESSO WIFI
SetWifi("FVMLearning", ""); // CONFIGURA O PONTO DE ACESSO WIFI / WIFI HABILITADO
}
//------------------------------------------------------------------------------------
// ÍNICIO CICLO LOOP SERVIDOR
void loop()
{
AtualizaLCD(); // ATUALIZA INFORMAÇÕES DO LCD
AvailableClients(); // VERIFICA CLIENTES "VAGAS" DISPONÍVEIS
AvailableMessage(); // VERIFICA MENSAGENS DOS CLIENTES "VAGAS" DISPONÍVEIS
}
//------------------------------------------------------------------------------------
// CONFIGURANDO ACESSO WIFI
void SetWifi(char* Name, char* Password)
{
WiFi.disconnect(); // PARA QUALQUER WIFI CONFIGURADO ANTERIORMENTE
WiFi.mode(WIFI_AP_STA); // CONFIGURA MODO WIFI
//------------------------------------------------------------------------------------
// DEFININDO O NOME E SENHA DO PONTO DE ACESSO
ESPssid = Name;
ESPpassword = Password;
//------------------------------------------------------------------------------------
// INICIANDO PONTO DE ACESSO
WiFi.softAP(ESPssid, ESPpassword);
delay(500); // AGUARDA 0,5 SEGUNDOS
IPAddress IP = WiFi.softAPIP(); // OBTENDO O IP DO SERVIDOR
//------------------------------------------------------------------------------------
// INICIANDO SERVIDOR
ESPServer.begin();
ESPServer.setNoDelay(true);
}
Nenhum link está funcionando !!!
ResponderExcluirOlá
ExcluirNão entendo o que se passa, testei os links novamente "nesse momento" e estão funcionando, um é do Dropbox e o outro é do MEGA, são links diretos.
Veja eles aqui:
Dropbox: https://www.dropbox.com/home/FVM's%20Channel/Comunica%C3%A7%C3%A3o%20entre%204%20ESPs8266%20sem%20roteador
Mega:
https://mega.nz/#F!n6ZmHCZQ!Xa-IJpHJWA97CYu_i2ylwA
Veja se seu firewall não está bloqueando, se for a internet de empresa, geralmente você tem que pedir acesso a gerenciador da rede.
Abraços e boa sorte.
HOW To programming the server for coummunication two clients ضt the same time, each client does a different job.
ResponderExcluirHi @EE
ExcluirFor this application, you will have to use another type of topology, such as using ESP-NOW communication, will be a good application option for your project.
We are preparing an ESP-NOW article, and this can be very helpful to you, so subscribe to our site and our youtube channel, as we will post on one of the first two.
See you later.
We hope that this article"ESP-NOW" is simplified and comprehensive and be at least examples between 3 ESPs .
ResponderExcluirI suggest you use some sensors.
all the best.
I subscribed to the youtube channel
Hi @KEE
ExcluirCertainly we will bring a simplified form, because our intention is to direct hobbyists, to make their own projects, we give a direction to all of you, and you change to your own projects.
My best regards
Olá tudo bem?
ResponderExcluirA respeito desse projeto, há a possibilidade de repassar as informações desse servidor/AP (liga e desliga de sua respectiva rede de ESPs) para outro ESP isolado? Se sim voce poderia me ajudar no como fazer essa transmissão "ESP central >> ESP separado"?
Olá
ExcluirCertamente pode sim, porém é necessário direcionar porta, ou fazer através de servidor externo, estamos trabalhando, para montar outro projeto com uma central ESP recebendo comandando de ESPs outros ESPs externamente.
Se inscreve no nosso blog e no nosso canal do youtube, pois estaremos postando "não agora" brevemente esse tipo de comunicação.
Forte abraço.
certo, obrigado!
ExcluirE quanto a deixar o ip fixo tanto para o servidor/AP como os clients/STA, é só fazer um Wifi.config(ip,gateway,subnet) em todos os codigos? a parte de Wifi.softAP não seria um problema, certo?
Olá @RODRIGO1120
ExcluirCertamente sim, se colocado devidamente.
Mas... o IP do server é fixo, 192,168,4,1, é o IP Padrão do ESP, por isso não precisamos utilizar o argumento wifi.config(ip,gatway,subnet),
A função: IPAddress IP = WiFi.softAPIP(); captura/habilita o ip do server com o ip padrão e fixo.
Todos os clients utilizam comunicação direta; IPAddress ESPServer(192,168,4,1); para se conectar com o servidor.
Obrigado por estar conosco.
Aproveita e se inscreve também em nosso canal do Youtube.
Forte abraço.
Bom dia @FVML tudo bem?
ExcluirCerto, eu nao irei mexer no ip/gateway/subnet da AP. No caso dos clients, eles estao conectando por DHCP, certo? é isso a comunicação direta?
Me inscrevi no canal do YouTube, obrigado!!
Olá @RODRIGO1120
ExcluirO DHCP é um protocolo de comunicação do Host dinâmico, ele só escolhe um IP baseado no IP do AP mudando o 4° octeto, para adequação das conexões, ele continua sendo uma comunicação direta, agora se você está querendo uma comunicação direta sem o ROTEADOR, nós temos aqui no nosso blog, comunicação entre ESPs sem roteador, aí ele vai utilzar o IP/gatway/subnet do AP.
Qualquer dúvida, que estiver em nossa competência, nós responderemos.
Forte abraço.
Meu nobre, parabéns. Já me inscrevi lá no seu canal. Muito legal. Meu amigo, eu consigo enviar comandos pela serial de um NODE MCU ESP 8266 para outro NODE MCU ESP 8266? A idéia é ligar uma carga à distância, porém por comando serial. Tem como fazer? Grande abraço meu amigo.
ResponderExcluirOlá Amigo
ExcluirNão deu para entender exatamente o que você quer, mas vamos fazer um exemplo:
Se você tem um ESP com o PC e o Serial Monitor aberto e quer enviar uma String com ex. Ligar Motor
Você pode utilizar esse exemplo para ler a serial monitor
String DataInput;
char Characters;
void setup() {
Serial.begin(115200);
}
void loop() {
if (Serial.avaliable()) {
Characters = Serial.read();
if (Characters == '*') {
Serial.println(DataInput);
DataInput = "";
}
else DataInput.concat(Characters);
}
}
E node é o acionamento da chave, você pode colocar e fazer um "if" colocando o "char Characters" em comparação se a palavra é "Ligar Motor", Lembrando que para finalizar a frase você deve colocar o " *".
É bem simples, não estou com tempo hábil para te fazer o código completo, mas... creio que com essa explicação da para realizar.
Qualquer outra dúvida, se você não consegui, no final de semana tentarei fazer um para você.
Forte abraço.
Boa noite, cara tem com dar umas dicas, tipo estou fazendo um projeto para a faculdade só que no local onde vai ficar o projeto não tem acesso a internet, então vou deixar um esp8266 em uma estufa fazendo todas as leituras necessárias e guardando as informações em um SD (esse sempre fica ligado e imovel na estufa), tenho outro esp8266 que é conectado ao meu computador pela usb e fiz um software de controle em C#, em resumo... coloco as parametros no computador ele envia via usb para o esp(host) conectado ao meu computador, depois o esp envia os parametros via wifi para o esp da estufa (server), até aqui ta tudo certo, funcionando perfeitamente, o meu problema é a volta, se eu mandar um comando para estufa que peça os dados do cartão SD, queria que esses dados sejam mandados de volta ate que cheguem a tela do computador.
ResponderExcluir-----> Meu problema é apenas um como eu posso enviar uma sequencia de string do esp (servidor) para o esp(host) <------- se ficar dificil de entender o que pedi, me avisa que explico de outro jeito, ou caso queria ver os arquivos que estão nos esp para ter uma ideia de como fazer para retornar, posso lhe mandar por e-mail Obrigado pela atenção
Boa noite, alguém conseguiu fazer esse projeto com o Esp32? To tendo alguns problemas, o servidor inicializa, mas os clientes não conectam.
ResponderExcluirBom dia Jemerson, tudo bem? Acompanho seus videos e tem me ajudado muito nos projetos. Gostaria de sugerir um projeto em que tenho dúvida e que acho que outra pessoas também. Queria usar um ESP32 como server para acionar 16 reles sem uso de roteador... e diversos ESP8266 como client ... Cada ESP8266 teriam 3 ou mais interruptores (NAO push button). Cada interruptor acionaria um relé e cada esp8266 poderia ser configurado como clone do outro também. Assim poderiam ter vários interruptores que acionam o mesmo rele. Grande abraço e parabéns pelo canal!
ResponderExcluirola eu tou com esp01 não tou conseguindo roda o programa no esp dar erro no D1 ou D0 algo assim se poder ajudar ficarei grato.
ResponderExcluir