Hallo,
Ich habe angefangen mit den Ethernet Shields zu experimentrieren.
Läuft soweit auch ganz gut. Ich kann zb mittels Chrome auf den Webserver zugreifen und mir die Analogwerte anzeigen lassen. Der Webserver Arduino hing an meinen PC oder W-LAN Router über ein Kabel, ging beides . Als nächstes hab ich mir nen Client geschrieben mit dem Ziel die Analogwerte mittels Textfinder auszulesen und weiterzuverarbeiten.
Doch der Client kann laut Seriellem Monitor den Webserver nicht finden. Jemand einen heißen Tip wo mein Fehler liegt?
Hier der Code vom Client
#include <SPI.h>
#include <Ethernet.h>
#include <TextFinder.h>
byte mac[] = { 0x5A, 0xA2, 0xDA, 0x0D, 0x56, 0x56 };
byte ip[] = { 192, 168, 178, 110 }; // IP-Adresse Client der versucht die Daten zu lesen
byte gateway[] = { 192, 168, 178, 1 }; //Ip-Adresse vom Router
byte subnet[] = { 255, 255, 255, 0 };
byte server[] = {192,168,178,177 }; //Arduino Webserver
EthernetClient client;
TextFinder finder( client);
int ADC3; // Zahlenwert
void setup()
{
Ethernet.begin(mac, ip, gateway, subnet);
Serial.begin(9600);
Serial.println("Verbinden mit Arduino Webserver...");
delay(2000);
}
void loop()
{
if (client.connect(server, 80)) {
Serial.print("Verbunden... ");
} else {
Serial.println("Verbinden Fehlgeschlagen");
}
if (client.connected()) {
ADC3 = 0;
if(finder.find("3")){
ADC3 = finder.getValue(':');
Serial.print(ADC3);
Serial.println(" RAW");
}
if(ADC3 == 0){
Serial.println("Daten lassen sich nicht lesen ");
}
delay(10000); // check again in 10 seconds
}
else {
Serial.println();
Serial.println("Nicht Verbunden");
delay(1000);
}
client.stop();
}
und hier der Code vom Webserver
/*
Web Server
A simple web server that shows the value of the analog input pins.
using an Arduino Wiznet Ethernet shield.
Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
* Analog inputs attached to pins A0 through A5 (optional)
created 18 Dec 2009
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
*/
#include <SPI.h>
#include <Ethernet.h>
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
//the IP address for the shield:
byte ip[] = { 192, 168, 178, 177 };
// the router's gateway address:
byte gateway[] = { 192, 168, 178, 1 };
// the subnet:
byte subnet[] = { 255, 255, 255, 0 };
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 5"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// output the value of each analog input pin
int sensorReading = analogRead(3);
client.print("analog input ");
client.print(" is ");
client.print(sensorReading);
client.println("
");
client.println("</html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disconnected");
}
}
[code]
Beide hängen im Netzwerk und lassen sich mit Erfolg Pingen, doch reden Miteinander wollen die Herrschaften nicht.
Danke schon mal für eure Hilfe