我會搜索,並嘗試了很多解決方案,但我們的問題,但沒有作品。這將是一個很長的文章,所以要做好準備。
我們的系統:
我們有一個的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服務器,內部本地網絡
這是他們網絡系統模式的圖片: 在這張照片中,開關丟失了,但你可以簡單地猜測他們使用了大量的swtiches。因爲公司很寬,並且有很多設備。
因此,如果我連接任何設備到他們的本地網絡,此設備首先調用dhcp protocals從獲得IP Windows DHCP服務器,然後可以在本地網絡與其他設備進行通信。但由於路由器中的防火牆,無法通過互聯網調制解調器。
那麼我們將建立我們的系統是這樣的:
在此設置開關的型號是: 「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),它有時會再次得到響應。 (相同金額)
那麼我們試着縮小我們的問題。
首先我們改變這樣的設置一次,以確保本地網絡的問題。
而且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,
我會通知大家。因此,任何建議,工具或一些診斷工具的問題我打開所有的建議。