Ich bin gerade dabei im Internet ein paar Analog Werte anzuzeigen. Benutze den Beispielcode aus der Ethernet2 Libary von Various. Hab mir dazu die passende Anleitung für den W5500 herruntergledaen doch es funktioniert nicht. Über die IP adresse(192, 168, 1, 177) wird nichts im Internet angezeigt und wenn ich eine andere versuche ändert diese sich einfach im Seriellen Monitor zu einer ganz anderen
(server is at 192.80.3.98) . Hab die Anleitung angehangen.
Muss ich irgendwétwas am router machen oder die mac ändern. Mac Adresse steht nicht auf dem W5500 nicht drauf.
/*
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 <Ethernet2.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
};
IPAddress ip(192, 168, 1, 177);
// 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);
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
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("analog input ");
client.print(analogChannel);
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");
}
}
die IP adresse(192, 168, 1, 177) ist eine Lokale IP. Die geht nur im LAN.
a) klappt der Zugriff schon innerhalb des LAN?
b) um das ding von Außen zugreifbar (und angreifbar ^^) zu machen brauchst du in deinem Router ein Port-Forwarding.
UND du musst wissen welche public IP dein Router gerade hat.
DYNDNS hilft dir dabei - diese IP Adresse rauszufinden.
noiasca:
die IP adresse(192, 168, 1, 177) ist eine Lokale IP. Die geht nur im LAN.
a) klappt der Zugriff schon innerhalb des LAN?
b) um das ding von Außen zugreifbar (und angreifbar ^^) zu machen brauchst du in deinem Router ein Port-Forwarding.
UND du musst wissen welche public IP dein Router gerade hat.
DYNDNS hilft dir dabei - diese IP Adresse rauszufinden.
Ich denke sie klappt nicht, weil in der thorie solte man doch die IP im Browser oben eintragen. Es lädt ewig und sagt dann Seite nicht gefunden. Jedoch im Seriellen Monitor sagt es "server is at 192.168.1.177"
"
Die Antwort von 192.168.1.177 hat zu lange gedauert
Naja, du musst schon die IP eingeben, die Du vom seriellen Monitor geliefert bekommen hast.
Scheint tatsächlich dieselbe zu sein, die Ausgabe ist ja "server is at..."
@TO:
Ich muss mich entschuldigen; meine Beschreibung gilt für (DHCP-) CLIENTs. Du baust aber einen Server, das habe ich auf Arduino nie gemacht (wird gleich oben korrigiert).
Hast Du mal http://192.168.1.177 angegeben oder nur die Adresse? Manche Serverimplementierungen sind da wohl pingelig.
my_xy_projekt:
Naja, du musst schon die IP eingeben, die Du vom seriellen Monitor geliefert bekommen hast.
Das hab ich auch gedacht aber es funkioniert nicht. Im Scatch trag ich ja aber auch eine IP ein, warum wird mir dann trotzdem wiederum einen andere Angezeigt? Ist nicht immer der Fall aber manachmal zeigt er mir die an manchmal nicht.
wno158:
Scheint tatsächlich dieselbe zu sein, die Ausgabe ist ja "server is at..."
@TO:
Ich muss mich entschuldigen; meine Beschreibung gilt für (DHCP-) CLIENTs. Du baust aber einen Server, das habe ich auf Arduino nie gemacht (wird gleich oben korrigiert).
Hast Du mal http://192.168.1.177 angegeben oder nur die Adresse? Manche Serverimplementierungen sind da wohl pingelig.
NENE!
Der baut einen Server - mit fester IP. Das Routing zu dem Netz, in dem er den bauen will exisitiert bei ihm nur nicht.
jiggijaggajuggujesse:
Die Antwort von 192.168.1.177 hat zu lange gedauert
Weil du den auch nicht erreichst.
Was hast Du für ein Betriebssystem? Windows?
Dann mach mal eine cmd / console / Eingabeaufforderung oder wie das auch immer heisst und gib mal ein: ipconfig.
Alle Zeilen die du dann ausgegeben bekommst, in denen was mit 192.168. - und danach irgendwelche Nummern hier rein kopieren, wenn mein Ansatz nicht geht.
Ich wette, du sitzt hinter ner Fritz!Box mit 192.168.178.(hier irgendwas von 2 bis 254)
Wenn ja, kannst auch versuchen in dem schwarzen Fenster: ping Fritz.Box
Die Nummer der Box kommt dabei zu Tage.
Der baut einen Server - mit fester IP. Das Routing zu dem Netz, in dem er den bauen will exisitiert bei ihm nur nicht.
Dann muss er doch "nur" sicherstellen, dass die feste IP sich im gleichen oder wenigstens einem erreichbaren Subnetz befindet.
Also sollte seine Router- und die Adresse des Rechners, von dem er zugreifen will, auf 192.168.1.xxx lauten (wenn er nicht eine wilde Konfiguration hat), oder?
Falls das der Fall ist, sollte der Router die 177 nicht zufällig einem anderen Gerät zugewiesen haben.
Meine Fritzbox meldet sich übrigens mit 192.168.178.xxx
punkt 1:
du brauchst für den W5500 keine Ethernet 2.
Das muss die aktuelle Ethernet können.
dann ladest du aus der IDE das Beispiel
Repeating Web client
der versucht nämlich auch eine IP über DHCP (korr) zu holen.
Poste den ganzen Serial Output den du bekommst.
Punkt 2:
Verkabelung: Zeige uns deutliche Bilder wie du was verkabelt hast. Jedes einzelne Kabel muss eindeutig sichtbar sein wo es im Uno steckt, wo es am Modul steckt.
Dann machst du noch eine Liste wo du schreibst
Uno W5500 Verwendung Farbe vom Kabel
10 xy CS gelb
noiasca:
du brauchst für den W5500 keine Ethernet 2.
Das muss die aktuelle Ethernet können.
Je nach Stand nicht. Die E2 ist schon ok und die sichere Variante.
Repeating Web client
der versucht nämlich auch eine IP über DNS zu holen.
Nö.
IP fest vergeben. Und es wäre DHCP.
Hatte ich schon ersucht...
Poste den ganzen Serial Output den du bekommst.
Punkt 2:
Verkabelung: Zeige uns deutliche Bilder wie du was verkabelt hast. Jedes einzelne Kabel muss eindeutig sichtbar sein.
JA JA JA JA
Wenn das mit dem DHCP nicht klappt, dann möglicherweise gehts nur so; aber wenn da tatsächlich 192.80.3.98 drin stand, hängt das Teil evtl. in der DMZ.