Informações Ethernet

Totalmente diferente! rs

O que ocorre é que já tens o site a coletar informações do arduino e desejam o inverso, mandar do site para o arduino.

Tenho este tutorial nos favoritos http://www.instructables.com/id/Arduino-Ethernet-Shield-Tutorial/?ALLSTEPS, mas creio que o bubulindo é muito mais apto a te responder :wink:

Este tem botões para ligar/desligar o led...

Tens aqui outro exemplo que é similar ao que pretendes.

já me deu vontade de comprar um ethernet para os meus arduinos rs

no inicio está assim:
IPAddress ip(192,168,0,43);
EthernetServer server(80);
não fiz nenhuma página em html, apenas o host no arduino
no caso o que eu quero mudar é a variavel que esta como pbranco e pazul no final
logo eu abro o browse (IE) e digito 192.168.0.43 e me aparece as informações como abaixo:

if (client) {
    Serial.println("new client");
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
       if (c == '\n' && currentLineIsBlank) {
               client.print("Temperatura        ");
               client.println(celsius);

                client.print("Aquecedor          ");
               client.println(estados[statusHeater]);
                client.print("Refrigerador       ");
               client.println(estados[statusFan]);
               client.print("Relogio            ");
               if (agora.hora <10) client.print("0");
                     client.print(agora.hora);
                     client.print(":");
                     if (agora.minuto <10) client.print("0");
                     client.println(agora.minuto);
               client.print("Temperatura Max    ");      
               client.println(tempMax);
               client.print("Temperatura Min    "); 
               client.println(tempMin);
               client.print("Potencia Branco    ");
               client.print(pbranco);
               client.println("%");
               client.print("Potencia Azul      ");
               client.print(pazul);
               client.println("%");
               break;
        }

eu utilizo ele aqui

           if (agora.hora >= led_A_on && agora.hora < led_A_off) 
                     analogWrite(ledazul, Pazul); 
                     else {
                     analogWrite(ledazul, 0);
                     }  
                     if (agora.hora >= led_B_on && agora.hora < led_B_off) 
                     analogWrite(ledbranco, Pbranco); 
                     else {
                     analogWrite(ledbranco, 0);
                     }

ou seja se estiver na hora certa ele liga a luz com a potencia programada que é a Pazul e a Pbranco que estão definidas em
int pbranco = 60;
int pazul = 30;

obs: pbranco e Pbranco são diferentes porque colocando 60 ele transforma em um numero que corresponde a 60% de 0 a 255 para o PWM
no caso eu quero pelo HTTP uma caixa de testo onde eu posso escrever e modificar esse 60 e 30, exemplo quero que o o azul fique em 20 e nao 60, então digito 20 e clico no enviar

Já experimentaste mandar o código HTML que te deixei aqui?

E ver o que o browser faz quando carregas no botão submit?

Final de semana agora vou testar, porém onde coloco o código? creio que se abrir uma página em HTML e editar colocando o código ficaria lá bonitinho, mas como o arduino manda este código para abrir no browser?

lmeireles43:
Final de semana agora vou testar, porém onde coloco o código? creio que se abrir uma página em HTML e editar colocando o código ficaria lá bonitinho, mas como o arduino manda este código para abrir no browser?

if (client) {
    Serial.println("new client");
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
       if (c == '\n' && currentLineIsBlank) {
               client.print("Temperatura        ");
               client.println(celsius);

                client.print("Aquecedor          ");
               client.println(estados[statusHeater]);
                client.print("Refrigerador       ");
               client.println(estados[statusFan]);
               client.print("Relogio            ");
               if (agora.hora <10) client.print("0");
                     client.print(agora.hora);
                     client.print(":");
                     if (agora.minuto <10) client.print("0");
                     client.println(agora.minuto);
               client.print("Temperatura Max    ");      
               client.println(tempMax);
               client.print("Temperatura Min    "); 
               client.println(tempMin);
               client.print("Potencia Branco    ");
               client.print(pbranco);
               client.println("%");
               client.print("Potencia Azul      ");
               client.print(pazul);
               client.println("%");
//COLOCAS O CÓDIGO AQUI!! 
               break; // <--------------Isto é para quê? 
        }

Se eu tiver um tempinho testo ainda hoje, este break creio que deixei perdido pelo meio, não serve para nada

simplesmente colocar o código da este problema:
expected primary-expression before "<" token

coloquei este código aqui na integra:

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

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 0, 43 };                  // ip in lan
                 //subnet mask
EthernetServer server(80);                                      //server port
byte sampledata=50;            //some sample data - outputs 2 (ascii = 50 DEC)             
int ledPin1 = 2;  // LED pin 1
 
String readString = String(30); //string for fetching data from address
boolean LEDON1 = false; //LED status flag


void setup(){
//start Ethernet
Ethernet.begin(mac, ip);
//Set pin 4 to output
  pinMode(ledPin1, OUTPUT);  

//enable serial datada print  
  Serial.begin(9600);
}
void loop(){
// Create a client connection
 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.append(c);
          readString.concat(c);
      }  
        //output chars to serial port
        Serial.print(c);
        //if HTTP request has ended
        if (c == '\n') {
          //lets check if LED should be lighted
 //------------LED 1
           if (readString.substring(6,11) == "L1=ON")
           {
             digitalWrite(ledPin1, HIGH);    // set the LED on
             LEDON1 = true;
           }
             else if (readString.substring(6,12) == "L1=OFF")
            {
             digitalWrite(ledPin1, LOW);    // set the LED OFF
             LEDON1 = false;             
            }  
 
          // 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 yellow
          client.print("<body style=background-color:yellow>"); 
          client.println("<h1>LED control</h1>");
          client.println("<font color='black'>");
          client.println("
");

//--------LED 1 CONTROLL--------
          client.println("<form method=get name=LED><input type=submit name=L1 value=ON>  LED 1<form>");      
          client.println("<form method=get name=  LED><input type=submit name=L1 value=OFF  ><form>");
            if (LEDON1)
            { 
             client.print("<font color='green' size='3'> ON");
            } 
            else 
            { 
             client.print("<font color='red' size = '3'> OFF");
            }
            client.println("<font color='black' 
");
           
          client.println("</body></html>");
          //clearing string for next read
          readString="";
          //stopping client
          client.stop();
            }
          }
        }
      }
    }

Funcionou perfeitamente, pagina em amarelo com boão liga e desliga.... porém quando eu copio a parte:

 client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          //set background to yellow
          client.print("<body style=background-color:yellow>"); 
          client.println("<h1>LED control</h1>");
          client.println("<font color='black'>");
          client.println("
");

ele sai tudo escrito na página

Mortis:
já me deu vontade de comprar um ethernet para os meus arduinos rs

Nunca, Nunca, Nunca compre um ethernet sem SDCARD e escolha um com Wiznet W5100

mmoscz:
Nunca, Nunca, Nunca compre um ethernet sem SDCARD e escolha um com Wiznet W5100

Olá, mmoscz! Obrigado pela dica! :wink:

Comprei este com SDcard.....
Esse final de semana montei a pagina em html, porém na hora que coloco no arduino ele da problema com as " ". ainda n sei como tirar esse problema da tabela que inseri, tentei subsituir os " por ' e o sketch trava na hora da verificação....

Queres mostrar o pedaço de código que te estás a referir?

infelizmente fiz algo de errado ao ligar um driver e superaqueceu o arduino e saiu um cheiro, agora não funciona mais o USB apenas a luz de TX e RX ligadas e o led do On vermelho ligado..... mas ligo o USB e nada, morreu?

Pois... muito provavelmente foi isso...

não há como recupera-lo?

Bom dia pessoal,

Estou rodando a mais de um mês o sistema com um arduino uno e ethernet. O controle do aquário funciona 100%, liga e desliga as luzes, repõe a água doce, liga o aquecedor etc... porém o ethernet funciona por um determinado tempo e para de enviar sinal. O arduino e suas funções continuam a funcionar normalmente, quando eu busco no browser o ip do servidor criado com o arduino ele não acha, no meu caso 192.168.0.43
Para voltar a funcionar o ethernet só resetando o arduino....

timeout de DHCP?

Teste enviar um IP fixo para o ethernet shield no seu roteador.