Tardeeeeeeeee :) Olha, tenho o seguinte códio

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

//fonte base
//ubicomp.feiramoderna.net/wp-content/uploads/2012/09/teste_ethernet.txt

// configurando o ip da rede local

int a, b, c, d, e , f, g, h;
int umahora = 3600000;

byte mac[] = {0x04, 0xfe, 0x31, 0x34, 0x09, 0xfa}; //physical mac address
byte ip[] = { 192, 168, 1, 9 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80);//porta
String readString = String(30); //string for fetching data from address
int ledPinA = 20;
int ledPinB = 21;
int ledPinC = 22;
int ledPinD = 23;
int ledPinE = 24;
int ledPinF = 25;
int ledPinG = 26;
int ledPinH = 27;

void setup(){
//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
//enable serial datada print
Serial.begin(9600);
pinMode(ledPinA, OUTPUT);
pinMode(ledPinB, OUTPUT);
pinMode(ledPinC, OUTPUT);
pinMode(ledPinD, OUTPUT);
pinMode(ledPinE, OUTPUT);
pinMode(ledPinF, OUTPUT);
pinMode(ledPinG, OUTPUT);
pinMode(ledPinH, OUTPUT);

//inicia variavel de controle de ligado ou desligado
a=1; b=1; c=1; d=1; e=1; f=1; g=1; h=1;
}

void loop(){
// criando conecção com o cliente
EthernetClient client = server.available();
if (client) {
while (client.connected())
{
if (client.available())
{
char c = client.read();
//read char by char HTTP request
if (readString.length() < 30)
{
//store characters to string
readString += (c);
}
//output chars to serial port
Serial.print(c);
//if HTTP request has ended
if (c == '\n')
{
//lets check if LED should be lighted
if(readString.indexOf("L=01")>=0)
{
if (a==1){
client.println("<font color='green' size='5'>ON");
digitalWrite(ledPinA, HIGH);
a=0;
}else{
client.println("<font color='grey' size='5'>OFF");
digitalWrite(ledPinA, LOW);
a=1;
}

}
/***********************************************************/
/***********************************************************/
if(readString.indexOf("L=02")>=0)

{
if (b==1){
client.println("<font color='green' size='5'>ON");
digitalWrite(ledPinB, HIGH);
b=0;
}else{
client.println("<font color='grey' size='5'>OFF");
digitalWrite(ledPinB, LOW);
b=1;
}
}
/***********************************************************/
/***********************************************************/
if(readString.indexOf("L=03")>=0)
{
if (c==1){
client.println("<font color='green' size='5'>ON");
digitalWrite(ledPinC, HIGH);
c=0;
}else{
client.println("<font color='grey' size='5'>OFF");
digitalWrite(ledPinC, LOW);
c=1;
}
}
/***********************************************************/
/***********************************************************/
if(readString.indexOf("L=04")>=0)

{
if (d==1){
client.println("<font color='green' size='5'>ON");
digitalWrite(ledPinD, HIGH);
d=0;
}else{
client.println("<font color='grey' size='5'>OFF");
digitalWrite(ledPinD, LOW);
d=1;
}
}
/***********************************************************/
/***********************************************************/
if(readString.indexOf("L=05")>=0)
{
if (e==1){
client.println("<font color='green' size='5'>ON");
digitalWrite(ledPinE, HIGH);
e=0;
}else{
client.println("<font color='grey' size='5'>OFF");
digitalWrite(ledPinE, LOW);
e=1;
}
}
/***********************************************************/
/***********************************************************/
if(readString.indexOf("L=06")>=0)

{
if (f==1){
client.println("<font color='green' size='5'>ON");
digitalWrite(ledPinF, HIGH);
f=0;
}else{
client.println("<font color='grey' size='5'>OFF");
digitalWrite(ledPinF, LOW);
f=1;
}
}
/***********************************************************/
/***********************************************************/
if(readString.indexOf("L=07")>=0)
{
if (g==1){
client.println("<font color='green' size='5'>ON");
digitalWrite(ledPinG, HIGH);
g=0;
}else{
client.println("<font color='grey' size='5'>OFF");
digitalWrite(ledPinG, LOW);
g=1;
}
}

// now output HTML data starting with standart header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

//set background to white
client.print("<body style=background-color:white>");

//send first heading
client.println("<font face= 'Helvetica, Verdana, Sans Serif' color='black'>");
client.println("<h1>Servidor para controle</h1>");
client.println("<hr />");

//controlling led via checkbox
client.println("<h2>LED control</h2>");

client.println("<table border=1><tr><td>");
client.println("<form method=get name=LED><input type=checkbox name=L value=01 checked>Lampada de teto<input type=submit value=submit></form>");
client.println("</td><td>");
if (a==0){
client.println("<font color='green' size='5'>ON");
}else
client.println("<font color='grey' size='5'>OFF");
client.println("</td></tr><tr><td");
//fim de uma linha
client.println("<form method=get name=LED><input type=checkbox name=L value=02 checked>Ventilador<input type=submit value=submit></form>");
client.println("</td><td>");
if (b==0){
client.println("<font color='green' size='5'>ON");
}else
client.println("<font color='grey' size='5'>OFF");
client.println("</td></tr><tr><td");

client.println("<form method=get name=LED><input type=checkbox name=L value=03 checked>Tomada jardim<input type=submit value=submit></form>");
client.println("</td><td>");
if (c==0){
client.println("<font color='green' size='5'>ON");
}else
client.println("<font color='grey' size='5'>OFF");
client.println("</td></tr><tr><td");

client.println("<form method=get name=LED><input type=checkbox name=L value=04 checked>Jardin de inverno<input type=submit value=submit></form>");
client.println("</td><td>");
if (d==0){
client.println("<font color='green' size='5'>ON");
}else
client.println("<font color='grey' size='5'>OFF");
client.println("</td></tr><tr><td");

client.println("<form method=get name=LED><input type=checkbox name=L value=05 checked>Luz banheiro<input type=submit value=submit></form>");
client.println("</td><td>");
if (e==0){
client.println("<font color='green' size='5'>ON");
}else
client.println("<font color='grey' size='5'>OFF");
client.println("</td></tr><tr><td");

client.println("<form method=get name=LED><input type=checkbox name=L value=06 checked>Portão Garagem<input type=submit value=submit></form>");
client.println("</td><td>");
if (f==0){
client.println("<font color='green' size='5'>ON");
}else
client.println("<font color='grey' size='5'>OFF");
client.println("</td></tr><tr><td");

client.println("<form method=get name=LED><input type=checkbox name=L value=07 checked>Portão eletronico</form>");
client.println("</td><td>");
if (g==0){
client.println("<font color='green' size='5'>ON");
}else
client.println("<font color='grey' size='5'>OFF");


client.println("</td></tr>");
client.println("</table");

client.println("<br />");
//printing LED status

client.println("<hr />");
client.println("</font>");
client.println("</body></html>");
//clearing string for next read
readString="";
//stopping client
client.stop();
}
}
}
}
}

E to com o seguinte problema, quando eu perto o botão 01, tudo bem, ele muda na barra de endereços e tudo mais... No entanto quando eu aperto o botão 02 em diante não acontece nada, não muda na barra de endereços... alguem sabe o pq?

Exibições: 1399

Responder esta

Respostas a este tópico

Ele não está acumulando as entradas  geradas pelos botões ? Isso geraria um resultado diferente dos valores que estão programados nos IFs.

acontece o seguinte...

eu aperto o primeiro botão, blz ele atualiza a url pra ?L=01

se eu clico em outro... qualquer outro, não muda nada continua ?L=01

Não to entendendo o por que de ele não pegar outro botão.

Luiz Antônio.

Reúna todos os seus checkboxes em um único formulário. Ao submeter ele vai ler somente este formulário e os dados de todos os checkboxes serão computados. Se for o caso de só acender um led de cada vez, utilize radio button ao invés de check boxes.

Veja só esta página:

<code>

<pre>

<!DOCTYPE html>
<html>
<head>
    <title>Formul&aacute;rios e leds</title>
</head>
<body>
    <h1>Formul&aacute;rios e leds</h1>
    <form method="get">
         <fieldset>
             <legend>Somente uma escolha por vez</legend>
         

                <input type="radio" name="leds" id="rdl1" value="01" />
                <label for="rdl1">L&acirc;mpada de teto</label>


              <input type="radio" name="leds" id="rdl2" value="02" />
              <label for="rdl2">Ventilador</label>


              <input type="radio" name="leds" id="rdl3" value="03" />
              <label for="rdl3">Tomada do jardim</label>


              <input type="radio" name="leds" id="rdl4" value="04" />
              <label for="rdl4">Jardim de inverno</label>
         </fieldset>

         <fieldset>
            <legend>M&uacute;ltiplas escolhas por vez</legend>
                 <input type="checkbox" name="leds" id="cbl1" value="01" />
                 <label for="cbl1">L&acirc;mpada de teto</label>


               <input type="checkbox" name="leds" id="cbl2" value="02" />
               <label for="cbl2">Ventilador</label>


              <input type="checkbox" name="leds" id="cbl3" value="03" />
              <label for="cbl3">Tomada do jardim</label>


             <input type="checkbox" name="leds" id="cbl4" value="04" />
             <label for="cbl4">Jardim de inverno</label>
         </fieldset>

           <input type="submit" value="Enviar" />
          <input type="reset" value="Limpar" />
     </form>
</body>
</html>

</pre>

</code>

Nela eu fiz dois fieldsets (grupos de controles) dentro de um único formulário, para que você escolha qual a melhor opção para o seu projeto. Note que ao clicar no botao enviar ele atualiza a url com o valor das entradas selecionadas. Pelo que você estava tentando fazer, creio que a segunda opção seja mais efetiva. 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço