Pages: [1]   Go Down
Author Topic: fragen zum ethernet board - webserver und client zugleich?  (Read 571 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich habe ein Programm (ab)geschrieben,bzw auf meine Bedürfnisse angepasst,
mit welchen ich eine URL aufrufe. (get Parameter an meinen Server sende)
meine php datei macht den Rest.

Gerne würde ich hier auch noch mit dem Browser auf den Arduino zugreifen können,
um hier noch die eine oder andere Funktion einzufügen.
Stichwort ist hier wohl : WebServer.

Wie mache ich das?
Wie mache ich aus dem unteren Code zusätzlich noch einen Webserver?


mein Programm bisher: (funktioniert bisher alles)
Code:
#include <SPI.h>
#include <Ethernet.h>

const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  8;      // the number of the LED pin
int buttonState = 0;         // variable for reading the pushbutton status

byte mac[] = {0x90, 0xA2, 0xDA, 0x04, 0x00, 0x09};
IPAddress ip(192, 168, 178, 111);
byte gateway[] = { 192, 168, 178, 1 }; // Gateway eingeben!
byte subnet[] = { 255, 255, 255, 0 };
byte server[] = {192, 168, 178, 150}; // IP des Servers eingeben
EthernetClient client;

char host[] = "localhost"; // DOMAIN
char url[] = "/index.php"; // Pfad zur PHP-Datei
char key[] = "123456"; // Kennwort aus PHP-Datei

void setup()
{

 // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
Serial.begin(9600); // für Debug-Ausgaben
Serial.println("Programm gestartet…");
Ethernet.begin(mac, ip, gateway, subnet);  

}

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {    
    // turn LED on:    
     digitalWrite(ledPin, HIGH);  
     Daten_senden();
}
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
    client.stop();
  }
}


void Daten_senden()
{
if (client.connect(server, 80)) // Verbindung zum Server aufbauen
{
Serial.print("Verbunden…sende Daten…");
client.print("GET ");
client.print(url);
client.print("?TEMP=");
client.print("111");
client.print("&KEY=");
client.print(key);
client.println(" HTTP/1.1""");
client.print("Host: ");
client.println(host);
client.println();
Serial.println("fertig!");

}
else
{
Serial.println(" ***** VERBINDUNGSAUFBAU NICHT MÖGLICH *****");
}
}


Danke für evtl. Antworten

Gruß



« Last Edit: June 28, 2012, 06:21:50 pm by maniwahn » Logged

Offline Offline
Sr. Member
****
Karma: 2
Posts: 260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

die Frage hab ich mir vor kurzem auch gestellt.

Die Antwort ist ganz easy:

Such dir einen Beispielsketch, das als Ethernetserver fungiert und kopiere den entsprechenden Code (am besten als Funktion verpackt) in die Loop-Schleife.
Logged

Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

hast du das Ethernet Shield mit SD Kartenleser?
Dann kann ich dir folgenden Link empfehlen:
Ethernetfiles

Dort findest du aber auch ohne die SD Karte zu nutzen, wie man einen Zugriff verarbeitet und dann einfach HTML zurückschreiben kann.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Die Antwort ist ganz easy:

Such dir einen Beispielsketch, das als Ethernetserver fungiert und kopiere den entsprechenden Code (am besten als Funktion verpackt) in die Loop-Schleife.

Danke, ich versuche es einfach heute Abend/ nacht mal!

@Trib:
Ja, könnte sein das ich das habe smiley-wink
Einzeln als "Webserver"  und EINZELN als "EthernetClient client;" 
komme ich ja mit dem was ich brauche klar.
Nur beides zusammen noch nicht....

Wenn ich es es mit dem Tip von "kduin" hinbekommen haben,
Poste ich die Lösung.

Gruß

Logged

Pages: [1]   Go Up
Jump to: