Probleme Mit Arduino Ethernetshield.

Mahlzeit!

Hier ist ein Beispielcode für die Übergabe von Daten in der Browser-Adressleiste. Er kommt von meiner Seite zum Thema Home-Automation.

Schau mal nach readString.startsWith

// ARDUINO 0021
// 
//
#include <SPI.h>
#include <Ethernet.h>

#define action_none -1
#define action_out_all 0
#define action_on_light 1
#define action_off_light 2

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE }; //physical mac address
byte ip[] = { 192, 168, 1, 222 };                  // ip address
byte gateway[] = { 192, 168, 1, 200 };                  // internet access via router
byte subnet[] = { 255, 255, 255, 0 };                   //subnet mask
Server server(80);                                      //server port
String readString = String(30); //string for fetching data from address

// arduino out
int pinOutPlight = 4;


// incoming GET command
String r_pinOnLight = "GET /?out=4&status=1";
String r_pinOffLight = "GET /?out=4&status=0";
String r_out_all = "GET /?out=all";

// current action
int current_action;

void setup(){
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, subnet);
  delay(1000);

  pinMode(pinOutPlight, OUTPUT);
  digitalWrite(pinOutPlight, LOW);
  //enable serial datada print
  Serial.begin(9600);
  current_action = -1;
}
void loop(){
  current_action = -1;

  // 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 = readString + c;
        }
        //output chars to serial port
        //Serial.print(c);
        //if HTTP request has ended
        if (c == '\n') {

         Serial.print(readString);
         // ****************************************************
          if(readString.startsWith(r_pinOnLight))
          {
          Serial.print("\n ON UP \n");
          current_action = action_on_light;
          }
          else if(readString.startsWith(r_pinOffLight))
          {
           Serial.print("\n OFF UP \n");
           current_action = action_off_light;
          }
          else if(readString.startsWith(r_out_all))
          {
            Serial.print("\n ALL\n");
            current_action = action_out_all;
          }
          else
          {
            Serial.print("\n None \n");
            current_action = action_none;
          }
         // ****************************************************
          // now output HTML data starting with standart header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
         char buf[12];
         switch(current_action)
         {
         case action_out_all:
            client.print("{\"ip\" : \"192.168.1.222\", \"devices\" : [{ \"type\" : \"light\", \"name\" : \"LED\", \"out\" : \"");
            client.print(pinOutPlight);
            client.print("\"}");
            client.print("]}");
           break;
         case action_on_light:
           digitalWrite(pinOutPlight, HIGH);
           client.print("{\"status\" : \"1\" , \"out\" : \"");
           client.print(pinOutPlight);
           client.print("\"}");
           break;
         case action_off_light:
           digitalWrite(pinOutPlight, LOW);
           client.print("{\"status\" : \"0\" , \"out\" : \"");
           client.print(pinOutPlight);
           client.print("\"}");
           break;
         default:
           current_action = action_none;
         }


         // ****************************************************

          //clearing string for next read
          readString="";
          //stopping client
          client.stop();
        }
      }
    }
  }
}

Hoffe es ist das, was Du meinst.

LG
Poldi :sunglasses: