Tags:
eu ainda não trabalho com php mas estava olhando o código ... A pagina web fica atualizando só ou só quando um dos botões a apertado?
Se a pagina se atualizar só. a minha ideia seria coloca o estado da porta na array luz porque ela é enviada para o arquivo php para configura as cores dos butões
// String que representa o estado dos dispositivos
char Luz[7] = "0000L#";
onde
Luz[0] é o estado da luz da sala
Luz[1] é o estado da luz do quarto 1
Luz[2] ......quarto 2
Luz[3] ......sala
o mais fácil é retira o quarto 2 e coloca o estado da porta e no código php coloca porta aberta ou fechada.
no arduino
coloca no loop
//porta é o estado da porta fazendo uma leitura do pino do arduino
if (porta == 1){Luz[2] = 1;} else{Luz[2] = 0}
na parte do codigo
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]; renover do codigo
Luz[3]=msg[4];
if (Luz[0]=='1') digitalWrite(A0,HIGH); else digitalWrite(A0,LOW);
if (Luz[1]=='1') digitalWrite(A1,HIGH); else digitalWrite(A1,LOW);
if (Luz[2]=='1') digitalWrite(A2,HIGH); else digitalWrite(A2,LOW); renover do codigo
if (Luz[3]=='1') digitalWrite(A3,HIGH); else digitalWrite(A3,LOW);
break;
No PHP
Na Parte
if ($status[2]=='0') $cor3 = lightcoral;
else $cor3 = lightgreen;
coloca assim
if ($status[2]=='0') $cor3 = Porta Aberta;
else $cor3 = Porta Fechada;
e na parte
echo "<button style=\"width:70; background-color: $cor3 ;font: bold 14px Arial\" type = \"Submit\" Name =\"Quarto2\">Quarto2</button></br></br>";
para assim
echo "$cor3 ;";
/////////////////////////
eu não testei as modificações
Amigo, estou testando aqui.
Não sei se fiz algo errado no protoboard mas quando ligo o reed switch na portas digital.
Os LED acende.
Será por que?
Abraço!
coloca o código completo da ide do arduino
compartilha seu código comigo....estou fazendo uma automação parecida com a sua....????
Assim que chegar em casa compartilho amigo para vocês me ajudarem.
Estou trabalhando...
Skype: Henrique.ricks
Pessoal,
vejam o código.
#include <SPI.h>
#include <Ethernet.h>
//Configurações do Ethernet Shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,0, 222 }; // ip que o arduino assumirá
byte gateway[] = { 192,168,0, 1 }; // ip do roteador
byte subnet[] = { 255, 255, 255, 0 };
// String que representa o estado dos dispositivos
char Luz[9] = "000000L#";EthernetServer server(8081); // Cria o servidor na porta 8081
EthernetClient client;
// String onde é guardada as msgs recebidas
char msg[9] = "000000L#";//Variavel aponta para a porta Digital do Arduino
int Lampada01 = 6; //SALA
int Lampada02 = 4; //QUARTO
int Lampada03 = 5; //Cozinha
int Lampada04 = 3; //Jantar
int Lampada05 = 2; //Banheiroint LED = 13;
int REED = 8;
void setup() {
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
pinMode(Lampada01,OUTPUT);
pinMode(Lampada02,OUTPUT);
pinMode(Lampada03,OUTPUT);
pinMode(Lampada04,OUTPUT);
pinMode(Lampada05,OUTPUT);
pinMode(LED, OUTPUT);
pinMode(REED, INPUT);
}
void loop() {client = server.available();
// 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]=msg[7]; msg[7]=msg[8];
msg[8] = client.read();
if (msg[8]=='#') {
switch(msg[7]) {
case 'R':
// Se receber o comando 'R#' envia de volta o status dos
// dispositivos. (Que é a string 'Luz')
client.write(Luz);
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];
Luz[4]=msg[5];
Luz[5]=msg[6];if (Luz[0]=='1') digitalWrite(Lampada01,HIGH); else digitalWrite(Lampada01,LOW);
if (Luz[1]=='1') digitalWrite(Lampada02,HIGH); else digitalWrite(Lampada02,LOW);
if (Luz[2]=='1') digitalWrite(Lampada03,HIGH); else digitalWrite(Lampada03,LOW);
if (Luz[3]=='1') digitalWrite(Lampada04,HIGH); else digitalWrite(Lampada04,LOW);
if (Luz[4]=='1') digitalWrite(Lampada05,HIGH); else digitalWrite(Lampada05,LOW);
}
}
}if(digitalRead(REED)){
Ethernet.print("<html>");
Ethernet.print("<head>");
Ethernet.print("<meta HTTP-EQUIV='REFRESH\' content='0; url=http://localhost/websupervisor/home.php?teste=1");
Ethernet.print(webval);
Ethernet.print("></head>");
Ethernet.print("Test");
Ethernet.print("</html>");
} else{
}}
Se eu conseguir chamar essa url: http://localhost/websupervisor/home.php?teste=1
pelo arduino eu consigo saber se a porta está aberta ou fechada.
Aguardo retorno abraço.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por