Go Down

Topic: ethernet shield... (Read 1 time) previous topic - next topic

Ricardo Abellan

Hola!

hasta ahora he conseguido realizar un pequeño servidor web que se guarda en el mismo arduino. puedo acceder a el desde cualquier ordenador abriendo el puerto del router,,por ahora nada nuevo,,,

tengo la siguiente web:
"<HTML>"
     "<HEAD>Activar LEDs</HEAD>"
     
     "<BODY>"
           "<CENTER><H1>CONTROL DE LEDS ETHERNET</H1></CENTER>"
               "<CENTER><H1>ARDUINO</H1></CENTER>"

     "<FORM METHOD = \"GET\" >"
     "<INPUT TYPE = submit NAME = b1 VALUE = on>"
     "<INPUT TYPE = submit NAME = b2 VALUE = off>"
       
     "</FORM>"
     "</BODY>"
"</HTML>"

en la que me aparecen dos botones..

simplemente lo que quiero saber es cmoo hacer para que al pulsar esos botones (o cualquier otor tipo), me envie datos al arduino,, no se como hacerlo....
en principio con que me envie un 1 o 0 me vale, ya que si consigo eso,,puedo enviar cualquier dato.

Agradeceria cualquier ayuda =)!!

Ricardo Abellan

Me explico un poco mejor, el mismo porgrama de arduino contiene la pagina web (muy simple), he probrado con tipos de botones "button" y "submit",,, pero no consigo que envie datos...

Para leer los datos uso client.read () en el mismo porgrama, pero este nunca cambia de valor.

entonces,,,¿ como hago para un boton de la pagina web, envie al mismo arduino por ejemplo comandos simples como a, b ,c...?

gracias de nuevo

curro92

Tal vez esto te ayude:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1274596787


Ricardo Abellan

Ok muchas gracias, voy a intentarlo y si lo consigo os cuento como =)

RoAcHmx

#4
Oct 15, 2010, 11:04 pm Last Edit: Oct 15, 2010, 11:04 pm by vpablo Reason: 1
mira yo logré encontrar un codigo y lo modifiqué está muy facil y rápido de entender:

Code: [Select]
#include <Ethernet.h>
#include <SPI.h>
/*
   Simple Ethernet Test

Arduino server outputs simple text to browser

    The circuit:
    * Arduino Duemilanove
* Arduino Ethernet shield
* Basic FTDI breakout 5V
*LED connected to GND and digital pin 4 via resistor
   
By Minde
    http://www.sciencprog.com/
*/

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = {192, 168, 2, 210 };            // ip in lan
byte gateway[] = {192, 168, 2, 254 };            // internet access via router
byte subnet[] = {255, 255, 255, 0 };                   //subnet mask
Server server(80);                                      //server port
byte sampledata=50;            //some sample data - outputs 2 (ascii = 50 DEC)            
int ledPin = 4;  // LED pin
String readString = String(30); //string for fetching data from address
boolean LEDON = false; //LED status flag
void setup(){
 //start Ethernet
 Ethernet.begin(mac, ip, gateway, subnet);
 //Set pin 4 to output
 pinMode(ledPin, OUTPUT);  
 //enable serial datada print  
 Serial.begin(9600);
}
void loop(){
 // Create a client connection
 Client 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.trim() == ("GET /?L=1 HTTP/1.1"))
         {
           //led has to be turned ON
           digitalWrite(ledPin, HIGH);    // set the LED on
           LEDON = true;
         }
         else{
           //led has to be turned OFF
           digitalWrite(ledPin, LOW);    // set the LED OFF
           LEDON = 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>");
         //send first heading
         client.println("<font color='red'><h1>HTTP test routines</font></h1>");
         client.println("<font color='red'><h1>" + readString + "</font></h1>");
         client.println("<hr />");
         client.println("<hr />");
         //output some sample data to browser
         client.println("<font color='blue' size='5'>Sample data: ");
         client.print(sampledata);//lets output some data
         client.println("<br />");//some space between lines
         client.println("<hr />");
         //drawing simple table
         client.println("<font color='green'>Simple table: ");
         client.println("<br />");
         client.println("<table border=1><tr><td>row 1, cell 1</td><td>row 1, cell 2</td></tr>");
         client.println("<tr><td>row 2, cell 1</td><td>row 2, cell 2</td></tr></table>");          
         client.println("<br />");
         client.println("<hr />");
         //controlling led via checkbox
         client.println("<h1>LED control</h1>");
         //address will look like http://192.168.1.110/?L=1 when submited
         client.println("<form method=get name=LED><input type=checkbox name=L value=1>LED<br><input type=submit value=submit></form>");      
         client.println("<br />");
         //printing LED status
         client.print("<font size='5'>LED status: ");
         if (LEDON)
           client.println("<font color='green' size='5'>ON");
         else
           client.println("<font color='grey' size='5'>OFF");    
         client.println("<hr />");
         client.println("<hr />");
         client.println("</body></html>");
         //clearing string for next read
         readString="";
         //stopping client
         client.stop();
       }
     }
   }
 }
}


si tienes alguna duda avisame  :D

Go Up