Ir ao conteúdo

Posts recomendados

Postado

Amigos, eu fiz um código aqui de testes! Poderiam testar se está funcionando? :D

 

/*
 Acionamento de Relês v0.1
 Originalmente por FilipeFlop - http://blog.filipeflop.com/wireless/esp8266-nodemcu-como-programar.html 
 Modificado por Luciano Braum - http://eletronicaeutilidades.blogspot.com.br/2016/10/uma-grande-novidade-na-tecnologia-o.html 
 Alterado por Guilherme Lirio Tomasi de Oliveira

//////////////////////////

Comparação das saidas Digitais entre nodeMCU - Arduino
   
NodeMCU – Arduino

  D0 = 16;
  D1 = 5;
  D2 = 4;
  D3 = 0;
  D4 = 2;
  D5 = 14;
  D6 = 12;
  D7 = 13;
  D8 = 15;
  D9 = 3;
  D10 = 1;
  
*/
 

#include <ESP8266WiFi.h>;

const char* ssid = "Sua rede"; //Sua rede Wireless
const char* password = "Sua senha"; //Senha da rede Wireless

//Estado dos relês - Todos Desligados!
boolean ligado1 = false;
boolean ligado2 = false;
boolean ligado3 = false;
boolean ligado4 = false;

WiFiServer server(80); //Inicia o servidor na porta 80

void setup() {
  Serial.begin(115200);
  delay(10);
  
  // Relê 1 - D3
  pinMode(0,OUTPUT);
  digitalWrite(0,0);
  
  // Relê 2 - D2
  pinMode(4, OUTPUT);
  digitalWrite(4, 0);
  
  // Relê 3 - D1
  pinMode(5, OUTPUT);
  digitalWrite(5, 0);
  
  // Relê 4 - D6
  pinMode(12, OUTPUT);
  digitalWrite(12, 0);
  
  // Conecta a rede Wireless
  Serial.println();
  Serial.println();
  Serial.print("Conectando à ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  //Setando os IP's Manualmente
  IPAddress subnet (255, 255, 255, 0);
  WiFi.config(IPAddress(192,168,1,99), IPAddress(192,168,1,1), subnet);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.print("Conectado à rede: ");
  Serial.println(ssid);
  // Start the server
  server.begin();
  Serial.println("Servidor iniciado!");
  Serial.println(WiFi.localIP());
}

void loop() {
  
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();

 String buf = "";
  
  buf += "HTTP/1.1 200 OK";
  buf += "Content-Type: text/html";
  buf += "<html>";
  buf += "<head>";
  buf += "<title>nodeMCU e Acionaento de Relês v0.1</title>";
  buf += "<meta http-equiv='Content-Type' content='charset=utf-8'>";
  buf += "<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'>";
  buf += "<link rel='stylesheet' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css'>";
  buf += "<link rel='icon' href='http://www.blocodochapolin.com.br/arduino_rele/img/icone.png' type='image/x-icon' />";
  buf += "<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script>";
  buf += "<script type='text/javascript' src='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js'></script>";
  buf += "</head>";
  buf += "<body>";
  buf += "</head>";
  buf += "<h2>nodeMCU e Acionaento de Relês</h2>";
  buf += "<hr>";
  buf += "<div class='container' align='center'>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele1_on\">Ligar a Sala</a> <a class=\"btn btn-danger\" href=\"?function=rele1_on\">Desligar a Sala</a>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele2_on\">Ligar o Quarto</a> <a class=\"btn btn-danger\" href=\"?function=rele2_on\">Desligar o Quarto</a>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele3_on\">Ligar a Cozinha</a> <a class=\"btn btn-danger\" href=\"?function=rele3_on\">Desligar a Cozinha</a>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele4_on\">Ligar o Corredor</a> <a class=\"btn btn-danger\" href=\"?function=rele4_on\">Desligar o Corredor</a>";
  buf += "<div id='estado1' style='display:none'>";
  buf += (ligado1);
  buf += "</div>";
  buf += "<div id='estado2' style='display:none'>";
  buf += (ligado2);
  buf += "</div>";
  buf += "<div id='estado3' style='display:none'>";
  buf += (ligado3);
  buf += "</div>";
  buf += "<div id='estado4' style='display:none'>";
  buf += (ligado4);
  buf += "</div>";
  buf += "</div>";
  buf += "</body>";  
  buf += "</html>/r";
  
  client.print(buf);
  //client.println(valor);
  client.flush();
  
  if (req.indexOf("rele1_on") != -1){
    digitalWrite(0, 1);
    ligado1 = true;
    
  } else if (req.indexOf("rele1_off") != -1){
    digitalWrite(0, 0);
    ligado1 = false;
    
  } else if (req.indexOf("rele2_on") != -1){
    digitalWrite(4, 1);
    ligado2 = true;
    
  } else if (req.indexOf("rele2_off") != -1){
    digitalWrite(4, 0);
    ligado2 = false;
    
  } else if (req.indexOf("rele3_on") != -1){
    digitalWrite(5, 1);
    ligado3 = true;
    
  } else if (req.indexOf("rele3_off") != -1){
    digitalWrite(5, 0);
    ligado3 = false;
    
  } else if (req.indexOf("rele4_on") != -1){
    digitalWrite(12, 1);
    ligado4 = true;
    
  } else if (req.indexOf("rele4_off") != -1){
   digitalWrite(12, 0);
   ligado4 = false;
   
  } else {
  Serial.println("Comando Inválido");
    client.stop();
  }
  Serial.println("Cliente Desconectado");
}

A verificação do estado do relês farei via JQuery, onde futuramente só terá um botão para cada relê, de acordo com o seu estado!

 

Se quiserem melhorar o código, me dar dicas, informações do que posso melhorar também, ficarei agradecido!

 

Obrigado :D

  • Curtir 2
Postado
1 hora atrás, Papibakigrafo disse:

Amigos, eu fiz um código aqui de testes! Poderiam testar se está funcionando? :D

 


/*
 Acionamento de Relês v0.1
 Originalmente por FilipeFlop - http://blog.filipeflop.com/wireless/esp8266-nodemcu-como-programar.html 
 Modificado por Luciano Braum - http://eletronicaeutilidades.blogspot.com.br/2016/10/uma-grande-novidade-na-tecnologia-o.html 
 Alterado por Guilherme Lirio Tomasi de Oliveira

//////////////////////////

Comparação das saidas Digitais entre nodeMCU - Arduino
   
NodeMCU – Arduino

  D0 = 16;
  D1 = 5;
  D2 = 4;
  D3 = 0;
  D4 = 2;
  D5 = 14;
  D6 = 12;
  D7 = 13;
  D8 = 15;
  D9 = 3;
  D10 = 1;
  
*/
 

#include <ESP8266WiFi.h>;

const char* ssid = "Sua rede"; //Sua rede Wireless
const char* password = "Sua senha"; //Senha da rede Wireless

//Estado dos relês - Todos Desligados!
boolean ligado1 = false;
boolean ligado2 = false;
boolean ligado3 = false;
boolean ligado4 = false;

WiFiServer server(80); //Inicia o servidor na porta 80

void setup() {
  Serial.begin(115200);
  delay(10);
  
  // Relê 1 - D3
  pinMode(0,OUTPUT);
  digitalWrite(0,0);
  
  // Relê 2 - D2
  pinMode(4, OUTPUT);
  digitalWrite(4, 0);
  
  // Relê 3 - D1
  pinMode(5, OUTPUT);
  digitalWrite(5, 0);
  
  // Relê 4 - D6
  pinMode(12, OUTPUT);
  digitalWrite(12, 0);
  
  // Conecta a rede Wireless
  Serial.println();
  Serial.println();
  Serial.print("Conectando à ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  //Setando os IP's Manualmente
  IPAddress subnet (255, 255, 255, 0);
  WiFi.config(IPAddress(192,168,1,99), IPAddress(192,168,1,1), subnet);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.print("Conectado à rede: ");
  Serial.println(ssid);
  // Start the server
  server.begin();
  Serial.println("Servidor iniciado!");
  Serial.println(WiFi.localIP());
}

void loop() {
  
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();

 String buf = "";
  
  buf += "HTTP/1.1 200 OK";
  buf += "Content-Type: text/html";
  buf += "<html>";
  buf += "<head>";
  buf += "<title>nodeMCU e Acionaento de Relês v0.1</title>";
  buf += "<meta http-equiv='Content-Type' content='charset=utf-8'>";
  buf += "<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'>";
  buf += "<link rel='stylesheet' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css'>";
  buf += "<link rel='icon' href='http://www.blocodochapolin.com.br/arduino_rele/img/icone.png' type='image/x-icon' />";
  buf += "<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script>";
  buf += "<script type='text/javascript' src='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js'></script>";
  buf += "</head>";
  buf += "<body>";
  buf += "</head>";
  buf += "<h2>nodeMCU e Acionaento de Relês</h2>";
  buf += "<hr>";
  buf += "<div class='container' align='center'>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele1_on\">Ligar a Sala</a> <a class=\"btn btn-danger\" href=\"?function=rele1_on\">Desligar a Sala</a>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele2_on\">Ligar o Quarto</a> <a class=\"btn btn-danger\" href=\"?function=rele2_on\">Desligar o Quarto</a>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele3_on\">Ligar a Cozinha</a> <a class=\"btn btn-danger\" href=\"?function=rele3_on\">Desligar a Cozinha</a>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele4_on\">Ligar o Corredor</a> <a class=\"btn btn-danger\" href=\"?function=rele4_on\">Desligar o Corredor</a>";
  buf += "<div id='estado1' style='display:none'>";
  buf += (ligado1);
  buf += "</div>";
  buf += "<div id='estado2' style='display:none'>";
  buf += (ligado2);
  buf += "</div>";
  buf += "<div id='estado3' style='display:none'>";
  buf += (ligado3);
  buf += "</div>";
  buf += "<div id='estado4' style='display:none'>";
  buf += (ligado4);
  buf += "</div>";
  buf += "</div>";
  buf += "</body>";  
  buf += "</html>/r";
  
  client.print(buf);
  //client.println(valor);
  client.flush();
  
  if (req.indexOf("rele1_on") != -1){
    digitalWrite(0, 1);
    ligado1 = true;
    
  } else if (req.indexOf("rele1_off") != -1){
    digitalWrite(0, 0);
    ligado1 = false;
    
  } else if (req.indexOf("rele2_on") != -1){
    digitalWrite(4, 1);
    ligado2 = true;
    
  } else if (req.indexOf("rele2_off") != -1){
    digitalWrite(4, 0);
    ligado2 = false;
    
  } else if (req.indexOf("rele3_on") != -1){
    digitalWrite(5, 1);
    ligado3 = true;
    
  } else if (req.indexOf("rele3_off") != -1){
    digitalWrite(5, 0);
    ligado3 = false;
    
  } else if (req.indexOf("rele4_on") != -1){
    digitalWrite(12, 1);
    ligado4 = true;
    
  } else if (req.indexOf("rele4_off") != -1){
   digitalWrite(12, 0);
   ligado4 = false;
   
  } else {
  Serial.println("Comando Inválido");
    client.stop();
  }
  Serial.println("Cliente Desconectado");
}

A verificação do estado do relês farei via JQuery, onde futuramente só terá um botão para cada relê, de acordo com o seu estado!

 

Se quiserem melhorar o código, me dar dicas, informações do que posso melhorar também, ficarei agradecido!

 

Obrigado :D

Em primeiro lugar, parabens, o codigo ficou virtualmente excelente^^ , não testei*mesmo por que estou no serviço*mas não vejo nada errado que impeça o bom funcionamento do programa.

 

Só vim pra le dar uma dica mesmo, não sei se é sua intenção tabém, mas dá pra voce incluir os sensores "na brincadeira".

O esp possui só uma entrada analógica, então a menos que manje de protocolo I2c, a use com sabedoria LoL.

Mas da pra voce colocar sensores que dispensam isso como o dht11 por exemplo, me permita alterar o seu código para incluir o dht11, como forma de exemplo.

 

 

/*
 Acionamento de Relês v0.1
 Originalmente por FilipeFlop - http://blog.filipeflop.com/wireless/esp8266-nodemcu-como-programar.html 
 Modificado por Luciano Braum - http://eletronicaeutilidades.blogspot.com.br/2016/10/uma-grande-novidade-na-tecnologia-o.html 
 Alterado por Guilherme Lirio Tomasi de Oliveira

//////////////////////////

Comparação das saidas Digitais entre nodeMCU - Arduino
   
NodeMCU – Arduino

  D0 = 16;
  D1 = 5;
  D2 = 4;
  D3 = 0;
  D4 = 2;
  D5 = 14;
  D6 = 12;
  D7 = 13;
  D8 = 15;
  D9 = 3;
  D10 = 1;
  
*/
 

#include <ESP8266WiFi.h>;
  #include "DHT.h"
 
#define DHTPIN 2 // pino que estamos conectado
#define DHTTYPE DHT11 // DHT 11
  
 




const char* ssid = "Sua rede"; //Sua rede Wireless
const char* password = "Sua senha"; //Senha da rede Wireless

//Estado dos relês - Todos Desligados!
boolean ligado1 = false;
boolean ligado2 = false;
boolean ligado3 = false;
boolean ligado4 = false;

WiFiServer server(80); //Inicia o servidor na porta 80
 DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(115200);
  delay(10);
  
  // Relê 1 - D3
  pinMode(0,OUTPUT);
  digitalWrite(0,0);
  
  // Relê 2 - D2
  pinMode(4, OUTPUT);
  digitalWrite(4, 0);
  
  // Relê 3 - D1
  pinMode(5, OUTPUT);
  digitalWrite(5, 0);
  
  // Relê 4 - D6
  pinMode(12, OUTPUT);
  digitalWrite(12, 0);
  
  // Conecta a rede Wireless
  Serial.println();
  Serial.println();
  Serial.print("Conectando à ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  //Setando os IP's Manualmente
  IPAddress subnet (255, 255, 255, 0);
  WiFi.config(IPAddress(192,168,1,99), IPAddress(192,168,1,1), subnet);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.print("Conectado à rede: ");
  Serial.println(ssid);
  // Start the server
  server.begin();
  Serial.println("Servidor iniciado!");
  Serial.println(WiFi.localIP());
}

void loop() {
  float h = dht.readHumidity();
float t = dht.readTemperature();

  
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();

 String buf = "";
  
  buf += "HTTP/1.1 200 OK";
  buf += "Content-Type: text/html";
  buf += "<html>";
  buf += "<head>";
  buf += "<title>nodeMCU e Acionaento de Relês v0.1</title>";
  buf += "<meta http-equiv='Content-Type' content='charset=utf-8'>";
  buf += "<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'>";
  buf += "<link rel='stylesheet' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css'>";
  buf += "<link rel='icon' href='http://www.blocodochapolin.com.br/arduino_rele/img/icone.png' type='image/x-icon' />";
  buf += "<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script>";
  buf += "<script type='text/javascript' src='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js'></script>";
  buf += "</head>";
  buf += "<body>";
  buf += "</head>";
  buf += "<h2>nodeMCU e Acionaento de Relês</h2>";
  buf += "<hr>";
  buf += "<div class='container' align='center'>";
  buf += "<h2> A leitura da temperatura  do sensor está em</h2>";
  buf += t;
  buf+= "<h2> E a umidade está em </h2>";
  buf += h;
  
  buf += "<a class=\"btn btn-success\" href=\"?function=rele1_on\">Ligar a Sala</a> <a class=\"btn btn-danger\" href=\"?function=rele1_on\">Desligar a Sala</a>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele2_on\">Ligar o Quarto</a> <a class=\"btn btn-danger\" href=\"?function=rele2_on\">Desligar o Quarto</a>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele3_on\">Ligar a Cozinha</a> <a class=\"btn btn-danger\" href=\"?function=rele3_on\">Desligar a Cozinha</a>";
  buf += "<a class=\"btn btn-success\" href=\"?function=rele4_on\">Ligar o Corredor</a> <a class=\"btn btn-danger\" href=\"?function=rele4_on\">Desligar o Corredor</a>";
  buf += "<div id='estado1' style='display:none'>";
  buf += (ligado1);
  buf += "</div>";
  buf += "<div id='estado2' style='display:none'>";
  buf += (ligado2);
  buf += "</div>";
  buf += "<div id='estado3' style='display:none'>";
  buf += (ligado3);
  buf += "</div>";
  buf += "<div id='estado4' style='display:none'>";
  buf += (ligado4);
  buf += "</div>";
  buf += "</div>";
  buf += "</body>";  
  buf += "</html>/r";
  
  client.print(buf);
  //client.println(valor);
  client.flush();
  
  if (req.indexOf("rele1_on") != -1){
    digitalWrite(0, 1);
    ligado1 = true;
    
  } else if (req.indexOf("rele1_off") != -1){
    digitalWrite(0, 0);
    ligado1 = false;
    
  } else if (req.indexOf("rele2_on") != -1){
    digitalWrite(4, 1);
    ligado2 = true;
    
  } else if (req.indexOf("rele2_off") != -1){
    digitalWrite(4, 0);
    ligado2 = false;
    
  } else if (req.indexOf("rele3_on") != -1){
    digitalWrite(5, 1);
    ligado3 = true;
    
  } else if (req.indexOf("rele3_off") != -1){
    digitalWrite(5, 0);
    ligado3 = false;
    
  } else if (req.indexOf("rele4_on") != -1){
    digitalWrite(12, 1);
    ligado4 = true;
    
  } else if (req.indexOf("rele4_off") != -1){
   digitalWrite(12, 0);
   ligado4 = false;
   
  } else {
  Serial.println("Comando Inválido");
    client.stop();
  }
  Serial.println("Cliente Desconectado");
delay(3000);
}

 

  • Curtir 1
Postado
17 horas atrás, alexandre.mbm disse:

@ViniciusKruz , o que estou dizendo eu testei no ambiente que tenho aqui. É diferente de uma sala de laboratório. Há paredes. Há barreira de materiais diversos. Há outros aparelhos de uso cotidiano. Há vizinhos. Há diversidade de dispositivos: Xperia X10i, Galaxy S4, multifuncional TX235W, notebook antigo e mais popular, notebook mais novo e caro, entre outros. Eu fiz testes com programas medidores. Está registrado em tópicos do Clube do Hardware. Não me lembro dos detalhes e estou sem tempo para resgatá-los, mas o interessado podem buscá-los em mensagens minhas, no fórum de redes sem fio.

 

Trocando em miúdos: o Xperia X10i, dentro de um quarto do meio da casa, é um que detonou com tudo, levando a latência (ou sei lá o que)* lá pra cima.

 

* Eu só sei que tudo fica mais lento por causa dele. Ainda assim não o jogarei no lixo.

Alexandre descobri como resolver aquele problema que a gente tava quebrando a cabeça.Descrobri o arquirival do app inventor, o aplicativo TASKER, com ele é possivel fazer aquilo ao qual estamos tentando sem lograr exito.

Postado
1 minuto atrás, Papibakigrafo disse:

@lucianolcoa, deu um erro na hora de compilar:

 


error: 'dht' was not declared in this scope

float h = dht.readHumidity();

             ^

exit status 1
'dht' was not declared in this scope

 

2 possiveis erros.

1° eu realmente havia postado o codigo incompleto, mas ja consertei ele já. tem uns 10 minutos.... mals a pressa é inimiga da perfeição ;)

2° voce instalou a biblioteca dht no arduino? 

  • Curtir 2
Postado

@aphawk  Então para ficar verificando você usa o comando flashfree? seria só flashfree() em qualquer parte do programa e ele irá exibir o que está sendo usado ou o restante vazio?

 

mas se a memória do esp é de 4Mb porque começa só com 14k sobrando?

Postado

@Papibakigrafo  Testei e compilou certinho, só não vou ter como lançar no ESP para ver rodando, mas de imediato já passou no primeiro teste:

 

O sketch usa 232.797 bytes (22%) de espaço de armazenamento para programas. O máximo são 1.044.464 bytes.
Variáveis globais usam 33.804 bytes (41%) de memória dinâmica, deixando 48.116 bytes para variáveis locais. O máximo são 81.920 bytes.

 

3 horas atrás, Papibakigrafo disse:

A verificação do estado do relês farei via JQuery, onde futuramente só terá um botão para cada relê, de acordo com o seu estado!

 

Se quiserem melhorar o código, me dar dicas, informações do que posso melhorar também, ficarei agradecido!

 

Sobre o JQuery, tem um teste meu postado ha poucos dias onde faço exatamente isto, onde foi usado javascript/Ajax/CSS dá uma verificadinha na semana passada.

 

Sobre melhorar, que tal começar checando uma senha? Senão qualquer um que entrar no ESP poderá mexer, de repente vai parecer que tem fantasma na sua casa, as lâmpadas apagando e acendendo sozinhas... só o padre Quevedo pra dar jeito rerere.

 

Esse código aí ficou bem simples e objetivo, eu já estou me acostumando a chamar as páginas separadas, como no exemplo que te sugeri outro dia, no setup dá pra configurar cada página que leva cada uma para uma função específica que fornece os dados:

 

server.on("/", handleRoot);
 server.on("/confwifi", confwifi);
 server.on("/confipst", confipst);
 server.on("/login", handleLogin);
  server.on("/conflogin", conflogin);
  server.on("/reboot", reboot);
  server.on("/act", act);
  server.on("/relogio", relogio);
  server.on("/comando", comando);

Naquele exemplo também já tem em cada função, a opção de checar se o cliente está logado ou não, ou então simplesmente pegar os argumentos e executar o comando específico.

 

  • Curtir 1
Postado
30 minutos atrás, ViniciusKruz disse:

Esse código aí ficou bem simples e objetivo, eu já estou me acostumando a chamar as páginas separadas, como no exemplo que te sugeri outro dia, no setup dá pra configurar cada página que leva cada uma para uma função específica que fornece os dados:

 


server.on("/", handleRoot);
 server.on("/confwifi", confwifi);
 server.on("/confipst", confipst);
 server.on("/login", handleLogin);
  server.on("/conflogin", conflogin);
  server.on("/reboot", reboot);
  server.on("/act", act);
  server.on("/relogio", relogio);
  server.on("/comando", comando);

Naquele exemplo também já tem em cada função, a opção de checar se o cliente está logado ou não, ou então simplesmente pegar os argumentos e executar o comando específico.

Eu li sobre isso hoje, vi uns exemplos e fiquei com algumas dúvidas. Fiquei de perguntar quando meus ESP chegassem, mas ja que tocou no assunto, eu poderia saber da seguinte forma:

 

server.on("/",handleRoot);
poderia ter a página de login aqui?
Caso o login fosse certo, redirecionava para a principal!

server.on("/principal", principal);
seria a página dos botões dos relês.

Poderia ser assim?

 

Vou ver o seu exemplo de novo! ^^

Postado
26 minutos atrás, Papibakigrafo disse:

Eu li sobre isso hoje, vi uns exemplos e fiquei com algumas dúvidas. Fiquei de perguntar quando meus ESP chegassem, mas ja que tocou no assunto, eu poderia saber da seguinte forma:

 


server.on("/",handleRoot);
poderia ter a página de login aqui?
Caso o login fosse certo, redirecionava para a principal!

server.on("/principal", principal);
seria a página dos botões dos relês.

Poderia ser assim?

 

Vou ver o seu exemplo de novo! ^^

funcionou dessa vez mano?

Postado

Eu sempre frisei por evitar javascript pois achava o bagio imensamente complicado. Mas agora to afim de encarar o "demonio" de frente.

 

vocês que estão mesclando o nodemcu com java, por onde eu começo para aprender?

  • Curtir 1
Postado

@lucianolcoa  eu uso muito o w3school (http://www.w3schools.com/jquery/)

Eu particularmente prefiro JQuery ao Javascript. Depois tem as requisições AJAX, que é uma variação também do JS. Você estudando o JQuery, vai aprender o AJAX praticamente!

 

@ViniciusKruz, baixei o seu código agora e vi que você implementou o CSS e o JS todo no ESP. Seria mais simples hospedar os arquivos .js e .css na web, e puxar pelo <link> e <script>, mas acredito que foi para testar a "potência" no ESP! Vou ler mais o seu código!

Mas ficou muito bom mesmo, do jeito que pretendo fazer, via POST!

Uma coisa: usando apenas a tag <script>, não funcionou ne? Por isso teve que colocar todos os dados da tag?

 

 

Uma dúvida: qual a diferença entre os 2?

#include <ESP8266WebServer.h>
#include <ESP8266WiFi.h>;

Vi que uns usam o WiFiServer server(80); e o outro, ESP8266WebServer server(80);.

Mas qual o motivo de se usar o segundo?

Postado
14 minutos atrás, Papibakigrafo disse:

@lucianolcoa  eu uso muito o w3school (http://www.w3schools.com/jquery/)

Eu particularmente prefiro JQuery ao Javascript. Depois tem as requisições AJAX, que é uma variação também do JS. Você estudando o JQuery, vai aprender o AJAX praticamente!

 

@ViniciusKruz, baixei o seu código agora e vi que você implementou o CSS e o JS todo no ESP. Seria mais simples hospedar os arquivos .js e .css na web, e puxar pelo <link> e <script>, mas acredito que foi para testar a "potência" no ESP! Vou ler mais o seu código!

Mas ficou muito bom mesmo, do jeito que pretendo fazer, via POST!

Uma coisa: usando apenas a tag <script>, não funcionou ne? Por isso teve que colocar todos os dados da tag?

 

 

Uma dúvida: qual a diferença entre os 2?


#include <ESP8266WebServer.h>
#include <ESP8266WiFi.h>;

Vi que uns usam o WiFiServer server(80); e o outro, ESP8266WebServer server(80);.

Mas qual o motivo de se usar o segundo?

Hum valeu pelas dicas, vamos ver se instalando o servidor no "cliente" o esp para de travar hehe.

Postado

@rodrigocirilo

 

Nossa ... cada pergunta que você me faz .....  que saudades quando suas perguntas eram sobre o Bascom kkkkkkk

 

Não precisei fazer isso ainda no ESP8266Basic .....

 

Melhor você testar , acho que isso de "" deve funcionar...

 

Paulo

 

Postado
5 minutos atrás, aphawk disse:

@rodrigocirilo

 

Nossa ... cada pergunta que você me faz .....  que saudades quando suas perguntas eram sobre o Bascom kkkkkkk

 

Não precisei fazer isso ainda no ESP8266Basic .....

 

Melhor você testar , acho que isso de "" deve funcionar...

 

Paulo

 

hehehehe... então, to testando mas está estranho.... pois por ser string não posso comparar a zero, certo? hehe

Postado
agora, rodrigocirilo disse:

hehehehe... então, to testando mas está estranho.... pois por ser string não posso comparar a zero, certo? hehe

voce teria que converter para inteiro antes, não faço nem ideia de como se converte string no espbasic. Sei que no arduino é

nomedastring.toInt();

  • Membro VIP
Postado
10 minutos atrás, rodrigocirilo disse:

@aphawk 

 

Como verificar se uma variavel do tipo string está vazia no esp8266basic...

 

Seria algo assim:  if variavél = ""  then ... onde "" demonstra que está vazio?

 

Pode ser da forma que citou ou vendo o tamanho da variável. No último caso pode-se tomar a decisão pelo tamanho dela.

tam_var= len({var name})

if tam_var=0 then print "variável vazia"

 

adicionado 1 minuto depois
1 minuto atrás, aphawk disse:

@rodrigocirilo ,

 

Que tal ver o comprimento da String ?  Se for 0, resolveu !

 

Paulo

Postamos juntos... hehe

  • Curtir 1
Postado

@rodrigocirilo ,

 

Sempre que eu precisei aprender algum novo Assembler, eu perdia horas e horas lendo a documentação, ANTES de me aventurar ....

 

Quando comprei meu primeiro Apple II , fui no dia seguinte na LITEC e comprei um livro importado sobre o Basic dele. Fiquei um dia inteiro lendo ele antes de tentar alguma coisa.

 

Que tal imprimir numa folha os comandos básicos, pelo menos para você ter ao seu lado, e quando bater uma dúvida dar uma olhada nessa folhas ? Porque nome do comando já vai te dar uma ideia do que ele faz !

 

Paulo

 

 

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!