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="";
}
}
}
}
}
Tags:
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?
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.
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por