Olá amigos,

Sou Iniciante no Arduino, estou montando um sistema para controle de Reles + Um sensor de Umidade e Temperatura e quero controlar tudo pela Internet, sou Analista de TI, quanto a parte de rede etá tudo ok, portas direcionadas e tudo mais, quando carrego o código no meu Arduino consigo acessar a página normalmente, mas quando eu acrescentei o código do Sensor DHT se eu atualizar a página umas cinco vezes não consigo mais acessar ela, não é problema de rede porque continua pingando normalmente o IP.

Segue o código do Arduino (Obs.: Na página HTML os reles estão como comentário porque estou com um Arduino Uno e excede o tamanho da memória, estou aguardando chegar o Mega):

#include <SPI.h>
#include <Ethernet.h>
#include <dht.h>
#define dht_dpin A0 //Pino DATA do Sensor ligado na porta Analogica A1

dht DHT; //Inicializa o sensor

String readString;

int pino_rele1 = 1;
int pino_rele2 = 2;
int pino_rele3 = 3;
int pino_rele4 = 4;
int pino_rele5 = 5;
int pino_rele6 = 6;
int pino_rele7 = 7;
int pino_rele8 = 8;
boolean ligado = true;
boolean ligado_2 = true;
boolean ligado_3 = true;
boolean ligado_4 = true;
boolean ligado_5 = true;
boolean ligado_6 = true;
boolean ligado_7 = true;
boolean ligado_8 = true;

//Informacoes de endereco IP, gateway, mascara de rede
byte mac[] = { 0xA4, 0x28, 0x72, 0xCA, 0x55, 0x2F };
byte ip[] = { 192, 168, 7, 80 };
byte gateway[] = { 192, 168, 7, 1 };
byte subnet[] = { 255, 255, 255, 0 };

EthernetServer server(80);

void setup()
{
Serial.begin(9600);
delay(1000);//Aguarda 1 seg antes de acessar as informações do sensor

pinMode(pino_rele1, OUTPUT);
pinMode(pino_rele2, OUTPUT);
pinMode(pino_rele3, OUTPUT);
pinMode(pino_rele4, OUTPUT);
pinMode(pino_rele5, OUTPUT);
pinMode(pino_rele6, OUTPUT);
pinMode(pino_rele7, OUTPUT);
pinMode(pino_rele8, OUTPUT);

//Inicializa Ethernet Shield
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();

Serial.println("MTecnologia - Automacao Residencial");

//Desliga os dois reles
digitalWrite(pino_rele1, HIGH);
digitalWrite(pino_rele2, HIGH);
digitalWrite(pino_rele3, HIGH);
digitalWrite(pino_rele4, HIGH);
digitalWrite(pino_rele5, HIGH);
digitalWrite(pino_rele6, HIGH);
digitalWrite(pino_rele7, HIGH);
digitalWrite(pino_rele8, HIGH);

}

void loop()
{


EthernetClient client = server.available();

if (client) {
while (client.connected())
{
if (client.available())
{
char c = client.read();
if (readString.length() < 100) {
readString += c;
}
if (c == '\n')
{



//Controle do rele1
Serial.println(readString);
//Liga o Rele 1
if (readString.indexOf("?ligar") > 0)
{
digitalWrite(pino_rele1, LOW);
Serial.println("Rele 1 Ligado");
ligado = false;
}
else
{
//Desliga o Rele 1
if (readString.indexOf("?desligar") > 0)
{
digitalWrite(pino_rele1, HIGH);
Serial.println("Rele 1 Desligado");
ligado = true;
}
}

//Controle do rele2
Serial.println(readString);
//Liga o Rele 2
if (readString.indexOf("?2_ligar") > 0)
{
digitalWrite(pino_rele2, LOW);
Serial.println("Rele 2 Ligado");
ligado_2 = false;
}
else
{
//Desliga o Rele 2
if (readString.indexOf("?2_desligar") > 0)
{
digitalWrite(pino_rele2, HIGH);
Serial.println("Rele 2 Desligado");
ligado_2 = true;
}
}

//Controle do rele3
Serial.println(readString);
//Liga o Rele 3
if (readString.indexOf("?3_ligar") > 0)
{
digitalWrite(pino_rele3, LOW);
Serial.println("Rele 3 Ligado");
ligado_3 = false;
}
else
{
//Desliga o Rele 3
if (readString.indexOf("?3_desligar") > 0)
{
digitalWrite(pino_rele3, HIGH);
Serial.println("Rele 3 Desligado");
ligado_3 = true;
}
}


//Controle do rele4
Serial.println(readString);
//Liga o Rele 4
if (readString.indexOf("?4_ligar") > 0)
{
digitalWrite(pino_rele4, LOW);
Serial.println("Rele 4 Ligado");
ligado_4 = false;
}
else
{
//Desliga o Rele 4
if (readString.indexOf("?4_desligar") > 0)
{
digitalWrite(pino_rele4, HIGH);
Serial.println("Rele 4 Desligado");
ligado_4 = true;
}
}

//Controle do rele5
Serial.println(readString);
//Liga o Rele 5
if (readString.indexOf("?5_ligar") > 0)
{
digitalWrite(pino_rele5, LOW);
Serial.println("Rele 5 Ligado");
ligado_5 = false;
}
else
{
//Desliga o Rele 5
if (readString.indexOf("?5_desligar") > 0)
{
digitalWrite(pino_rele5, HIGH);
Serial.println("Rele 5 Desligado");
ligado_5 = true;
}
}

//Controle do rele6
Serial.println(readString);
//Liga o Rele 6
if (readString.indexOf("?6_ligar") > 0)
{
digitalWrite(pino_rele6, LOW);
Serial.println("Rele 6 Ligado");
ligado_6 = false;
}
else
{
//Desliga o Rele 6
if (readString.indexOf("?6_desligar") > 0)
{
digitalWrite(pino_rele6, HIGH);
Serial.println("Rele 6 Desligado");
ligado_6 = true;
}
}

//Controle do rele7
Serial.println(readString);
//Liga o Rele 7
if (readString.indexOf("?7_ligar") > 0)
{
digitalWrite(pino_rele7, LOW);
Serial.println("Rele 7 Ligado");
ligado_7 = false;
}
else
{
//Desliga o Rele 7
if (readString.indexOf("?7_desligar") > 0)
{
digitalWrite(pino_rele7, HIGH);
Serial.println("Rele 7 Desligado");
ligado_7 = true;
}
}

//Controle do rele8
Serial.println(readString);
//Liga o Rele 8
if (readString.indexOf("?8_ligar") > 0)
{
digitalWrite(pino_rele8, LOW);
Serial.println("Rele 8 Ligado");
ligado_8 = false;
}
else
{
//Desliga o Rele 8
if (readString.indexOf("?8_desligar") > 0)
{
digitalWrite(pino_rele8, HIGH);
Serial.println("Rele 8 Desligado");
ligado_8 = true;
}
}

readString = "";

client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

client.println("<html>");
client.println("<head>");
client.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />");

client.println("<link rel='stylesheet' type='text/css' href='http://www.mtecnologia.net.br/automacao/css/automacao_residencial.css' />");
client.println("<script type='text/javascript' src='http://www.mtecnologia.net.br/automacao/js/automacao_residencial.js'></script>");
client.println("<title>MTecnologia - Automação Residencial</title>");
client.println("<link href='http://www.mtecnologia.net.br/automacao/css/bootstrap.min.css' rel='stylesheet'>");
client.println("</head>");
client.println("<body marginwidth='655px'>");
client.println("<div align='center'><img src='http://www.mtecnologia.net.br/automacao/logo-p.png' /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />");
client.println("<img src='http://www.mtecnologia.net.br/automacao/logo-casa3.png'/><br /><div style='font-family:'Trebuchet MS', Arial, Helvetica, sans-serif; font-size:24px'>Temperatura: ");

DHT.read11(dht_dpin); //Lê as informações do sensor
client.print((float)DHT.temperature,1);
client.println("°C<br />Umidade: ");
client.print((float)DHT.humidity,1);

client.println("%</div></div>");

//client.println("<div class='div-b'>");
//client.println("<button class='btn btn-primary' id='botao'></button></br>");
//client.println("<div id='rele'></div><div id='estado' style='visibility: hidden;'>");
//client.print(ligado);
//client.println("</div>");
//client.println("<input style='position: absolute; height:36px; width:270px; top: 197px; left: 600px; type='email' class='form-control' id='exampleInputEmail1' placeholder='Luz Frente'>");
//client.println("<button class='btn btn-primary' id='botao_2'></button></br>");
//client.println("<div id='rele_2'></div><div id='estado_2' style='visibility: hidden;'>");
//client.print(ligado_2);
//client.println("</div>");
//client.println("<input style='position: absolute; height:36px; width:270px; top: 240px; left: 600px; type='email' class='form-control' id='exampleInputEmail1' placeholder='Luz Garagem'>");
//client.println("<button class='btn btn-primary' id='botao_3'></button></br>");
//client.println("<div id='rele_3'></div><div id='estado_3' style='visibility: hidden;'>");
//client.print(ligado_3);
//client.println("</div>");
//client.println("<input style='position: absolute; height:36px; width:270px; top: 283px; left: 600px; type='email' class='form-control' id='exampleInputEmail1' placeholder='Luz Sala'>");
//client.println("<button class='btn btn-primary' id='botao_4'></button></br>");
//client.println("<div id='rele_4'></div><div id='estado_4' style='visibility: hidden;'>");
//client.print(ligado_4);
//client.println("</div>");
//client.println("<input style='position: absolute; height:36px; width:270px; top: 326px; left: 600px; type='email' class='form-control' id='exampleInputEmail1' placeholder='Luz Cozinha'>");
//client.println("<button class='btn btn-primary' id='botao_5'></button></br>");
//client.println("<div id='rele_5'></div><div id='estado_5' style='visibility: hidden;'>");
//client.print(ligado_5);
//client.println("</div>");
//client.println("<input style='position: absolute; height:36px; width:270px; top: 369px; left: 600px; type='email' class='form-control' id='exampleInputEmail1' placeholder='Luz Fundos'>");
//client.println("<button class='btn btn-primary' id='botao_6'></button></br>");
//client.println("<div id='rele_6'></div><div id='estado_6' style='visibility: hidden;'>");
//client.print(ligado_6);
//client.println("</div>");
//client.println("<input style='position: absolute; height:36px; width:270px; top: 412px; left: 600px; type='email' class='form-control' id='exampleInputEmail1' placeholder='Luz Quarto-Suíte'>");
//client.println("<button class='btn btn-primary' id='botao_7'></button></br>");
//client.println("<div id='rele_7'></div><div id='estado_7' style='visibility: hidden;'>");
//client.print(ligado_7);
//client.println("</div>");
//client.println("<input style='position: absolute; height:36px; width:270px; top: 455px; left: 600px; type='email' class='form-control' id='exampleInputEmail1' placeholder='Luz Quarto-Criancas'>");
//client.println("<button class='btn btn-primary' id='botao_8'></button></br>");
//client.println("<div id='rele_8'></div><div id='estado_8' style='visibility: hidden;'>");
//client.print(ligado_8);
//client.println("</div>");
//client.println("</div>");
//client.println("<script>AlteraRele1()</script>");
//client.println("<script>AlteraRele2()</script>");
//client.println("<script>AlteraRele3()</script>");
//client.println("<script>AlteraRele4()</script>");
//client.println("<script>AlteraRele5()</script>");
//client.println("<script>AlteraRele6()</script>");
//client.println("<script>AlteraRele7()</script>");
//client.println("<script>AlteraRele8()</script>");
//client.println("<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js'></script>");
//client.println("<script src='http://www.mtecnologia.net.br/automacao/js/bootstrap.min.js'></script>");
client.println("</body>");
client.println("</head>");

delay(1);
client.stop();
}
}
}
}
}

Exibições: 319

Responder esta

Respostas a este tópico

Boa noite amigo,
Você está usando a porta digital 4, e acho que o shield ethernet usa a porta 4 para o SD.
Eu tive esse mesmo problema e só resolvi depois de parar de usar a porta 4.
Abraços.

Muito obrigado amigo,

Mudei as portas do reles a partir da 11 e tá funcionando normalmente agora, muito obrigado mesmo. Outra coisa tu sabes se teria como eu acessar essa página HTML pelo cartão SD? Já que o código HTML direto no código do arduino usa muita memória das variáveis globais?

Boa tarde Marcio,

Que bom que deu certo pra você também.

Quanto ao usar HTML pelo cartão SD, já testei e funcionou, porém preferi trabalhar com os códigos direto no arduino, se tornou mais fácil pra mim.

Para economizar memória, tenho lido e recebido ajuda do pessoal aqui do fórum em como melhorar e otimizar o código.
Vou ficar devendo essa.

Abraços e obrigado.

Caro amigo,

Estava vendo a questão do HTML pelo cartão SD e creio que o melhor é usar os códigos direto do arduino mesmo, como tenho uma hospedagem no Hostgator fica mais fácil hospedar as chamadas da página lá.

Muito Obrigado

Olá,

Quando usar o Arduíno Mega vai resolver toda sua dor de cabeça, o UNO tem muito pouca memoria para este tipo de aplicação, veja este link do video do colega Fabiano sobre SD card Ethernet shield AQUI

Já pensou em usar um ESP8266 e um site de alojamento para aplicações IoT?

Veja alguns exemplos no meu canal. Meu canal aqui

Boa sorte,

Abs.

Caro Carlos,

Muito interessante o ESP8266, vou dar uma estudada nele, muito bom seu canal também, vou aprender muito com seus vídeos.

Pretendo mais a frente fazer um gerenciamento completo da minha casa, como consumo de água, energia e etc, vou precisar muito da ajuda de vocês, rsrs

Muito Obrigado

Caro Marcio,

De nada e disponha, tanto eu como o pessoal todo aqui é sempre disposto a ajudar.

Quem sabe um dia não faz seu próprio produto também veja Enerbits

Abs.

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço