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 statusclient.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?
Tags:
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ários e leds</title>
</head>
<body>
<h1>Formulá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â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últiplas escolhas por vez</legend>
<input type="checkbox" name="leds" id="cbl1" value="01" />
<label for="cbl1">Lâ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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por