2017-10-10 155 views
-1

您好,Arduino本地網絡DHCP失敗

我會搜索,並嘗試了很多解決方案,但我們的問題,但沒有作品。這將是一個很長的文章,所以要做好準備。

我們的系統:

我們有一個的Arduino UNO R3克隆以太網屏蔽WIZnet的W5100, 這使得Arduino的一個HTTP POST請求窗口網絡服務。 根據迴應,arduino會讓一些不相信的東西質疑。

所以在我們的測試環境中,我們會安裝一個windows webservice到我們的windows機器,並將這臺機器連接到我們的本地網絡。然後將arduino插入我們的本地網絡。比我們的服務器IP,arduino做了一個DHCP請求從我們的調制解調器路由器獲得IP,並可以從我們的服務器調用Web服務。

從現在開始,一切正常。

這裏是我們的Arduino的一些示例代碼(我只用這額外的庫的Arduino:。"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); 
} 

我們需要將系統安裝到公司這家公司都有自己的本地網絡,他們有非常有限的本地網絡,你可以連接他們的網絡,但不能沒有他們的權限去「www」,但這不是問題,我們將只使用本地連接來處理我們的Web服務,因爲我們也會使用一個windows服務器,內部本地網絡

這是他們網絡系統模式的圖片: Normal Network Configuration 在這張照片中,開關丟失了,但你可以簡單地猜測他們使用了大量的swtiches。因爲公司很寬,並且有很多設備。

因此,如果我連接任何設備到他們的本地網絡,此設備首先調用dhcp protocals從獲得IP Windows DHCP服務器,然後可以在本地網絡與其他設備進行通信。但由於路由器中的防火牆,無法通過互聯網調制解調器。

那麼我們將建立我們的系統是這樣的:

our needed setup arduino

在此設置開關的型號是: 「AVAYA」。

VSP7000 XLS ERS4826 GTS-PWR + ERS3549 GTS-PWR +

防火牆是:臺WatchGuard的Firebox M300

當我們設置系統奇怪的事情是怎麼回事。首先,當我將PC(我的設備)連接到本地網絡時,我可以在Windows服務器中調用Web服務。但Arduino無法從DHCP服務器獲取IP,並且自然無法連接到Web服務。所以我們認爲「好的,我們可以給IP靜態」。比我們手動將IP給予我們的Arduino。之後,奇怪的事情開始了。當Arduino嘗試驗證我們的Windows Web服務時,它只會得到迴應。 20箇中的大約1個得到服務器的響應,其他任何事情都會超時。而且成功的響應時間也太長了。

如果我們ping我們的靜態arduino IP從另一個設備(例如Device_1),它有時會再次得到響應。 (相同金額)

那麼我們試着縮小我們的問題。

首先我們改變這樣的設置一次,以確保本地網絡的問題。

changed version

而且Normaly所有系統完美的作品。所以我們的調制解調器的DHCP服務器使它完美地工作(也在這個設置中,如果我給Ip靜態它也可以)。

所以有這些連接錯誤的可能性。

1-Firewall 2-Switch problem 3-Arduino Clon Problem。

1 - 防火牆

當我們談到與系統管理員的問題,他告訴烏斯各本地網連接和端口在防火牆中打開。他可能是對的,因爲任何連接到本地網絡的PC都可以調用Web服務。

2開關問題

This Question,談論它,因爲它說使用靜態IP,BU在我們的情況下,它並沒有解決問題的解決方案。

In this Question jdr5ca回答是有意義的,但我的hve不知道該如何測試問題或解決問題

In this Question answer tried but not working.

最後this post,但它是如此普遍。還有什麼我應該使用替換窗口中的「arping」。

3-Arduino克隆問題。

下週,我們嘗試與原來的Arduino,

我會通知大家。因此,任何建議,工具或一些診斷工具的問題我打開所有的建議。

回答

1

顯然我們的問題是一個特定的開關模型!

這裏是模型:https://www.zyxel.com/tr/tr/products_services/es_108a.shtml?t=p(ZYXEL ES-108E)

當我們直接從另一設備的網絡中連接的Arduino到ZYXEL開關和ping Arduino的僅一些坪的成功(大致%15成功)。 。

但是,如果我們使用另一個開關型號或不直接連接到zyxel開關,它工作正常。

我不知道它爲什麼不與zyxel一起工作,但問題是開關!