que o arduino assumirábyte gateway[] = { 192,168,0, 1 }; // ip do roteadorbyte subnet[] = { 255, 255, 255, 0 };// String que representa o estado dos dispositivoschar Luz[9] = "000000L#";
EthernetServer server(8081); // Cria o servidor na porta 8081EthernetClient client; // String onde é guardada as msgs recebidaschar msg[9] = "000000L#";
//Variavel aponta para a porta Digital do Arduinoint Lampada01 = 6; //SALAint Lampada02 = 4; //QUARTOint Lampada03 = 5; //Cozinhaint Lampada04 = 3; //Jantarint Lampada05 = 2; //Banheiro
int 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=1pelo arduino eu consigo saber se a porta está aberta ou fechada.Aguardo retorno abraço.
…
Adicionado por Henrique ao 23:44 em 20 janeiro 2014