Amigos estou com esse projeto bem no inicio...

Com ele eu ja estou acionando a lampada da minha sala via internet e intranet, o projeto foi adapitado do projeto do tuto do site engenheirando.com, ai vem o meu problema....

Estou querendo adicionar ao projeto um LCD 5110 para me dar informações como IP, temperatura, luminosidade, etc... mais não estou conseguindo de forma nenhuma, quando eu passo o meu codigo altera no IDE esta tudo certo, mais quando eu subo o codigo para o Arduino acontece que ou funciona os reles ou funciona o LCD 

AJUDEM AI!!!!!!!!!!

O CODIGO

#include <SPI.h>
#include <Ethernet.h>
#include <LCD5110_Basic.h>

LCD5110 myGLCD(9,10,11,12,13);
extern uint8_t SmallFont[];

//Configurações do Ethernet Shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,25, 177 }; // ip que o arduino assumirá
byte gateway[] = { 192,168,25, 1 }; // ip do roteador
byte subnet[] = { 255, 255, 0, 0 };

// String que representa o estado dos dispositivos
char Luz[7] = "0000L#";

EthernetServer server(8090); // Cria o servidor na porta 8081

// String onde é guardada as msgs recebidas
char msg[7] = "0000L#";

void setup() {
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
myGLCD.InitLCD();
myGLCD.setFont(SmallFont);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
}

void loop() {

EthernetClient client = server.available();

myGLCD.clrScr();
myGLCD.print("Homeduino", CENTER, 0);
myGLCD.print("IP:192.168.25.17", RIGHT, 8);
myGLCD.print("Iluminacao", LEFT, 16);
myGLCD.print("Projeto ", LEFT, 24);
myGLCD.print("Por: ", LEFT, 32);
myGLCD.print("KARLOS PEREIRA", LEFT, 40);
delay (5000);

// SE receber um caracter...
if (client) {
// guarda o caracter na string 'msg'
msg[1]=msg[2]; msg[2]=msg[3]; msg[3]=msg[4]; msg[4]=msg[5]; msg[5]=msg[6];
msg[6] = client.read();

if (msg[6]=='#') {
switch(msg[5]) {
case 'R':
// Se receber o comando 'R#' envia de volta o status dos
// dispositivos. (Que é a string 'Luz')
client.write(Luz);
break;
case 'P':
// Caso P#, aciona o pino do portão pequeno por 1s.
digitalWrite(3,LOW);
delay(1000);
digitalWrite(3,HIGH);
break;
case 'G':
// Caso G#, aciona o pino do portão pequeno por 1s.
digitalWrite(4,LOW);
delay(1000);
digitalWrite(4,HIGH);
break;
case 'L':
// Caso L#, ele copia os 4 bytes anteriores p/ a
// string 'Luz' e cada byte representa um
// dispositivo, onde '1'=ON e '0'=OFF
Luz[0]=msg[1];
Luz[1]=msg[2];
Luz[2]=msg[3];
Luz[3]=msg[4];
if (Luz[0]=='1') digitalWrite(5,LOW); else digitalWrite(9,HIGH);
if (Luz[1]=='1') digitalWrite(6,LOW); else digitalWrite(10,HIGH);
if (Luz[2]=='1') digitalWrite(7,LOW); else digitalWrite(11,HIGH);
if (Luz[3]=='1') digitalWrite(8,LOW); else digitalWrite(12,HIGH);
break;

}
}
}
}

_________________________________________________________________________

_________________________________________________________________________

O CODIGO PHP

<html>
<head></head>
<body>

<?php
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// Se conecta ao IP e Porta:
socket_connect($sock,"192.168.25.177", 8090);

// Executa a ação correspondente ao botão apertado.
if(isset($_POST['bits'])) {
$msg = $_POST['bits'];
if(isset($_POST['Fora' ])){ if($msg[0]=='1') { $msg[0]='0'; } else { $msg[0]='1'; }}
if(isset($_POST['Quarto1'])){ if($msg[1]=='1') { $msg[1]='0'; } else { $msg[1]='1'; }}
if(isset($_POST['Quarto2'])){ if($msg[2]=='1') { $msg[2]='0'; } else { $msg[2]='1'; }}
if(isset($_POST['Sala' ])){ if($msg[3]=='1') { $msg[3]='0'; } else { $msg[3]='1'; }}
if(isset($_POST['Pequeno'])){ $msg = 'P#'; }
if(isset($_POST['Grande' ])){ $msg = 'G#'; }
socket_write($sock,$msg,strlen($msg));
}

socket_write($sock,'R#',2); //Requisita o status do sistema.

// Espera e lê o status e define a cor dos botões de acordo.
$status = socket_read($sock,6);
if (($status[4]=='L')&&($status[5]=='#')) {
if ($status[0]=='0') $cor1 = 'lightcoral';
else $cor1 = 'lightgreen';
if ($status[1]=='0') $cor2 = 'lightcoral';
else $cor2 = 'lightgreen';
if ($status[2]=='0') $cor3 = 'lightcoral';
else $cor3 = 'lightgreen';
if ($status[3]=='0') $cor4 = 'lightcoral';
else $cor4 = 'lightgreen';

echo "<form method =\"post\" action=\"PaginaPHP.php\">";
echo "<input type=\"hidden\" name=\"bits\" value=\"$status\">";
echo "<button style=\"width:200; background-color: $cor1 ;font: bold 14px Arial\" type = \"Submit\" Name = \"Fora\">Sala</button></br></br>";
echo "<button style=\"width:70; background-color: $cor2 ;font: bold 14px Arial\" type = \"Submit\" Name = \"Quarto1\">Quarto Casal</button></br></br>";
echo "<button style=\"width:70; background-color: $cor3 ;font: bold 14px Arial\" type = \"Submit\" Name = \"Quarto2\">Quarto Solteiro</button></br></br>";
echo "<button style=\"width:70; background-color: $cor4 ;font: bold 14px Arial\" type = \"Submit\" Name = \"Sala\">Cozinha</button></br></br></br>";
echo "<button style=\"width:90;font: bold 14px Arial\" type = \"Submit\" Name = \"Pequeno\">Portao Pequeno</button></br></br>";
echo "<button style=\"width:90;font: bold 14px Arial\" type = \"Submit\" Name = \"Grande\">Portao Grande</button></br></br>";
echo "</form>";
}
// Caso ele não receba o status corretamente, avisa erro.
else { echo "Falha ao receber status da casa."; }
socket_close($sock);
?>

</body>
</html>

______________________________________________________________________________

______________________________________________________________________________

Exibições: 2083

Anexos

Responder esta

Respostas a este tópico

opa, poste um tópico explicando melhor o que você já conseguiu... se ja fez os tutoriais do forum...

 Bom amigo, primeiro obrigado por me responder, e mais do que palavras, vou te mostrar o primeiro codigo fonte que esta rodando de boa atraves da intranet, o segundo apliquei a biblioteca  IR para capturar os codigos da tv, ta rodando tbem, so que nao consigo unir os dois codigos, eles estao rodando um de cada vez, quero controlar a tv e a lampada via pagina da internet, preciso juntar os dois, e isso.

#include <SPI.h>
#include <Ethernet.h>
boolean incoming = 0;
int pin_rly6 = 6;
int pin_rly7 = 7;
int pin_rlya1 = A1;
int pin_rlya2 = A2;
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192,168,0,177);
EthernetServer server(80);
void setup()
{
Ethernet.begin(mac,ip);
server.begin(); Serial.begin(9600);

pinMode(pin_rly6,OUTPUT); // saida porta 6 //
pinMode(pin_rly7,OUTPUT); // saida porta 7 //
pinMode(pin_rlya1,OUTPUT); // saida porta A1 //
pinMode(pin_rlya2,OUTPUT); // saida porta A2 //
}
void loop()
{
EthernetClient client = server.available();
if (client)
{
boolean currentLineIsBlank = true; String str; while (client.connected())
{
if (client.available())
{
char c = client.read();
str.concat(c);

if(str.endsWith("/7on"))
{
digitalWrite(pin_rly7,HIGH);
}

if(str.endsWith("/7off"))
{
digitalWrite(pin_rly7,LOW);
}

if(str.endsWith("/6on"))
{
digitalWrite(pin_rly6,HIGH);}

if(str.endsWith("/6off"))
{
digitalWrite(pin_rly6,LOW);
}
if(str.endsWith("/a1on"))
{
digitalWrite(pin_rlya1,HIGH); delay(120);
digitalWrite(pin_rlya1,LOW);
}

if(str.endsWith("/a2on"))
{
digitalWrite(pin_rlya2,HIGH); delay(120);
digitalWrite(pin_rlya2,LOW);
}
if (c == '\n' && currentLineIsBlank)
{
client.println("Content-Type: text/html");
client.println();
client.print("<body style=background-color:Aquamarine>");
client.println("<font color='black' size='4'>");
client.println();

client.println("<center><a href=/7on/>Quarto/a>&nbsp; &nbsp;||&nbsp; &nbsp;<a href=/7off/>Desligar</a></center>");
client.println("<hr width=50%>");

client.println("<center><a href=/6on/>Ligar Sala 1</a>&nbsp; &nbsp;||&nbsp; &nbsp;<a href=/6off/>Desligar</a></center>");
client.println("<hr width=50%>");

client.println("<center><a href=/a2on/>Portão 1</a>&nbsp; &nbsp;||&nbsp; &nbsp;<a href=/a1on/>Portão 2</a></center>");
client.println("<hr width=50%>");
break;
}
if (c == '\n') { currentLineIsBlank = true; } else if (c != '\r')
{
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
}

E este e o segundo codigo fonte:

#include <IRremote.h> IRsend irsend; void setup() { Serial.begin(9600); } void loop() { char t = Serial.read(); if (t =='1'){ for (int i = 0; i <1; i++) { irsend.sendRC5(0x0C, 12); // TV CCE desliga delay(100); } } if (t =='2'){ for (int i = 0; i <1; i++) { irsend.sendRC5(0x80C, 12); // TV CCE liga delay(100); } } if (t =='3'){ for (int i = 0; i <1; i++) { irsend.sendRC5(0x810, 12); // TV CCE volum + delay(100); } } if (t =='4'){ for (int i = 0; i <1; i++) { irsend.sendRC5(0x811, 12); // TV CCE volum - delay(100); } } if (t =='5'){ for (int i = 0; i <1; i++) { irsend.sendRC5(0x820, 12); // TV CCE canal+ delay(100); } } if (t =='6'){ for (int i = 0; i <1; i++) { irsend.sendRC5(0x821, 12); // TV CCE canal - delay(100); } } }

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço