Hallo,Arduino lokales Netzwerk DHCP fehlgeschlagen
Ich werde viele Lösungen für unser Problem suchen und ausprobiert, aber keiner von funktioniert. Dies wird ein langer Post sein, also sei bereit.
Unser System:
Wir haben ein Arduino uno r3 Klon und Ethernet Shield Wiznet W5100, Das Arduino eine Postanforderung zu einem Fenster Web-Service http macht. Nach Antwort wird Arduino etwas machen, das nicht offen ist zu hinterfragen.
Also werden wir in unserer Testumgebung einen Windows-Webservice auf unserer Windows-Maschine installieren und diese Maschine an unser lokales Netzwerk anschließen. Dann schließe Arduino an unser lokales Netzwerk an. als mit unserem Server IP, Arduino machte eine DHCP-Anfrage erhalten IP von unserem Modem-Router und kann Webservices von unserem Server aufrufen.
Von jetzt an funktioniert alles gut.
Hier ist ein Beispielcode aus unserem Arduino (ich benutze diese zusätzliche Bibliothek für Arduino nur:... "RestClient.h"
#include <Ethernet.h>
#include <SPI.h>
#include "RestClient.h"
RestClient client = RestClient("192.168.100.17",51200);
String response;
String PostData;
void setup()
{
Serial.begin(9600);
byte mac[] = { 0x04, 0xD6, 0x2E, 0x81, 0x01, 0xB0 };
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
}
delay(1000);
Serial.println(Ethernet.localIP());
}
void postDataToServer(long rfidnumber,int rfidsource){
String postedRFIDNumber=String(rfidnumber);
postedRFIDNumber="000"+postedRFIDNumber;
response = "";
PostData="RFID="+postedRFIDNumber+"&SOURCE="+rfidsource;
const char * myPost = PostData.c_str();
int statusCode =
client.post("/sqlpublish/TTSWebService.asmx/INSERT_INDEXRFID",myPost,&response);
}
Wir müssen unser System an ein Unternehmen installieren Dieses Unternehmen sein eigenes lokales Netzwerk hat sie haben ein sehr eingeschränktes lokales Netzwerk Sie können ihr Netzwerk verbinden, aber können nicht auf das "www" ohne ihre Berechtigungen gehen. Aber das ist kein Problem. Wir werden nur lokale Verbindung für unsere Webdienste verwenden, weil wir auch einen Windows Server verwenden werden innerhalb des lokalen Netzwerks
Dies ist ein Bild ihres Netzwerksystemschemas: In diesem Bild fehlt Schalter, aber Sie können einfach raten, dass sie viele swtiches verwendet. Weil Firma sehr breit ist und viel Gerät hat.
Also wenn ich irgendein Gerät an ihr lokales Netzwerk anschließe, ruft dieses Gerät Dhcp-Protokoll zuerst IP von Windows DHCP Server und kann dann im lokalen Netzwerk mit anderen Geräten kommunizieren. Aber wegen der Firewall im Router kann das Internetmodem nicht durchkommen.
Dann werden wir unser System-Setup wie folgt aus:
In diesem Setup-Switch-Modelle sind: "AVAYA".
VSP7000 XLS ERS4826 GTS-PWR + ERS3549 GTS-PWR +
Firewall ist: Watchguard Firebox M300
Wenn wir das System-Setup etwas Unheimliches vor sich geht. Zuallererst, wenn ich meinen PC (Mein Gerät) mit dem lokalen Netzwerk verbinde, kann ich Webservices im Windows Server aufrufen. Aber Arduino kann keine IP vom DHCP Server bekommen und kann natürlich keine Verbindung zu Web Services herstellen. Wir denken also, dass wir "IP statisch" geben können. Dann geben wir unserem Arduino IP manuell. Danach begannen seltsame Dinge zu beginnen. Wenn Arduino versucht, unsere Windows-Webdienste zu verbinden, bekommt es nur einige Male eine Antwort. Ungefähr 1 von 20 hat Antwort vom Server, alles andere erhält eine Verbindung zum Time Out.Und auch die Reaktionszeit ist zu lang.
Wenn wir unsere statische arduino IP von einem anderen Gerät pingen (zum Beispiel Device_1), erhalten sie manchmal wieder Antwort. (Gleicher Betrag)
Also versuchen wir dann, unser Problem einzugrenzen.
Zunächst einmal ändern wir das Setup so für einmal, um sicherzustellen, Problem im lokalen Netzwerk.
Und Normaly alle Systeme funktioniert perfekt. Der DHCP-Server unseres Modems sorgt dafür, dass er perfekt funktioniert. (Auch in diesem Setup Wenn ich IP statisch gebe, funktioniert es auch).
So gibt es diese Möglichkeiten für Verbindungsfehler.
1-Firewall 2-Switch Problem 3-Arduino Clon Problem.
1-Firewall
Wenn wir über das Problem mit Systemadministrator gesprochen, sagte er ust jede lokale Netzwerkverbindung und Port in der Firewall geöffnet. Er hat wahrscheinlich recht, weil jeder PC, der mit dem lokalen Netzwerk verbunden ist, den Internetdienst anrufen kann.
2-Schalter Problem
This Question, spricht über sie als Lösung sagt, es statische IP verwenden, bu in unserem Fall ist es nicht das Problem zu lösen hat.
In this Question jdr5ca sinnvoll beantworten, aber ich hve keine Ahnung, wie das Problem testen oder lösen das Problem
In this Question answer tried but not working.
Schließlich this post, aber es ist so allgemein. und auch was ich verwenden sollte ersetzen für "Arping" in Windows.
3-Arduino Clon Problem.
nächste Woche werden wir versuchen, es mit mit Original Arduino,
ich alle informiert.
SO, irgendein Vorschlag, Werkzeug oder irgendein Diagnosewerkzeug für das Problem Ich bin den ganzen Vorschlag geöffnet.