2015-10-01 72 views
1

我正在使用ESP8266 wifi模塊從我的微控制器在網上發送/接收數據包。特別是我一直在使用將ESP8266連接到虛擬IP地址/網站

AT+CIPSTART="TCP",'xxx.xxx.xxx.xxx,80\r\n

命令哪個端點我送包來接。它目前適用於靜態IP(或具有靜態IP的域);但我還沒有找到一個資源,說明這可以與虛擬IP(或具有虛擬IP的域)協同工作。

我有共享服務器上託管的網站,但每次我執行此CIPSTART命令(與IP或域)時,響應是通用共享服務器IP地址頁面。

我怎樣才能讓我的ESP8266與我是在共享服務器上託管與虛擬地址的特定部位連接?

資源我讀過:

+0

通過「虛擬IP」你的意思是動態IP隨時間變化的或虛擬主機哪裏有一個靜態IP,但在不同的域上有多個網站? –

+0

具有單個靜態IP並承載多個域的虛擬主機。 –

回答

0

要連接到虛擬主機,你通常連接到它的IP和端口AT+CIPSTART

AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",80\r\n 

重要的是當你發送HTTP請求AT+CIPSEND
要讓Web服務器區分不同的虛擬主機,您需要在請求中添加Host HTTP header

GET /request.php?key=value HTTP/1.1\r\n 
Host: www.example.com\r\n 
\r\n 

這樣,Web服務器應該從正確的主機,而不是默認的一個回報,從主機提供商。

+0

我不明白這是如何連接到ESP8266。我已經嘗試使用AT + CIPSTART使用域名,http響應是通用IP地址,而不是特定域名。 –

+0

@DevonBernard我編輯了答案,使其更清晰。 –

0

您應該可以使用域名,因爲DNS會自動爲您解析IP。請注意長度值。你應該至少4個字符添加到GET字符串的實際長度佔回車/新換行符:

AT+CIPSTART="TCP","api.thingspeak.com",80 
AT+CIPSEND=80 
GET http://api.thingspeak.com/update?key=PBG7CKSZU6FU3M4C&field1=5 HTTP/1.0