Boa noite galera, estou montando um projeto com esses componentes citados a cima e encontrei alguns obstáculos. Quero q numa página inicial seja mostrado a temperatura e umidade e coloquei botões para ligar e desligar os reles, mas, funciona até 6 reles numa boa e quando eu coloco o 7º relé nada funciona, o projeto compila e grava sem erros, quem puder me ajudar eu agradeço.

Segue o codigo que estou usando.

#include <DHT.h>
#define DHTPIN A0 // pino que estamos conectado
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#include <SPI.h>
#include <Ethernet.h> // Biblioteca utilizada para comunicação com o Arduino

// A linha abaixo permite definir o endereço físico (MAC ADDRESS) da placa de rede.
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

byte ip[] = {
192, 168, 1, 177 }; // Define o endereço IP.

EthernetServer server(80); // Porta onde estará aberta para comunicação Internet e Arduino.

String readString;
/*const byte Rele1 = 9; // Pino digital onde será ligado o rele 1.
const byte Rele2 = 8; // Pino digital onde será ligado o rele 2.
const byte Rele3 = 7; // Pino digital onde será ligado o rele 3.
const byte Rele4 = 6; // Pino digital onde será ligado o rele 4.
const byte Rele5 = 5; // Pino digital onde será ligado o rele 5.
const byte Rele6 = 4; // Pino digital onde será ligado o rele 6.
const byte Rele7 = 3; // Pino digital onde será ligado o rele 7.
const byte Rele8 = 2; // Pino digital onde será ligado o rele 8.*/

void setup(){

dht.begin();

pinMode(9, OUTPUT); // Define o Pino 9 como saída.
digitalWrite (9, HIGH);
pinMode(8, OUTPUT); // Define o Pino 8 como saída.
digitalWrite (8, HIGH);
pinMode(7, OUTPUT); // Define o Pino 7 como saída.
digitalWrite (7, HIGH);
pinMode(6, OUTPUT); // Define o Pino 6 como saída.
digitalWrite (6, HIGH);
pinMode(5, OUTPUT); // Define o Pino 5 como saída.
digitalWrite (5, HIGH);
pinMode(4, OUTPUT); // Define o Pino 4 como saída.
digitalWrite (4, HIGH);
pinMode(3, OUTPUT); // Define o Pino 3 como saída.
digitalWrite (3, HIGH);
pinMode(2, OUTPUT); // Define o Pino 2 como saída.
digitalWrite (2, HIGH);

Ethernet.begin(mac, ip); // Chama o MAC e o endereço IP da placa Ethernet.
server.begin(); // Inicia o servidor que esta inserido junto a placa Ethernet.
}

void loop(){

int h = dht.readHumidity();
int t = dht.readTemperature();

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') {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

//INICIO DO CODIGO HTML

client.println("<HTML>");
client.println("<head><title>Minha Casa</title></head>");
client.println("<BODY>");
client.println("<BR><center></B></I></U><a href=\"192.168.1.177\"> <img src=https://s3.amazonaws.com/media-p.slid.es/uploads/ardumaniacos/images/46966/LogoArduino.png></a></B></I></U></center>");
client.println("<H1><center>Arduino + Ethernet Shield + Modulo Rele + DHT11</center></H1>");
client.println("<hr />");

//LEITURA DE TEMPERATURA E UMIDADE

client.println("<h2><center>");
client.println("Temperatura:");
client.println(t);
client.println(" *C");
client.println(" - ");
client.println("Umidade:");
client.println(h);
client.println("%");
client.println("</center></h2>");
client.println("<br>");

//CONFIGURAÇÃO DOS RELES

client.println("<H2><center>Rele 1</center></H2>");
client.println("<a href=\"/9/On\"\"><center><button>Liga</button></a>");
client.println("<a href=\"/9/Off\"\"><button>Desliga</button></center></a><br />");

client.println("<H2><center>Rele 2</center></H2>");
client.println("<a href=\"/8/On\"\"><center><button>Liga</button></a>");
client.println("<a href=\"/8/Off\"\"><button>Desliga</button></center></a><br />");

client.println("<H2><center>Rele 3</center></H2>");
client.println("<a href=\"/7/On\"\"><center><button>Liga</button></a>");
client.println("<a href=\"/7/Off\"\"><button>Desliga</button></center></a><br />");

client.println("<H2><center>Rele 4</center></H2>");
client.println("<a href=\"/6/On\"\"><center><button>Liga</button></a>");
client.println("<a href=\"/6/Off\"\"><button>Desliga</button></center></a><br />");

client.println("<H2><center>Rele 5</center></H2>");
client.println("<a href=\"/5/On\"\"><center><button>Liga</button></a>");
client.println("<a href=\"/5/Off\"\"><button>Desliga</button></center></a><br />");

client.println("<H2><center>Rele 6</center></H2>");
client.println("<a href=\"/4/On\"\"><center><button>Liga</button></a>");
client.println("<a href=\"/4/Off\"\"><button>Desliga</button></center></a><br />");

client.println("<H2><center>Rele 7</center></H2>");
client.println("<a href=\"/3/On\"\"><center><button>Liga</button></a>");
client.println("<a href=\"/3/Off\"\"><button>Desliga</button></center></a><br />");

client.println("<H2><center>Rele 8</center></H2>");
client.println("<a href=\"/2/On\"\"><center><button>Liga</button></a>");
client.println("<a href=\"/2/Off\"\"><button>Desliga</button></center></a><br />");


client.println("</BODY>");
client.println("</HTML>");

delay(1);
client.stop();

if(readString.indexOf("9/On") > 0)
{
digitalWrite(9, LOW);
}
else {
if(readString.indexOf("9/Off") > 0)
{
digitalWrite(9, HIGH);
}
}

if(readString.indexOf("8/On") > 0)
{
digitalWrite(8, LOW);
}
else {
if(readString.indexOf("8/Off") > 0)
{
digitalWrite(8, HIGH);
}
}

if(readString.indexOf("7/On") > 0)
{
digitalWrite(7, LOW);
}
else {
if(readString.indexOf("7/Off") > 0)
{
digitalWrite(7, HIGH);
}
}

if(readString.indexOf("6/On") > 0)
{
digitalWrite(6, LOW);
}
else {
if(readString.indexOf("6/Off") > 0)
{
digitalWrite(6, HIGH);
}
}

if(readString.indexOf("5/On") > 0)
{
digitalWrite(5, LOW);
}
else {
if(readString.indexOf("5/Off") > 0)
{
digitalWrite(5, HIGH);
}
}

if(readString.indexOf("4/On") > 0)
{
digitalWrite(4, LOW);
}
else {
if(readString.indexOf("4/Off") > 0)
{
digitalWrite(4, HIGH);
}
}

if(readString.indexOf("3/On") > 0)
{
digitalWrite(3, LOW);
}
else {
if(readString.indexOf("3/Off") > 0)
{
digitalWrite(3, HIGH);
}
}
readString="";
}
}
}
}
}

Exibições: 2836

Responder esta

Respostas a este tópico

Quanto a isso d boa, por isso preciso entender todo o codigo pra saber o q tirar e trocar as portas

entao amigo eu me referi a sua proprio codigo aquele primeiro q vc mandou

no pinMode o q vc iria colocar 10,11,.... coloque A0,A1.... entendeu?

ai sim vc consegue usar mais reles ou ainda como eu disse o expansor de portas

se preferir ainda tenho um codigo com html pro uno vc quer?

Entendi valeu

Ola

Estava vendo o post, e Jose vc poderia postar o código para o Uno ?
Grato

Não preciso colocar mais relés, apenas fazer funcionar os 8, coisa que até então eu não conseguia. Encontrei um codigo da robocoee que funcionou, é só adaptar o código deles ao meu.

Boa tarde tudo bem você ja conseguiu rodar o programa, pelo que eu vi o código é muito extenso e ocupando muita memória do arduino se for o UNO a memória é pequena e poder provocar erros, eu estou para receber o Mega que possui uma memória maior.

Se vc conseguir diminuir ele e ainda funcio ar os 8 relés posta ai pra galera, postei o q eu fiz pra quem quiser melhorar e achar os erros, o importante é compartilhar com a galera.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço